diff options
Diffstat (limited to '')
-rw-r--r-- | admin/thumbnail.php | 348 |
1 files changed, 158 insertions, 190 deletions
diff --git a/admin/thumbnail.php b/admin/thumbnail.php index e77420ea3..21e549396 100644 --- a/admin/thumbnail.php +++ b/admin/thumbnail.php @@ -24,7 +24,7 @@ // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | // | USA. | // +-----------------------------------------------------------------------+ -include_once( './admin/include/isadmin.inc.php' ); +include_once( PHPWG_ROOT_PATH.'admin/include/isadmin.inc.php' ); //------------------------------------------------------------------- functions // get_subdirs returns an array containing all sub directory names, // excepting : '.', '..' and 'thumbnail'. @@ -211,228 +211,196 @@ function RatioResizeImg( $filename, $newWidth, $newHeight, $path, $tn_ext ) } } -// array_max returns the highest value of the given array -function array_max( $array ) -{ - sort( $array, SORT_NUMERIC ); - return array_pop( $array ); -} - -// array_min returns the lowest value of the given array -function array_min( $array ) -{ - sort( $array, SORT_NUMERIC ); - return array_shift( $array ); -} - -// array_avg returns the average value of the array -function array_avg( $array ) -{ - return array_sum( $array ) / sizeof( $array ); -} - // get_displayed_dirs builds the tree of dirs under "galleries". If a // directory contains pictures without thumbnails, the become linked to the // page of thumbnails creation. function get_displayed_dirs( $dir, $indent ) { - global $conf,$lang,$vtp,$sub; + global $lang; $sub_dirs = get_subdirs( $dir ); + $output = ''; + if (!empty($sub_dirs)) + { + $output.='<ul class="menu">'; // write of the dirs foreach ( $sub_dirs as $sub_dir ) { + $output.='<li>'; $pictures = get_images_without_thumbnail( $dir.'/'.$sub_dir ); - $vtp->addSession( $sub, 'dir' ); - $vtp->setVar( $sub, 'dir.indent', $indent ); if ( count( $pictures ) > 0 ) { - $vtp->addSession( $sub, 'linked' ); - $url = './admin.php?page=thumbnail&dir='.$dir."/".$sub_dir; - $vtp->setVar( $sub, 'linked.url', add_session_id( $url ) ); - $vtp->setVar( $sub, 'linked.name', $sub_dir ); - $vtp->setVar( $sub, 'linked.nb_pic', count( $pictures ) ); - $vtp->closeSession( $sub, 'linked' ); + $url = add_session_id(PHPWG_ROOT_PATH.'admin.php?page=thumbnail&dir='.$dir.'/'.$sub_dir); + $output.='<a class="adminMenu" href="'.$url.'">'.$sub_dir.'</a> [ '.count( $pictures ).' '; + $output.=$lang['thumbnail'].' ]'; } else { - $vtp->addSession( $sub, 'unlinked' ); - $vtp->setVar( $sub, 'unlinked.name', $sub_dir ); - $vtp->closeSession( $sub, 'unlinked' ); + $output.=$sub_dir; } - $vtp->closeSession( $sub, 'dir' ); // recursive call - get_displayed_dirs( $dir.'/'.$sub_dir, - $indent+30 ); + $output.=get_displayed_dirs( $dir.'/'.$sub_dir, + $indent+30 ); + $output.='</li>'; + } + $output.='</ul>'; } + return $output; } + +$errors = array(); +$pictures = array(); +$stats = array(); + +if ( isset( $_GET['dir'] ) && isset( $_POST['submit'] )) +{ + $pictures = get_images_without_thumbnail( $_GET['dir'] ); + // checking criteria + if ( !ereg( "^[0-9]{2,3}$", $_POST['width'] ) or $_POST['width'] < 10 ) + { + array_push( $errors, $lang['tn_err_width'].' 10' ); + } + if ( !ereg( "^[0-9]{2,3}$", $_POST['height'] ) or $_POST['height'] < 10 ) + { + array_push( $errors, $lang['tn_err_height'].' 10' ); + } + + // picture miniaturization + if ( count( $errors ) == 0 ) + { + $stats = scandir( $_GET['dir'], $_POST['width'], $_POST['height'] ); + } +} + //----------------------------------------------------- template initialization -$sub = $vtp->Open( './template/'.$user['template'].'/admin/thumbnail.vtp' ); -$tpl = array( - 'tn_dirs_title','tn_dirs_alone','tn_params_title','tn_params_GD', - 'tn_params_GD_info','tn_width','tn_params_width_info','tn_height', - 'tn_params_height_info','tn_params_create','tn_params_create_info', - 'tn_params_format','tn_params_format_info','submit','tn_alone_title', - 'filesize','tn_picture','tn_results_title','thumbnail', - 'tn_results_gen_time','tn_stats','tn_stats_nb','tn_stats_total', - 'tn_stats_max','tn_stats_min','tn_stats_mean' ); -templatize_array( $tpl, 'lang', $sub ); -$vtp->setGlobalVar( $sub, 'user_template', $user['template'] ); +$template->set_filenames( array('thumbnail'=>'admin/thumbnail.tpl') ); + +$template->assign_vars(array( + 'L_THUMBNAIL_TITLE'=>$lang['tn_dirs_title'], + 'L_UNLINK'=>$lang['tn_dirs_alone'], + 'L_RESULTS'=>$lang['tn_results_title'], + 'L_TN_PICTURE'=>$lang['tn_picture'], + 'L_FILESIZE'=>$lang['filesize'], + 'L_WIDTH'=>$lang['tn_width'], + 'L_HEIGHT'=>$lang['tn_height'], + 'L_GENERATED'=>$lang['tn_results_gen_time'], + 'L_THUMBNAIL'=>$lang['thumbnail'], + 'L_PARAMS'=>$lang['tn_params_title'], + 'L_GD'=>$lang['tn_params_GD'], + 'L_GD_INFO'=>$lang['tn_params_GD_info'], + 'L_WIDTH_INFO'=>$lang['tn_params_width_info'], + 'L_HEIGHT_INFO'=>$lang['tn_params_height_info'], + 'L_CREATE'=>$lang['tn_params_create'], + 'L_CREATE_INFO'=>$lang['tn_params_create_info'], + 'L_FORMAT'=>$lang['tn_params_format'], + 'L_FORMAT_INFO'=>$lang['tn_params_format_info'], + 'L_SUBMIT'=>$lang['submit'], + 'L_REMAINING'=>$lang['tn_alone_title'], + 'L_TN_STATS'=>$lang['tn_stats'], + 'L_TN_NB_STATS'=>$lang['tn_stats_nb'], + 'L_TN_TOTAL'=>$lang['tn_stats_total'], + 'L_TN_MAX'=>$lang['tn_stats_max'], + 'L_TN_MIN'=>$lang['tn_stats_min'], + 'L_TN_AVERAGE'=>$lang['tn_stats_mean'], + + 'T_STYLE'=>$user['template'] + )); + //----------------------------------------------------- miniaturization results -if ( isset( $_GET['dir'] ) ) +if ( sizeof( $errors ) != 0 ) { - $pictures = get_images_without_thumbnail( $_GET['dir'] ); - if ( count( $pictures ) == 0 ) + $template->assign_block_vars('errors',array()); + for ( $i = 0; $i < sizeof( $errors ); $i++ ) { - $vtp->addSession( $sub, 'warning' ); - $vtp->closeSession( $sub, 'warning' ); + $template->assign_block_vars('errors.error',array('ERROR'=>$errors[$i])); } - elseif ( isset( $_POST['submit'] ) ) +} +else if ( isset( $_GET['dir'] ) && isset( $_POST['submit'] ) && !empty($stats)) +{ + $times = array(); + foreach ( $stats as $stat ) { + array_push( $times, $stat['time'] ); + } + $sum=array_sum( $times ); + $average = $sum/sizeof($times); + sort( $times, SORT_NUMERIC ); + $max = array_pop($times); + $min = array_shift( $times); + + $template->assign_block_vars('results',array( + 'TN_NB'=>count( $stats ), + 'TN_TOTAL'=>number_format( $sum, 2, '.', ' ').' ms', + 'TN_MAX'=>number_format( $max, 2, '.', ' ').' ms', + 'TN_MIN'=>number_format( $min, 2, '.', ' ').' ms', + 'TN_AVERAGE'=>number_format( $average, 2, '.', ' ').' ms' + )); + if ( !count( $pictures ) ) { - // checking criteria - $errors = array(); - if ( !ereg( "^[0-9]{2,3}$", $_POST['width'] ) or $_POST['width'] < 10 ) - { - array_push( $errors, $lang['tn_err_width'].' 10' ); - } - if ( !ereg( "^[0-9]{2,3}$", $_POST['height'] ) or $_POST['height'] < 10 ) - { - array_push( $errors, $lang['tn_err_height'].' 10' ); - } - // picture miniaturization - if ( count( $errors ) == 0 ) - { - $vtp->addSession( $sub, 'results' ); - $stats = scandir( $_GET['dir'], $_POST['width'], $_POST['height'] ); - $times = array(); - foreach ( $stats as $stat ) { - array_push( $times, $stat['time'] ); - } - $max = array_max( $times ); - $min = array_min( $times ); - foreach ( $stats as $i => $stat ) { - $vtp->addSession( $sub, 'picture' ); - if ( $i % 2 == 1 ) - { - $vtp->setVar( $sub, 'picture.class', 'row2' ); - } - $vtp->setVar( $sub, 'picture.num', ($i+1) ); - $vtp->setVar( $sub, 'picture.file', $stat['file'] ); - $vtp->setVar( $sub, 'picture.filesize', $stat['size'] ); - $vtp->setVar( $sub, 'picture.width', $stat['width'] ); - $vtp->setVar( $sub, 'picture.height', $stat['height'] ); - $vtp->setVar( $sub, 'picture.thumb_file', $stat['tn_file'] ); - $vtp->setVar( $sub, 'picture.thumb_filesize', $stat['tn_size'] ); - $vtp->setVar( $sub, 'picture.thumb_width', $stat['tn_width'] ); - $vtp->setVar( $sub, 'picture.thumb_height', $stat['tn_height'] ); - $vtp->setVar( $sub, 'picture.time', - number_format( $stat['time'], 2, '.', ' ').' ms' ); - if ( $stat['time'] == $max ) - { - $vtp->setVar( $sub, 'picture.color', 'red' ); - } - else if ( $stat['time'] == $min ) - { - $vtp->setVar( $sub, 'picture.color', 'green' ); - } - $vtp->closeSession( $sub, 'picture' ); - } - // general statistics - $vtp->setVar( $sub, 'results.stats_nb', count( $stats ) ); - $vtp->setVar( $sub, 'results.stats_total', - number_format( array_sum( $times ), 2, '.', ' ').' ms' ); - $vtp->setVar( $sub, 'results.stats_max', - number_format( $max, 2, '.', ' ').' ms' ); - $vtp->setVar( $sub, 'results.stats_min', - number_format( $min, 2, '.', ' ').' ms' ); - $vtp->setVar( $sub, 'results.stats_mean', - number_format( array_avg( $times ), 2, '.', ' ').' ms' ); - $vtp->closeSession( $sub, 'results' ); - } - else - { - $vtp->addSession( $sub, 'errors' ); - foreach ( $errors as $error ) { - $vtp->addSession( $sub, 'li' ); - $vtp->setVar( $sub, 'li.li', $error ); - $vtp->closeSession( $sub, 'li' ); - } - $vtp->closeSession( $sub, 'errors' ); - } + $template->assign_block_vars('warning',array()); } -//-------------------------------------------------- miniaturization parameters - if ( sizeof( $pictures ) != 0 ) + + foreach ( $stats as $i => $stat ) { - $vtp->addSession( $sub, 'params' ); - $url = './admin.php?page=thumbnail&dir='.$_GET['dir']; - $vtp->setVar( $sub, 'params.action', add_session_id( $url ) ); - // GD version selected... - if ( isset( $_POST['gd'] ) and $_POST['gd'] == 1 ) - { - $vtp->setVar( $sub, 'params.gd1_checked', ' checked="checked"' ); - } - else - { - $vtp->setVar( $sub, 'params.gd2_checked', ' checked="checked"' ); - } - // width values - if ( isset( $_POST['width'] ) ) - { - $vtp->setVar( $sub, 'params.width_value', $_POST['width'] ); - } - else - { - $vtp->setVar( $sub, 'params.width_value', '128' ); - } - // height value - if ( isset( $_POST['height'] ) ) - { - $vtp->setVar( $sub, 'params.height_value', $_POST['height'] ); - } - else - { - $vtp->setVar( $sub, 'params.height_value', '96' ); - } - // options for the number of picture to miniaturize : "n" - $options = array( 5,10,20,40 ); - if ( isset( $_POST['n'] ) ) $n = $_POST['n']; - else $n = 5; - foreach ( $options as $option ) { - $vtp->addSession( $sub, 'n_option' ); - $vtp->setVar( $sub, 'n_option.option', $option ); - if ( $option == $n ) - { - $vtp->setVar( $sub, 'n_option.selected', ' selected="selected"' ); - } - $vtp->closeSession( $sub, 'n_option' ); + $class = ($i % 2)? 'row1':'row2'; + $color=''; + if ($stat['time']==$max) $color = 'red'; + elseif ($stat['time']==$min) $color = '#33FF00'; + $template->assign_block_vars('results.picture',array( + 'NB_IMG'=>($i+1), + 'FILE_IMG'=>$stat['file'], + 'FILESIZE_IMG'=>$stat['size'], + 'WIDTH_IMG'=>$stat['width'], + 'HEIGHT_IMG'=>$stat['height'], + 'TN_FILE_IMG'=>$stat['tn_file'], + 'TN_FILESIZE_IMG'=>$stat['tn_size'], + 'TN_WIDTH_IMG'=>$stat['tn_width'], + 'TN_HEIGHT_IMG'=>$stat['tn_height'], + 'GEN_TIME'=>number_format( $stat['time'], 2, '.', ' ').' ms', + + 'T_COLOR'=>$color, + 'T_CLASS'=>$class + )); } - $vtp->closeSession( $sub, 'params' ); + } +//-------------------------------------------------- miniaturization parameters +if ( isset( $_GET['dir'] ) && !sizeof( $pictures )) +{ + $form_url = PHPWG_ROOT_PATH.'admin.php?page=thumbnail&dir='.$_GET['dir']; + $gd = !empty( $_POST['gd'] )?$_POST['gd']:2; + $width = !empty( $_POST['width'] )?$_POST['width']:128; + $height = !empty( $_POST['height'] )?$_POST['height']:96; + $gdlabel = 'GD'.$gd.'_CHECKED'; + + $template->assign_block_vars('params',array( + 'F_ACTION'=>add_session_id($form_url), + $gdlabel=>'checked="checked"', + 'WIDTH_TN'=>$width, + 'HEIGHT_TN'=>$height + )); + //---------------------------------------------------------- remaining pictures - $vtp->addSession( $sub, 'remainings' ); - $pictures = get_images_without_thumbnail( $_GET['dir'] ); - $vtp->setVar( $sub, 'remainings.total', count( $pictures ) ); - foreach ( $pictures as $i => $picture ) { - $vtp->addSession( $sub, 'remaining' ); - if ( $i % 2 == 1 ) - { - $vtp->setVar( $sub, 'remaining.class', 'row2' ); - } - $vtp->setVar( $sub, 'remaining.num', ($i+1) ); - $vtp->setVar( $sub, 'remaining.file', $picture['name'] ); - $vtp->setVar( $sub, 'remaining.filesize', $picture['size'] ); - $vtp->setVar( $sub, 'remaining.width', $picture['width'] ); - $vtp->setVar( $sub, 'remaining.height', $picture['height'] ); - $vtp->closeSession( $sub, 'remaining' ); + $pictures = get_images_without_thumbnail( $_GET['dir'] ); + $template->assign_block_vars('remainings',array('TOTAL_IMG'=>count( $pictures ))); + + foreach ( $pictures as $i => $picture ) + { + $class = ($i % 2)? 'row1':'row2'; + $template->assign_block_vars('remainings.remaining',array( + 'NB_IMG'=>($i+1), + 'FILE_TN'=>$picture['name'], + 'FILESIZE_IMG'=>$picture['size'], + 'WIDTH_IMG'=>$picture['width'], + 'HEIGHT_IMG'=>$picture['height'], + + 'T_CLASS'=>$class + )); } - $vtp->closeSession( $sub, 'remainings' ); - } } //-------------------------------------------------------------- directory list else { - $vtp->addSession( $sub, 'directory_list' ); - get_displayed_dirs( './galleries', 60 ); - $vtp->closeSession( $sub, 'directory_list' ); + $categories = get_displayed_dirs( './galleries', 60 ); + $template->assign_block_vars('directory_list',array('CATEGORY_LIST'=>$categories)); } -//----------------------------------------------------------- sending html code -$vtp->Parse( $handle , 'sub', $sub ); + +$template->assign_var_from_handle('ADMIN_CONTENT', 'thumbnail'); ?> |