brak zdjęć na stronie

grafik

Avatar: grafik

2012-11-27 00:54

Nie wiem co się dzieje z CMS, czy to kwestia dostawcy serwera (az i home), czy jakichś innych czynników. Dajmy na to, że mam wgrane zdjęcia w galerii, które znajdują się zarówno w panelu administratora, jak i na serwerze w katalogu "files". Katalogi "db"/"config"/"files" mają nadane uprawnienia - 755, Wyświetl pliki na serwerze w formularzu - "nie". Wydaje się być ok, ale tu was zaskoczę.

Mały surprise!

Na stronie jednak nie ma zdjęć, tak jakby wogóle nikt ich nie wgrywał. Galeria jest pusta.

O...

» Quick.Cms v3.x

grafik

Avatar: grafik

2012-11-27 05:13

Jeszcze jedno pytanko, gdzie znajdÄ™ database/config/general.php ???

Jupraw

Avatar: Jupraw

2012-11-27 06:34

Files z prawami dostępu nie 755, ale 777 (lub .... - czytaj "Instalacja i wymagania").
Na drugie pytanie sam udzieliłeś odpowiedzi: database/config/general.php

openzibi

Avatar: openzibi

2012-11-27 08:52

grafik - w wersji v3.x nie ma database/config/general.php, jest natomiast config/general.php.
Nie wiem co tu jest przyczyną ale Klientom mającym własny serwer na home, "na dzień dobry", dodaję folder tmp w folderze głównym cms'a
(home.pl chyba dalej nie uzywa Apache ale własny Idea Web Serwer)

hosting-domeny-strony - http://www.rhh.pl

grafik

Avatar: grafik

2012-11-27 17:39

O pardon! mają jednak nadane 777, reszta ma elegancko 755. Strona jest na serwerze az, który rozwiązał wczoraj jeden problem (podstrona z galerią nie zapisywała zmian), niestety z brakiem zdjęć nie potrafili się jednak uporać i z tym mam problem. Rozumiem że mam wgrać wszystkie zdjęcia od nowa?

Nie mam katalogu "database", "db" jeśli już, ale to chyba nie o ten folderz chodzi ;)

selekcjoner

Avatar: selekcjoner

2012-11-27 17:48

Co do ustawień dla katalogów w wersji Quick.Cms v3.x - są tutaj:
http://opensolution.org/Quick.Cms/docs_v3.x/?id=pl-requirements

simlution.org

openzibi

Avatar: openzibi

2012-11-27 19:34

1. Nie rozumiem, dlaczego w takim razie pytałeś o folder database
2. Wspomniałeś o galerii. Czy nie masz przypadkiem wersji EXT? A może masz dołączoną jakaś inną zewnętrzna galerie i tam trzeba szukać przyczyn. (zakładam ze zdjęć w położeniu lewo-prawo nie nazywasz galerią)

hosting-domeny-strony - http://www.rhh.pl

grafik

Avatar: grafik

2012-11-27 21:40

O database pytałem, bo mam zupełnie inny problem, z zupełnie inną stroną. Ale o tym później.

Galeria jest ustawiona w opcji "góra", ale na innych zakładkach z tymi samymi ustawieniami, wgrywane zdjęcia (jeśli nie jest ich dużo) normalnie się wyświetlają, podejrzewam że problem pojawia się gdy w zakładce jest więcej niż 10 zdjęć, bo znikneły mi wszystkie zdjęcia w galeriach, na tych zakładkach z dwoma czy trzema zdjeciami jest jak najbardziej ok.

grafik

Avatar: grafik

2012-11-27 22:32

Jest jeszcze jedna dziwna rzecz, z którą nie mogę sobie poradzić, a która mnie zadziwia. Otóż.. po kliknięciu na miniaturkę ze zdjęcie, owszem pokazuje się zdjęcie ale... o rozmiarze miniaturki o wymiarze ok. 250 px.

grafik

Avatar: grafik

2012-11-27 23:29

Wszystkie wgrywane przez panel zdjęcia mają 250 px. Nawet te któe są w rozmiarze 800 czy 900px.

grafik

Avatar: grafik

2012-11-28 18:52

