- ordering function moved from admin/update to admin/include/function

- remote_site uses ordering and update_global_rank


git-svn-id: http://piwigo.org/svn/trunk@638 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall 2004-12-05 22:47:46 +00:00
parent 484a431a7e
commit 1ab32cccb7
3 changed files with 39 additions and 37 deletions

View file

@ -1164,4 +1164,41 @@ SELECT image_id
'update' => array('representative_picture_id'));
mass_updates(CATEGORIES_TABLE, $fields, $datas);
}
/**
* order categories (update categories.rank and global_rank database fields)
*
* the purpose of this function is to give a rank for all categories
* (insides its sub-category), even the newer that have none at te
* beginning. For this, ordering function selects all categories ordered by
* rank ASC then name ASC for each uppercat.
*
* @returns void
*/
function ordering()
{
$current_rank = 0;
$current_uppercat = '';
$query = '
SELECT id, if(id_uppercat is null,\'\',id_uppercat) AS id_uppercat
FROM '.CATEGORIES_TABLE.'
ORDER BY id_uppercat,rank,name
;';
$result = pwg_query($query);
$datas = array();
while ($row = mysql_fetch_array($result))
{
if ($row['id_uppercat'] != $current_uppercat)
{
$current_rank = 0;
$current_uppercat = $row['id_uppercat'];
}
$data = array('id' => $row['id'], 'rank' => ++$current_rank);
array_push($datas, $data);
}
$fields = array('primary' => array('id'), 'update' => array('rank'));
mass_updates(CATEGORIES_TABLE, $fields, $datas);
}
?>

View file

@ -135,6 +135,8 @@ function update_remote_site($listing_file, $site_id)
$xml_content = getXmlCode($listing_file);
insert_remote_category($xml_content, $site_id, 'NULL', 0);
update_category();
ordering();
update_global_rank();
$template->assign_block_vars(
'update',

View file

@ -36,43 +36,6 @@ define('CURRENT_DATE', date('Y-m-d'));
// | functions |
// +-----------------------------------------------------------------------+
/**
* order categories (update categories.rank and global_rank database fields)
*
* the purpose of this function is to give a rank for all categories
* (insides its sub-category), even the newer that have none at te
* beginning. For this, ordering function selects all categories ordered by
* rank ASC then name ASC for each uppercat.
*
* @returns void
*/
function ordering()
{
$current_rank = 0;
$current_uppercat = '';
$query = '
SELECT id, if(id_uppercat is null,\'\',id_uppercat) AS id_uppercat
FROM '.CATEGORIES_TABLE.'
ORDER BY id_uppercat,rank,name
;';
$result = pwg_query($query);
$datas = array();
while ($row = mysql_fetch_array($result))
{
if ($row['id_uppercat'] != $current_uppercat)
{
$current_rank = 0;
$current_uppercat = $row['id_uppercat'];
}
$data = array('id' => $row['id'], 'rank' => ++$current_rank);
array_push($datas, $data);
}
$fields = array('primary' => array('id'), 'update' => array('rank'));
mass_updates(CATEGORIES_TABLE, $fields, $datas);
}
function insert_local_category($id_uppercat)
{
global $conf, $page, $user, $lang, $counts;