_checkFtpConfig(); } catch (Exception $e) { $configError = $e->getMessage(); } ?>

Synchronizcja plików na stronę www.biall.net.pl z projektów

Synchronizcja plików na stronę www.biall.net.pl z projektów:

syncToWwwSite(); ?>
0) { // $sql_where_and[] = "p.`ID`='".$projekt_id."'"; //} $db = DB::getDB(); $sql_select = implode(", ", $sql_select); $sql_where = implode("\n and ", $sql_where_and); $sql = "select $sql_select from `IN7_MK_BAZA_DYSTRYBUCJI` as p where {$sql_where} "; $projekty = array(); $res = $db->query($sql); while ($r = $db->fetch($res)) { $projekty[$r->ID] = $r; } foreach ($projekty as $idProject => $r) { $files = $this->_findProjectFiles($r->ID); if (in_array($r->M_DIST_TYPE, array('WWW_AKTUALNOSCI', 'WWW_AKTUALNOSCI_TV'))) { $filesToAdd = $this->_findProjectFiles($r->ID, 'ZDJECIE', array('jpg','png','gif')); foreach ($filesToAdd as $f) { $tmp_folder_path = $sync_projekty_tmp_folder.'/'.$r->ID; if (!is_dir($tmp_folder_path)) { mkdir($tmp_folder_path); } Lib::loadClass('DB_Image'); $img_ext = explode('.', $f['name']); $img_ext = end($img_ext); $imBlob = null; $imType = null; if ('jpg' == $img_ext) $imType = "image/jpeg"; else if ('png' == $img_ext) $imType = "image/png"; else if ('gif' == $img_ext) $imType = "image/gif"; if ($imType) { $imBlob = DB_Image::readImageBlobFromFile($f['path'], $imType); } if (!$imBlob) { continue; } $sizes_all = array(array('700', '700'), array('150', '120')); foreach ($sizes_all as $sizes) { $tmp_name = substr($f['name'], 0, -4).'.'.$sizes[0].'x'.$sizes[1].'.'.$img_ext; $tmp_path = $tmp_folder_path.'/'.$tmp_name; $files[] = array('name'=>$tmp_name, 'path'=>$tmp_path); $imResizedBlob = DB_Image::resizeImageFromBlob($imBlob, $imType, $sizes[0], $sizes[1]); DB_Image::writeImageBlobToFile($imResizedBlob, $imType, $tmp_path); } } } else if (in_array($r->M_DIST_TYPE, array('TV__UMOWA ZAKUPU KANALU'))) { $filesToAdd = $this->_findProjectFiles($r->ID, 'ZDJECIE', array('jpg','png','gif')); foreach ($filesToAdd as $f) { $tmp_folder_path = $sync_projekty_tmp_folder.'/'.$r->ID; if (!is_dir($tmp_folder_path)) { mkdir($tmp_folder_path); } Lib::loadClass('DB_Image'); $img_ext = explode('.', $f['name']); $img_ext = end($img_ext); $imBlob = null; $imType = null; if ('jpg' == $img_ext) $imType = "image/jpeg"; else if ('png' == $img_ext) $imType = "image/png"; else if ('gif' == $img_ext) $imType = "image/gif"; if ($imType) { $imBlob = DB_Image::readImageBlobFromFile($f['path'], $imType); } if (!$imBlob) { continue; } $sizes_all = array(array('90', '78')); foreach ($sizes_all as $sizes) { $tmp_name = substr($f['name'], 0, -4).'.'.$sizes[0].'x'.$sizes[1].'.'.$img_ext; $tmp_path = $tmp_folder_path.'/'.$tmp_name; $files[] = array('name'=>$tmp_name, 'path'=>$tmp_path); $imResizedBlob = DB_Image::resizeImageFromBlob($imBlob, $imType, $sizes[0], $sizes[1]); DB_Image::writeImageBlobToFile($imResizedBlob, $imType, $tmp_path); } } } echo "[{$idProject}]:\n"; $this->_sendProjectFiles($idProject, $files); echo "\n"; } } private function _findProjectFiles($project_id, $type = '', $suffix = 'pdf') { global $FOLDERS; $ret = array(); //global $FOLDERS; // @see .config:$FOLDERS[IN7_MK_BAZA_DYSTRYBUCJI_COLUMN]="/home/samba/PROJEKTY"; $dir_projekty = $FOLDERS['IN7_MK_BAZA_DYSTRYBUCJI_COLUMN']; //$www_projekty = "PROJEKTY/"; $pattern = $dir_projekty.'/'.$project_id.'.*'; $path_projekt = glob( $pattern , GLOB_ONLYDIR);// array glob(pattern [, flags]) if (empty($path_projekt)) { return $ret; } $path_projekt = reset($path_projekt); $dir_projekt = explode('/', $path_projekt); $dir_projekt = end($dir_projekt); if (is_array($suffix)) { $files_projekt_add = array(); foreach ($suffix as $add_suffix) { $files_oferty_pattern = $path_projekt.'/*.'.$add_suffix; if ($type) $files_oferty_pattern = $path_projekt.'/*.'.$type.'.*.'.$add_suffix; $files_projekt_add = glob( $files_oferty_pattern);// array glob(pattern [, flags]) foreach ($files_projekt_add as $f) { $files_projekt[] = $f; } } } else { $files_oferty_pattern = $path_projekt.'/*.'.$suffix; if ($type) $files_oferty_pattern = $path_projekt.'/*.'.$type.'.*.'.$suffix; $files_projekt = glob( $files_oferty_pattern);// array glob(pattern [, flags]) } if (empty($files_projekt)) { return $ret; } foreach ($files_projekt as $v) { $f_name = explode('/', $v); $f_name = end($f_name); // TODO: f_www link do akryptu zmieniajacego nazwe pliku na nazwe projektu //$f_www = 'http://'.$host.'/'.$www_projekty.'/'.$dir_projekt.'/'.$f_name; //$f_www = 'http://'.$host.'/index.php?action=project_file&project='.$project_id.'&f='.$f_name; $f_www = ''; $ret[] = array('name'=>$f_name, 'path'=>$v, 'www'=>$f_www); } return $ret; } private function _sendProjectFiles($idProject, $files) { if (function_exists('ftp_connect')) { $ftp_conn = $this->_ftpAuth(); $filesOnSite = ftp_nlist($ftp_conn, "public_html/PROJEKTY/{$idProject}/"); echo "[{$idProject}]\tPliki na www public_html/PROJEKTY/{$idProject}/: "; if (empty($filesOnSite)) { echo "brak\n"; } else { echo implode("\n\t\t - ", $filesOnSite) . "\n"; } $filesToRemove = array(); if (!empty($filesOnSite)) { foreach ($filesOnSite as $remotePath) { $remoteName = explode('/', $remotePath); $remoteName = end($remoteName); $toRemove = true; foreach ($files as $f) { if ($f['name'] == $remoteName) { $toRemove = false; } } if ($toRemove) { $filesToRemove[] = $remotePath; } } } echo "[{$idProject}]\tPliki do usunięcia: "; if (empty($filesToRemove)) { echo "brak\n"; } else { echo implode("\n\t\t - ", $filesToRemove) . "\n"; } foreach ($filesToRemove as $remotePath) { $remoteName = explode('/', $remotePath); $remoteName = end($remoteName); echo "[{$idProject}]\t\t"; if (ftp_delete($ftp_conn, $remotePath)) { echo "Usunięto plik {$remoteName}\n"; } else { echo "Error: Could not delete {$remoteName}\n"; } } if (!empty($files)) { $remoteDir = "public_html/PROJEKTY/{$idProject}/"; if (@ftp_mkdir($ftp_conn, $remoteDir)) { echo "[{$idProject}]\t\tUtworzono katalog: '{$remoteDir}'\n"; } else { //echo "There was a problem while creating $dir\n"; } foreach ($files as $f) { $remotePath = "public_html/PROJEKTY/{$idProject}/{$f['name']}"; echo "[{$idProject}]\t\t"; if (ftp_put($ftp_conn, $remotePath, $f['path'], FTP_BINARY)) { echo "Wgrano plik {$f['name']}\n"; } else { echo "Error: There was a problem while uploading {$f['name']}\n"; } } } ftp_close($ftp_conn); } else { foreach ($files as $f) { // string exec ( string $command [, array &$output [, int &$return_var ]] ) //$sync_project_file_command = 'sync-projekty-files-to-www.sh'; /* #!/bin/bash if [ -z "$1" ]; then echo usage: $0 project_id file exit 1 fi if [ -z "$2" ]; then echo usage: $0 project_id file exit 1 fi #dest_path="public_html/PROJEKTY/$1/" dest_path="public_html/PROJEKTY/$1/"`basename $2` USER="biallnet" PASSWD="***" ftp -v -n www.biall.net.pl <