aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/thumbnail.php234
-rw-r--r--admin/update.php8
-rw-r--r--template/default/admin/thumbnail.tpl9
3 files changed, 144 insertions, 107 deletions
diff --git a/admin/thumbnail.php b/admin/thumbnail.php
index 657aff9c4..913f0484d 100644
--- a/admin/thumbnail.php
+++ b/admin/thumbnail.php
@@ -215,42 +215,6 @@ function RatioResizeImg( $filename, $newWidth, $newHeight, $path, $tn_ext )
}
}
-// 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 $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 );
- if ( count( $pictures ) > 0 )
- {
- $url = add_session_id(PHPWG_ROOT_PATH.'admin.php?page=thumbnail&amp;dir='.$dir.'/'.$sub_dir);
- $output.='<a class="adminMenu" href="'.$url.'">'.$sub_dir.'</a> [ '.count( $pictures ).' ';
- $output.=$lang['thumbnail'].' ]';
- }
- else
- {
- $output.=$sub_dir;
- }
- // recursive call
- $output.=get_displayed_dirs( $dir.'/'.$sub_dir,
- $indent+30 );
- $output.='</li>';
- }
- $output.='</ul>';
- }
- return $output;
-}
-
$errors = array();
$pictures = array();
$stats = array();
@@ -281,6 +245,7 @@ $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_MISSING_THUMBNAILS'=>$lang['tn_dirs_alone'],
'L_RESULTS'=>$lang['tn_results_title'],
'L_TN_PICTURE'=>$lang['tn_picture'],
'L_FILESIZE'=>$lang['filesize'],
@@ -318,11 +283,12 @@ if ( sizeof( $errors ) != 0 )
$template->assign_block_vars('errors.error',array('ERROR'=>$errors[$i]));
}
}
-else if ( isset( $_GET['dir'] ) && isset( $_POST['submit'] ) && !empty($stats))
+else if (isset($_GET['dir']) and isset($_POST['submit']) and !empty($stats))
{
$times = array();
- foreach ( $stats as $stat ) {
- array_push( $times, $stat['time'] );
+ foreach ($stats as $stat)
+ {
+ array_push( $times, $stat['time'] );
}
$sum=array_sum( $times );
$average = $sum/sizeof($times);
@@ -330,81 +296,159 @@ else if ( isset( $_GET['dir'] ) && isset( $_POST['submit'] ) && !empty($stats))
$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 ) )
+ $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))
{
$template->assign_block_vars('warning',array());
}
-
- foreach ( $stats as $i => $stat )
+
+ foreach ($stats as $i => $stat)
{
- $class = ($i % 2)? 'row1':'row2';
+ $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
- ));
+ if ($stat['time'] == $max)
+ {
+ $color = 'red';
+ }
+ else if ($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
+ ));
}
+}
//-------------------------------------------------- miniaturization parameters
-if ( isset( $_GET['dir'] ) && !sizeof( $pictures ))
+if (isset($_GET['dir']) and !sizeof($pictures))
{
- $form_url = PHPWG_ROOT_PATH.'admin.php?page=thumbnail&amp;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
- ));
-
+ $form_url = PHPWG_ROOT_PATH.'admin.php?page=thumbnail&amp;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
$pictures = get_images_without_thumbnail( $_GET['dir'] );
- $template->assign_block_vars('remainings',array('TOTAL_IMG'=>count( $pictures )));
+ $template->assign_block_vars(
+ 'remainings',
+ array('TOTAL_IMG'=>count($pictures)));
- foreach ( $pictures as $i => $picture )
+ 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'],
+ $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
- ));
- }
+ 'T_CLASS'=>$class
+ ));
+ }
}
//-------------------------------------------------------------- directory list
else
{
- $categories = get_displayed_dirs( './galleries', 60 );
- $template->assign_block_vars('directory_list',array('CATEGORY_LIST'=>$categories));
-}
+ $wo_thumbnails = array();
+
+ // what is the directory to search in ?
+ $query = '
+SELECT galleries_url
+ FROM '.SITES_TABLE.'
+ WHERE id = 1
+;';
+ list($galleries_url) = mysql_fetch_array(pwg_query($query));
+ $basedir = preg_replace('#/*$#', '', $galleries_url);
+
+ $fs = get_fs($basedir);
+ // because isset is one hundred time faster than in_array
+ $fs['thumbnails'] = array_flip($fs['thumbnails']);
+
+ foreach ($fs['elements'] as $path)
+ {
+ // only pictures need thumbnails
+ if (in_array(get_extension($path), $conf['picture_ext']))
+ {
+ $dirname = dirname($path);
+ $filename = basename($path);
+ // searching the element
+ $filename_wo_ext = get_filename_wo_extension($filename);
+ $tn_ext = '';
+ $base_test = $dirname.'/thumbnail/';
+ $base_test.= $conf['prefix_thumbnail'].$filename_wo_ext.'.';
+ foreach ($conf['picture_ext'] as $ext)
+ {
+ if (isset($fs['thumbnails'][$base_test.$ext]))
+ {
+ $tn_ext = $ext;
+ break;
+ }
+ }
+
+ if (empty($tn_ext))
+ {
+ if (!isset($wo_thumbnails[$dirname]))
+ {
+ $wo_thumbnails[$dirname] = 1;
+ }
+ else
+ {
+ $wo_thumbnails[$dirname]++;
+ }
+ }
+ }
+ }
+ if (count($wo_thumbnails) > 0)
+ {
+ $template->assign_block_vars('directory_list', array());
+ foreach ($wo_thumbnails as $directory => $nb_missing)
+ {
+ $url = PHPWG_ROOT_PATH.'admin.php?page=thumbnail&amp;dir='.$directory;
+
+ $template->assign_block_vars(
+ 'directory_list.directory',
+ array(
+ 'DIRECTORY'=>$directory,
+ 'URL'=>add_session_id($url),
+ 'NB_MISSING'=>$nb_missing));
+ }
+ }
+}
$template->assign_var_from_handle('ADMIN_CONTENT', 'thumbnail');
?>
diff --git a/admin/update.php b/admin/update.php
index fa622498a..00e37e455 100644
--- a/admin/update.php
+++ b/admin/update.php
@@ -341,10 +341,6 @@ SELECT IF(MAX(id)+1 IS NULL, 1, MAX(id)+1) AS next_element_id
$tn_ext = $ext;
break;
}
- else
- {
- continue;
- }
}
// 2 cases : the element is a picture or not. Indeed, for a picture
@@ -387,10 +383,6 @@ SELECT IF(MAX(id)+1 IS NULL, 1, MAX(id)+1) AS next_element_id
$representative_ext = $ext;
break;
}
- else
- {
- continue;
- }
}
$insert{'id'} = $next_element_id++;
diff --git a/template/default/admin/thumbnail.tpl b/template/default/admin/thumbnail.tpl
index 9c16d58bd..f03ae1748 100644
--- a/template/default/admin/thumbnail.tpl
+++ b/template/default/admin/thumbnail.tpl
@@ -1,8 +1,9 @@
<!-- BEGIN directory_list -->
<div class="admin">{L_THUMBNAIL_TITLE}</div>
<ul class="menu">
-<li>galleries</li>
-{directory_list.CATEGORY_LIST}
+ <!-- BEGIN directory -->
+ <li>[<a href="{directory_list.directory.URL}">{directory_list.directory.DIRECTORY}</a>] {directory_list.directory.NB_MISSING} {L_MISSING_THUMBNAILS}</li>
+ <!-- END directory -->
</ul>
<!-- END directory_list -->
<!-- BEGIN warning -->
@@ -44,7 +45,7 @@
<th>
<div style="text-align:right;margin-right:5px;color:{results.picture.T_COLOR};">{results.picture.GEN_TIME}</div>
</th>
- <td>{results.picture.TN_FILE_IMG}</td>
+ <td><img src="{results.picture.TN_FILE_IMG}" /></td>
<td style="text-align:right;">{results.picture.TN_FILESIZE_IMG}</td>
<td style="text-align:right;">{results.picture.TN_WIDTH_IMG}</td>
<td style="text-align:right;">{results.picture.TN_HEIGHT_IMG}</td>
@@ -157,4 +158,4 @@
</tr>
<!-- END remaining -->
</table>
-<!-- END remainings --> \ No newline at end of file
+<!-- END remainings -->