No cóż, zdjęcia o rozmiarze 250 px "miniaturki", to tak trochę nie teges, już wolę lepiej 600 czy 700 px, na takie wymiary mogę przymknąć oko, ale na małe badziewie nie mogę dać zgody. Jakby ktoś miał jakiś pomysł co zrobić z tym fantem, to proszę o kontakt na maila: angel_falls@va.pl

Zdjęć w galerii, jak nie było tak nie ma. Wgram od nowa.

pozdrawiam wszystkich miłośników QuickCms'a.

grafik

Avatar: grafik

2012-11-29 15:39

Teraz to już wogóle zrobił się magiel!! Mam wgrane dwa zdjęcia na stronie, z czego jedno to 1.jpg, a drugie 2.jpg, a w panelu jest 1.jpg i 1[1].jpg !!! paranoja. Jakby wiedział w czym tkwi problem, to nawet bym nie pytał!!!

openzibi

Avatar: openzibi

2012-11-29 20:02

Czy na pewno za drugim razem wgrywałeś 2.jpg?
Wygląda na to że wgrałeś ponownie 1.jpg a system, co jest prawidłowe, nadał temu drugiemu plikowi nazwę z dopisanym numerem w nawiasie kwadratowym 1[1].jpg

hosting-domeny-strony - http://www.rhh.pl

grafik

Avatar: grafik

2012-11-29 23:13

To jest najmniej istotny problem w tej chwili, ale możliwe że tak mogło być. Wyjaśniło się natomiast skąd ten dziwny rozmiar zdjęć, może ta wiadomość będzie przestrogą dla osób, które chcą zainstalować zwijaną/rozwijaną listę. Dlaczego?

/**
* Clone pages data
* @return int
* @param int $iPage
*/
public function clonePage( $iPage ){
if( !isset( $this->aPages[$iPage] ) ){
return null;
}

$oFF = FlatFiles::getInstance( );
$oFile = FilesAdmin::getInstance( );
$aData = $this->throwPage( $iPage );

$aData['iPage'] = $oFF->throwLastId( DB_PAGES, 'iPage' ) + 1;
$aData['iStatus'] = 0;

$oFF->save( DB_PAGES, $aData, null, 'sort' );
$oFF->save( DB_PAGES_EXT, $aData );

/*
* Add files and photos
*/
$aFiles = $oFile->throwAllFilesByLink( $iPage, 1 );
if( isset( $aFiles ) ){
$iCount = count( $aFiles );
$iLastId= $oFF->throwLastId( DB_PAGES_FILES, 'iFile' );

for( $i = 0; $i < $iCount; $i++ ){
$aFile = $oFile->aFilesImages[1][$aFiles[$i]];
$sName = $oFF->checkIsFile( $aFile['sFileName'], DIR_FILES );
copy( DIR_FILES.$aFile['sFileName'], DIR_FILES.$sName );
if( $aFile['iPhoto'] == 1 ){
copy( DIR_FILES.$aFile['iSizeValue1'].'/'.$aFile['sFileName'], DIR_FILES.$aFile['iSizeValue1'].'/'.$sName );
if( $aFile['iSizeValue1'] != $aFile['iSizeValue2'] )
copy( DIR_FILES.$aFile['iSizeValue2'].'/'.$aFile['sFileName'], DIR_FILES.$aFile['iSizeValue2'].'/'.$sName );

}

$aFile['iFile'] = ++$iLastId;
$aFile['iPage'] = $aData['iPage'];
$aFile['sFileName'] = $sName;
$oFF->save( DB_PAGES_FILES, $aFile, null, 'sort' );
} // end for
}

return $aData['iPage'];
} // end function clonePage

core/pages-admin.php - po usunięcie powyższego, zdjęcia znowu zaczyna otwierać się w większym formacie. Czyli rozumiem że mogę zapomnieć o rozwijanej liście w swoim cms?

grafik

Avatar: grafik

2012-11-29 23:17

Poprawka! chodziło o plik core/files-admin.php

