diff options
Diffstat (limited to '')
-rw-r--r-- | admin/admin.php | 4 | ||||
-rw-r--r-- | admin/comments.php | 19 | ||||
-rw-r--r-- | admin/configuration.php | 2 | ||||
-rw-r--r-- | admin/include/functions.php | 148 | ||||
-rw-r--r-- | admin/infos_images.php | 153 | ||||
-rw-r--r-- | admin/picture_modify.php | 270 | ||||
-rw-r--r-- | admin/update.php | 167 | ||||
-rw-r--r-- | admin/waiting.php | 38 | ||||
-rw-r--r-- | category.php | 49 | ||||
-rw-r--r-- | include/functions.inc.php | 26 | ||||
-rw-r--r-- | include/functions_category.inc.php | 95 | ||||
-rw-r--r-- | language/francais.php | 4 | ||||
-rw-r--r-- | picture.php | 79 | ||||
-rw-r--r-- | template/default/admin/configuration.vtp | 2 | ||||
-rw-r--r-- | template/default/admin/infos_image.vtp | 21 | ||||
-rw-r--r-- | template/default/admin/picture_modify.vtp | 101 | ||||
-rw-r--r-- | upload.php | 5 |
17 files changed, 859 insertions, 324 deletions
diff --git a/admin/admin.php b/admin/admin.php index 7ea97fdd7..b9b499cf2 100644 --- a/admin/admin.php +++ b/admin/admin.php @@ -131,6 +131,10 @@ switch ( $_GET['page'] ) $title = $lang['title_comments']; $page_valide = true; break; + case 'picture_modify' : + $title = $lang['title_picmod']; + $page_valide = true; + break; default: $title = $lang['title_default']; break; } diff --git a/admin/comments.php b/admin/comments.php index 127d495f4..dc9e584ac 100644 --- a/admin/comments.php +++ b/admin/comments.php @@ -17,6 +17,7 @@ * * ***************************************************************************/ include_once( './include/isadmin.inc.php' ); +$page['plain_structure'] = get_plain_structure(); //------------------------------------------------------------------- functions function display_pictures( $mysql_result, $maxtime, $validation_box = false ) { @@ -28,7 +29,7 @@ function display_pictures( $mysql_result, $maxtime, $validation_box = false ) $vtp->addSession( $sub, 'picture' ); // 2. for each picture, getting informations for displaying thumbnail and // link to the full size picture - $query = 'SELECT name,file,cat_id,tn_ext'; + $query = 'SELECT name,file,storage_category_id as cat_id,tn_ext'; $query.= ' FROM '.PREFIX_TABLE.'images'; $query.= ' WHERE id = '.$row['image_id']; $query.= ';'; @@ -37,8 +38,9 @@ function display_pictures( $mysql_result, $maxtime, $validation_box = false ) if ( $array_cat_directories[$subrow['cat_id']] == '' ) { + $array_cat_directories[$subrow['cat_id']] = + get_complete_dir( $subrow['cat_id'] ); $cat_result = get_cat_info( $subrow['cat_id'] ); - $array_cat_directories[$subrow['cat_id']] = $cat_result['dir']; $array_cat_site_id[$subrow['cat_id']] = $cat_result['site_id']; $array_cat_names[$subrow['cat_id']] = get_cat_display_name( $cat_result['name'], ' > ', '' ); @@ -83,10 +85,7 @@ function display_pictures( $mysql_result, $maxtime, $validation_box = false ) { $vtp->addSession( $sub, 'comment' ); $vtp->setVar( $sub, 'comment.author', $subrow['author'] ); - $displayed_date = $lang['day'][date( "w", $subrow['date'] )]; - $displayed_date.= date( " j ", $subrow['date'] ); - $displayed_date.= $lang['month'][date( "n", $subrow['date'] )]; - $displayed_date.= date( " Y G:i", $subrow['date'] ); + $displayed_date = format_date( $subrow['date'], 'unix', true ); $vtp->setVar( $sub, 'comment.date', $displayed_date ); $vtp->setVar( $sub, 'comment.content', nl2br( $subrow['content'] ) ); $vtp->addSession( $sub, 'delete' ); @@ -183,11 +182,9 @@ if ( isset( $_GET['last_days'] ) ) $query = 'SELECT DISTINCT(image_id) as image_id'; $query.= ' FROM '.PREFIX_TABLE.'comments'; $query.= ', '.PREFIX_TABLE.'images as images'; - $query.= ', '.PREFIX_TABLE.'categories'; $query.= ' WHERE image_id = images.id'; - $query.= ' AND cat_id = images.cat_id'; $query.= ' AND date > '.$maxtime; - $query.= ' ORDER BY cat_id ASC,date_available DESC'; + $query.= ' ORDER BY date_available DESC'; $query.= ';'; $result = mysql_query( $query ); display_pictures( $result, $maxtime ); @@ -221,11 +218,9 @@ if ( isset( $_GET['show_unvalidated'] ) ) $query = 'SELECT DISTINCT(image_id) as image_id'; $query.= ' FROM '.PREFIX_TABLE.'comments as comments'; $query.= ', '.PREFIX_TABLE.'images as images'; - $query.= ', '.PREFIX_TABLE.'categories'; $query.= ' WHERE image_id = images.id'; - $query.= ' AND cat_id = images.cat_id'; $query.= " AND comments.validated = 'false'"; - $query.= ' ORDER BY cat_id ASC,date_available DESC'; + $query.= ' ORDER BY date_available DESC'; $query.= ';'; $result = mysql_query( $query ); display_pictures( $result, 0, true ); diff --git a/admin/configuration.php b/admin/configuration.php index de2cc6f26..d2cdda12c 100644 --- a/admin/configuration.php +++ b/admin/configuration.php @@ -259,7 +259,7 @@ $sub = $vtp->Open( '../template/'.$user['template'].'/admin/configuration.vtp' ); $tpl = array( 'conf_confirmation','remote_site','delete', - 'conf_remote_site_delete_info','submit' ); + 'conf_remote_site_delete_info','submit','errors_title' ); templatize_array( $tpl, 'lang', $sub ); //-------------------------------------------------------------- errors display if ( sizeof( $error ) != 0 ) diff --git a/admin/include/functions.php b/admin/include/functions.php index dfb4aab90..7115f163b 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -94,6 +94,7 @@ function delete_site( $id ) // The function delete_category deletes the category identified by the $id // It also deletes (in the database) : // - all the images of the images (thanks to delete_image, see further) +// - all the links between images and this category // - all the restrictions linked to the category // The function works recursively. function delete_category( $id ) @@ -101,7 +102,7 @@ function delete_category( $id ) // destruction of all the related images $query = 'SELECT id'; $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' WHERE cat_id = '.$id; + $query.= ' WHERE storage_category_id = '.$id; $query.= ';'; $result = mysql_query( $query ); while ( $row = mysql_fetch_array( $result ) ) @@ -109,6 +110,12 @@ function delete_category( $id ) delete_image( $row['id'] ); } + // destruction of the links between images and this category + $query = 'DELETE FROM '.PREFIX_TABLE.'image_category'; + $query.= ' WHERE category_id = '.$id; + $query.= ';'; + mysql_query( $query ); + // destruction of the access linked to the category $query = 'DELETE FROM '.PREFIX_TABLE.'user_access'; $query.= ' WHERE cat_id = '.$id; @@ -140,6 +147,7 @@ function delete_category( $id ) // The function delete_image deletes the image identified by the $id // It also deletes (in the database) : // - all the comments related to the image +// - all the links between categories and this image // - all the favorites associated to the image function delete_image( $id ) { @@ -150,7 +158,13 @@ function delete_image( $id ) $query.= ' WHERE image_id = '.$id; $query.= ';'; mysql_query( $query ); - + + // destruction of the links between images and this category + $query = 'DELETE FROM '.PREFIX_TABLE.'image_category'; + $query.= ' WHERE image_id = '.$id; + $query.= ';'; + mysql_query( $query ); + // destruction of the favorites associated with the picture $query = 'DELETE FROM '.PREFIX_TABLE.'favorites'; $query.= ' WHERE image_id = '.$id; @@ -244,15 +258,28 @@ function check_favorites( $user_id ) $restricted_cat = get_all_restrictions( $user_id, $status ); // retrieving all the favorites for this user and comparing their // categories to the restricted categories - $query = 'SELECT image_id, cat_id'; - $query.= ' FROM '.PREFIX_TABLE.'favorites, '.PREFIX_TABLE.'images'; + $query = 'SELECT image_id'; + $query.= ' FROM '.PREFIX_TABLE.'favorites'; $query.= ' WHERE user_id = '.$user_id; - $query.= ' AND id = image_id'; $query.= ';'; $result = mysql_query ( $query ); while ( $row = mysql_fetch_array( $result ) ) { - if ( in_array( $row['cat_id'], $restricted_cat ) ) + // for each picture, we have to check all the categories it belongs + // to. Indeed if a picture belongs to category_1 and category_2 and that + // category_2 is not restricted to the user, he can have the picture as + // favorite. + $query = 'SELECT DISTINCT(category_id) as category_id'; + $query.= ' FROM '.PREFIX_TABLE.'image_category'; + $query.= ' WHERE image_id = '.$row['image_id']; + $query.= ';'; + $picture_result = mysql_query( $query ); + $picture_cat = array(); + while ( $picture_row = mysql_fetch_array( $picture_result ) ) + { + array_push( $picture_cat, $picture_row['category_id'] ); + } + if ( count( array_diff( $picture_cat, $restricted_cat ) ) > 0 ) { $query = 'DELETE FROM '.PREFIX_TABLE.'favorites'; $query.= ' WHERE image_id = '.$row['image_id']; @@ -262,4 +289,113 @@ function check_favorites( $user_id ) } } } + +// update_category updates calculated informations about a category : +// date_last and nb_images +function update_category( $id = 'all' ) +{ + if ( $id == 'all' ) + { + $query = 'SELECT id'; + $query.= ' FROM '.PREFIX_TABLE.'categories'; + $query.= ';'; + $result = mysql_query( $query ); + while ( $row = mysql_fetch_array( $result ) ) + { + // recursive call + update_category( $row['id'] ); + } + } + else if ( is_numeric( $id ) ) + { + // updating the number of pictures + $query = 'SELECT COUNT(*) as nb_images'; + $query.= ' FROM '.PREFIX_TABLE.'image_category'; + $query.= ' WHERE category_id = '.$id; + $query.= ';'; + $row = mysql_fetch_array( mysql_query( $query ) ); + $query = 'UPDATE '.PREFIX_TABLE.'categories'; + $query.= ' SET nb_images = '.$row['nb_images']; + $query.= ' WHERE id = '.$id; + $query.= ';'; + mysql_query( $query ); + // updating the date_last + $query = 'SELECT date_available'; + $query.= ' FROM '.PREFIX_TABLE.'images'; + $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; + $query.= ' WHERE category_id = '.$id; + $query.= ' ORDER BY date_available DESC'; + $query.= ' LIMIT 0,1'; + $query.= ';'; + $row = mysql_fetch_array( mysql_query( $query ) ); + $query = 'UPDATE '.PREFIX_TABLE.'categories'; + $query.= " SET date_last = '".$row['date_available']."'"; + $query.= ' WHERE id = '.$id; + $query.= ';'; + mysql_query( $query ); + } +} + +function check_date_format( $date ) +{ + // date arrives at this format : DD/MM/YYYY + list($day,$month,$year) = explode( '/', $date ); + return checkdate ( $month, $day, $year ); +} + +function date_convert( $date ) +{ + // date arrives at this format : DD/MM/YYYY + // It must be transformed in YYYY-MM-DD + list($day,$month,$year) = explode( '/', $date ); + return $year.'-'.$month.'-'.$day; +} + +function date_convert_back( $date ) +{ + // date arrives at this format : YYYY-MM-DD + // It must be transformed in DD/MM/YYYY + if ( $date != '' ) + { + list($year,$month,$day) = explode( '-', $date ); + return $day.'/'.$month.'/'.$year; + } + else + { + return ''; + } +} + +// get_keywords returns an array with relevant keywords found in the string +// given in argument. Keywords must be separated by comma in this string. +// keywords must : +// - be longer or equal to 3 characters +// - not contain ', " or blank characters +// - unique in the string ("test,test" -> "test") +function get_keywords( $keywords_string ) +{ + $keywords = array(); + + $candidates = explode( ',', $keywords_string ); + foreach ( $candidates as $candidate ) { + if ( strlen($candidate) >= 3 and !preg_match( '/(\'|"|\s)/', $candidate ) ) + array_push( $keywords, $candidate ); + } + + return array_unique( $keywords ); +} + +function display_categories( $categories, $indent ) +{ + global $vtp,$sub; + + foreach ( $categories as $category ) { + $vtp->addSession( $sub, 'associate_cat' ); + $vtp->setVar( $sub, 'associate_cat.value', $category['id'] ); + $content = $indent.'- '.$category['name']; + $vtp->setVar( $sub, 'associate_cat.content', $content ); + $vtp->closeSession( $sub, 'associate_cat' ); + display_categories( $category['subcats'], $indent.str_repeat(' ',3) ); + } +} ?>
\ No newline at end of file diff --git a/admin/infos_images.php b/admin/infos_images.php index 9a8b77939..8b3392da0 100644 --- a/admin/infos_images.php +++ b/admin/infos_images.php @@ -19,64 +19,15 @@ include_once( './include/isadmin.inc.php' ); include_once( '../template/'.$user['template'].'/htmlfunctions.inc.php' ); -//------------------------------------------------------------------- functions -function check_date_format( $date ) -{ - // date arrives at this format : DD/MM/YYYY - list($day,$month,$year) = explode( '/', $date ); - return checkdate ( $month, $day, $year ); -} - -function date_convert( $date ) -{ - // date arrives at this format : DD/MM/YYYY - // It must be transformed in YYYY-MM-DD - list($day,$month,$year) = explode( '/', $date ); - return $year.'-'.$month.'-'.$day; -} - -function date_convert_back( $date ) -{ - // date arrives at this format : YYYY-MM-DD - // It must be transformed in DD/MM/YYYY - if ( $date != '' ) - { - list($year,$month,$day) = explode( '-', $date ); - return $day.'/'.$month.'/'.$year; - } - else - { - return ''; - } -} - -// get_keywords returns an array with relevant keywords found in the string -// given in argument. Keywords must be separated by comma in this string. -// keywords must : -// - be longer or equal to 3 characters -// - not contain ', " or blank characters -// - unique in the string ("test,test" -> "test") -function get_keywords( $keywords_string ) -{ - $keywords = array(); - - $candidates = explode( ',', $keywords_string ); - foreach ( $candidates as $candidate ) { - if ( strlen($candidate) >= 3 and !preg_match( '/(\'|"|\s)/', $candidate ) ) - array_push( $keywords, $candidate ); - } - - return array_unique( $keywords ); -} //-------------------------------------------------------------- initialization check_cat_id( $_GET['cat_id'] ); - if ( isset( $page['cat'] ) ) { //--------------------------------------------------- update individual options $query = 'SELECT id,file'; $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' WHERE cat_id = '.$page['cat']; + $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; + $query.= ' WHERE category_id = '.$page['cat']; $query.= ';'; $result = mysql_query( $query ); $i = 1; @@ -121,53 +72,77 @@ if ( isset( $page['cat'] ) ) $query.= 'NULL'; else { - $query.= '"'; + $query.= "'"; foreach ( $keywords_array as $i => $keyword ) { if ( $i > 0 ) $query.= ','; $query.= $keyword; } - $query.= '"'; + $query.= "'"; } $query.= ' WHERE id = '.$row['id']; $query.= ';'; mysql_query( $query ); } + // add link to another category + if ( $_POST['check-'.$row['id']] == 1 ) + { + $query = 'INSERT INTO '.PREFIX_TABLE.'image_category'; + $query.= ' (image_id,category_id) VALUES'; + $query.= ' ('.$row['id'].','.$_POST['associate'].')'; + $query.= ';'; + mysql_query( $query ); + } } + update_category( $_POST['associate'] ); //------------------------------------------------------ update general options if ( $_POST['use_common_author'] == 1 ) { - $query = 'UPDATE '.PREFIX_TABLE.'images'; - if ( $_POST['author_cat'] == '' ) - { - $query.= ' SET author = NULL'; - } - else + $query = 'SELECT image_id'; + $query.= ' FROM '.PREFIX_TABLE.'image_category'; + $query.= ' WHERE category_id = '.$page['cat']; + $result = mysql_query( $query ); + while ( $row = mysql_fetch_array( $result ) ) { - $query.= ' SET author = '; - $query.= "'".htmlentities( $_POST['author_cat'], ENT_QUOTES )."'"; + $query = 'UPDATE '.PREFIX_TABLE.'images'; + if ( $_POST['author_cat'] == '' ) + { + $query.= ' SET author = NULL'; + } + else + { + $query.= ' SET author = '; + $query.= "'".htmlentities( $_POST['author_cat'], ENT_QUOTES )."'"; + } + $query.= ' WHERE id = '.$row['image_id']; + $query.= ';'; + mysql_query( $query ); } - $query.= ' WHERE cat_id = '.$page['cat']; - $query.= ';'; - mysql_query( $query ); } if ( $_POST['use_common_date_creation'] == 1 ) { if ( check_date_format( $_POST['date_creation_cat'] ) ) { $date = date_convert( $_POST['date_creation_cat'] ); - $query = 'UPDATE '.PREFIX_TABLE.'images'; - if ( $_POST['date_creation_cat'] == '' ) - { - $query.= ' SET date_creation = NULL'; - } - else + $query = 'SELECT image_id'; + $query.= ' FROM '.PREFIX_TABLE.'image_category'; + $query.= ' WHERE category_id = '.$page['cat']; + $result = mysql_query( $query ); + while ( $row = mysql_fetch_array( $result ) ) { - $query.= " SET date_creation = '".$date."'"; + $query = 'UPDATE '.PREFIX_TABLE.'images'; + if ( $_POST['date_creation_cat'] == '' ) + { + $query.= ' SET date_creation = NULL'; + } + else + { + $query.= " SET date_creation = '".$date."'"; + } + $query.= ' WHERE id = '.$row['image_id']; + $query.= ';'; + mysql_query( $query ); } - $query.= ' WHERE cat_id = '.$page['cat']; - $query.= ';'; - mysql_query( $query ); } else { @@ -178,7 +153,8 @@ if ( isset( $page['cat'] ) ) { $query = 'SELECT id,keywords'; $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' WHERE cat_id = '.$page['cat']; + $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; + $query.= ' WHERE category_id = '.$page['cat']; $query.= ';'; $result = mysql_query( $query ); while ( $row = mysql_fetch_array( $result ) ) @@ -241,11 +217,9 @@ if ( isset( $page['cat'] ) ) floor( $_GET['num'] / $page['nb_image_page'] ) * $page['nb_image_page']; } // retrieving category information + $page['plain_structure'] = get_plain_structure(); $result = get_cat_info( $page['cat'] ); - $cat['local_dir'] = $result['local_dir']; - $cat['dir'] = $result['dir']; $cat['name'] = $result['name']; - $cat['site_id'] = $result['site_id']; $cat['nb_images'] = $result['nb_images']; //----------------------------------------------------- template initialization $sub = $vtp->Open('../template/'.$user['template'].'/admin/infos_image.vtp'); @@ -254,8 +228,9 @@ if ( isset( $page['cat'] ) ) 'infoimage_title','infoimage_comment', 'infoimage_creation_date','keywords', 'infoimage_addtoall','infoimage_removefromall', - 'infoimage_keyword_separation' ); + 'infoimage_keyword_separation','infoimage_associate' ); templatize_array( $tpl, 'lang', $sub ); + $vtp->setGlobalVar( $sub, 'user_template', $user['template'] ); //------------------------------------------------------------------------ form $url = './admin.php?page=infos_images&cat_id='.$page['cat']; $url.= '&start='.$page['start']; @@ -266,9 +241,13 @@ if ( isset( $page['cat'] ) ) $cat_name = get_cat_display_name( $cat['name'], ' - ', 'font-style:italic;'); $vtp->setVar( $sub, 'cat_name', $cat_name ); + $array_cat_directories = array(); + $query = 'SELECT id,file,comment,author,tn_ext,name,date_creation,keywords'; + $query.= ',storage_category_id,category_id'; $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' WHERE cat_id = '.$page['cat']; + $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; + $query.= ' WHERE category_id = '.$page['cat']; $query.= $conf['order_by']; $query.= ' LIMIT '.$page['start'].','.$page['nb_image_page']; $query.= ';'; @@ -287,13 +266,15 @@ if ( isset( $page['cat'] ) ) $file = get_filename_wo_extension( $row['file'] ); $vtp->setVar( $sub, 'picture.default_name', $file ); // creating url to thumbnail - if ( $cat['site_id'] == 1 ) - { - $thumbnail_url = '../galleries/'.$cat['local_dir'].'/'; + if ( $array_cat_directories[$row['storage_category_id']] == '' ) + { + $array_cat_directories[$row['storage_category_id']] = + get_complete_dir( $row['storage_category_id'] ); } - else + $thumbnail_url = $array_cat_directories[$row['storage_category_id']]; + if ( preg_match( '/^\.\/galleries/', $thumbnail_url ) ) { - $thumbnail_url = $cat['dir']; + $thumbnail_url = '.'.$thumbnail_url; } $thumbnail_url.= 'thumbnail/'; $thumbnail_url.= $conf['prefix_thumbnail'].$file.".".$row['tn_ext']; @@ -302,6 +283,8 @@ if ( isset( $page['cat'] ) ) $vtp->setVar( $sub, 'picture.url', add_session_id( $url ) ); $vtp->closeSession( $sub, 'picture' ); } + $structure = create_structure( '', array() ); + display_categories( $structure, ' ' ); } //----------------------------------------------------------- sending html code $vtp->Parse( $handle , 'sub', $sub ); diff --git a/admin/picture_modify.php b/admin/picture_modify.php new file mode 100644 index 000000000..804cc8e2c --- /dev/null +++ b/admin/picture_modify.php @@ -0,0 +1,270 @@ +<?php +/*************************************************************************** + * picture_modify.php * + * ------------------ * + * application : PhpWebGallery 1.3 <http://phpwebgallery.net> * + * author : Pierrick LE GALL <pierrick@z0rglub.com> * + * * + * $Id$ + * * + ***************************************************************************/ + +/*************************************************************************** + * * + * 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' ); +//----------------------------------------- categories structure initialization +$page['plain_structure'] = get_plain_structure(); +//--------------------------------------------------------- update informations +$errors = array(); +// first, we verify whether there is a mistake on the given creation date +if ( isset( $_POST['creation_date'] ) and $_POST['creation_date'] != '' ) +{ + if ( !check_date_format( $_POST['creation_date'] ) ) + array_push( $errors, $lang['err_date'] ); +} +if ( isset( $_POST['submit'] ) ) +{ + $query = 'UPDATE '.PREFIX_TABLE.'images'; + + $query.= ' SET name = '; + if ( $_POST['name'] == '' ) + $query.= 'NULL'; + else + $query.= "'".htmlentities( $_POST['name'], ENT_QUOTES )."'"; + + $query.= ', author = '; + if ( $_POST['author'] == '' ) + $query.= 'NULL'; + else + $query.= "'".htmlentities($_POST['author'],ENT_QUOTES)."'"; + + $query.= ', comment = '; + if ( $_POST['comment'] == '' ) + $query.= 'NULL'; + else + $query.= "'".htmlentities($_POST['comment'],ENT_QUOTES)."'"; + + $query.= ', date_creation = '; + if ( check_date_format( $_POST['creation_date'] ) ) + $query.= "'".date_convert( $_POST['creation_date'] )."'"; + else if ( $_POST['creation_date'] == '' ) + $query.= 'NULL'; + + $query.= ', keywords = '; + $keywords_array = get_keywords( $_POST['keywords'] ); + if ( count( $keywords_array ) == 0 ) + $query.= 'NULL'; + else + { + $query.= "'"; + foreach ( $keywords_array as $i => $keyword ) { + if ( $i > 0 ) $query.= ','; + $query.= $keyword; + } + $query.= "'"; + } + + $query.= ' WHERE id = '.$_GET['image_id']; + $query.= ';'; + mysql_query( $query ); + // associate with a new category ? + if ( $_POST['associate'] != '-1' ) + { + $query = 'INSERT INTO '.PREFIX_TABLE.'image_category'; + $query.= ' (category_id,image_id) VALUES '; + $query.= '('.$_POST['associate'].','.$_GET['image_id'].')'; + $query.= ';'; + mysql_query( $query); + update_category( $_POST['associate'] ); + } + // dissociate any category ? + // retrieving all the linked categories + $query = 'SELECT DISTINCT(category_id) as category_id'; + $query.= ' FROM '.PREFIX_TABLE.'image_category'; + $query.= ' WHERE image_id = '.$_GET['image_id']; + $query.= ';'; + $result = mysql_query( $query ); + while ( $row = mysql_fetch_array( $result ) ) + { + if ( $_POST['dissociate-'.$row['category_id']] == 1 ) + { + $query = 'DELETE FROM '.PREFIX_TABLE.'image_category'; + $query.= ' WHERE image_id = '.$_GET['image_id']; + $query.= ' AND category_id = '.$row['category_id']; + $query.= ';'; + mysql_query( $query ); + update_category( $row['category_id'] ); + } + } +} +//----------------------------------------------------- template initialization +$sub = $vtp->Open( + '../template/'.$user['template'].'/admin/picture_modify.vtp' ); + +$tpl = array( 'submit','errors_title','picmod_update','picmod_back', + 'default','file','size','filesize','registration_date', + 'author','creation_date','keywords','comment', 'upload_name', + 'dissociate','categories','infoimage_associate', + 'cat_image_info' ); +templatize_array( $tpl, 'lang', $sub ); +$vtp->setGlobalVar( $sub, 'user_template', $user['template'] ); +//-------------------------------------------------------------- errors display +if ( count( $errors ) != 0 ) +{ + $vtp->addSession( $sub, 'errors' ); + foreach ( $errors as $error ) { + $vtp->addSession( $sub, 'li' ); + $vtp->setVar( $sub, 'li.content', $error ); + $vtp->closeSession( $sub, 'li' ); + } + $vtp->closeSession( $sub, 'errors' ); +} +//-------------------------------------------- displaying informations and form +$action = './admin.php?'.$_SERVER['QUERY_STRING']; +$vtp->setVar( $sub, 'form_action', $action ); +// retrieving direct information about picture +$query = 'SELECT file,date_available,date_creation,tn_ext,name,filesize'; +$query.= ',width,height,author,comment,keywords,storage_category_id'; +$query.= ' FROM '.PREFIX_TABLE.'images'; +$query.= ' WHERE id = '.$_GET['image_id']; +$query.= ';'; +$row = mysql_fetch_array( mysql_query( $query ) ); +// picture title +if ( $row['name'] == '' ) +{ + $title = str_replace( '_',' ',get_filename_wo_extension($row['file']) ); +} +else +{ + $title = $row['name']; +} +$vtp->setVar( $sub, 'title', $title ); +$vtp->setVar( $sub, 'f_file', $row['file'] ); +$vtp->setVar( $sub, 'f_size', $row['width'].' * '.$row['height'] ); +$vtp->setVar( $sub, 'f_filesize', $row['filesize'].' KB' ); +$vtp->setVar( $sub, 'f_registration_date',format_date($row['date_available'])); +$default_name = str_replace( '_',' ',get_filename_wo_extension($row['file']) ); +$vtp->setVar( $sub, 'default_name', $default_name ); +// if this form is displayed after an unsucceeded submit, we have to display +// the values filled by the user (wright or wrong). +if ( count( $errors ) > 0 ) +{ + $name = $_POST['name']; + $author = $_POST['author']; + $creation_date = $_POST['creation_date']; + $keywords = $_POST['keywords']; + $comment = $_POST['comment']; +} +else +{ + $name = $row['name']; + $author = $row['author']; + $creation_date = date_convert_back( $row['date_creation'] ); + $keywords = $row['keywords']; + $comment = $row['comment']; +} +$vtp->setVar( $sub, 'f_name', $name ); +$vtp->setVar( $sub, 'f_author', $author ); +$vtp->setVar( $sub, 'f_creation_date', $creation_date ); +$vtp->setVar( $sub, 'f_keywords', $keywords ); +$vtp->setVar( $sub, 'f_comment', $comment ); +// retrieving directory where picture is stored (for displaying the +// thumbnail) +$thumbnail_url = get_complete_dir( $row['storage_category_id'] ); +$result = get_cat_info( $row['storage_category_id'] ); +$cat_name = get_cat_display_name( $result['name'], ' > ', '' ); +$vtp->setVar( $sub, 'dir', $cat_name ); +if ( $result['site_id'] == 1 ) $thumbnail_url = '.'.$thumbnail_url; +$file_wo_ext = get_filename_wo_extension( $row['file'] ); +$thumbnail_url.= '/thumbnail/'; +$thumbnail_url.= $conf['prefix_thumbnail'].$file_wo_ext.'.'.$row['tn_ext']; +$vtp->setVar( $sub, 'thumbnail_url', $thumbnail_url ); +// storage category is linked by default +$vtp->addSession( $sub, 'linked_category' ); +$vtp->setVar( $sub, 'linked_category.name', $cat_name ); +$url = '../picture.php?image_id='.$_GET['image_id']; +$url.= '&cat='.$row['storage_category_id']; +$vtp->setVar( $sub, 'linked_category.url',add_session_id( $url)); +$url = './admin.php?page=infos_images&cat_id='.$row['storage_category_id']; +$vtp->setVar( $sub, 'linked_category.infos_images_link',add_session_id( $url)); +if ( $result['status'] == 'private' ) +{ + $private_string = '<span style="color:red;font-weight:bold;">'; + $private_string.= $lang['private'].'</span>'; + $vtp->setVar( $sub, 'linked_category.private', $private_string ); +} +if ( !$result['visible'] ) +{ + $invisible_string = '<span style="color:red;">'; + $invisible_string.= $lang['cat_invisible'].'</span>'; + $vtp->setVar( $sub, 'linked_category.invisible', $invisible_string ); +} +$vtp->closeSession( $sub, 'linked_category' ); +// retrieving all the linked categories +$query = 'SELECT DISTINCT(category_id) as category_id,status,visible'; +$query.= ' FROM '.PREFIX_TABLE.'image_category'; +$query.= ','.PREFIX_TABLE.'categories'; +$query.= ' WHERE image_id = '.$_GET['image_id']; +$query.= ' AND category_id != '.$row['storage_category_id']; +$query.= ' AND category_id = id'; +$query.= ';'; +$result = mysql_query( $query ); +while ( $row = mysql_fetch_array( $result ) ) +{ + $vtp->addSession( $sub, 'linked_category' ); + + $vtp->addSession( $sub, 'checkbox' ); + $vtp->setVar( $sub, 'checkbox.id', $row['category_id'] ); + $vtp->closeSession( $sub, 'checkbox' ); + + $cat_infos = get_cat_info( $row['category_id'] ); + $cat_name = get_cat_display_name( $cat_infos['name'], ' > ', '' ); + $vtp->setVar( $sub, 'linked_category.name', $cat_name ); + + $url = '../picture.php?image_id='.$_GET['image_id']; + $url.= '&cat='.$row['category_id']; + $vtp->setVar( $sub, 'linked_category.url',add_session_id( $url)); + + $url = './admin.php?page=infos_images&cat_id='.$row['category_id']; + $vtp->setVar( $sub, 'linked_category.infos_images_link', + add_session_id( $url)); + + if ( $row['status'] == 'private' ) + { + $private_string = '<span style="color:red;font-weight:bold;">'; + $private_string.= $lang['private'].'</span>'; + $vtp->setVar( $sub, 'linked_category.private', $private_string ); + } + + if ( !get_boolean( $row['visible'] ) ) + { + $invisible_string = '<span style="color:red;">'; + $invisible_string.= $lang['cat_invisible'].'</span>'; + $vtp->setVar( $sub, 'linked_category.invisible', $invisible_string ); + } + + $vtp->closeSession( $sub, 'linked_category' ); +} +// if there are linked category other than the storage category, we show +// propose the dissociate text +if ( mysql_num_rows( $result ) > 0 ) +{ + $vtp->addSession( $sub, 'dissociate' ); + $vtp->closeSession( $sub, 'dissociate' ); +} +// associate to another category ? +$vtp->addSession( $sub, 'associate_cat' ); +$vtp->setVar( $sub, 'associate_cat.value', '-1' ); +$vtp->setVar( $sub, 'associate_cat.content', '' ); +$vtp->closeSession( $sub, 'associate_cat' ); +$structure = create_structure( '', array() ); +display_categories( $structure, ' ' ); +//----------------------------------------------------------- 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 9e6b07e7d..fb2ea3b4a 100644 --- a/admin/update.php +++ b/admin/update.php @@ -30,24 +30,24 @@ function insert_local_category( $cat_id ) if ( is_numeric( $cat_id ) ) { + $cat_directory.= '/'.get_local_dir( $cat_id ); $result = get_cat_info( $cat_id ); - $cat_directory.= '/'.$result['local_dir']; // 1. display the category name to update $src = '../template/'.$user['template'].'/admin/images/puce.gif'; $output = '<img src="'.$src.'" alt=">" />'; $output.= '<span style="font-weight:bold;">'.$result['name'][0].'</span>'; - $output.= ' [ '.$result['last_dir'].' ]'; + $output.= ' [ '.$result['dir'].' ]'; $output.= '<div class="retrait">'; - + // 2. we search pictures of the category only if the update is for all // or a cat_id is specified if ( isset( $page['cat'] ) or $_GET['update'] == 'all' ) { $output.= insert_local_image( $cat_directory, $cat_id ); - update_cat_info( $cat_id ); + update_category( $cat_id ); } } - + // 3. we have to remove the categories of the database not present anymore $query = 'SELECT id'; $query.= ' FROM '.PREFIX_TABLE.'categories'; @@ -65,17 +65,10 @@ function insert_local_category( $cat_id ) while ( $row = mysql_fetch_array( $result ) ) { // retrieving the directory - $rep = '../galleries'; - $resultat = get_cat_info( $row['id'] ); - $rep.= '/'.$resultat['local_dir']; - + $rep = '../galleries/'.get_local_dir( $row['id'] ); // is the directory present ? - if ( !is_dir( $rep ) ) - { - delete_category( $row['id'] ); - } + if ( !is_dir( $rep ) ) delete_category( $row['id'] ); } - // 4. retrieving the sub-directories $sub_rep = array(); $i = 0; @@ -93,7 +86,6 @@ function insert_local_category( $cat_id ) } } } - for ( $i = 0; $i < sizeof( $sub_rep ); $i++ ) { // 5. Is the category already existing ? we create a subcat if not @@ -119,14 +111,8 @@ function insert_local_category( $cat_id ) $query = 'INSERT INTO '.PREFIX_TABLE.'categories'; $query.= ' (dir,site_id,id_uppercat) VALUES'; $query.= " ('".$sub_rep[$i]."','".$site_id."'"; - if ( !is_numeric( $cat_id ) ) - { - $query.= ',NULL'; - } - else - { - $query.= ",'".$cat_id."'"; - } + if ( !is_numeric( $cat_id ) ) $query.= ',NULL'; + else $query.= ",'".$cat_id."'"; $query.= ');'; mysql_query( $query ); $category_id = mysql_insert_id(); @@ -158,7 +144,7 @@ function insert_local_image( $rep, $category_id ) // - don't have the associated thumbnail available anymore $query = 'SELECT id,file,tn_ext'; $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' WHERE cat_id = '.$category_id; + $query.= ' WHERE storage_category_id = '.$category_id; $query.= ';'; $result = mysql_query( $query ); while ( $row = mysql_fetch_array( $result ) ) @@ -199,7 +185,7 @@ function insert_local_image( $rep, $category_id ) // is the picture waiting for validation by an administrator ? $query = 'SELECT id,validated,infos'; $query.= ' FROM '.PREFIX_TABLE.'waiting'; - $query.= ' WHERE cat_id = '.$category_id; + $query.= ' WHERE category_id = '.$category_id; $query.= " AND file = '".$file."'"; $query.= ';'; $result = mysql_query( $query ); @@ -211,7 +197,7 @@ function insert_local_image( $rep, $category_id ) // is the picture already in the database ? $query = 'SELECT id'; $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' WHERE cat_id = '.$category_id; + $query.= ' WHERE storage_category_id = '.$category_id; $query.= " AND file = '".$file."'"; $query.= ';'; $result = mysql_query( $query ); @@ -266,7 +252,8 @@ 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,storage_category_id,date_available,tn_ext'; + $query.= ',filesize,width,height'; $query.= ',name,author,comment,date_creation)'; $query.= ' VALUES '; $query.= "('".$picture['file']."','".$category_id."'"; @@ -285,7 +272,20 @@ function insert_local_image( $rep, $category_id ) $query.= ');'; mysql_query( $query ); $count_new++; - + // retrieving the id of newly inserted picture + $query = 'SELECT id'; + $query.= ' FROM '.PREFIX_TABLE.'images'; + $query.= ' WHERE storage_category_id = '.$category_id; + $query.= " AND file = '".$picture['file']."'"; + $query.= ';'; + list( $image_id ) = mysql_fetch_array( mysql_query( $query ) ); + // adding the link between this picture and its storage category + $query = 'INSERT INTO '.PREFIX_TABLE.'image_category'; + $query.= ' (image_id,category_id) VALUES '; + $query.= ' ('.$image_id.','.$category_id.')'; + $query.= ';'; + mysql_query( $query ); + $output.= $picture['file']; $output.= ' <span style="font-weight:bold;">'; $output.= $lang['update_research_added'].'</span>'; @@ -294,35 +294,6 @@ function insert_local_image( $rep, $category_id ) } return $output; } - -// The function "update_cat_info" updates the information about the last -// online image and the number of images in the category -function update_cat_info( $category_id ) -{ - $query = 'SELECT date_available'; - $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' WHERE cat_id = '.$category_id; - $query.= ' ORDER BY date_available DESC'; - $query.= ' LIMIT 0,1'; - $query.= ';'; - $result = mysql_query( $query ); - $row = mysql_fetch_array( $result ); - $date_last = $row['date_available']; - - $query = 'SELECT COUNT(*) as nb_images'; - $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' WHERE cat_id = '.$category_id; - $result = mysql_query( $query ); - $row = mysql_fetch_array( $result ); - $nb_images = $row['nb_images']; - - $query = 'UPDATE '.PREFIX_TABLE.'categories'; - $query.= " SET date_last = '".$date_last."'"; - $query.= ', nb_images = '.$nb_images; - $query.= ' where id = '.$category_id; - $query.= ';'; - mysql_query( $query ); -} // remote_images verifies if a file named "listing.xml" is present is the // admin directory. If it is the case, creation of a remote picture storage @@ -341,16 +312,16 @@ function remote_images() $vtp->setVar( $sub, 'remote_update.url', $url ); // 2. is the site already existing ? - $query = 'select id'; - $query.= ' from '.PREFIX_TABLE.'sites'; - $query.= " where galleries_url = '".$url."'"; + $query = 'SELECT id'; + $query.= ' FROM '.PREFIX_TABLE.'sites'; + $query.= " WHERE galleries_url = '".$url."'"; $query.= ';'; $result = mysql_query( $query ); if ( mysql_num_rows($result ) == 0 ) { // we have to register this site in the database - $query = 'insert into '.PREFIX_TABLE.'sites'; - $query.= " (galleries_url) values ('".$url."')"; + $query = 'INSERT INTO '.PREFIX_TABLE.'sites'; + $query.= " (galleries_url) VALUES ('".$url."')"; $query.= ';'; mysql_query( $query ); $site_id = mysql_insert_id(); @@ -390,25 +361,25 @@ function insert_remote_category( $xml_dir, $site_id, $id_uppercat, $level ) $output.= '<span style="font-weight:bold;">'.$name.'</span>'; $output.= '<div class="retrait">'; - $query = 'select id'; - $query.= ' from '.PREFIX_TABLE.'categories'; - $query.= ' where site_id = '.$site_id; - $query.= " and dir = '".$name."'"; + $query = 'SELECT id'; + $query.= ' FROM '.PREFIX_TABLE.'categories'; + $query.= ' WHERE site_id = '.$site_id; + $query.= " AND dir = '".$name."'"; if ( $id_uppercat == 'NULL' ) { - $query.= ' and id_uppercat is NULL'; + $query.= ' AND id_uppercat IS NULL'; } else { - $query.= ' and id_uppercat = '.$id_uppercat; + $query.= ' AND id_uppercat = '.$id_uppercat; } $query.= ';'; $result = mysql_query( $query ); if ( mysql_num_rows( $result ) == 0 ) { // we have to create the category - $query = 'insert into '.PREFIX_TABLE.'categories'; - $query.= " (dir,site_id,id_uppercat) values ('".$name."',".$site_id; + $query = 'INSERT INTO '.PREFIX_TABLE.'categories'; + $query.= " (dir,site_id,id_uppercat) VALUES ('".$name."',".$site_id; if ( !is_numeric( $id_uppercat ) ) { $query.= ',NULL'; @@ -428,23 +399,23 @@ function insert_remote_category( $xml_dir, $site_id, $id_uppercat, $level ) $category_id = $row['id']; } $output.= insert_remote_image( $list_dirs[$i], $category_id ); - update_cat_info( $category_id ); + update_category( $category_id ); $output.= insert_remote_category( $list_dirs[$i], $site_id, $category_id, $level+1 ); $output.= '</div>'; } // we have to remove the categories of the database not present in the xml // file (ie deleted from the picture storage server) - $query = 'select dir,id'; - $query.= ' from '.PREFIX_TABLE.'categories'; - $query.= ' where site_id = '.$site_id; + $query = 'SELECT dir,id'; + $query.= ' FROM '.PREFIX_TABLE.'categories'; + $query.= ' WHERE site_id = '.$site_id; if ( !is_numeric( $id_uppercat ) ) { - $query.= ' and id_uppercat is NULL'; + $query.= ' AND id_uppercat IS NULL'; } else { - $query.= ' and id_uppercat = '.$id_uppercat; + $query.= ' AND id_uppercat = '.$id_uppercat; } $query.= ';'; $result = mysql_query( $query ); @@ -484,18 +455,19 @@ function insert_remote_image( $xml_dir, $category_id ) $pictures[$j] = $file; // is the picture already existing in the database ? - $query = 'select id,tn_ext'; - $query.= ' from '.PREFIX_TABLE.'images'; - $query.= ' where cat_id = '.$category_id; - $query.= " and file = '".$file."'"; + $query = 'SELECT id,tn_ext'; + $query.= ' FROM '.PREFIX_TABLE.'images'; + $query.= ' WHERE storage_category_id = '.$category_id; + $query.= " AND file = '".$file."'"; $query.= ';'; $result = mysql_query( $query ); $query = ''; if ( mysql_num_rows( $result ) == 0 ) { - $query = 'insert into '.PREFIX_TABLE.'images'; - $query.= ' (file,cat_id,date_available,tn_ext,filesize,width,height)'; - $query.= ' values ('; + $query = 'INSERT INTO '.PREFIX_TABLE.'images'; + $query.= ' (file,storage_category_id,date_available,tn_ext'; + $query.= ',filesize,width,height)'; + $query.= ' VALUES ('; $query.= "'".$file."'"; $query.= ",'".$category_id."'"; $query.= ",'".$date."'"; @@ -505,6 +477,19 @@ function insert_remote_image( $xml_dir, $category_id ) $query.= ",'".$height."'"; $query.= ')'; $query.= ';'; + // retrieving the id of newly inserted picture + $query = 'SELECT id'; + $query.= ' FROM '.PREFIX_TABLE.'images'; + $query.= ' WHERE storage_category_id = '.$category_id; + $query.= " AND file = '".$file."'"; + $query.= ';'; + list( $image_id ) = mysql_fetch_array( mysql_query( $query ) ); + // adding the link between this picture and its storage category + $query = 'INSERT INTO '.PREFIX_TABLE.'image_category'; + $query.= ' (image_id,category_id) VALUES '; + $query.= ' ('.$image_id.','.$category_id.')'; + $query.= ';'; + mysql_query( $query ); $output.= $file; $output.= ' <span style="font-weight:bold;">'; @@ -519,11 +504,11 @@ function insert_remote_image( $xml_dir, $category_id ) $row = mysql_fetch_array( $result ); if ( $row['tn_ext'] != $tn_ext ) { - $query = 'update '.PREFIX_TABLE.'images'; - $query.= ' set'; + $query = 'UPDATE '.PREFIX_TABLE.'images'; + $query.= ' SET'; $query.= " tn_ext = '".$tn_ext."'"; - $query.= ' where cat_id = '.$category_id; - $query.= " and file = '".$file."'"; + $query.= ' WHERE storage_category_id = '.$category_id; + $query.= " AND file = '".$file."'"; $query.= ';'; } } @@ -535,9 +520,9 @@ function insert_remote_image( $xml_dir, $category_id ) } // we have to remove the pictures of the database not present in the xml file // (ie deleted from the picture storage server) - $query = 'select id,file'; - $query.= ' from '.PREFIX_TABLE.'images'; - $query.= ' where cat_id = '.$category_id; + $query = 'SELECT id,file'; + $query.= ' FROM '.PREFIX_TABLE.'images'; + $query.= ' WHERE storage_category_id = '.$category_id; $query.= ';'; $result = mysql_query( $query ); while ( $row = mysql_fetch_array( $result ) ) @@ -557,6 +542,8 @@ $tpl = array( 'update_default_title', 'update_only_cat', 'update_all', 'remote_site', 'update_part_research' ); templatize_array( $tpl, 'lang', $sub ); $vtp->setGlobalVar( $sub, 'user_template', $user['template'] ); +//-------------------------------------------------------- categories structure +$page['plain_structure'] = get_plain_structure(); //-------------------------------------------- introduction : choices of update // Display choice if "update" var is not specified check_cat_id( $_GET['update'] ); diff --git a/admin/waiting.php b/admin/waiting.php index 206705b8f..7b38a387c 100644 --- a/admin/waiting.php +++ b/admin/waiting.php @@ -20,7 +20,7 @@ include_once( './include/isadmin.inc.php' ); //--------------------------------------------------------------------- updates if ( isset( $_POST['submit'] ) ) { - $query = 'SELECT id,cat_id,file,tn_ext'; + $query = 'SELECT id,storage_category_id,file,tn_ext'; $query.= ' FROM '.PREFIX_TABLE.'waiting'; $query.= " WHERE validated = 'false'"; $query.= ';'; @@ -39,6 +39,8 @@ if ( isset( $_POST['submit'] ) ) $query.= ' WHERE id = '.$row['id']; $query.= ';'; mysql_query( $query ); + // linking logically the picture to its storage category + $query = 'INSERT INTO'; } else { @@ -49,14 +51,14 @@ if ( isset( $_POST['submit'] ) ) $query.= ';'; mysql_query( $query ); // deletion of the associated files - $cat = get_cat_info( $row['cat_id'] ); - unlink( '.'.$cat['dir'].$row['file'] ); + $dir = get_complete_dir( $row['storage_category_id'] ); + unlink( '.'.$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; + $url = '.'.$dir.'thumbnail/'.$thumbnail; unlink( $url ); } } @@ -70,10 +72,11 @@ $tpl = array( 'category','date','author','thumbnail','file','delete', templatize_array( $tpl, 'lang', $sub ); //---------------------------------------------------------------- form display $cat_names = array(); -$query = 'SELECT id,cat_id,file,username,mail_address,date,tn_ext'; +$query = 'SELECT id,storage_category_id,file,username,mail_address'; +$query.= ',date,tn_ext'; $query.= ' FROM '.PREFIX_TABLE.'waiting'; $query.= " WHERE validated = 'false'"; -$query.= ' ORDER BY cat_id'; +$query.= ' ORDER BY storage_category_id'; $query.= ';'; $result = mysql_query( $query ); $i = 0; @@ -85,26 +88,24 @@ while ( $row = mysql_fetch_array( $result ) ) { $vtp->setVar( $sub, 'picture.class', 'row2' ); } - if ( !isset( $cat_names[$row['cat_id']] ) ) + if ( !isset( $cat_names[$row['storage_category_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'] = + $cat = get_cat_info( $row['storage_category_id'] ); + $cat_names[$row['storage_category_id']] = array(); + $cat_names[$row['storage_category_id']]['dir'] = + '.'.get_complete_dir( $row['storage_category_id'] ); + $cat_names[$row['storage_category_id']]['display_name'] = get_cat_display_name( $cat['name'], ' > ', 'font-weight:bold;' ); } // category name $vtp->setVar( $sub, 'picture.cat_name', - $cat_names[$row['cat_id']]['display_name'] ); + $cat_names[$row['storage_category_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 + $date = format_date( $row['date'], 'unix', true ); $vtp->setVar( $sub, 'picture.date', $date ); // file preview link - $url = $cat_names[$row['cat_id']]['dir'].$row['file']; + $url = $cat_names[$row['storage_category_id']]['dir'].$row['file']; $vtp->setVar( $sub, 'picture.preview_url', $url ); // file name $vtp->setVar( $sub, 'picture.file', $row['file'] ); @@ -115,7 +116,8 @@ while ( $row = mysql_fetch_array( $result ) ) $thumbnail = $conf['prefix_thumbnail']; $thumbnail.= get_filename_wo_extension( $row['file'] ); $thumbnail.= '.'.$row['tn_ext']; - $url = $cat_names[$row['cat_id']]['dir'].'thumbnail/'.$thumbnail; + $url = $cat_names[$row['storage_category_id']]['dir']; + $url.= 'thumbnail/'.$thumbnail; $vtp->setVar( $sub, 'thumbnail.preview_url', $url ); $vtp->setVar( $sub, 'thumbnail.file', $thumbnail ); $vtp->closeSession( $sub, 'thumbnail' ); diff --git a/category.php b/category.php index 6d8bb68a3..2264be614 100644 --- a/category.php +++ b/category.php @@ -231,22 +231,16 @@ else //------------------------------------------------------------------ thumbnails if ( isset( $page['cat'] ) and $page['cat_nb_images'] != 0 ) { - if ( is_numeric( $page['cat'] ) ) - { - $cat_directory = $page['cat_dir']; - } - else if ( $page['cat'] == 'search' or $page['cat'] == 'fav' ) - { - $array_cat_directories = array(); - } + $array_cat_directories = array(); - $query = 'SELECT id,file,date_available,tn_ext,name,filesize,cat_id'; + $query = 'SELECT id,file,date_available,tn_ext,name,filesize'; + $query.= ',storage_category_id,category_id'; $query.= ' FROM '.PREFIX_TABLE.'images'; + $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; $query.= $page['where']; $query.= $conf['order_by']; $query.= ' LIMIT '.$page['start'].','.$page['nb_image_page']; $query.= ';'; - echo $query; $result = mysql_query( $query ); $vtp->addSession( $handle, 'thumbnails' ); @@ -257,25 +251,18 @@ if ( isset( $page['cat'] ) and $page['cat_nb_images'] != 0 ) $line_number = 1; while ( $row = mysql_fetch_array( $result ) ) { - if ( !is_numeric( $page['cat'] ) ) + if ( $array_cat_directories[$row['storage_category_id']] == '' ) { - if ( $array_cat_directories[$row['cat_id']] == '' ) - { - $cat_result = get_cat_info( $row['cat_id'] ); - $array_cat_directories[$row['cat_id']] = $cat_result['dir']; - } - $cat_directory = $array_cat_directories[$row['cat_id']]; + $array_cat_directories[$row['storage_category_id']] = + get_complete_dir( $row['storage_category_id'] ); } + $cat_directory = $array_cat_directories[$row['storage_category_id']]; + $file = get_filename_wo_extension( $row['file'] ); // name of the picture - if ( $row['name'] != '' ) - { - $name = $row['name']; - } - else - { - $name = str_replace( '_', ' ', $file ); - } + if ( $row['name'] != '' ) $name = $row['name']; + else $name = str_replace( '_', ' ', $file ); + if ( $page['cat'] == 'search' ) { $name = replace_search( $name, $_GET['search'] ); @@ -358,16 +345,16 @@ elseif ( ( isset( $page['cat'] ) $cell_number = 1; $i = 0; foreach ( $subcats as $subcat_id => $non_empty_id ) { - $subcat_infos = get_cat_info( $subcat_id ); - $non_empty_infos = get_cat_info( $non_empty_id ); + $subcat_infos = get_cat_info( $subcat_id ); $name ='[ <span style="font-weight:bold;">'; $name.= $subcat_infos['name'][0]; $name.= '</span> ]'; - - $query = 'SELECT file,tn_ext'; + + $query = 'SELECT file,tn_ext,storage_category_id'; $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' WHERE cat_id = '.$non_empty_id; + $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; + $query.= ' WHERE category_id = '.$non_empty_id; $query.= ' ORDER BY RAND()'; $query.= ' LIMIT 0,1'; $query.= ';'; @@ -377,7 +364,7 @@ elseif ( ( isset( $page['cat'] ) $file = get_filename_wo_extension( $image_row['file'] ); // creating links for thumbnail and associated category - $thumbnail_link = $non_empty_infos['dir']; + $thumbnail_link = get_complete_dir( $image_row['storage_category_id'] ); $thumbnail_link.= 'thumbnail/'.$conf['prefix_thumbnail']; $thumbnail_link.= $file.'.'.$image_row['tn_ext']; diff --git a/include/functions.inc.php b/include/functions.inc.php index 3345ef55f..e28515e91 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -349,4 +349,30 @@ function templatize_array( $array, $global_array_name, $handle ) $vtp->setGlobalVar( $handle, $value, ${$global_array_name}[$value] ); } } + +function format_date( $date, $type = 'us', $show_time = false ) +{ + global $lang; + + switch ( $type ) + { + case 'us' : + list( $year,$month,$day ) = explode( '-', $date ); + $unixdate = mktime(0,0,0,$month,$day,$year); + break; + case 'unix' : + $unixdate = $date; + break; + } + $formated_date = $lang['day'][date( "w", $unixdate )]; + $formated_date.= date( " j ", $unixdate ); + $formated_date.= $lang['month'][date( "n", $unixdate )]; + $formated_date.= date( ' Y', $unixdate ); + if ( $show_time ) + { + $formated_date.= date( ' G:i', $unixdate ); + } + + return $formated_date; +} ?>
\ No newline at end of file diff --git a/include/functions_category.inc.php b/include/functions_category.inc.php index 031011b61..dffb6c337 100644 --- a/include/functions_category.inc.php +++ b/include/functions_category.inc.php @@ -94,7 +94,7 @@ function check_cat_id( $cat ) function get_plain_structure() { $infos = array( 'name','id','date_last','nb_images','dir','id_uppercat', - 'rank'); + 'rank','site_id'); $query = 'SELECT '; foreach ( $infos as $i => $info ) { @@ -270,7 +270,7 @@ function count_images( $categories ) // variables : // $cat['comment'] // $cat['dir'] -// $cat['last_dir'] +// $cat['dir'] // $cat['name'] is an array : // - $cat['name'][0] is the lowest cat name // and @@ -280,11 +280,12 @@ function count_images( $categories ) // $cat['site_id'] function get_cat_info( $id ) { + global $page; + $cat = array(); - $cat['name'] = array(); $query = 'SELECT nb_images,id_uppercat,comment,site_id,galleries_url,dir'; - $query.= ',date_last,uploadable'; + $query.= ',date_last,uploadable,status,visible'; $query.= ' FROM '.PREFIX_TABLE.'categories AS a'; $query.= ', '.PREFIX_TABLE.'sites AS b'; $query.= ' WHERE a.id = '.$id; @@ -294,42 +295,64 @@ function get_cat_info( $id ) $cat['id_uppercat'] = $row['id_uppercat']; $cat['comment'] = nl2br( $row['comment'] ); $cat['nb_images'] = $row['nb_images']; - $cat['last_dir'] = $row['dir']; + $cat['dir'] = $row['dir']; $cat['date_last'] = $row['date_last']; $cat['uploadable'] = get_boolean( $row['uploadable'] ); - $galleries_url = $row['galleries_url']; + $cat['status'] = $row['status']; + $cat['visible'] = get_boolean( $row['visible'] ); - $cat['dir'] = ""; - $i = 0; - $is_root = false; - $row['id_uppercat'] = $id; - while ( !$is_root ) + $cat['name'] = array(); + array_push( $cat['name'], $page['plain_structure'][$id]['name'] ); + while ( $page['plain_structure'][$id]['id_uppercat'] != '' ) { - $query = 'SELECT name,dir,id_uppercat'; - $query.= ' FROM '.PREFIX_TABLE.'categories'; - $query.= ' WHERE id = '.$row['id_uppercat'].';'; - $row = mysql_fetch_array( mysql_query( $query ) ); - $cat['dir'] = $row['dir'].'/'.$cat['dir']; - if ( $row['name'] == "" ) - { - $cat['name'][$i] = str_replace( "_", " ", $row['dir'] ); - } - else - { - $cat['name'][$i] = $row['name']; - } - if ( $row['id_uppercat'] == "" ) - { - $is_root = true; - } - $i++; + $id = $page['plain_structure'][$id]['id_uppercat']; + array_push( $cat['name'], $page['plain_structure'][$id]['name'] ); } - $cat['local_dir'] = substr( $cat['dir'], 0 , strlen( $cat['dir'] ) - 1 ); - $cat['dir'] = $galleries_url.$cat['dir']; - return $cat; } - + +// get_complete_dir returns the concatenation of get_site_url and +// get_local_dir +// Example : "pets > rex > 1_year_old" is on the the same site as the +// PhpWebGallery files and this category has 22 for identifier +// get_complete_dir(22) returns "./galleries/pets/rex/1_year_old/" +function get_complete_dir( $category_id ) +{ + return get_site_url( $category_id ).get_local_dir( $category_id ); +} + +// get_local_dir returns an array with complete path without the site url +// Example : "pets > rex > 1_year_old" is on the the same site as the +// PhpWebGallery files and this category has 22 for identifier +// get_local_dir(22) returns "pets/rex/1_year_old/" +function get_local_dir( $category_id ) +{ + global $page; + + // creating the local path : "root_cat/sub_cat/sub_sub_cat/" + $dir = $page['plain_structure'][$category_id]['dir'].'/'; + while ( $page['plain_structure'][$category_id]['id_uppercat'] != '' ) + { + $category_id = $page['plain_structure'][$category_id]['id_uppercat']; + $dir = $page['plain_structure'][$category_id]['dir'].'/'.$dir; + } + return $dir; +} + +// retrieving the site url : "http://domain.com/gallery/" or +// simply "./galleries/" +function get_site_url( $category_id ) +{ + global $page; + + $query = 'SELECT galleries_url'; + $query.= ' FROM '.PREFIX_TABLE.'sites'; + $query.= ' WHERE id = '.$page['plain_structure'][$category_id]['site_id']; + $query.= ';'; + $row = mysql_fetch_array( mysql_query( $query ) ); + return $row['galleries_url']; +} + // The function get_cat_display_name returns a string containing the list // of upper categories to the root category from the lowest category shown // example : "anniversaires - fete mere 2002 - animaux - erika" @@ -401,7 +424,7 @@ function initialize_category( $calling_page = 'category' ) $page['cat_site_id'] = $result['site_id']; $page['cat_uploadable'] = $result['uploadable']; $page['title'] = get_cat_display_name( $page['cat_name'], ' - ', '' ); - $page['where'] = ' WHERE cat_id = '.$page['cat']; + $page['where'] = ' WHERE category_id = '.$page['cat']; } else { @@ -411,7 +434,7 @@ function initialize_category( $calling_page = 'category' ) // we must not show pictures of a forbidden category $restricted_cats = get_all_restrictions( $user['id'],$user['status'] ); foreach ( $restricted_cats as $restricted_cat ) { - $where_append.= ' AND cat_id != '.$restricted_cat; + $where_append.= ' AND category_id != '.$restricted_cat; } } // search result @@ -499,7 +522,7 @@ function initialize_category( $calling_page = 'category' ) else if ( $page['cat'] == 'most_visited' ) { $page['title'] = $conf['top_number'].' '.$lang['most_visited_cat']; - $page['where'] = ' WHERE cat_id != -1'.$where_append; + $page['where'] = ' WHERE category_id != -1'.$where_append; $conf['order_by'] = ' ORDER BY hit DESC, file ASC'; $page['cat_nb_images'] = $conf['top_number']; if ( $page['start'] + $user['nb_image_page'] >= $conf['top_number'] ) diff --git a/language/francais.php b/language/francais.php index f0f4b24eb..5c7307b05 100644 --- a/language/francais.php +++ b/language/francais.php @@ -29,6 +29,8 @@ $lang['IP'] = 'IP'; $lang['close'] = 'fermer'; $lang['open'] = 'ouvrir'; $lang['keywords'] = 'mots-clefs'; +$lang['errors_title'] = 'Erreurs'; +$lang['default'] = 'défaut'; // end version 1.3 // page diapo @@ -264,6 +266,7 @@ if ( $isadmin ) $lang['title_cat_perm'] = 'Modifier les permissions pour la catégorie'; $lang['title_group_perm'] = 'Modifier les permissions pour le groupe'; $lang['title_comments'] = 'Commentaires des visiteurs'; + $lang['title_picmod'] = 'Modifier les informations d\'une image'; // end version 1.3 $lang['title_categories'] = 'Gestion des catégories'; $lang['title_edit_cat'] = 'Editer une catégorie'; @@ -511,6 +514,7 @@ if ( $isadmin ) $lang['infoimage_keyword_separation'] = '(séparer avec des ",")'; $lang['infoimage_addtoall'] = 'ajouter à tous'; $lang['infoimage_removefromall'] = 'retirer à tous'; + $lang['infoimage_associate'] = 'Associer à la catégorie'; // end version 1.3 $lang['infoimage_general'] = 'Options générale pour la catégorie'; $lang['infoimage_useforall'] = 'utiliser pour toutes les images ?'; diff --git a/picture.php b/picture.php index 4261a6205..96605607b 100644 --- a/picture.php +++ b/picture.php @@ -23,6 +23,7 @@ include_once( './include/init.inc.php' ); //-------------------------------------------------- access authorization check check_cat_id( $_GET['cat'] ); check_login_authorization(); +$page['plain_structure'] = get_plain_structure(); if ( isset( $page['cat'] ) and is_numeric( $page['cat'] ) ) { check_restrictions( $page['cat'] ); @@ -38,8 +39,10 @@ initialize_category( 'picture' ); $cat_directory = $page['cat_dir']; // by default //------------------------------------- main picture information initialization $query = 'SELECT id,date_available,comment,hit,keywords'; -$query.= ',author,name,file,date_creation,filesize,width,height,cat_id'; +$query.= ',author,name,file,date_creation,filesize,width,height'; +$query.= ',storage_category_id,category_id'; $query.= ' FROM '.PREFIX_TABLE.'images'; +$query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; $query.= $page['where']; $query.= ' AND id = '.$_GET['image_id']; $query.= $conf['order_by']; @@ -57,11 +60,13 @@ $page['date_creation'] = $row['date_creation']; $page['filesize'] = $row['filesize']; $page['width'] = $row['width']; $page['height'] = $row['height']; -$page['cat_id'] = $row['cat_id']; +$page['category_id'] = $row['category_id']; $page['keywords'] = $row['keywords']; +$page['storage_category_id'] = $row['storage_category_id']; // retrieving the number of the picture in its category (in order) $query = 'SELECT id'; $query.= ' FROM '.PREFIX_TABLE.'images'; +$query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; $query.= $page['where']; $query.= $conf['order_by']; $query.= ';'; @@ -123,6 +128,7 @@ if ( isset( $_GET['add_fav'] ) ) } $query = 'SELECT id'; $query.= ' FROM '.PREFIX_TABLE.'images'; + $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; $query.= $page['where']; $query.= $conf['order_by']; $query.= ' LIMIT '.$page['num'].',1'; @@ -205,8 +211,9 @@ else if ( $page['num'] >= 1 ) { $prev = $page['num'] - 1; - $query = 'SELECT id,name,file,tn_ext,cat_id'; + $query = 'SELECT id,name,file,tn_ext,storage_category_id'; $query.= ' FROM '.PREFIX_TABLE.'images'; + $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; $query.= $page['where']; $query.= $conf['order_by']; $query.= ' LIMIT '.$prev.',1'; @@ -214,20 +221,17 @@ if ( $page['num'] >= 1 ) $result = mysql_query( $query ); $row = mysql_fetch_array( $result ); - if ( !is_numeric( $page['cat'] ) ) + if ( $array_cat_directories[$row['storage_category_id']] == '' ) { - if ( $array_cat_directories[$row['cat_id']] == '' ) - { - $cat_result = get_cat_info( $row['cat_id'] ); - $array_cat_directories[$row['cat_id']] = $cat_result['dir']; - } - $cat_directory = $array_cat_directories[$row['cat_id']]; + $array_cat_directories[$row['storage_category_id']] = + get_complete_dir( $row['storage_category_id'] ); } - - $file = substr ( $row['file'], 0, strrpos ( $row['file'], '.' ) ); + $cat_directory = $array_cat_directories[$row['storage_category_id']]; + + $file = substr( $row['file'], 0, strrpos ( $row['file'], '.' ) ); $lien_thumbnail = $cat_directory.'/thumbnail/'; $lien_thumbnail.= $conf['prefix_thumbnail'].$file.".".$row['tn_ext']; - + $prev_title = $lang['previous_image'].' : '; $alt_thumbnaill = ''; if ( $row['name'] != '' ) $alt_thumbnail = $row['name']; @@ -261,14 +265,16 @@ if ( is_numeric( $page['cat'] ) ) } else { - $cat_result = get_cat_info( $page['cat_id'] ); - if ( $array_cat_directories[$page['cat_id']] == "" ) - { - $array_cat_directories[$page['cat_id']] = $cat_result['dir']; - } - $cat_directory = $array_cat_directories[$page['cat_id']]; $intitule_cat = $page['title']; } + +if ( $array_cat_directories[$page['storage_category_id']] == '' ) +{ + $array_cat_directories[$page['storage_category_id']] = + get_complete_dir( $page['storage_category_id'] ); +} +$cat_directory = $array_cat_directories[$page['storage_category_id']]; + $n = $page['num'] + 1; $intitule_titre = replace_space( $intitule_cat." - " ).$n.'/'. $intitule_titre.= $page['cat_nb_images']."<br />"; @@ -347,9 +353,8 @@ if ( $page['date_creation'] != "" ) { $vtp->addSession( $handle, 'info_line' ); $vtp->setVar( $handle, 'info_line.name', $lang['creation_date'].' : ' ); - list( $year,$month,$day ) = explode( '-', $page['date_creation'] ); $vtp->setVar( $handle, 'info_line.content', - $day.'/'.$month.'/'.$year ); + format_date( $page['date_creation'] ) ); $vtp->closeSession( $handle, 'info_line' ); } // date of availability @@ -357,7 +362,7 @@ $vtp->addSession( $handle, 'info_line' ); $vtp->setVar( $handle, 'info_line.name', $lang['registration_date'].' : ' ); list( $year,$month,$day ) = explode( '-', $page['date_available'] ); $vtp->setVar( $handle, 'info_line.content', - $day.'/'.$month.'/'.$year ); + format_date( $page['date_available'] ) ); $vtp->closeSession( $handle, 'info_line' ); // size in pixels $vtp->addSession( $handle, 'info_line' ); @@ -455,34 +460,31 @@ if ( $page['cat'] == 'fav' ) if ( $user['status'] == "admin" and is_numeric( $page['cat'] ) ) { $vtp->addSession( $handle, 'modification' ); - $url = './admin/admin.php?page=infos_images&cat_id='.$page['cat']; - $url.= '&num='.$page['num']; - $vtp->setVar( $handle, 'modification.link', - add_session_id( $url )."#".$page['id'] ); + $url = './admin/admin.php?page=picture_modify&cat_id='.$page['cat']; + $url.= '&image_id='.$page['id']; + $vtp->setVar( $handle, 'modification.link', add_session_id( $url ) ); $vtp->setVar( $handle, 'modification.name', $lang['link_info_image'] ); } //---------------------------------------------- next picture thumbnail display if ( $page['num'] < $page['cat_nb_images']-1 ) { $next = $page['num'] + 1; - $query = 'SELECT id,name,file,tn_ext,cat_id'; + $query = 'SELECT id,name,file,tn_ext,storage_category_id'; $query.= ' FROM '.PREFIX_TABLE.'images'; + $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; $query.= $page['where']; $query.= $conf['order_by']; $query.= ' LIMIT '.$next.',1'; $query.= ';'; $result = mysql_query( $query ); $row = mysql_fetch_array( $result ); - - if ( !is_numeric( $page['cat'] ) ) + + if ( $array_cat_directories[$row['storage_category_id']] == '' ) { - if ( $array_cat_directories[$row['cat_id']] == "" ) - { - $cat_result = get_cat_info( $row['cat_id'] ); - $array_cat_directories[$row['cat_id']] = $cat_result['dir']; - } - $cat_directory = $array_cat_directories[$row['cat_id']]; + $array_cat_directories[$row['storage_category_id']] = + get_complete_dir( $row['storage_category_id'] ); } + $cat_directory = $array_cat_directories[$row['storage_category_id']]; $file = substr ( $row['file'], 0, strrpos ( $row['file'], ".") ); $lien_thumbnail = $cat_directory.'thumbnail/'; @@ -629,11 +631,8 @@ if ( $conf['show_comments'] ) { $vtp->addSession( $handle, 'comment' ); $vtp->setVar( $handle, 'comment.author', $row['author'] ); - $displayed_date = $lang['day'][date( "w", $row['date'] )]; - $displayed_date.= date( " j ", $row['date'] ); - $displayed_date.= $lang['month'][date( "n", $row['date'] )]; - $displayed_date.= date( ' Y G:i', $row['date'] ); - $vtp->setVar( $handle, 'comment.date', $displayed_date ); + $vtp->setVar( $handle, 'comment.date', + format_date( $row['date'], 'unix', true ) ); $vtp->setVar( $handle, 'comment.content', nl2br( $row['content'] ) ); if ( $user['status'] == 'admin' ) { diff --git a/template/default/admin/configuration.vtp b/template/default/admin/configuration.vtp index 240f0e408..162e530ee 100644 --- a/template/default/admin/configuration.vtp +++ b/template/default/admin/configuration.vtp @@ -1,6 +1,6 @@ <!--VTP_errors--> <div class="errors"> - <div class="errors_title">Erreurs</div> + <div class="errors_title">{#errors_title}</div> <ul> <!--VTP_li--> <li>{#li}</li> diff --git a/template/default/admin/infos_image.vtp b/template/default/admin/infos_image.vtp index d9a4e92c5..975621077 100644 --- a/template/default/admin/infos_image.vtp +++ b/template/default/admin/infos_image.vtp @@ -42,12 +42,13 @@ </table> <table width="100%"> <tr> - <th colspan="6">{#infoimage_detailed}</th> + <th colspan="7">{#infoimage_detailed}</th> </tr> <tr> - <td colspan="6" align="center">{#navigation_bar}</td> + <td colspan="7" align="center">{#navigation_bar}</td> </tr> <tr> + <td style="width:0px;"> </td> <td class="row2" style="text-align:center;">{#thumbnail}</td> <td class="row2" style="text-align:center;">{#infoimage_title}</td> <td class="row2" style="text-align:center;">{#author}</td> @@ -57,6 +58,11 @@ </tr> <!--VTP_picture--> <tr> + <td style="width:0px;"> + <div style="margin-left:2px;margin-right:2px;"> + <input type="checkbox" name="check-{#id}" value="1" /> + </div> + </td> <td style="text-align:center;"><a name="{#link}" href="{#url}"><img src="{#thumbnail_url}" alt="" class="miniature" title="{#filename}" /></td> <td style="text-align:center;">{#default_name}<br /><input type="text" name="name-{#id}" value="{#name}" maxlength="255"/></td> <td style="text-align:center;"><input type="text" name="author-{#id}" value="{#author}" maxlength="255"/></td> @@ -66,6 +72,17 @@ </tr> <!--/VTP_picture--> <tr> + <td colspan="6"> + <img src="../template/{#user_template}/admin/images/arrow_up.gif" alt="<" /> + {#infoimage_associate} + <select name="associate"> + <!--VTP_associate_cat--> + <option value="{#value}">{#content}</option> + <!--/VTP_associate_cat--> + </select> + </td> + </tr> + <tr> <td colspan="6" style="text-align:center;"> <input type="submit" value="{#submit}" name="submit" /> </td> diff --git a/template/default/admin/picture_modify.vtp b/template/default/admin/picture_modify.vtp new file mode 100644 index 000000000..79029ef75 --- /dev/null +++ b/template/default/admin/picture_modify.vtp @@ -0,0 +1,101 @@ +<!--VTP_errors--> +<div class="errors"> + <div class="errors_title">{#errors_title}</div> + <ul> + <!--VTP_li--> + <li>{#content}</li> + <!--/VTP_li--> + </ul> +</div> +<!--/VTP_errors--> +<!--VTP_confirmation--> +<div class="info"> + {#picmod_update} [ <a href="{#url}">{#picmod_back}</a> ] +</div> +<!--/VTP_confirmation--> +<form method="post" action="{#form_action}"> + <table style="width:100%;"> + <tr><th colspan="2">{#title} [ {#dir} > {#f_file} ]</th></tr> + <tr> + <td colspan="2"><div style="margin-bottom:0px"> </div></td> + </tr> + <tr valign="top"> + <td style="width:1px;"><img src="{#thumbnail_url}" alt="" class="miniature" /></td> + <td> + <table> + <tr> + <td>{#upload_name} :</td> + <td><input type="text" name="name" value="{#f_name}" /> [ {#default} : {#default_name} ]</td> + </tr> + <tr> + <td>{#file} :</td> + <td>{#f_file}</td> + </tr> + <tr> + <td>{#size} :</td> + <td>{#f_size}</td> + </tr> + <tr> + <td>{#filesize} :</td> + <td>{#f_filesize}</td> + </tr> + <tr> + <td>{#registration_date} :</td> + <td>{#f_registration_date}</td> + </tr> + <tr> + <td>{#author} :</td> + <td><input type="text" name="author" value="{#f_author}" /></td> + </tr> + <tr> + <td>{#creation_date} :</td> + <td><input type="text" name="creation_date" value="{#f_creation_date}" /></td> + </tr> + <tr> + <td>{#keywords} :</td> + <td><input type="text" name="keywords" value="{#f_keywords}" size="50" /></td> + </tr> + <tr> + <td>{#comment} :</td> + <td><textarea name="comment" rows="5" cols="50" style="overflow:auto">{#f_comment}</textarea></td> + </tr> + <tr> + <td valign="top">{#categories} :</td> + <td> + <table> + <!--VTP_linked_category--> + <tr> + <td><!--VTP_checkbox--><input type="checkbox" name="dissociate-{#id}" value="1" /><!--/VTP_checkbox--><a href="{#url}">{#name}</a> [ <a href="{#infos_images_link}">{#cat_image_info}</a> ] {#private} {#invisible} + </tr> + <!--/VTP_linked_category--> + <!--VTP_dissociate--> + <tr> + <td colspan="2"><img src="../template/{#user_template}/admin/images/arrow_up.gif" alt="<" /> {#dissociate}</td> + </tr> + <!--/VTP_dissociate--> + <tr><td colspan="2"> </td></tr> + <tr> + <td>{#infoimage_associate} + <select name="associate"> + <!--VTP_associate_cat--> + <option value="{#value}">{#content}</option> + <!--/VTP_associate_cat--> + </select> + </td> + </tr> + </table> + </td> + </tr> + </table> + </td> + </tr> + <tr> + <td colspan="2"><div style="margin-bottom:0px"> </div></td> + </tr> + <tr> + <td colspan="2" align="center"> + <input type="submit" name="submit" value="{#submit}"> + </td> + </tr> + </table> +</form> diff --git a/upload.php b/upload.php index abf3ce1a8..44f1d357f 100644 --- a/upload.php +++ b/upload.php @@ -205,8 +205,9 @@ if ( isset( $_POST['submit'] ) and !isset( $_GET['waiting_id'] ) ) if ( sizeof( $error ) == 0 ) { $query = 'insert into '.PREFIX_TABLE.'waiting'; - $query.= ' (cat_id,file,username,mail_address,date,infos) values'; - $query.= " (".$page['cat'].",'".$_FILES['picture']['name']."'"; + $query.= ' (storage_category_id,file,username,mail_address,date,infos)'; + $query.= ' values '; + $query.= '('.$page['cat'].",'".$_FILES['picture']['name']."'"; $query.= ",'".htmlspecialchars( $_POST['username'], ENT_QUOTES)."'"; $query.= ",'".$_POST['mail_address']."',".time().",'".$xml_infos."')"; $query.= ';'; |