= 5.1.0 required by date functions if (file_exists(".config.php")) include(".config.php"); SEF('DEBUG_S'); require_once dirname(__FILE__) . '/' . 'se-lib' . '/' . 'Lib.php'; Lib::loadClass('V'); Lib::loadClass('User'); Lib::loadClass('Config'); Lib::loadClass('App'); Lib::loadClass('DB'); Lib::loadClass('S'); // DBG: ini_set('error_reporting', E_ALL ^ E_NOTICE); //ini_set('error_reporting', E_ALL); error_reporting(E_ALL ^ E_NOTICE); //error_reporting(E_ALL); ini_set('display_errors', TRUE); $sync_project_file_command = '/home/plabudda/sync-projekty-files-to-www.sh'; $sync_projekty_tmp_folder = '/home/plabudda/sync-projekty-files-to-www'; {// fetch active projects $sql_select = array(); $sql_where_and = array(); $sql_select []= "p.`ID`"; $sql_select []= "p.`M_DIST_TYPE`"; $sql_select []= "p.`M_DIST_DESC`"; //$sql_select []= "p.``"; $sql_project_types = array(); $sql_project_types []= "'WWW_PRACA'"; $sql_project_types []= "'WWW_DOKUMENTY'"; $sql_project_types []= "'WWW_AKTUALNOSCI'"; $sql_project_types []= "'WWW_AKTUALNOSCI_TV'"; $sql_where_and []= "p.`M_DIST_TYPE` in (".implode(",", $sql_project_types).")"; $sql_where_and []= "p.`A_STATUS` in ('NORMAL','WAITING')"; $projekt_id = V::get('projekt_id', 0, $_REQUEST, 'int'); if ($projekt_id > 0) { $sql_where_and []= "p.`ID`='".$projekt_id."'"; } $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; } if ($projekt_id > 0) { if (!array_key_exists($projekt_id, $projekty)) { die('Error: Projekt nie istnieje lub nie ma statusu WAITING lub NORMAL.'); } $r =& $projekty[$projekt_id]; $files = PROJEKT__find_folder( $r->ID ); if (in_array($r->M_DIST_TYPE, array('WWW_AKTUALNOSCI', 'WWW_AKTUALNOSCI_TV'))) { $files_add = PROJEKT__find_folder( $r->ID, 'ZDJECIE', array('jpg','png','gif') ); // TODO: create image files - convert to specified format: 700x700, 150x120 // name, path, www //echo'
files_add: ';print_r($files_add);echo''; foreach ($files_add 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 = end( explode('.', $f['name']) ); if ($img_ext == 'jpg') $im = imagecreatefromjpeg($f['path']); else if ($img_ext == 'png') $im = imagecreatefrompng($f['path']); else if ($img_ext == 'gif') $im = imagecreatefromgif($f['path']); $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); $im = DB_Image::resize_image_from_data($im, $sizes[0], $sizes[1]); if ($img_ext == 'jpg') imagejpeg($im, $tmp_path); else if ($img_ext == 'png') imagepng($im, $tmp_path); else if ($img_ext == 'gif') imagegif($im, $tmp_path); }//end foreach }//end foreach } if (empty($files)) { die('Error: Nie odnaleziono plikow Projektu.'); } foreach ($files as $f) { echo "file:".$f['name']." "; // string exec ( string $command [, array &$output [, int &$return_var ]] ) $cmd = $sync_project_file_command." ".$r->ID." ".$f['path']; $output = array(); $ret_val = 0; exec($cmd, $output, $ret_val); $completed = false; if ($ret_val == 0) { foreach ($output as $out_line) { if (strpos($out_line, 'Transfer complete') !== false) { $completed = true; } }//end foreach } if ($completed) { echo "Plik skopiowano.\n"; } else { echo "Error: prawdopodobnie nie udalo sie skopiowac pliku.\n"; foreach ($output as $out_line) { echo $out_line."\n"; }//end foreach } }//end foreach } else { echo'
'."projekty:\n";
//print_r($projekty);
foreach ($projekty as $k_id => $r) {
echo " projekt ".$r->ID.":\n";
if (in_array($r->M_DIST_TYPE, array('WWW_AKTUALNOSCI', 'WWW_AKTUALNOSCI_TV'))) {
$files = PROJEKT__find_folder( $r->ID, 'ZDJECIE', 'jpg' );
foreach ($files as $f) {
echo " file: ".$f['path']."\n";
}//end foreach
}
$files = PROJEKT__find_folder( $r->ID, $r->M_DIST_TYPE );
foreach ($files as $f) {
echo " file: ".$f['path']."\n";
}//end foreach
}//end foreach
echo'';
}
}// fetch active projects
// TODO: @sowa: Call to undefined function ftp_connect()
if(0){// fetch current file list on www
$ftp_server = 'www.biall.net.pl';
$ftp_user = 'biallnet';
$ftp_pass = '100noga';
$ftp_conn = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
if (ftp_login($ftp_conn, $ftp_user, $ftp_pass)) {
ftp_chdir($ftp_conn, 'public_html/PROJEKTY');
}
$list = ftp_nlist($ftp_conn, 'public_html/PROJEKTY');
echo'';
echo "Pliki na www:\n";
if (empty($list)) {
echo'brak plikow';
} else {
foreach ($list as $f) {
echo 'file: '.$f."\n";
}//end foreach
}
echo'';
}// fetch current file list on www
function PROJEKT__find_folder( $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/";
echo'IN7_MK_BAZA_DYSTRYBUCJI_COLUMN (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($FOLDERS['IN7_MK_BAZA_DYSTRYBUCJI_COLUMN']);echo'';
$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 = end( explode('/', $path_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;
}//end foreach
}//end foreach
} 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])
}
foreach ($files_projekt as $v) {
$f_name = end( explode('/', $v) );
// 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);
}//end foreach
return $ret;
}