aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--admin/admin.php38
-rw-r--r--admin/configuration.php97
-rw-r--r--admin/historique.php102
-rw-r--r--admin/images/arrow_up.gifbin88 -> 0 bytes
-rw-r--r--admin/images/moins.gifbin867 -> 0 bytes
-rw-r--r--admin/images/plus.gifbin870 -> 0 bytes
-rw-r--r--admin/images/puce.gifbin839 -> 0 bytes
-rw-r--r--admin/include/functions.php7
-rw-r--r--admin/infos_images.php6
-rw-r--r--admin/thumbnail.php678
-rw-r--r--admin/update.php55
-rw-r--r--admin/waiting.php223
12 files changed, 541 insertions, 665 deletions
diff --git a/admin/admin.php b/admin/admin.php
index 3825ca71a..388ce9eb0 100644
--- a/admin/admin.php
+++ b/admin/admin.php
@@ -21,8 +21,8 @@ include_once( './include/isadmin.inc.php' );
$vtp = new VTemplate;
$handle = $vtp->Open( '../template/'.$user['template'].'/admin/admin.vtp' );
// language
-$vtp->setGlobalVar( $handle, 'page_title', $lang['title_default'] );
-$vtp->setGlobalVar( $handle, 'menu_title', $lang['menu_title'] );
+$tpl = array( 'menu_title', 'title_default', 'charset' );
+templatize_array( $tpl, 'lang', $handle );
//--------------------------------------- validating page and creation of title
$page_valide = false;
$title = '';
@@ -75,13 +75,13 @@ switch ( $_GET['page'] )
$page_valide = false;
}
break;
- case 'historique':
+ case 'stats':
$title = $lang['title_history']; $page_valide = true; break;
case 'update':
$title = $lang['title_update']; $page_valide = true; break;
case 'configuration':
$title = $lang['title_configuration']; $page_valide = true; break;
- case 'manuel':
+ case 'help':
$title = $lang['title_instructions']; $page_valide = true; break;
case 'cat_perm':
$title = $lang['title_cat_perm'];
@@ -124,6 +124,10 @@ switch ( $_GET['page'] )
}
$page_valide = true;
break;
+ case 'comments' :
+ $title = $lang['title_comments'];
+ $page_valide = true;
+ break;
default:
$title = $lang['title_default']; break;
}
@@ -177,7 +181,10 @@ $vtp->addSession( $handle, 'summary' );
$vtp->setVar( $handle, 'summary.indent', '' );
$vtp->setVar( $handle, 'summary.link',
add_session_id( $link_start.'waiting' ) );
-$query = 'select id from '.PREFIX_TABLE.'waiting;';
+$query = 'SELECT id';
+$query.= ' FROM '.PREFIX_TABLE.'waiting';
+$query.= " WHERE validated='false'";
+$query.= ';';
$result = mysql_query( $query );
$nb_waiting = '';
if ( mysql_num_rows( $result ) > 0 )
@@ -186,6 +193,23 @@ if ( mysql_num_rows( $result ) > 0 )
}
$vtp->setVar( $handle, 'summary.name', $lang['menu_waiting'].$nb_waiting );
$vtp->closeSession( $handle, 'summary' );
+// comments
+$vtp->addSession( $handle, 'summary' );
+$vtp->setVar( $handle, 'summary.indent', '' );
+$vtp->setVar( $handle, 'summary.link',
+ add_session_id( $link_start.'comments' ) );
+$query = 'SELECT id';
+$query.= ' FROM '.PREFIX_TABLE.'comments';
+$query.= " WHERE validated='false'";
+$query.= ';';
+$result = mysql_query( $query );
+$nb_waiting = '';
+if ( mysql_num_rows( $result ) > 0 )
+{
+ $nb_waiting = ' [ '.mysql_num_rows( $result ).' ]';
+}
+$vtp->setVar( $handle, 'summary.name', $lang['menu_comments'].$nb_waiting );
+$vtp->closeSession( $handle, 'summary' );
// update
$vtp->addSession( $handle, 'summary' );
$vtp->setVar( $handle, 'summary.indent', '' );
@@ -204,14 +228,14 @@ $vtp->closeSession( $handle, 'summary' );
$vtp->addSession( $handle, 'summary' );
$vtp->setVar( $handle, 'summary.indent', '' );
$vtp->setVar( $handle, 'summary.link',
- add_session_id( $link_start.'historique' ) );
+ add_session_id( $link_start.'stats' ) );
$vtp->setVar( $handle, 'summary.name', $lang['menu_history'] );
$vtp->closeSession( $handle, 'summary' );
// instructions
$vtp->addSession( $handle, 'summary' );
$vtp->setVar( $handle, 'summary.indent', '' );
$vtp->setVar( $handle, 'summary.link',
- add_session_id( $link_start.'manuel' ) );
+ add_session_id( $link_start.'help' ) );
$vtp->setVar( $handle, 'summary.name', $lang['menu_instructions'] );
$vtp->closeSession( $handle, 'summary' );
// back to thumbnails page
diff --git a/admin/configuration.php b/admin/configuration.php
index 34e148c4d..3292ffbc2 100644
--- a/admin/configuration.php
+++ b/admin/configuration.php
@@ -40,9 +40,10 @@ array( 'prefix_thumbnail','webmaster','mail_webmaster','access',
'session_id_size','session_time','session_keyword','max_user_listbox',
'show_comments','nb_comment_page','upload_available',
'upload_maxfilesize', 'upload_maxwidth','upload_maxheight',
- 'upload_maxwidth_thumbnail','upload_maxheight_thumbnail' );
+ 'upload_maxwidth_thumbnail','upload_maxheight_thumbnail','log',
+ 'comments_validation' );
$default_user_infos =
-array( 'nb_image_line','nb_line_page','theme','language','maxwidth',
+array( 'nb_image_line','nb_line_page','language','maxwidth',
'maxheight','expand','show_nb_comments','short_period','long_period',
'template' );
$error = array();
@@ -73,7 +74,7 @@ if ( isset( $_POST['submit'] ) )
{
array_push( $error, $lang['conf_err_prefixe'] );
}
- // mail mail must be formatted as follows : name@server.com
+ // mail must be formatted as follows : name@server.com
$pattern = '/^[\w-]+(\.[\w-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/';
if ( !preg_match( $pattern, $_POST['mail_webmaster'] ) )
{
@@ -194,9 +195,6 @@ if ( isset( $_POST['submit'] ) )
echo $query;
mysql_query( $query );
- $tab_theme = explode( ' - ', $_POST['theme'] );
- $_POST['theme'] = $tab_theme[0].'/'.$tab_theme[1];
-
$query = 'UPDATE '.PREFIX_TABLE.'users';
$query.= ' SET';
foreach ( $default_user_infos as $i => $default_user_info ) {
@@ -371,6 +369,38 @@ $vtp->setVar( $sub, 'param_line.def',
$lang['conf_general_max_user_listbox_info'] );
$vtp->closeSession( $sub, 'param_line' );
$vtp->closeSession( $sub, 'line' );
+// activate log
+$vtp->addSession( $sub, 'line' );
+$vtp->addSession( $sub, 'param_line' );
+$vtp->setVar( $sub, 'param_line.name', $lang['conf_general_log'] );
+$vtp->addSession( $sub, 'group' );
+$vtp->addSession( $sub, 'radio' );
+$vtp->setVar( $sub, 'radio.name', 'log' );
+$vtp->setVar( $sub, 'radio.value', 'true' );
+$vtp->setVar( $sub, 'radio.option', $lang['yes'] );
+$checked = '';
+if ( $log == 'true' )
+{
+ $checked = ' checked="checked"';
+}
+$vtp->setVar( $sub, 'radio.checked', $checked );
+$vtp->closeSession( $sub, 'radio' );
+$vtp->addSession( $sub, 'radio' );
+$vtp->setVar( $sub, 'radio.name', 'log' );
+$vtp->setVar( $sub, 'radio.value', 'false' );
+$vtp->setVar( $sub, 'radio.option', $lang['no'] );
+$checked = '';
+if ( $log == 'false' )
+{
+ $checked = ' checked="checked"';
+}
+$vtp->setVar( $sub, 'radio.checked', $checked );
+$vtp->closeSession( $sub, 'radio' );
+$vtp->closeSession( $sub, 'group' );
+$vtp->setVar( $sub, 'param_line.def',
+ $lang['conf_general_log_info'] );
+$vtp->closeSession( $sub, 'param_line' );
+$vtp->closeSession( $sub, 'line' );
$vtp->addSession( $sub, 'line' );
$vtp->addSession( $sub, 'space_line' );
@@ -432,6 +462,38 @@ $vtp->setVar( $sub, 'param_line.def',
$lang['conf_comments_comments_number_info'] );
$vtp->closeSession( $sub, 'param_line' );
$vtp->closeSession( $sub, 'line' );
+// coments validation
+$vtp->addSession( $sub, 'line' );
+$vtp->addSession( $sub, 'param_line' );
+$vtp->setVar( $sub, 'param_line.name', $lang['conf_comments_validation'] );
+$vtp->addSession( $sub, 'group' );
+$vtp->addSession( $sub, 'radio' );
+$vtp->setVar( $sub, 'radio.name', 'comments_validation' );
+$vtp->setVar( $sub, 'radio.value', 'true' );
+$vtp->setVar( $sub, 'radio.option', $lang['yes'] );
+$checked = '';
+if ( $comments_validation == 'true' )
+{
+ $checked = ' checked="checked"';
+}
+$vtp->setVar( $sub, 'radio.checked', $checked );
+$vtp->closeSession( $sub, 'radio' );
+$vtp->addSession( $sub, 'radio' );
+$vtp->setVar( $sub, 'radio.name', 'comments_validation' );
+$vtp->setVar( $sub, 'radio.value', 'false' );
+$vtp->setVar( $sub, 'radio.option', $lang['no'] );
+$checked = '';
+if ( $comments_validation == 'false' )
+{
+ $checked = ' checked="checked"';
+}
+$vtp->setVar( $sub, 'radio.checked', $checked );
+$vtp->closeSession( $sub, 'radio' );
+$vtp->closeSession( $sub, 'group' );
+$vtp->setVar( $sub, 'param_line.def',
+ $lang['conf_comments_validation_info'] );
+$vtp->closeSession( $sub, 'param_line' );
+$vtp->closeSession( $sub, 'line' );
$vtp->addSession( $sub, 'line' );
$vtp->addSession( $sub, 'space_line' );
@@ -514,7 +576,7 @@ $vtp->closeSession( $sub, 'line' );
// template
$vtp->addSession( $sub, 'line' );
$vtp->addSession( $sub, 'param_line' );
-$vtp->setVar( $sub, 'param_line.name', $lang['customize_template'] );
+$vtp->setVar( $sub, 'param_line.name', $lang['customize_theme'] );
$vtp->addSession( $sub, 'select' );
$vtp->setVar( $sub, 'select.name', 'template' );
$option = get_dirs( '../template/' );
@@ -529,27 +591,6 @@ for ( $i = 0; $i < sizeof( $option ); $i++ )
$vtp->closeSession( $sub, 'option' );
}
$vtp->closeSession( $sub, 'select' );
-$vtp->setVar( $sub, 'param_line.def', $lang['conf_default_template_info'] );
-$vtp->closeSession( $sub, 'param_line' );
-$vtp->closeSession( $sub, 'line' );
-// theme
-$vtp->addSession( $sub, 'line' );
-$vtp->addSession( $sub, 'param_line' );
-$vtp->setVar( $sub, 'param_line.name', $lang['customize_theme'] );
-$vtp->addSession( $sub, 'select' );
-$vtp->setVar( $sub, 'select.name', 'theme' );
-$option = get_themes( '../theme/' );
-for ( $i = 0; $i < sizeof( $option ); $i++ )
-{
- $vtp->addSession( $sub, 'option' );
- $vtp->setVar( $sub, 'option.option', $option[$i] );
- if ( $option[$i] == str_replace( "/", " - ", $theme ) )
- {
- $vtp->setVar( $sub, 'option.selected', ' selected="selected"' );
- }
- $vtp->closeSession( $sub, 'option' );
-}
-$vtp->closeSession( $sub, 'select' );
$vtp->setVar( $sub, 'param_line.def', $lang['conf_default_theme_info'] );
$vtp->closeSession( $sub, 'param_line' );
$vtp->closeSession( $sub, 'line' );
diff --git a/admin/historique.php b/admin/historique.php
deleted file mode 100644
index eda2b1b27..000000000
--- a/admin/historique.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/***************************************************************************
- * historique.php is a part of PhpWebGallery *
- * ------------------- *
- * last update : Monday, July 15, 2002 *
- * email : pierrick@z0rglub.com *
- * *
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; *
- * *
- ***************************************************************************/
- include_once( "./include/isadmin.inc.php" );
-
- if ( $HTTP_GET_VARS['empty'] == 1 )
- {
- mysql_query( "delete from PREFIX_TABLE"."history;" );
- }
- define (NB_JOUR_HISTO,"7");
- $tMois = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
- $tJours = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
-
- // on affiche les visites pour les 48 dernières heures
- // il faut trouver le unix date de la veille à 00h00 :
- // time (); nous donne le nombre de secondes actuelle
- $date_ref = time() - (7*24*60*60);
- $result = mysql_query( "select date,login,IP,categorie,page,titre,commentaire from PREFIX_TABLE"."history where date > '$date_ref' order by date desc;");
- echo"<div style=\"text-align:center;\"><a href=\"".add_session_id_to_url( "./admin.php?page=historique&amp;empty=1" )."\">empty / vider</a></div>";
- echo"<div style=\"color:green;text-align:center;margin:10px\">";
- // affichage de la date du jour
- echo $tJours[date("w")] ." ";
- echo date("j").(date("j") == 1 ? "er " : " ");
- echo $tMois[date("n")-1]." ".date("Y")." ";
- echo " à ".date("G")."h".date("i");
- echo"</div>";
-?>
- <table width='100%'>
- <tr>
- <th width='1%'>date</th>
- <th>login</th>
- <th>IP</th>
- <th>page</th>
- <th>categorie</th>
- <th>image</th>
- </tr>
- <tr>
- <td colspan=7 height=5><div class='style1'></div></td>
- </tr>
- <?
- $fin = time();
- $debut = mktime ( 23,59,59,date("n"),date("j")-1,date("Y") );
- for ( $i = 0; $i < NB_JOUR_HISTO; $i++ )
- {
- // 1. affichage du nom du jour
- echo" <tr>
- <td><nobr>";
- echo"<img src=\"".$conf['repertoire_image']."moins.gif\">&nbsp;&nbsp;<b>";
- echo $tJours[date("w",$fin)] ." ";
- echo date("j",$fin).(date("j",$fin) == 1 ? "er " : " ");
- echo $tMois[date("n",$fin)-1]." ".date("Y",$fin)."</b>";
- echo" </nobr></td>
- <td>&nbsp;</td>
- <td>&nbsp;</td>
- <td>&nbsp;</td>
- <td>&nbsp;</td>
- <td>&nbsp;</td>
- </tr>";
- // 2. affichage de tous les évènements pour le jour donné
- // entre la veille à 23h59m59s et le jour même 23h59m59s
- $result = mysql_query("select date,login,IP,categorie,page,titre,commentaire from PREFIX_TABLE"."history where date > '$debut' and date < '$fin' order by date desc;");
- $fin = $debut;
- // on recule le début d'une journée complète
- $debut = $debut - 24*60*60;
- while($row=mysql_fetch_array($result))
- {
- $date = date("G\hi s", $row[date]);
- $date = str_replace ( " ","min ", $date );
- $date .= " sec";
- // on réduit la taille du commentaire à ses premiers caractères
- $affichage_commentaire = "";
- if($row[commentaire] != '')
- {
- $affichage_commentaire = substr($row[commentaire],0,10);
- $affichage_commentaire .= "...";
- }
- echo" <tr>
- <td>&nbsp;|-&nbsp;&nbsp;$date</td>
- <td>$row[login]</td>
- <td>$row[IP]</td>
- <td>$row[page]</td>
- <td>$row[categorie]</td>
- <td>$row[titre]</td>
- </tr>";
- }
- }
- echo" </table>
- </center>";
-?> \ No newline at end of file
diff --git a/admin/images/arrow_up.gif b/admin/images/arrow_up.gif
deleted file mode 100644
index 90da978cd..000000000
--- a/admin/images/arrow_up.gif
+++ /dev/null
Binary files differ
diff --git a/admin/images/moins.gif b/admin/images/moins.gif
deleted file mode 100644
index 74fa8736f..000000000
--- a/admin/images/moins.gif
+++ /dev/null
Binary files differ
diff --git a/admin/images/plus.gif b/admin/images/plus.gif
deleted file mode 100644
index 2fa7116c1..000000000
--- a/admin/images/plus.gif
+++ /dev/null
Binary files differ
diff --git a/admin/images/puce.gif b/admin/images/puce.gif
deleted file mode 100644
index b8494bb77..000000000
--- a/admin/images/puce.gif
+++ /dev/null
Binary files differ
diff --git a/admin/include/functions.php b/admin/include/functions.php
index cd58d0822..6a5ed195e 100644
--- a/admin/include/functions.php
+++ b/admin/include/functions.php
@@ -17,11 +17,16 @@
$tab_ext_create_TN = array ( 'jpg', 'png', 'JPG', 'PNG' );
+// is_image returns true if the given $filename (including the path) is a
+// picture according to its format and its extension.
+// As GD library can only generate pictures from jpeg and png files, if you
+// ask if the filename is an image for thumbnail creation (second parameter
+// set to true), the only authorized formats are jpeg and png.
function is_image( $filename, $create_thumbnail = false )
{
global $conf, $tab_ext_create_TN;
- if ( is_file ( $filename ) )
+ if ( is_file( $filename ) )
{
$size = getimagesize( $filename );
// $size[2] == 1 means GIF
diff --git a/admin/infos_images.php b/admin/infos_images.php
index 7735caba2..29957b478 100644
--- a/admin/infos_images.php
+++ b/admin/infos_images.php
@@ -18,7 +18,7 @@
include_once( './include/isadmin.inc.php' );
include_once( '../template/'.$user['template'].'/htmlfunctions.inc.php' );
//------------------------------------------------------------------- functions
-function check_date_format ( $date )
+function check_date_format( $date )
{
// date arrives at this format : DD/MM/YYYY
// checkdate ( int month, int day, int year)
@@ -144,7 +144,7 @@ if ( isset( $page['cat'] ) )
}
else
{
- echo $lang['infoimage_err_date'];
+ echo $lang['err_date'];
}
}
//--------------------------------------------------------- form initialization
@@ -221,6 +221,8 @@ if ( isset( $page['cat'] ) )
$thumbnail_url.= 'thumbnail/';
$thumbnail_url.= $conf['prefix_thumbnail'].$file.".".$row['tn_ext'];
$vtp->setVar( $sub, 'picture.thumbnail_url', $thumbnail_url );
+ $url = '../picture.php?cat='.$_GET['cat_id'].'&amp;image_id='.$row['id'];
+ $vtp->setVar( $sub, 'picture.url', add_session_id( $url ) );
$vtp->closeSession( $sub, 'picture' );
}
}
diff --git a/admin/thumbnail.php b/admin/thumbnail.php
index 72f384a45..538b536b7 100644
--- a/admin/thumbnail.php
+++ b/admin/thumbnail.php
@@ -1,9 +1,9 @@
<?php
/***************************************************************************
- * thumbnail.php is a part of PhpWebGallery *
+ * thumbnail.php *
* ------------------- *
- * last update : Thursday, July 25, 2002 *
- * email : pierrick@z0rglub.com *
+ * application : PhpWebGallery 1.3 *
+ * author : Pierrick LE GALL <pierrick@z0rglub.com> *
* *
***************************************************************************/
@@ -14,116 +14,116 @@
* the Free Software Foundation; *
* *
***************************************************************************/
-include_once( "./include/isadmin.inc.php" );
-
-function get_subdirs( $rep )
+include_once( './include/isadmin.inc.php' );
+//------------------------------------------------------------------- functions
+// get_subdirs returns an array containing all sub directory names,
+// excepting : '.', '..' and 'thumbnail'.
+function get_subdirs( $dir )
{
- $sub_rep = array();
- $i = 0;
- if ( $opendir = opendir ( $rep ) )
+ $sub_dirs = array();
+ if ( $opendir = opendir( $dir ) )
{
- while ( $file = readdir ( $opendir ) )
+ while ( $file = readdir( $opendir ) )
{
- if ( $file != "thumbnail" && $file != "."
- && $file != ".." && is_dir ( $rep.$file ) )
+ if ( $file != 'thumbnail' and $file != '.'
+ and $file != '..' and is_dir( $dir.'/'.$file ) )
{
- $sub_rep[$i++] = $file;
+ array_push( $sub_dirs, $file );
}
}
}
- return $sub_rep;
+ return $sub_dirs;
}
-/*
- $tab_ext = array ( 'jpg', 'JPG','png','PNG' );
- $tab_tn_ext = array ( 'jpg', 'JPG','png','PNG', 'gif', 'GIF' );
-*/
+// get_images_without_thumbnail returns an array with all the picture names
+// that don't have associated thumbnail in the directory. Each picture name
+// is associated with the width, heigh and filesize of the picture.
function get_images_without_thumbnail( $dir )
{
- $i = 0;
- if ( $opendir = opendir ( $dir ) )
+ $images = array();
+ if ( $opendir = opendir( $dir ) )
{
- while ( $file = readdir ( $opendir ) )
+ while ( $file = readdir( $opendir ) )
{
- $lien_image = $dir."/".$file;
- if ( is_image( $lien_image, true ) )
+ $path = $dir.'/'.$file;
+ if ( is_image( $path, true ) )
{
- if ( !TN_exist( $dir, $file ) )
+ if ( !TN_exists( $dir, $file ) )
{
- $taille_image = getimagesize( $lien_image );
- $size = floor ( filesize( $lien_image ) / 1024 ). " KB";
- $images[$i++] = array( 'name' => $file,
- 'width' => $taille_image[0],
- 'height' => $taille_image[1],
- 'size' => $size
- );
+ $image_infos = getimagesize( $path );
+ $size = floor( filesize( $path ) / 1024 ). ' KB';
+ array_push( $images, array( 'name' => $file,
+ 'width' => $image_infos[0],
+ 'height' => $image_infos[1],
+ 'size' => $size ) );
}
}
}
}
return $images;
}
-
-function scandir( $DIR, $width, $height )
+
+// scandir scans a dir to find pictures without thumbnails. Once found,
+// creation of the thumbnails (RatioResizeImg). Only the first $_POST['n']
+// pictures without thumbnails are treated.
+// scandir returns an array with the generation time of each thumbnail (for
+// statistics purpose)
+function scandir( $dir, $width, $height )
{
- global $HTTP_POST_VARS, $conf, $output;
- $compteur = 0;
- $temps = array();
- if ( $ODIR = opendir( $DIR ) )
+ global $conf;
+ $stats = array();
+ if ( $opendir = opendir( $dir ) )
{
- while ( $FILE = readdir ( $ODIR ) )
+ while ( $file = readdir ( $opendir ) )
{
- $TMP = $DIR."/".$FILE;
- if ( is_image ( $TMP, true ) )
+ $path = $dir.'/'.$file;
+ if ( is_image( $path, true ) )
{
- if ( $compteur < $HTTP_POST_VARS['n'] && !TN_exist( $DIR, $FILE ) )
+ if ( count( $stats ) < $_POST['n'] and !TN_exists( $dir, $file ) )
{
- $t1 = explode( " ", microtime() );
- $t2 = explode( ".", $t1[0] );
- $t2 = $t1[1].".".$t2[1];
- $info = RatioResizeImg( $FILE, $width, $height, $DIR."/", "jpg" );
- $t3 = explode( " ", microtime() );
- $t4 = explode( ".", $t3[0] );
- $t4 = $t3[1].".".$t4[1];
- $info['temps'] = ( $t4 - $t2 ) * 1000;
- $temps[$compteur++] = $info;
- //$output.= " (".number_format( $temps[$compteur-1], 2, '.', ' ')." ms)<br />";;
+ $starttime = get_moment();
+ $info = RatioResizeImg( $file, $width, $height, $dir.'/', 'jpg' );
+ $endtime = get_moment();
+ $info['time'] = ( $endtime - $starttime ) * 1000;
+ array_push( $stats, $info );
}
}
}
}
- return $temps;
+ return $stats;
}
-
-function RatioResizeImg( $image, $newWidth, $newHeight, $path, $extension)
+
+// RatioResizeImg creates a new picture (a thumbnail since it is supposed to
+// be smaller than original picture !) in the sub directory named
+// "thumbnail".
+function RatioResizeImg( $filename, $newWidth, $newHeight, $path, $tn_ext )
{
- global $conf, $HTTP_POST_VARS;
- // chemin complet de l'image :
- $chemin = $path.$image;
- // détéction du type de l'image
- eregi( "(...)$", $chemin, $regs);
- $type = $regs[1];
- switch( $type )
+ global $conf, $lang;
+ // full path to picture
+ $filepath = $path.$filename;
+ // extension of the picture filename
+ $extension = get_extension( $filepath );
+ switch( $extension )
{
- case "jpg": $srcImage = @imagecreatefromjpeg( $chemin ); break;
- case "JPG": $srcImage = @imagecreatefromjpeg( $chemin ); break;
- case "png": $srcImage = @imagecreatefrompng( $chemin ); break;
- case "PNG": $srcImage = @imagecreatefrompng( $chemin ); break;
- default : unset( $type ); break;
+ case 'jpg': $srcImage = @imagecreatefromjpeg( $filepath ); break;
+ case 'JPG': $srcImage = @imagecreatefromjpeg( $filepath ); break;
+ case 'png': $srcImage = @imagecreatefrompng( $filepath ); break;
+ case 'PNG': $srcImage = @imagecreatefrompng( $filepath ); break;
+ default : unset( $extension ); break;
}
- if( $srcImage )
+ if ( isset( $srcImage ) )
{
- // hauteurs/largeurs
- $srcWidth = imagesx( $srcImage );
- $srcHeight = imagesy( $srcImage );
- $ratioWidth = $srcWidth/$newWidth;
+ // width/height
+ $srcWidth = imagesx( $srcImage );
+ $srcHeight = imagesy( $srcImage );
+ $ratioWidth = $srcWidth/$newWidth;
$ratioHeight = $srcHeight/$newHeight;
-
- // taille maximale dépassée ?
- if (($ratioWidth > 1) || ($ratioHeight > 1))
+
+ // maximal size exceeded ?
+ if ( ( $ratioWidth > 1 ) or ( $ratioHeight > 1 ) )
{
- if( $ratioWidth < $ratioHeight)
+ if ( $ratioWidth < $ratioHeight)
{
$destWidth = $srcWidth/$ratioHeight;
$destHeight = $newHeight;
@@ -139,58 +139,59 @@ function RatioResizeImg( $image, $newWidth, $newHeight, $path, $extension)
$destWidth = $srcWidth;
$destHeight = $srcHeight;
}
- // selon votre version de GD installée sur le serveur hébergeur
- if ( $HTTP_POST_VARS['gd'] == 2 )
+ // according to the GD version installed on the server
+ if ( $_POST['gd'] == 2 )
{
- // Partie 1 : GD 2.0 ou supérieur, résultat très bons
+ // GD 2.0 or more recent -> good results (but slower)
$destImage = imagecreatetruecolor( $destWidth, $destHeight);
- imagecopyresampled( $destImage, $srcImage, 0, 0, 0, 0, $destWidth,$destHeight,$srcWidth,$srcHeight );
+ imagecopyresampled( $destImage, $srcImage, 0, 0, 0, 0,
+ $destWidth,$destHeight,$srcWidth,$srcHeight );
}
else
{
- // Partie 2 : GD inférieur à 2, résultat très moyens
+ // GD prior to version 2 -> pretty bad results :-/ (but fast)
$destImage = imagecreate( $destWidth, $destHeight);
- imagecopyresized( $destImage, $srcImage, 0, 0, 0, 0, $destWidth,$destHeight,$srcWidth,$srcHeight );
+ imagecopyresized( $destImage, $srcImage, 0, 0, 0, 0,
+ $destWidth,$destHeight,$srcWidth,$srcHeight );
}
- if( !is_dir( $path."thumbnail" ) )
+ if( !is_dir( $path.'thumbnail' ) )
{
- umask(0000);
- mkdir( $path."thumbnail", 0777 );
+ umask( 0000 );
+ mkdir( $path.'thumbnail', 0777 );
}
- $dest_file = $path."thumbnail/".$conf['prefix_thumbnail'].substr ( $image, 0, strrpos ( $image, ".") ).".".$extension;
+ $dest_file = $path.'thumbnail/'.$conf['prefix_thumbnail'];
+ $dest_file.= get_filename_wo_extension( $filename );
+ $dest_file.= '.'.$tn_ext;
- // création et sauvegarde de l'image finale
- imagejpeg($destImage, $dest_file);
- // libère la mémoire
+ // creation and backup of final picture
+ imagejpeg( $destImage, $dest_file );
+ // freeing memory ressources
imagedestroy( $srcImage );
imagedestroy( $destImage );
- // renvoit l'URL de l'image
- //return $dest_file;
- $taille_image = getimagesize( $chemin );
- $size = number_format( floor ( filesize( $chemin ) / 1024 ), 0, '', ' ')." KB";
- $tn_taille_image = getimagesize( $dest_file );
- $tn_size = number_format( floor ( filesize( $dest_file ) ), 0, '', ' ')." octets";
- $info = array( 'name' => $image,
- 'width' => $taille_image[0],
- 'height' => $taille_image[1],
- 'size' => $size,
- 'tn_name' => $conf['prefix_thumbnail'].substr ( $image, 0, strrpos ( $image, ".") ).".".$extension,
- 'tn_width' => $tn_taille_image[0],
- 'tn_height' => $tn_taille_image[1],
- 'tn_size' => $tn_size
- );
+ list( $width,$height ) = getimagesize( $filepath );
+ $size = floor( filesize( $filepath ) / 1024 ).' KB';
+ list( $tn_width,$tn_height ) = getimagesize( $dest_file );
+ $tn_size = floor( filesize( $dest_file ) / 1024 ).' KB';
+ $info = array( 'file' => $filename,
+ 'width' => $width,
+ 'height' => $height,
+ 'size' => $size,
+ 'tn_file' => $dest_file,
+ 'tn_width' => $tn_width,
+ 'tn_height' => $tn_height,
+ 'tn_size' => $tn_size );
return $info;
}
- // erreur
+ // error
else
{
echo $lang['tn_no_support']." ";
- if ($type)
+ if ( isset( $extenstion ) )
{
- echo $lang['tn_format']." $type";
+ echo $lang['tn_format'].' '.$extension;
}
else
{
@@ -199,370 +200,227 @@ function RatioResizeImg( $image, $newWidth, $newHeight, $path, $extension)
exit();
}
}
-
+
+// array_max returns the highest value of the given array
function array_max( $array )
{
- $max = 0;
- for ( $i = 0; $i < sizeof( $array ); $i++ )
- {
- if ( $array[$i] > $max )
- {
- $max = $array[$i];
- }
- }
- return $max;
+ sort( $array, SORT_NUMERIC );
+ return array_pop( $array );
}
-
+
+// array_min returns the lowest value of the given array
function array_min( $array )
{
- $min = 99999999999999;
- for ( $i = 0; $i < sizeof( $array ); $i++ )
- {
- if ( $array[$i] < $min )
- {
- $min = $array[$i];
- }
- }
- return $min;
+ sort( $array, SORT_NUMERIC );
+ return array_shift( $array );
}
-
-function array_moy( $array )
+
+// array_avg returns the average value of the array
+function array_avg( $array )
{
return array_sum( $array ) / sizeof( $array );
}
-// get_dirs retourne un tableau contenant tous les sous-répertoires d'un répertoire
-function get_displayed_dirs( $rep, $indent )
+// 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;
+ global $conf,$lang,$vtp,$sub;
- $sub_rep = array();
- $i = 0;
- $dirs = "";
- if ( $opendir = opendir ( $rep ) )
- {
- while ( $file = readdir ( $opendir ) )
- {
- if ( $file != "." && $file != ".." && is_dir ( $rep."/".$file ) && $file != "thumbnail" )
- {
- $sub_rep[$i++] = $file;
- }
- }
- }
+ $sub_dirs = get_subdirs( $dir );
// write of the dirs
- for ( $i = 0; $i < sizeof( $sub_rep ); $i++ )
- {
- $images = get_images_without_thumbnail( $rep."/".$sub_rep[$i] );
- $nb_picture_without_TN = sizeof( $images );
- $dirs.= $indent;
- if ( $nb_picture_without_TN > 0 )
+ foreach ( $sub_dirs as $sub_dir ) {
+ $pictures = get_images_without_thumbnail( $dir.'/'.$sub_dir );
+ $vtp->addSession( $sub, 'dir' );
+ $vtp->setVar( $sub, 'dir.indent', $indent );
+ if ( count( $pictures ) > 0 )
{
- $dirs.= "<a href=\"".add_session_id_to_url( "./admin.php?page=thumbnail&amp;dir=".$rep."/".$sub_rep[$i] )."\">";
+ $vtp->addSession( $sub, 'linked' );
+ $url = './admin.php?page=thumbnail&amp;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' );
}
- $dirs.= "<img src=\"".$conf['lien_puce']."\" style=\"border:none;\" alt=\"&gt;\"/>".$sub_rep[$i];
- if ( $nb_picture_without_TN > 0 )
- {
- $dirs.= "</a>";
- }
- if ( $nb_picture_without_TN > 0 )
+ else
{
- $dirs.= " [ $nb_picture_without_TN ".$lang['tn_dirs_alone']." ]";
+ $vtp->addSession( $sub, 'unlinked' );
+ $vtp->setVar( $sub, 'unlinked.name', $sub_dir );
+ $vtp->closeSession( $sub, 'unlinked' );
}
- $dirs.= "<br />";
- $dirs.= get_displayed_dirs( $rep."/".$sub_rep[$i], $indent."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" );
+ $vtp->closeSession( $sub, 'dir' );
+ // recursive call
+ $dirs.= get_displayed_dirs( $dir.'/'.$sub_dir,
+ $indent+30 );
+
}
- return $dirs;
}
-
-$output = "";
-
-if ( isset( $HTTP_GET_VARS['dir'] ) )
+//----------------------------------------------------- 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 );
+//----------------------------------------------------- miniaturization results
+if ( isset( $_GET['dir'] ) )
{
- //---------------vérification de la présence d'images sans thumbnail
- $images = get_images_without_thumbnail( $HTTP_GET_VARS['dir'] );
- if ( sizeof( $images ) == 0 )
+ $pictures = get_images_without_thumbnail( $_GET['dir'] );
+ if ( count( $pictures ) == 0 )
{
- $output.= "<div style=\"text-align:center;font-weight:bold;margin:10px;\"> [ 0 ".$lang['tn_dirs_alone']." ]</div>";
+ $vtp->addSession( $sub, 'warning' );
+ $vtp->closeSession( $sub, 'warning' );
}
- else if ( isset( $HTTP_POST_VARS['submit'] ) )
+ elseif ( isset( $_POST['submit'] ) )
{
- //----------------------------------------vérification des variables
- $nb_erreur = 0;
- $erreur = "";
- if ( !ereg( "^[0-9]{2,3}$", $HTTP_POST_VARS['width'] ) || $HTTP_POST_VARS['width'] < 10 )
+ // checking criteria
+ $errors = array();
+ if ( !ereg( "^[0-9]{2,3}$", $_POST['width'] ) or $_POST['width'] < 10 )
{
- $nb_erreur++;
- $erreur.= "<li>".$lang['tn_err_width']." 10</li>";
+ array_push( $errors, $lang['tn_err_width'].' 10' );
}
- if ( !ereg( "^[0-9]{2,3}$", $HTTP_POST_VARS['height'] ) || $HTTP_POST_VARS['height'] < 10 )
+ if ( !ereg( "^[0-9]{2,3}$", $_POST['height'] ) or $_POST['height'] < 10 )
{
- $nb_erreur++;
- $erreur.= "<li>".$lang['tn_err_height']." 10</li>";
+ array_push( $errors, $lang['tn_err_height'].' 10' );
}
- if ( !isset( $HTTP_POST_VARS['gd'] ) )
+ // picture miniaturization
+ if ( count( $errors ) == 0 )
{
- $nb_erreur++;
- $erreur.= "<li>".$lang['tn_err_GD']."</li>";
- }
-
- //---------------------------------------------listing des résultats
- if ( $nb_erreur == 0 )
- {
- $style = "class=\"row2\" style=\"text-align:center;font-weight:bold;";
- $output.= "
- <table style=\"width:100%;\">
- <tr>
- <th colspan=\"10\">".$lang['tn_results_title']."</th>
- </tr>
- <tr>
- <td ".$style."\">&nbsp;</td>
- <td ".$style."\">".$lang['tn_picture']."</td>
- <td ".$style."\">".$lang['tn_filesize']."</td>
- <td ".$style."\">".$lang['tn_width']."</td>
- <td ".$style."\">".$lang['tn_height']."</td>
- <td ".$style."background-color:#D3DCE3;\">".$lang['tn_results_gen_time']."</td>
- <td ".$style."\">".$lang['thumbnail']."</td>
- <td ".$style."\">".$lang['tn_filesize']."</td>
- <td ".$style."\">".$lang['tn_width']."</td>
- <td ".$style."\">".$lang['tn_height']."</td>
- </tr>";
- $tab_infos = scandir( $HTTP_GET_VARS['dir'], $HTTP_POST_VARS['width'], $HTTP_POST_VARS['height'] );
- for ( $i = 0; $i < sizeof ( $tab_infos ); $i++ )
- {
- $temps[$i] = $tab_infos[$i]['temps'];
+ $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( $temps );
- $min = array_min( $temps );
- for ( $i = 0; $i < sizeof ( $tab_infos ); $i++ )
- {
- $temps[$i] = $tab_infos[$i]['temps'];
- $num = $i + 1;
- $class = "";
- if ( $i%2 == 1 )
+ $max = array_max( $times );
+ $min = array_min( $times );
+ foreach ( $stats as $i => $stat ) {
+ $vtp->addSession( $sub, 'picture' );
+ if ( $i % 2 == 1 )
{
- $class = "class=\"row2\"";
+ $vtp->setVar( $sub, 'picture.class', 'row2' );
}
- $output.= "
- <tr>
- <td class=\"row2\">$num</td>
- <td $class>".$tab_infos[$i]['name']."</td>
- <td $class style=\"text-align:right;\">".$tab_infos[$i]['size']."</td>
- <td $class style=\"text-align:right;\">".$tab_infos[$i]['width']."</td>
- <td $class style=\"text-align:right;\">".$tab_infos[$i]['height']."</td>
- <th><div style=\"text-align:right;margin-right:5px;";
- if ( $tab_infos[$i]['temps'] == $max )
+ $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 )
{
- $output.= "color:red;";
+ $vtp->setVar( $sub, 'picture.color', 'red' );
}
- if ( $tab_infos[$i]['temps'] == $min )
+ else if ( $stat['time'] == $min )
{
- $output.= "color:green;";
+ $vtp->setVar( $sub, 'picture.color', 'green' );
}
- $output.= "\">".number_format( $tab_infos[$i]['temps'], 2, '.', ' ')." ms</div></th>
- <td $class>".$tab_infos[$i]['tn_name']."</td>
- <td $class style=\"text-align:right;\">".$tab_infos[$i]['tn_size']."</td>
- <td $class style=\"text-align:right;\">".$tab_infos[$i]['tn_width']."</td>
- <td $class style=\"text-align:right;\">".$tab_infos[$i]['tn_height']."</td>
- </tr>";
+ $vtp->closeSession( $sub, 'picture' );
}
- $output.= "
- <tr>
- <td colspan=\"10\">&nbsp;</td>
- </tr>
- </table>
- <table style=\"margin:auto;border:1px solid black;\">
- <tr>
- <td colspan=\"2\" style=\"text-align:center;font-weight:bold;\" class=\"row2\">".$lang['tn_stats']."</td>
- </tr>
- <tr>
- <td>".$lang['tn_stats_nb']." : </td>
- <td style=\"text-align:center;\">".sizeof( $temps )."</td>
- </tr>
- <tr>
- <td>".$lang['tn_stats_total']." : </td>
- <td style=\"text-align:right;\">".number_format( array_sum( $temps ), 2, '.', ' ')." ms</td>
- </tr>
- <tr>
- <td>".$lang['tn_stats_max']." : </td>
- <td style=\"text-align:right;\">".number_format( $max, 2, '.', ' ')." ms</td>
- </tr>
- <tr>
- <td>".$lang['tn_stats_min']." : </td>
- <td style=\"text-align:right;\">".number_format( $min, 2, '.', ' ')." ms</td>
- </tr>
- <tr>
- <td>".$lang['tn_stats_mean']." : </td>
- <td style=\"text-align:right;\">".number_format( array_moy( $temps ), 2, '.', ' ')." ms</td>
- </tr>
- </table>
- <table>
- <tr>
- <td>&nbsp;</td>
- </tr>
- </table>";
+ // 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
{
- $output.= "
- <div class=\"erreur\" style=\"margin-top:10px;\">".$lang['tn_err']."</div>
- <div class=\"erreur\" style=\"text-align:left;margin-left:20px;\">
- <ul>
- $erreur
- </ul>
- </div>";
+ $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' );
}
}
- //-------------------------------------paramètres de miniaturisation
- if ( sizeof( $images ) != 0 )
+//-------------------------------------------------- miniaturization parameters
+ if ( sizeof( $pictures ) != 0 )
{
- $output.= "
- <style>
- div.key
- {
- margin-left : 10px;
- }
- td.choice
- {
- text-align : center;
- }
- </style>";
- $output.= "
- <form method=\"post\" action=\"".add_session_id_to_url( "./admin.php?page=thumbnail&amp;dir=".$HTTP_GET_VARS['dir'] )."\">
- <table style=\"width:100%;\">
- <tr>
- <th colspan=\"3\">".$lang['tn_params_title']."</th>
- </tr>";
- $output.= "
- <tr>
- <td colspan=\"3\">&nbsp;</td>
- </tr>";
- $output.= "
- <tr>
- <td><div class=\"key\">".$lang['tn_params_GD']."</div></td>
- <td class=\"choice\">
- <input type=\"radio\" name=\"gd\" value=\"2\"/ checked=\"checked\">2.x
- <input type=\"radio\" name=\"gd\" value=\"1\"";
- if ( $HTTP_POST_VARS['gd'] == 1 )
+ $vtp->addSession( $sub, 'params' );
+ $url = './admin.php?page=thumbnail&amp;dir='.$_GET['dir'];
+ $vtp->setVar( $sub, 'params.action', add_session_id( $url ) );
+ // GD version selected...
+ if ( $_POST['gd'] == 1 )
+ {
+ $vtp->setVar( $sub, 'params.gd1_checked', ' checked="checked"' );
+ }
+ else
{
- $output.= " checked=\"checked\"";
+ $vtp->setVar( $sub, 'params.gd2_checked', ' checked="checked"' );
}
- $output.= "/>1.x
- </td>
- <td style=\"width:50%;\" class=\"row2\">".$lang['tn_params_GD_info']."</td>
- </tr>
- <tr>
- <td><div class=\"key\">".$lang['tn_width']."</div></td>
- <td class=\"choice\"><input type=\"text\" name=\"width\" value=\"";
- if ( isset( $HTTP_POST_VARS['width'] ) )
+ // width values
+ if ( isset( $_POST['width'] ) )
{
- $output.= $HTTP_POST_VARS['width'];
+ $vtp->setVar( $sub, 'params.width_value', $_POST['width'] );
}
else
{
- $output.= "128";
+ $vtp->setVar( $sub, 'params.width_value', '128' );
}
- $output.="\"/></td>
- <td class=\"row2\">".$lang['tn_params_width_info']."</td>
- </tr>
- <tr>
- <td><div class=\"key\">".$lang['tn_height']."</div></td>
- <td class=\"choice\"><input type=\"text\" name=\"height\" value=\"";
- if ( isset( $HTTP_POST_VARS['height'] ) )
+ // height value
+ if ( isset( $_POST['height'] ) )
{
- $output.= $HTTP_POST_VARS['height'];
+ $vtp->setVar( $sub, 'params.height_value', $_POST['height'] );
}
else
{
- $output.= "96";
+ $vtp->setVar( $sub, 'params.height_value', '96' );
}
- $output.="\"/></td>
- <td class=\"row2\">".$lang['tn_params_height_info']."</td>
- </tr>
- <tr>
- <td><div class=\"key\">".$lang['tn_params_create']."</div></td>
- <td class=\"choice\">
- <select name=\"n\">
- <option>5</option>
- <option>10</option>
- <option>20</option>
- <option>40</option>
- </select>
- </td>
- <td class=\"row2\">".$lang['tn_params_create_info']."</td>
- </tr>
- <tr>
- <td><div class=\"key\">".$lang['tn_params_format']."</div></td>
- <td class=\"choice\"><span style=\"font-weight:bold;\">jpeg</span></td>
- <td class=\"row2\">".$lang['tn_params_format_info']."</td>
- </tr>
- <tr>
- <td colspan=\"3\">&nbsp;</td>
- </tr>
- <tr>
- <td colspan=\"3\" style=\"text-align:center;\">
- <input type=\"submit\" name=\"submit\" value=\"".$lang['submit']."\"/>
- </td>
- </tr>";
- $output.= "
- </table>
- </form>";
- //-----------------------------------liste des images sans miniature
- $images = get_images_without_thumbnail( $HTTP_GET_VARS['dir'] );
- $style = "class=\"row2\" style=\"text-align:center;font-weight:bold;";
- $output.= "
- <table style=\"width:100%;\">
- <tr>
- <th colspan=\"5\"><span style=\"color:#006699;\">".sizeof( $images )."</span> ".$lang['tn_alone_title']."</th>
- </tr>
- <tr>
- <td ".$style."\">&nbsp;</td>
- <td ".$style."width:50%;\">".$lang['tn_picture']."</td>
- <td ".$style."width:17%;\">".$lang['tn_filesize']."</td>
- <td ".$style."width:17%;\">".$lang['tn_width']."</td>
- <td ".$style."width:16%;\">".$lang['tn_height']."</td>
- </tr>";
- for ( $i = 0; $i < sizeof( $images ); $i++ )
- {
- $num = $i + 1;
- $class = "";
- if ( $i%2 == 1 )
+ // options for the number of picture to miniaturize : "n"
+ $options = array( 5,10,20,40 );
+ foreach ( $options as $option ) {
+ $vtp->addSession( $sub, 'n_option' );
+ $vtp->setVar( $sub, 'n_option.option', $option );
+ if ( $option == $_POST['n'] )
+ {
+ $vtp->setVar( $sub, 'n_option.selected', ' selected="selected"' );
+ }
+ $vtp->closeSession( $sub, 'n_option' );
+ }
+ $vtp->closeSession( $sub, 'params' );
+//---------------------------------------------------------- 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 )
{
- $class = " class=\"row2\"";
+ $vtp->setVar( $sub, 'remaining.class', 'row2' );
}
- $output.= "
- <tr>
- <td class=\"row2\">".$num."</td>
- <td $class><div style=\"margin-left:10px;\">".$images[$i]['name']."</div></td>
- <td $class><div style=\"margin-left:10px;\">".$images[$i]['size']."</div></td>
- <td $class><div style=\"margin-left:10px;\">".$images[$i]['width']."</div></td>
- <td $class><div style=\"margin-left:10px;\">".$images[$i]['height']."</div></td>
- </tr>";
+ $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' );
}
- $output.= "
- </table>";
+ $vtp->closeSession( $sub, 'remainings' );
}
}
-//-----------------------------------liste des répertoires
-//-------------------------si aucun répertoire selectionné
+//-------------------------------------------------------------- directory list
else
{
- $output = "
- <table style=\"width:100%;\">
- <tr>
- <th>".$lang['tn_dirs_title']."</th>
- </tr>";
- $output.= "
- <tr>
- <td>
- <div class=\"retrait\">
- <img src=\"".$conf['lien_puce']."\" alt=\"\"/>galleries";
- $output.= "<br />";
- $output.= get_displayed_dirs( "../galleries", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" );
- $output.= "
- </div>
- </td>
- </tr>
- </table>";
+ $vtp->addSession( $sub, 'directory_list' );
+ get_displayed_dirs( '../galleries', 60 );
+ $vtp->closeSession( $sub, 'directory_list' );
}
-echo $output;
+//----------------------------------------------------------- sending html code
+$vtp->Parse( $handle , 'sub', $sub );
?> \ No newline at end of file
diff --git a/admin/update.php b/admin/update.php
index bdd4d8a43..eefd913c1 100644
--- a/admin/update.php
+++ b/admin/update.php
@@ -187,20 +187,21 @@ function insert_local_image( $rep, $category_id )
// searching the new images in the directory
$pictures = array();
$tn_ext = '';
- if ( $opendir = opendir ( $rep ) )
+ if ( $opendir = opendir( $rep ) )
{
- while ( $file = readdir ( $opendir ) )
+ while ( $file = readdir( $opendir ) )
{
if ( is_file( $rep.'/'.$file ) and is_image( $rep.'/'.$file ) )
{
// is the picture waiting for validation by an administrator ?
- $query = 'SELECT id';
+ $query = 'SELECT id,validated,infos';
$query.= ' FROM '.PREFIX_TABLE.'waiting';
$query.= ' WHERE cat_id = '.$category_id;
$query.= " AND file = '".$file."'";
$query.= ';';
$result = mysql_query( $query );
- if ( mysql_num_rows( $result ) == 0 )
+ $waiting = mysql_fetch_array( $result );
+ if (mysql_num_rows( $result ) == 0 or $waiting['validated'] == 'true')
{
if ( $tn_ext = TN_exists( $rep, $file ) )
{
@@ -214,13 +215,33 @@ function insert_local_image( $rep, $category_id )
if ( mysql_num_rows( $result ) == 0 )
{
$picture = array();
- $picture['file'] = $file;
- $picture['tn_ext'] = $tn_ext;
+ $picture['file'] = $file;
+ $picture['tn_ext'] = $tn_ext;
$picture['date'] = date( 'Y-m-d', filemtime ( $rep.'/'.$file ) );
$picture['filesize'] = floor( filesize( $rep.'/'.$file ) / 1024);
$image_size = @getimagesize( $rep.'/'.$file );
- $picture['width'] = $image_size[0];
- $picture['height'] = $image_size[1];
+ $picture['width'] = $image_size[0];
+ $picture['height'] = $image_size[1];
+ if ( $waiting['validated'] == 'true' )
+ {
+ // retrieving infos from the XML description of
+ // $waiting['infos']
+ $infos = nl2br( $waiting['infos'] );
+ $picture['author'] = getAttribute( $infos, 'author' );
+ $picture['comment'] = getAttribute( $infos, 'comment' );
+ $unixtime = getAttribute( $infos, 'date_creation' );
+ $picture['date_creation'] = '';
+ if ( $unixtime != '' )
+ {
+ $picture['date_creation'] = date( 'Y-m-d', $unixtime );
+ }
+ $picture['name'] = getAttribute( $infos, 'name' );
+ // deleting the waiting element
+ $query = 'DELETE FROM '.PREFIX_TABLE.'waiting';
+ $query.= ' WHERE id = '.$waiting['id'];
+ $query.= ';';
+ mysql_query( $query );
+ }
array_push( $pictures, $picture );
}
}
@@ -242,13 +263,23 @@ function insert_local_image( $rep, $category_id )
// inserting the pictures found in the directory
foreach ( $pictures as $picture ) {
$query = 'INSERT INTO '.PREFIX_TABLE.'images';
- $query.= ' (file,cat_id,date_available,tn_ext,filesize,width,height)';
+ $query.= ' (file,cat_id,date_available,tn_ext,filesize,width,height';
+ $query.= ',name,author,comment,date_creation)';
$query.= ' VALUES ';
$query.= "('".$picture['file']."','".$category_id."'";
$query.= ",'".$picture['date']."','".$picture['tn_ext']."'";
$query.= ",'".$picture['filesize']."','".$picture['width']."'";
- $query.= ",'".$picture['height']."')";
- $query.= ';';
+ $query.= ",'".$picture['height']."','".$picture['name']."'";
+ $query.= ",'".$picture['author']."','".$picture['comment']."'";
+ if ( $picture['date_creation'] != '' )
+ {
+ $query.= ",'".$picture['date_creation']."'";
+ }
+ else
+ {
+ $query.= ',NULL';
+ }
+ $query.= ');';
mysql_query( $query );
$count_new++;
@@ -283,7 +314,7 @@ function update_cat_info( $category_id )
$nb_images = $row['nb_images'];
$query = 'UPDATE '.PREFIX_TABLE.'categories';
- $query.= " SET date_dernier = '".$date_last."'";
+ $query.= " SET date_last = '".$date_last."'";
$query.= ', nb_images = '.$nb_images;
$query.= ' where id = '.$category_id;
$query.= ';';
diff --git a/admin/waiting.php b/admin/waiting.php
index 2f1964266..2525c95ab 100644
--- a/admin/waiting.php
+++ b/admin/waiting.php
@@ -1,9 +1,9 @@
<?php
/***************************************************************************
- * waiting.php is a part of PhpWebGallery *
+ * waiting.php *
* ------------------- *
- * last update : Monday, October 28, 2002 *
- * email : pierrick@z0rglub.com *
+ * application : PhpWebGallery 1.3 *
+ * author : Pierrick LE GALL <pierrick@z0rglub.com> *
* *
***************************************************************************/
@@ -14,104 +14,121 @@
* the Free Software Foundation; *
* *
***************************************************************************/
- include_once( "./include/isadmin.inc.php" );
- //-------------------------------------------------------------- mise à jour
- if ( isset( $HTTP_POST_VARS['submit'] ) )
- {
- $query = "select id,cat_id,file,tn_ext";
- $query.= " from PREFIX_TABLE"."waiting";
- $query.= ";";
- $result = mysql_query( $query );
- while ( $row = mysql_fetch_array( $result ) )
- {
- $key = "validate-".$row['id'];
- if ( isset( $HTTP_POST_VARS[$key] ) )
- {
- $query = "delete from PREFIX_TABLE"."waiting";
- $query.= " where id = ".$row['id'];
- $query.= ";";
- mysql_query( $query );
- if ( $HTTP_POST_VARS[$key] == "false" )
- {
- // we have to delete the picture and the thumbnail if it exists
- $cat = get_cat_info( $row['cat_id'] );
- unlink( ".".$cat['dir'].$row['file'] );
- if ( $row['tn_ext'] != "" )
- {
- $file = substr ( $row['file'], 0, strrpos ( $row['file'], ".") );
- unlink( ".".$cat['dir']."thumbnail/".$conf['prefix_thumbnail'].$file.".".$row['tn_ext'] );
- }
- }
- }
- }
- }
- //--------------------------------------------------------------- formulaire
- $cat_names = array();
- echo "
- <form action=\"".add_session_id_to_url( "./admin.php?page=waiting" )."\" method=\"post\">
- <table style=\"width:100%;\">
- <tr>
- <th style=\"width:20%;\">".$lang['category']."</th>
- <th style=\"width:20%;\">".$lang['date']."</th>
- <th style=\"width:20%;\">".$lang['file']."</th>
- <th style=\"width:20%;\">".$lang['thumbnail']."</th>
- <th style=\"width:20%;\">".$lang['author']."</th>
- <th style=\"width:1px;\">&nbsp;</th>
- </tr>";
- $query = "select id,cat_id,file,username,mail_address,date,tn_ext";
- $query.= " from PREFIX_TABLE"."waiting";
- $query.= " order by cat_id";
- $query.= ";";
- $result = mysql_query( $query );
- $i = 0;
- while ( $row = mysql_fetch_array( $result ) )
- {
- $style = "";
- if ( $i%2 == 0 )
- {
- $style = "class=\"row2\"";
- }
- if ( !isset( $cat_names[$row['cat_id']] ) )
- {
- $cat = get_cat_info( $row['cat_id'] );
- $cat_names[$row['cat_id']] = array();
- $cat_names[$row['cat_id']]['dir'] = ".".$cat['dir'];
- $cat_names[$row['cat_id']]['display_name'] = get_cat_display_name( $cat['name'], " - ", "font-style:italic;" );
- }
- echo "
- <tr>
- <td $style style=\"white-space:nowrap;\">".$cat_names[$row['cat_id']]['display_name']."</td>
- <td $style style=\"white-space:nowrap;\">".$lang['day'][date( "w", $row['date'] )].date( " j ", $row['date'] ).$lang['month'][date( "n", $row['date'] )].date( " Y G:i", $row['date'] )."</td>
- <td $style style=\"white-space:nowrap;\">
- <a target=\"_blank\" href=\"".$cat_names[$row['cat_id']]['dir'].$row['file']."\">".$row['file']."</td>
- </td>
- <td $style style=\"white-space:nowrap;\">";
- if ( $row['tn_ext'] != "" )
- {
- $file = substr ( $row['file'], 0, strrpos ( $row['file'], ".") );
- echo "<a target=\"_blank\" href=\"".$cat_names[$row['cat_id']]['dir']."thumbnail/".$conf['prefix_thumbnail'].$file.".".$row['tn_ext']."\">".$conf['prefix_thumbnail'].$file.".".$row['tn_ext'];
- }
- else
- {
- echo "&nbsp;";
- }
- echo "
- </td>
- <td $style style=\"white-space:nowrap;\">
- <a href=\"mailto:".$row['mail_address']."\">".$row['username']."</a>
- </td>
- <td $style style=\"white-space:nowrap;\">
- <input type=\"radio\" name=\"validate-".$row['id']."\" value=\"true\" />".$lang['submit']."
- <input type=\"radio\" name=\"validate-".$row['id']."\" value=\"false\" />".$lang['delete']."
- </td>
- </tr>";
- $i++;
- }
- echo "
- <tr>
- <td colspan=\"5\" align=\"center\"><input type=\"submit\" name=\"submit\" value=\"".$lang['submit']."\" style=\"margin:5px;\" /></td>
- </tr>";
- echo "
- </table>
- </form>";
+include_once( './include/isadmin.inc.php' );
+//--------------------------------------------------------------------- updates
+if ( isset( $_POST['submit'] ) )
+{
+ $query = 'SELECT id,cat_id,file,tn_ext';
+ $query.= ' FROM '.PREFIX_TABLE.'waiting';
+ $query.= " WHERE validated = 'false'";
+ $query.= ';';
+ $result = mysql_query( $query );
+ while ( $row = mysql_fetch_array( $result ) )
+ {
+ $key = 'validate-'.$row['id'];
+ if ( isset( $_POST[$key] ) )
+ {
+ if ( $_POST[$key] == 'true' )
+ {
+ // The uploaded element was validated, we have to set the
+ // "validated" field to "true"
+ $query = 'UPDATE '.PREFIX_TABLE.'waiting';
+ $query.= " SET validated = 'true'";
+ $query.= ' WHERE id = '.$row['id'];
+ $query.= ';';
+ mysql_query( $query );
+ }
+ else
+ {
+ // The uploaded element was refused, we have to delete its reference
+ // in the database and to delete the element as well.
+ $query = 'DELETE FROM '.PREFIX_TABLE.'waiting';
+ $query.= ' WHERE id = '.$row['id'];
+ $query.= ';';
+ mysql_query( $query );
+ // deletion of the associated files
+ $cat = get_cat_info( $row['cat_id'] );
+ unlink( '.'.$cat['dir'].$row['file'] );
+ if ( $row['tn_ext'] != '' )
+ {
+ $thumbnail = $conf['prefix_thumbnail'];
+ $thumbnail.= get_filename_wo_extension( $row['file'] );
+ $thumbnail.= '.'.$row['tn_ext'];
+ $url = '.'.$cat['dir'].'thumbnail/'.$thumbnail;
+ unlink( $url );
+ }
+ }
+ }
+ }
+}
+//----------------------------------------------------- template initialization
+$sub = $vtp->Open( '../template/'.$user['template'].'/admin/waiting.vtp' );
+$tpl = array( 'category','date','author','thumbnail','file','delete',
+ 'submit' );
+templatize_array( $tpl, 'lang', $sub );
+//---------------------------------------------------------------- form display
+$cat_names = array();
+$query = 'SELECT id,cat_id,file,username,mail_address,date,tn_ext';
+$query.= ' FROM '.PREFIX_TABLE.'waiting';
+$query.= " WHERE validated = 'false'";
+$query.= ' ORDER BY cat_id';
+$query.= ';';
+$result = mysql_query( $query );
+$i = 0;
+while ( $row = mysql_fetch_array( $result ) )
+{
+ $vtp->addSession( $sub, 'picture' );
+ $vtp->setVar( $sub, 'picture.id', $row['id'] );
+ if ( $i++ % 2 == 0 )
+ {
+ $vtp->setVar( $sub, 'picture.class', 'row2' );
+ }
+ if ( !isset( $cat_names[$row['cat_id']] ) )
+ {
+ $cat = get_cat_info( $row['cat_id'] );
+ $cat_names[$row['cat_id']] = array();
+ $cat_names[$row['cat_id']]['dir'] = '.'.$cat['dir'];
+ $cat_names[$row['cat_id']]['display_name'] =
+ get_cat_display_name( $cat['name'], ' &gt; ', 'font-weight:bold;' );
+ }
+ // category name
+ $vtp->setVar( $sub, 'picture.cat_name',
+ $cat_names[$row['cat_id']]['display_name'] );
+ // date displayed like this (in English ) :
+ // Sunday 15 June 2003 21:29
+ $date = $lang['day'][date( 'w', $row['date'] )]; // Sunday
+ $date.= date( ' j ', $row['date'] ); // 15
+ $date.= $lang['month'][date( 'n', $row['date'] )]; // June
+ $date.= date( ' Y G:i', $row['date'] ); // 2003 21:29
+ $vtp->setVar( $sub, 'picture.date', $date );
+ // file preview link
+ $url = $cat_names[$row['cat_id']]['dir'].$row['file'];
+ $vtp->setVar( $sub, 'picture.preview_url', $url );
+ // file name
+ $vtp->setVar( $sub, 'picture.file', $row['file'] );
+ // is there an existing associated thumnail ?
+ if ( $row['tn_ext'] != '' )
+ {
+ $vtp->addSession( $sub, 'thumbnail' );
+ $thumbnail = $conf['prefix_thumbnail'];
+ $thumbnail.= get_filename_wo_extension( $row['file'] );
+ $thumbnail.= '.'.$row['tn_ext'];
+ $url = $cat_names[$row['cat_id']]['dir'].'thumbnail/'.$thumbnail;
+ $vtp->setVar( $sub, 'thumbnail.preview_url', $url );
+ $vtp->setVar( $sub, 'thumbnail.file', $thumbnail );
+ $vtp->closeSession( $sub, 'thumbnail' );
+ }
+ else
+ {
+ $vtp->addSession( $sub, 'no_thumbnail' );
+ $vtp->closeSession( $sub, 'no_thumbnail' );
+ }
+ // username and associated mail address
+ $vtp->setVar( $sub, 'picture.mail_address', $row['mail_address'] );
+ $vtp->setVar( $sub, 'picture.username', $row['username'] );
+
+ $vtp->closeSession( $sub, 'picture' );
+}
+//----------------------------------------------------------- sending html code
+$vtp->Parse( $handle , 'sub', $sub );
?> \ No newline at end of file