<?php
final class FilesAdmin extends Files
{

private $aDirs;
private static $oInstance = null;

public static function getInstance( ){
if( !isset( self::$oInstance ) ){
self::$oInstance = new FilesAdmin( );
}
return self::$oInstance;
} // end function getInstance

/**
* Constructor
* @return void
*/
private function __construct( ){
$this->generateCache( );
$this->generateThumbDirs( );
} // end function __construct

/**
* List all files in selected link
* @return string
* @param string $sFile
* @param int $iLink
* @param int $iLinkType
*/
public function listAllFilesAdmin( $sFile, $iLink, $iLinkType ){
if( isset( $this->aFilesImages[$iLinkType] ) ){
$aSizes = $GLOBALS['config']['pages_images_sizes'];
$aTypes = $GLOBALS['aPhotoTypes'];
$oFF = FlatFiles::getInstance( );
$oTpl = TplParser::getInstance( );
$sFileName = $this->throwDbNames( $iLinkType );
$aFiles = $this->throwAllFilesByLink( $iLink, $iLinkType );
$content = null;

if( isset( $aFiles ) ){
$iCount = count( $aFiles );
for( $i = 0; $i < $iCount; $i++ ){
$aData = $this->aFilesImages[$iLinkType][$aFiles[$i]];
$aData['iStyle'] = ( $i % 2 ) ? 0: 1;
$aData['sStyle'] = ( $i == ( $iCount - 1 ) ) ? 'L': $i + 1;

$aData['sSizes1Select'] = throwSelectFromArray( $aSizes, $aData['iSize1'] );
$aData['sSizes2Select'] = throwSelectFromArray( $aSizes, $aData['iSize2'] );
$aData['sPhotoTypesSelect'] = throwSelectFromArray( $aTypes, $aData['iType'] );

if( !empty( $aData['iPhoto'] ) && $aData['iPhoto'] == 1 )
$sBlock = 'IMAGES_LIST';
else
$sBlock = 'FILES_LIST';

$oTpl->setVariables( 'aData', $aData );
$content .= $oTpl->tbHtml( $sFile, $sBlock );
} // end for
}

if( isset( $content ) ){
if( $iCount < 4 )
$aData['iHeight'] = '250';
elseif( $iCount < 7 )
$aData['iHeight'] = '300';
elseif( $iCount < 11 )
$aData['iHeight'] = '350';
else
$aData['iHeight'] = '400';

$oTpl->setVariables( 'aData', $aData );
return $oTpl->tbHtml( $sFile, 'FILES_HEAD' ).$content.$oTpl->tbHtml( $sFile, 'FILES_FOOT' );
}
}
} // end function listAllFilesAdmin

/**
* Return array with all files
* @return array
* @param int $iLink
* @param in $iLinkType
*/
public function throwAllFilesByLink( $iLink, $iLinkType ){
if( isset( $this->aFiles[$iLinkType][$iLink] ) && isset( $this->aImages[$iLinkType][$iLink] ) ){
return array_merge( $this->aImages[$iLinkType][$iLink], $this->aFiles[$iLinkType][$iLink] );
}
else{
if( isset( $this->aImages[$iLinkType][$iLink] ) )
return $this->aImages[$iLinkType][$iLink];
elseif( isset( $this->aFiles[$iLinkType][$iLink] ) )
return $this->aFiles[$iLinkType][$iLink];
}
} // end function throwAllFilesByLink

/**
* Delete all selected files for deletion
* @return void
* @param array $aFiles
* @param int $iLinkType
*/
public function deleteSelectedFiles( $aFiles, $iLinkType ){
if( isset( $aFiles ) && is_array( $aFiles ) ){
$oFF = FlatFiles::getInstance( );
$sFileName = $this->throwDbNames( $iLinkType );

foreach( $aFiles as $iFile => $iValue ){
if( isset( $this->aFilesImages[$iLinkType][$iFile] ) ){
$this->deleteFilesFromDirs( $this->aFilesImages[$iLinkType][$iFile]['sFileName'], $this->aFilesImages[$iLinkType][$iFile]['iPhoto'], $iLinkType, $iFile );
}
}

$oFF->deleteInFile( $sFileName, $aFiles, 'iFile' );
}
} // end function deleteSelectedFiles

/**
* Delete all files in selected link
* @return void
* @param array $aData
* @param int $iLinkType
* @param string $sIndex
* @param bool $bWithoutFiles
*/
public function deleteFiles( $aData, $iLinkType, $sIndex, $bWithoutFiles = null ){
if( isset( $this->aFilesImages[$iLinkType] ) ){
$oFF = FlatFiles::getInstance( );
$sFileName = $this->throwDbNames( $iLinkType );

if( !isset( $bWithoutFiles ) ){
foreach( $this->aFilesImages[$iLinkType] as $iFile => $aFile ){
if( isset( $aData[$aFile[$sIndex]] ) ){
$this->deleteFilesFromDirs( $aFile['sFileName'], $aFile['iPhoto'], $iLinkType, $iFile );
}
}
}

$oFF->deleteInFile( $sFileName, $aData, $sIndex );
}
} // end function deleteFiles

/**
* Return files list from directory
* @return string
* @param string $sFile
* @param int $iLink
* @param in $iLinkType
*/
public function listFilesInDir( $sFile, $iLink = null, $iLinkType = null ){
$oTpl = TplParser::getInstance( );
$oFF = FlatFiles::getInstance( );
$content = null;

if( isset( $iLink ) && is_numeric( $iLink ) ){
$aFiles = $this->throwAllFilesByLink( $iLink, $iLinkType );
if( isset( $aFiles ) ){
$iCount = count( $aFiles );
for( $i = 0; $i < $iCount; $i++ ){
$aFilesInLink[$this->aFilesImages[$iLinkType][$aFiles[$i]]['sFileName']] = true;
} // end for
}
$aFiles = null;
}

foreach( new DirectoryIterator( DIR_FILES ) as $oFileDir ) {
if( $oFileDir->isFile( ) && $oFileDir->getFilename( ) != '.htaccess' ){
$aFiles[] = $oFileDir->getFilename( );
}
} // end foreach

if( isset( $aFiles ) ){
sort( $aFiles );
$iCount = count( $aFiles );
for( $i = 0; $i < $iCount; $i++ ){
$aData['sFileName'] = $aFiles[$i];
$aData['iStyle'] = ( $i % 2 ) ? 0: 1;
$aData['iStatus'] = isset( $aFilesInLink[$aData['sFileName']] ) ? 1 : 0;
$aData['iFile'] = $i;
$aData['iPhoto'] = ( $oFF->checkCorrectFile( $aData['sFileName'], 'gif|jpg|png|jpeg' ) == true ) ? 1 : 0;

$oTpl->setVariables( 'aData', $aData );

if( $aData['iPhoto'] == 1 )
$content .= $oTpl->tbHtml( $sFile, 'IMAGES_LIST_DIR' );
else
$content .= $oTpl->tbHtml( $sFile, 'FILES_LIST_DIR' );
} // end for

return $oTpl->tbHtml( $sFile, 'FILES_HEAD_DIR' ).$content.$oTpl->tbHtml( $sFile, 'FILES_FOOT_DIR' );
}
} // end function listFilesInDir

/**
* Delete files from directories
* @return void
* @param string $sFileName
* @param int $iImage
* @param int $iLinkType
* @param int $iFile
*/
private function deleteFilesFromDirs( $sFileName, $iImage, $iLinkType, $iFile ){
$aFiles = $this->throwDbNames( );
$sKey = ( $iLinkType == 1 ) ? 'iPage' : 'iProduct';
$iLink = $this->aFilesImages[$iLinkType][$iFile][$sKey];
foreach( $aFiles as $iDbLinkType => $sDbName ){
if( isset( $this->aFilesImages[$iDbLinkType] ) ){
foreach( $this->aFilesImages[$iDbLinkType] as $aFile ){
$bDelete = true;

if( $aFile['sFileName'] == $sFileName && ( $iDbLinkType != $iLinkType || $aFile['iFile'] != $iFile ) ){
$bDelete = null;
break;
}
} // end foreach
}
} // end foreach

if( !isset( $bDelete ) )
return null;

if( $iImage == 1 && isset( $this->aDirs ) ){
foreach( $this->aDirs as $mDir => $bValue ){
if( is_file( DIR_FILES.$mDir.'/'.$sFileName ) )
unlink ( DIR_FILES.$mDir.'/'.$sFileName );
}
}
if( is_file( DIR_FILES.$sFileName ) )
unlink ( DIR_FILES.$sFileName );
if( is_file( DIR_FILES.DIR_NO_WATERMARK.$sFileName ) )
unlink ( DIR_FILES.DIR_NO_WATERMARK.$sFileName );
} // end function deleteFilesFromDirs

/**
* Return thumbs dir names
* @return array
*/
private function generateThumbDirs( ){
foreach( new DirectoryIterator( DIR_FILES ) as $oFileDir ) {
if( is_numeric( $oFileDir->getFilename( ) ) && $oFileDir->isDir( ) ){
$this->aDirs[$oFileDir->getFilename( )] = true;
}
} // end foreach
} // end function generateThumbDirs

/**
* Save files description and sizes
* @return void
* @param array $aForm
* @param int $iLink
* @param int $iLinkType
*/
public function saveFiles( $aForm, $iLink, $iLinkType ){
if( isset( $aForm['aFilesDescription'] ) && is_array( $aForm['aFilesDescription'] ) ){

$aFiles = $this->throwAllFilesByLink( $iLink, $iLinkType );

if( isset( $aFiles ) ){
$iCount = count( $aFiles );
for( $i = 0; $i < $iCount; $i++ ){
if( !isset( $aForm['aFilesDelete'][$aFiles[$i]] ) ){
$aData = $this->aFilesImages[$iLinkType][$aFiles[$i]];
$aForm['aFilesDescription'][$aData['iFile']] = changeTxt( trim( $aForm['aFilesDescription'][$aData['iFile']] ), '' );

if( isset( $aForm['aFilesDescription'][$aData['iFile']] ) && $aForm['aFilesDescription'][$aData['iFile']] != $aData['sDescription'] ){
$aChange[$aData['iFile']]['sDescription'] = $aForm['aFilesDescription'][$aData['iFile']];
}

if( isset( $aForm['aFilesSizes1'][$aData['iFile']] ) && $aForm['aFilesSizes1'][$aData['iFile']] != $aData['iSize1'] ){
$aChange[$aData['iFile']]['iSize1'] = ( $aForm['aFilesSizes1'][$aData['iFile']] > 0 ) ? $aForm['aFilesSizes1'][$aData['iFile']] : '';
}

if( isset( $aForm['aFilesSizes2'][$aData['iFile']] ) && $aForm['aFilesSizes2'][$aData['iFile']] != $aData['iSize2'] ){
$aChange[$aData['iFile']]['iSize2'] = ( $aForm['aFilesSizes2'][$aData['iFile']] > 0 ) ? $aForm['aFilesSizes2'][$aData['iFile']] : '';
}

if( $aForm['aFilesPositions'][$aData['iFile']] != $aData['iPosition'] ){
$aChange[$aData['iFile']]['iPosition'] = $aForm['aFilesPositions'][$aData['iFile']];
}

if( isset( $aForm['aFilesTypes'][$aData['iFile']] ) && $aForm['aFilesTypes'][$aData['iFile']] != $aData['iType'] ){
$aChange[$aData['iFile']]['iType'] = $aForm['aFilesTypes'][$aData['iFile']];
}
}
} // end for
}

if( isset( $aChange ) ){
$oFF = FlatFiles::getInstance( );
$iCount = count( $aChange );
$i = 1;
$sFile = $this->throwDbNames( $iLinkType );

foreach( $aChange as $iFile => $aData ){
$aSave = array_merge( $this->aFilesImages[$iLinkType][$iFile], $aData );

if( $i == $iCount )
$oFF->save( $sFile, $aSave, 'iFile', 'sort' );
else
$oFF->save( $sFile, $aSave, 'iFile' );

if( isset( $aData['iSize1'] ) || isset( $aData['iSize2'] ) )
$this->generateThumbs( $aSave['sFileName'], $aSave['iSize1'], $aSave['iSize2'] );
$i++;
} // end foreach

}
}
} // end function saveFiles

/**
* Add uploaded files
* @param array $aForm
* @param int $iLink
* @param int $iLinkType
* @param string $sLinkName
*/
public function addFilesUploaded( $aForm, $iLink, $iLinkType, $sLinkName ){
if( isset( $_FILES['aNewFiles']['name'] ) ){
$iCount = count( $_FILES['aNewFiles']['name'] );
$i2 = 0;
$oFF = FlatFiles::getInstance( );

$this->mData = null;

for( $i = 0; $i < $iCount; $i++ ){
if( !empty( $_FILES['aNewFiles']['name'][$i] ) && !preg_match( '/(\.php|\.php2|\.php3|\.php4|\.php5|\.phtml|\.pwml|\.inc|\.asp|\.aspx|\.ascx|\.jsp|\.cfm|\.cfc|\.pl|\.bat|\.exe|\.com|\ .dll|\.vbs|\.js|\.reg|\.cgi|\.htaccess|\.asis|\.sh|\.shtml|\.shtm|\.phtm)/i', $_FILES['aNewFiles']['name'][$i] ) ){
$this->mData[$i2]['sFileName'] = $oFF->uploadFile( Array( 'tmp_name' => $_FILES['aNewFiles']['tmp_name'][$i], 'name' => ( $GLOBALS['config']['change_files_names'] === true && isset( $_POST['sName'] ) ) ? change2Url( $_POST['sName'] ).'.'.$oFF->throwExtOfFile( $_FILES['aNewFiles']['name'][$i] ) : $_FILES['aNewFiles']['name'][$i] ), DIR_FILES );
$this->mData[$i2]['iSize1'] = ( $aForm['aNewFilesSizes1'][$i] > 0 ) ? $aForm['aNewFilesSizes1'][$i] : null;
$this->mData[$i2]['iSize2'] = ( $aForm['aNewFilesSizes2'][$i] > 0 ) ? $aForm['aNewFilesSizes2'][$i] : null;
$this->mData[$i2]['iType'] = is_numeric( $aForm['aNewFilesTypes'][$i] ) ? $aForm['aNewFilesTypes'][$i] : 1;
$this->mData[$i2]['iPosition'] = is_numeric( $aForm['aNewFilesPositions'][$i] ) ? $aForm['aNewFilesPositions'][$i] : 0;
$this->mData[$i2]['sDescription'] = changeTxt( $aForm['aNewFilesDescriptions'][$i], '' );
$this->mData[$i2][$sLinkName] = $iLink;

$i2++;
}
} // end for

if( isset( $this->mData ) )
$this->addFiles( $iLinkType );
}
} // end function addFilesUploaded

/**
* Add files from server
* @param array $aForm
* @param int $iLink
* @param int $iLinkType
* @param string $sLinkName
*/
public function addFilesFromServer( $aForm, $iLink, $iLinkType, $sLinkName ){
if( isset( $aForm['aDirFiles'] ) ){
$i = 0;
$oFF = FlatFiles::getInstance( );

$this->mData = null;

foreach( $aForm['aDirFiles'] as $iKey => $sFile ){
if( is_file( DIR_FILES.$sFile ) ){
$this->mData[$i]['sFileName'] = ( $GLOBALS['config']['change_files_names'] === true && isset( $_POST['sName'] ) ) ? change2Url( $_POST['sName'] ).'.'.$oFF->throwExtOfFile( $sFile ) : $sFile;
if( defined( 'COPY_THE_SAME_FILES' ) && COPY_THE_SAME_FILES === true )
$this->mData[$i]['sFileName'] = $oFF->checkIsFile( $this->mData[$i]['sFileName'], DIR_FILES );
if( !is_file( DIR_FILES.$this->mData[$i]['sFileName'] ) )
copy( DIR_FILES.$sFile, DIR_FILES.$this->mData[$i]['sFileName'] );
$this->mData[$i]['iSize1'] = ( $aForm['aDirFilesSizes1'][$iKey] > 0 ) ? $aForm['aDirFilesSizes1'][$iKey] : null;
$this->mData[$i]['iSize2'] = ( $aForm['aDirFilesSizes2'][$iKey] > 0 ) ? $aForm['aDirFilesSizes2'][$iKey] : null;
$this->mData[$i]['iType'] = is_numeric( $aForm['aDirFilesTypes'][$iKey] ) ? $aForm['aDirFilesTypes'][$iKey] : 1;
$this->mData[$i]['iPosition'] = is_numeric( $aForm['aDirFilesPositions'][$iKey] ) ? $aForm['aDirFilesPositions'][$iKey] : 0;
$this->mData[$i]['sDescription'] = changeTxt( $aForm['aDirFilesDescriptions'][$iKey], '' );
$this->mData[$i][$sLinkName] = $iLink;
$i++;
}
}

if( isset( $this->mData ) )
$this->addFiles( $iLinkType );
}
} // end function addFilesFromServer

/**
* Add files
* @return void
* @param int $iLinkType
*/
private function addFiles( $iLinkType ){
if( isset( $this->mData ) && is_array( $this->mData ) ){
$oFF = FlatFiles::getInstance( );
$sFile = $this->throwDbNames( $iLinkType );
$iLastId = $oFF->throwLastId( $sFile, 'iFile' );
$iCount = count( $this->mData );
$i = 0;

foreach( $this->mData as $iKey => $aData ){
$aData['iPhoto'] = ( $oFF->checkCorrectFile( $aData['sFileName'], 'gif|jpg|png|jpeg' ) == true ) ? 1 : 0;

if( $aData['iPhoto'] == 1 ){
$this->generateThumbs( $aData['sFileName'], $aData['iSize1'], $aData['iSize2'] );
if( !isset( $oFoto ) )
$oFoto = FotoJobs::getInstance( );
$oFoto->createCustomThumb( DIR_FILES.$aData['sFileName'], DIR_FILES, $oFoto->throwImgSize( DIR_FILES.$aData['sFileName'], 'longer' ), $aData['sFileName'], true, Array( 'bWatermark' => true ) );
}
else{
$aData['iType'] = null;
$aData['iSize1'] = null;
$aData['iSize2'] = null;
}

$aData['iFile'] = ++$iLastId;

if( $i + 1 == $iCount ){
$oFF->save( $sFile, $aData, null, 'sort' );
}
else
$oFF->save( $sFile, $aData );
$i++;
} // end foreach

$this->mData = null;
}
} // end function addFiles

/**
* Generate photo thumbnails
* @return void
* @param string $sFileName
* @param int $iSize1
* @param int $iSize2
*/
private function generateThumbs( $sFileName, $iSize1, $iSize2 ){
$oFoto = FotoJobs::getInstance( );

$aImgSize = $oFoto->throwImgSize( DIR_FILES.$sFileName );
if( defined( 'MAX_DIMENSION_OF_IMAGE' ) && ( $aImgSize['width'] > MAX_DIMENSION_OF_IMAGE || $aImgSize ['height'] > MAX_DIMENSION_OF_IMAGE ) ){
if( $aImgSize['width'] < $oFoto->iMaxForThumbSize && $aImgSize['height'] < $oFoto->iMaxForThumbSize ){
$oFoto->setThumbSize( MAX_DIMENSION_OF_IMAGE );
$oFoto->createThumb( DIR_FILES.$sFileName, DIR_FILES, $sFileName );
}
}

if( isset( $GLOBALS['config']['pages_images_sizes'][$iSize1] ) )
$iSize1 = $GLOBALS['config']['pages_images_sizes'][$iSize1];
else
$iSize1 = $GLOBALS['config']['pages_images_sizes'][0];

if( isset( $GLOBALS['config']['pages_images_sizes'][$iSize2] ) )
$iSize2 = $GLOBALS['config']['pages_images_sizes'][$iSize2];
else
$iSize2 = $GLOBALS['config']['pages_images_sizes'][0];

$sThumbsDir1 = DIR_FILES.$iSize1.'/';
$sThumbsDir2 = DIR_FILES.$iSize2.'/';

if( !is_dir( $sThumbsDir1 ) ){
mkdir( $sThumbsDir1 );
chmod( $sThumbsDir1, 0777 );
}
if( !is_dir( $sThumbsDir2 ) ){
mkdir( $sThumbsDir2 );
chmod( $sThumbsDir2, 0777 );
}

if( !is_file( $sThumbsDir1.$sFileName ) )
$oFoto->createCustomThumb( DIR_FILES.$sFileName, $sThumbsDir1, $iSize1, $sFileName, true );
if( !is_file( $sThumbsDir2.$sFileName ) )
$oFoto->createCustomThumb( DIR_FILES.$sFileName, $sThumbsDir2, $iSize2, $sFileName, true );
} // end function generateThumbs

/**
* List all files from db
* @return string
* @param string $sFile
* @param int $iLinkType
*/
public function listAllFiles( $sFile, $iLinkType = 1 ){
$aSizes = $GLOBALS['config']['pages_images_sizes'];
$aTypes = $GLOBALS['aPhotoTypes'];
$oFF = FlatFiles::getInstance( );
$oTpl = TplParser::getInstance( );
$oPage = PagesAdmin::getInstance( );
$content = null;

if( isset( $this->aFilesImages[$iLinkType] ) ){
$aSort = Array( );
foreach( $this->aFilesImages[$iLinkType] as $aData ){
$aSort[] = Array( $aData['sFileName'], $aData['iFile'] );
} // end foreach
sort( $aSort );

$iCount = count( $aSort );
for( $i = 0; $i < $iCount; $i++ ){
$aData = $this->aFilesImages[$iLinkType][$aSort[$i][1]];
$aData['iStyle'] = ( $i % 2 ) ? 0: 1;

$aData['sPhotoTypesSelect'] = throwSelectFromArray( $aTypes, $aData['iType'] );
$aData['sLink'] = '<a href="?p=p-form&amp;iPage='.$aData['iPage'].'" target="_blank">'.$oPage->aPages[$aData['iPage']]['sName'].'</a>';

$aData['sPageName'] = $oPage->aPages[$aData['iPage']]['sName'];

if( !empty( $aData['iPhoto'] ) && $aData['iPhoto'] == 1 )
$sBlock = 'ALL_IMAGES_LIST';
else
$sBlock = 'ALL_FILES_LIST';

$oTpl->setVariables( 'aData', $aData );
$content .= $oTpl->tbHtml( $sFile, $sBlock );
} // end for
}

if( isset( $content ) )
return $oTpl->tbHtml( $sFile, 'ALL_HEAD' ).$content.$oTpl->tbHtml( $sFile, 'ALL_FOOT' );
} // end function listAllFiles

/**
* Save all files data
* @return void
* @param array $aForm
* @param int $iLinkType
*/
public function saveAllFiles( $aForm, $iLinkType = 1 ){
if( isset( $aForm['aFilesDescription'] ) && is_array( $aForm['aFilesDescription'] ) ){

if( isset( $aForm['aFilesDelete'] ) )
$this->deleteSelectedFiles( $aForm['aFilesDelete'], $iLinkType );
foreach( $this->aFilesImages[$iLinkType] as $aData ){
if( !isset( $aForm['aFilesDelete'][$aData['iFile']] ) ){
$aForm['aFilesDescription'][$aData['iFile']] = changeTxt( trim( $aForm['aFilesDescription'][$aData['iFile']] ), '' );

if( isset( $aForm['aFilesDescription'][$aData['iFile']] ) && $aForm['aFilesDescription'][$aData['iFile']] != $aData['sDescription'] ){
$aChange[$aData['iFile']]['sDescription'] = $aForm['aFilesDescription'][$aData['iFile']];
}

if( $aForm['aFilesPositions'][$aData['iFile']] != $aData['iPosition'] ){
$aChange[$aData['iFile']]['iPosition'] = $aForm['aFilesPositions'][$aData['iFile']];
}

if( isset( $aForm['aFilesTypes'][$aData['iFile']] ) && $aForm['aFilesTypes'][$aData['iFile']] != $aData['iType'] ){
$aChange[$aData['iFile']]['iType'] = $aForm['aFilesTypes'][$aData['iFile']];
}
}
} // end foreach

if( isset( $aChange ) ){
$oFF = FlatFiles::getInstance( );
$iCount = count( $aChange );
$i = 1;
$sFile = $this->throwDbNames( $iLinkType );

foreach( $aChange as $iFile => $aData ){
$aSave = array_merge( $this->aFilesImages[$iLinkType][$iFile], $aData );

if( $i == $iCount )
$oFF->save( $sFile, $aSave, 'iFile', 'sort' );
else
$oFF->save( $sFile, $aSave, 'iFile' );
$i++;
} // end foreach
}
}
} // end function saveAllFiles
};
?>

Do góry
o nas | kontakt