"'.$unregistered_picture.'" : ';
+ $output.= '"'.$unregistered_element.'" : ';
$output.= $lang['update_wrong_dirname'].'
';
}
}
-
- if ( count( $inserts ) > 0 )
+
+ if (count($inserts) > 0)
{
// inserts all found pictures
- $query = 'INSERT INTO '.IMAGES_TABLE;
- $query.= ' (file,storage_category_id,date_available,tn_ext';
- $query.= ',filesize,width,height';
- $query.= ',name,author,comment,date_creation)';
- $query.= ' VALUES ';
- $query.= implode( ',', $inserts );
- $query.= ';';
- mysql_query( $query );
+ $query = '
+INSERT INTO '.IMAGES_TABLE.'
+ (file,storage_category_id,date_available,tn_ext,filesize,width,height
+ ,name,author,comment,date_creation,representative_ext)
+ VALUES
+ '.implode(',', $inserts).'
+;';
+ mysql_query($query);
// what are the ids of the pictures in the $category_id ?
$ids = array();
- $query = 'SELECT id';
- $query.= ' FROM '.IMAGES_TABLE;
- $query.= ' WHERE storage_category_id = '.$category_id;
- $query.= ';';
- $result = mysql_query( $query );
- while ( $row = mysql_fetch_array( $result ) )
+ $query = '
+SELECT id
+ FROM '.IMAGES_TABLE.'
+ WHERE storage_category_id = '.$category_id.'
+;';
+ $result = mysql_query($query);
+ while ($row = mysql_fetch_array($result))
{
- array_push( $ids, $row['id'] );
+ array_push($ids, $row['id']);
}
// recreation of the links between this storage category pictures and
// its storage category
- $query = 'DELETE FROM '.IMAGE_CATEGORY_TABLE;
- $query.= ' WHERE category_id = '.$category_id;
- $query.= ' AND image_id IN ('.implode( ',', $ids ).')';
- $query.= ';';
- mysql_query( $query );
+ $query = '
+DELETE FROM '.IMAGE_CATEGORY_TABLE.'
+ WHERE category_id = '.$category_id.'
+ AND image_id IN ('.implode(',', $ids).')
+;';
+ mysql_query($query);
- $query = 'INSERT INTO '.IMAGE_CATEGORY_TABLE;
- $query.= '(category_id,image_id) VALUES ';
- foreach ( $ids as $num => $image_id ) {
- if ( $num > 0 ) $query.= ',';
- $query.= '('.$category_id.','.$image_id.')';
+ foreach ($ids as $num => $image_id)
+ {
+ $ids[$num] = '('.$category_id.','.$image_id.')';
}
- $query.= ';';
- mysql_query( $query );
+ $query = '
+INSERT INTO '.IMAGE_CATEGORY_TABLE.'
+ (category_id,image_id) VALUES
+ '.implode(',', $ids).'
+;';
+ mysql_query($query);
}
return $output;
}
-
-// 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
-// site if it doesn't already exists. Then, the function calls
-// insert_remote_category for this remote site on the root category.
-function remote_images()
-{
- global $conf, $lang, $vtp, $sub;
-
- // 1. is there a file listing.xml ?
- if ( !( $xml_content = getXmlCode( './admin/listing.xml' ) ) )
- {
- return false;
- }
- $url = getContent( getChild( $xml_content, 'url' ) );
- $vtp->setVar( $sub, 'remote_update.url', $url );
-
- // 2. is the site already existing ?
- $query = 'SELECT id FROM '.SITES_TABLE;
- $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 '.SITES_TABLE;
- $query.= " (galleries_url) VALUES ('".$url."')";
- $query.= ';';
- mysql_query( $query );
- $site_id = mysql_insert_id();
- }
- else
- {
- // we get the already registered id
- $row = mysql_fetch_array( $result );
- $site_id = $row['id'];
- }
-
- // 3. available dirs in the file
- $categories = insert_remote_category( $xml_content, $site_id, 'NULL', 0 );
- $vtp->setVar( $sub, 'remote_update.categories', $categories );
-}
-
-// insert_remote_category searchs the "dir" node of the xml_dir given and
-// insert the contained categories if the are not in the database yet. The
-// function also deletes the categories that are in the database and not in
-// the xml_file.
-function insert_remote_category( $xml_content, $site_id, $id_uppercat, $level )
-{
- global $conf, $page, $user, $lang;
-
- $uppercats = '';
- $output = '';
- // 0. retrieving informations on the category to display
- $cat_directory = '../galleries';
-
- if ( is_numeric( $id_uppercat ) )
- {
- $query = 'SELECT name,uppercats,dir';
- $query.= ' FROM '.CATEGORIES_TABLE;
- $query.= ' WHERE id = '.$id_uppercat;
- $query.= ';';
- $row = mysql_fetch_array( mysql_query( $query ) );
- $uppercats = $row['uppercats'];
- $name = $row['name'];
-
- // 1. display the category name to update
- $src = './template/'.$user['template'].'/admin/images/puce.gif';
- $output = '
';
- $output.= ''.$name.'';
- $output.= ' [ '.$row['dir'].' ]';
- $output.= '';
-
- // 2. we search pictures of the category only if the update is for all
- // or a cat_id is specified
- $output.= insert_remote_image( $xml_content, $id_uppercat );
- }
-
- // $xml_dirs contains dir names contained in the xml file for this
- // id_uppercat
- $xml_dirs = array();
- $temp_dirs = getChildren( $xml_content, 'dir'.$level );
- foreach ( $temp_dirs as $temp_dir ) {
- array_push( $xml_dirs, getAttribute( $temp_dir, 'name' ) );
- }
-
- // $database_dirs contains dir names contained in the database for this
- // id_uppercat and site_id
- $database_dirs = array();
- $query = 'SELECT id,dir FROM '.CATEGORIES_TABLE;
- $query.= ' WHERE site_id = '.$site_id;
- if (!is_numeric($id_uppercat)) $query.= ' AND id_uppercat IS NULL';
- else $query.= ' AND id_uppercat = '.$id_uppercat;
- $query.= ' AND dir IS NOT NULL'; // virtual categories not taken
- $query.= ';';
- $result = mysql_query( $query );
- while ( $row = mysql_fetch_array( $result ) )
- {
- $database_dirs[$row['id']] = $row['dir'];
- }
-
- // 3. we have to remove the categories of the database not present anymore
- foreach ( $database_dirs as $id => $dir ) {
- if ( !in_array( $dir, $xml_dirs ) ) delete_category( $id );
- }
-
- // array of new categories to insert
- $inserts = array();
-
- foreach ( $xml_dirs as $xml_dir ) {
- // 5. Is the category already existing ? we create a subcat if not
- // existing
- $category_id = array_search( $xml_dir, $database_dirs );
- if ( !is_numeric( $category_id ) )
- {
- $name = str_replace( '_', ' ', $xml_dir );
-
- $value = "('".$xml_dir."','".$name."',".$site_id;
- if ( !is_numeric( $id_uppercat ) ) $value.= ',NULL';
- else $value.= ','.$id_uppercat;
- $value.= ",'undef'";
- $value.= ')';
- array_push( $inserts, $value );
- }
- }
-
- // we have to create the category
- if ( count( $inserts ) > 0 )
- {
- $query = 'INSERT INTO '.CATEGORIES_TABLE;
- $query.= ' (dir,name,site_id,id_uppercat,uppercats) VALUES ';
- $query.= implode( ',', $inserts );
- $query.= ';';
- mysql_query( $query );
- // updating uppercats field
- $query = 'UPDATE '.CATEGORIES_TABLE;
- $query.= ' SET uppercats = ';
- if ( $uppercats != '' ) $query.= "CONCAT('".$uppercats."',',',id)";
- else $query.= 'id';
- $query.= ' WHERE id_uppercat ';
- if (!is_numeric($id_uppercat)) $query.= 'IS NULL';
- else $query.= '= '.$id_uppercat;
- $query.= ';';
- mysql_query( $query );
- }
-
- // Recursive call on the sub-categories (not virtual ones)
- $query = 'SELECT id,dir';
- $query.= ' FROM '.CATEGORIES_TABLE;
- $query.= ' WHERE site_id = '.$site_id;
- if (!is_numeric($id_uppercat)) $query.= ' AND id_uppercat IS NULL';
- else $query.= ' AND id_uppercat = '.$id_uppercat;
- $query.= ' AND dir IS NOT NULL'; // virtual categories not taken
- $query.= ';';
- $result = mysql_query( $query );
- while ( $row = mysql_fetch_array( $result ) )
- {
- $database_dirs[$row['dir']] = $row['id'];
- }
- foreach ( $temp_dirs as $temp_dir ) {
- $dir = getAttribute( $temp_dir, 'name' );
- $id_uppercat = $database_dirs[$dir];
- $output.= insert_remote_category( $temp_dir, $site_id,
- $id_uppercat,$level+1 );
- }
-
- if ( is_numeric( $id_uppercat ) ) $output.= '
';
-
- return $output;
-}
-
-// insert_remote_image searchs the "root" node of the xml_dir given and
-// insert the contained pictures if the are not in the database yet.
-function insert_remote_image( $xml_dir, $category_id )
-{
- global $count_new,$lang;
-
- $output = '';
- $root = getChild( $xml_dir, 'root' );
-
- $fs_pictures = array();
- $xml_pictures = getChildren( $root, 'picture' );
- foreach ( $xml_pictures as $xml_picture ) {
- array_push( $fs_pictures, getAttribute( $xml_picture, 'file' ) );
- }
-
- // we have to delete all the images from the database that are not in the
- // directory anymore (not in the XML anymore)
- $query = 'SELECT id,file FROM '.IMAGES_TABLE;
- $query.= ' WHERE storage_category_id = '.$category_id;
- $query.= ';';
- $result = mysql_query( $query );
- while ( $row = mysql_fetch_array( $result ) )
- {
- if ( !in_array( $row['file'], $fs_pictures ) )
- {
- $output.= $row['file'];
- $output.= ' ';
- $output.= $lang['update_disappeared'].'
';
- delete_image( $row['id'] );
- }
- }
-
- $database_pictures = array();
- $query = 'SELECT file FROM '.IMAGES_TABLE;
- $query.= ' WHERE storage_category_id = '.$category_id;
- $query.= ';';
- $result = mysql_query( $query );
- while ( $row = mysql_fetch_array( $result ) )
- {
- array_push( $database_pictures, $row['file'] );
- }
-
- $inserts = array();
- $xml_pictures = getChildren( $root, 'picture' );
- foreach ( $xml_pictures as $xml_picture ) {
- //
- $file = getAttribute( $xml_picture, 'file' );
-
- // is the picture already existing in the database ?
- if ( !in_array( $file, $database_pictures ) )
- {
- $tn_ext = getAttribute( $xml_picture, 'tn_ext' );
- // (file, storage_category_id, date_available, tn_ext, filesize,
- // width, height)
- $value = '(';
- $value.= "'".$file."'";
- $value.= ','.$category_id;
- $value.= ",'".date( 'Y-m-d' )."'";
- $value.= ",'".$tn_ext."'";
- $value.= ','.getAttribute( $xml_picture, 'filesize' );
- $value.= ','.getAttribute( $xml_picture, 'width' );
- $value.= ','.getAttribute( $xml_picture, 'height' );
- $value.= ')';
-
- $count_new++;
- $output.= $file;
- $output.= ' ';
- $output.= $lang['update_research_added'].'';
- $output.= ' ('.$lang['update_research_tn_ext'].' '.$tn_ext.')';
- $output.= '
';
- array_push( $inserts, $value );
- }
- }
-
- if ( count( $inserts ) > 0 )
- {
- // inserts all found pictures
- $query = 'INSERT INTO '.IMAGES_TABLE;
- $query.= ' (file,storage_category_id,date_available,tn_ext';
- $query.= ',filesize,width,height)';
- $query.= ' VALUES ';
- $query.= implode( ',', $inserts );
- $query.= ';';
- mysql_query( $query );
-
- // what are the ids of the pictures in the $category_id ?
- $ids = array();
-
- $query = 'SELECT id FROM '.IMAGES_TABLE;
- $query.= ' WHERE storage_category_id = '.$category_id;
- $query.= ';';
- $result = mysql_query( $query );
- while ( $row = mysql_fetch_array( $result ) )
- {
- array_push( $ids, $row['id'] );
- }
-
- // recreation of the links between this storage category pictures and
- // its storage category
- $query = 'DELETE FROM '.IMAGE_CATEGORY_TABLE;
- $query.= ' WHERE category_id = '.$category_id;
- $query.= ' AND image_id IN ('.implode( ',', $ids ).')';
- $query.= ';';
- mysql_query( $query );
-
- $query = 'INSERT INTO '.IMAGE_CATEGORY_TABLE;
- $query.= '(category_id,image_id) VALUES ';
- foreach ( $ids as $num => $image_id ) {
- if ( $num > 0 ) $query.= ',';
- $query.= '('.$category_id.','.$image_id.')';
- }
- $query.= ';';
- mysql_query( $query );
- }
-
- return $output;
-}
-
//----------------------------------------------------- template initialization
-$template->set_filenames( array('update'=>'admin/update.tpl') );
+$template->set_filenames(array('update'=>'admin/update.tpl'));
$template->assign_vars(array(
'L_UPDATE_TITLE'=>$lang['update_default_title'],
@@ -702,67 +576,50 @@ $template->assign_vars(array(
'L_NEW_CATEGORY'=>$lang['update_research_conclusion'],
'L_DEL_CATEGORY'=>$lang['update_deletion_conclusion'],
- 'U_CAT_UPDATE'=>add_session_id( PHPWG_ROOT_PATH.'admin.php?page=update&update=cats' ),
- 'U_ALL_UPDATE'=>add_session_id( PHPWG_ROOT_PATH.'admin.php?page=update&update=all' )
- ));
+ 'U_CAT_UPDATE'=>add_session_id(PHPWG_ROOT_PATH.'admin.php?page=update&update=cats'),
+ 'U_ALL_UPDATE'=>add_session_id(PHPWG_ROOT_PATH.'admin.php?page=update&update=all')
+ ));
//-------------------------------------------- introduction : choices of update
// Display choice if "update" var is not specified
-if (!isset( $_GET['update'] ))
+if (!isset($_GET['update']))
{
$template->assign_block_vars('introduction',array());
}
//-------------------------------------------------- local update : ./galleries
else
{
- check_cat_id( $_GET['update'] );
+ check_cat_id($_GET['update']);
$start = get_moment();
$count_new = 0;
$count_deleted = 0;
- if ( isset( $page['cat'] ) )
+ if (isset($page['cat']))
{
- $categories = insert_local_category( $page['cat'] );
+ $categories = insert_local_category($page['cat']);
}
else
{
- $categories = insert_local_category( 'NULL' );
+ $categories = insert_local_category('NULL');
}
$end = get_moment();
- //echo get_elapsed_time( $start, $end ).' for update
';
+ //echo get_elapsed_time($start, $end).' for update
';
$template->assign_block_vars('update',array(
'CATEGORIES'=>$categories,
'NEW_CAT'=>$count_new,
'DEL_CAT'=>$count_deleted
- ));
-}
-//------------------------------------------------- remote update : listing.xml
-if ( @is_file( './admin/listing.xml' ) )
-{
- $count_new = 0;
- $count_deleted = 0;
- $vtp->addSession( $sub, 'remote_update' );
-
- $start = get_moment();
- remote_images();
- $end = get_moment();
- echo get_elapsed_time( $start, $end ).' for remote_images
';
-
- $vtp->setVar( $sub, 'remote_update.count_new', $count_new );
- $vtp->setVar( $sub, 'remote_update.count_deleted', $count_deleted );
-
- $vtp->closeSession( $sub, 'remote_update' );
+ ));
}
//---------------------------------------- update informations about categories
-if ( isset( $_GET['update'] )
- or isset( $page['cat'] )
- or @is_file( './listing.xml' ) && DEBUG)
+if (isset($_GET['update'])
+ or isset($page['cat'])
+ or @is_file('./listing.xml') && DEBUG)
{
$start = get_moment();
- update_category( 'all' );
+ update_category('all');
ordering('NULL');
$end = get_moment();
- echo get_elapsed_time( $start, $end ).' for update_category( all )
';
+ echo get_elapsed_time($start, $end).' for update_category(all)
';
}
//----------------------------------------------------------- sending html code
$template->assign_var_from_handle('ADMIN_CONTENT', 'update');