From ea56d7b2ac1d41ea19b5fb45843c839e30a0b37b Mon Sep 17 00:00:00 2001 From: rvelices Date: Wed, 28 Feb 2007 03:07:12 +0000 Subject: feature 657: permalinks for categories git-svn-id: http://piwigo.org/svn/trunk@1866 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/cat_list.php | 28 +----- admin/include/functions.php | 5 + admin/include/functions_permalinks.php | 170 +++++++++++++++++++++++++++++++++ admin/permalinks.php | 97 +++++++++++++++++++ admin/plugin.php | 3 +- 5 files changed, 274 insertions(+), 29 deletions(-) create mode 100644 admin/include/functions_permalinks.php create mode 100644 admin/permalinks.php (limited to 'admin') diff --git a/admin/cat_list.php b/admin/cat_list.php index c34754f87..e11e13b8b 100644 --- a/admin/cat_list.php +++ b/admin/cat_list.php @@ -137,32 +137,6 @@ SELECT id, name ); } -// +-----------------------------------------------------------------------+ -// | Cache management | -// +-----------------------------------------------------------------------+ -$query = ' -SELECT * - FROM '.CATEGORIES_TABLE; -if (!isset($_GET['parent_id'])) -{ - $query.= ' - WHERE id_uppercat IS NULL'; -} -else -{ - $query.= ' - WHERE id_uppercat = '.$_GET['parent_id']; -} -$query.= ' - ORDER BY rank ASC -;'; -$result = pwg_query($query); -while ($row = mysql_fetch_assoc($result)) -{ - $categories[$row['rank']] = $row; - $categories[$row['rank']]['nb_subcats'] = 0; -} - // +-----------------------------------------------------------------------+ // | Navigation path | // +-----------------------------------------------------------------------+ @@ -209,7 +183,7 @@ $tpl = array('cat_first','cat_last'); $categories = array(); $query = ' -SELECT id, name, dir, rank, nb_images, status +SELECT id, name, permalink, dir, rank, nb_images, status FROM '.CATEGORIES_TABLE; if (!isset($_GET['parent_id'])) { diff --git a/admin/include/functions.php b/admin/include/functions.php index ff54dbbab..99ebfac62 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -118,6 +118,11 @@ DELETE FROM '.CATEGORIES_TABLE.' WHERE id IN ( '.wordwrap(implode(', ', $ids), 80, "\n").') ;'; + pwg_query($query); + + $query=' +DELETE FROM '.OLD_PERMALINKS_TABLE.' + WHERE cat_id IN ('.implode(',',$cat_ids).')'; pwg_query($query); if (isset($counts['del_categories'])) diff --git a/admin/include/functions_permalinks.php b/admin/include/functions_permalinks.php new file mode 100644 index 000000000..9a36ccf3d --- /dev/null +++ b/admin/include/functions_permalinks.php @@ -0,0 +1,170 @@ + diff --git a/admin/permalinks.php b/admin/permalinks.php new file mode 100644 index 000000000..d00770dd9 --- /dev/null +++ b/admin/permalinks.php @@ -0,0 +1,97 @@ +0 ) +{ + $permalink = $_POST['permalink']; + if ( empty($permalink) ) + delete_cat_permalink($_POST['cat_id'], isset($_POST['save']) ); + else + set_cat_permalink($_POST['cat_id'], $permalink, isset($_POST['save']) ); + $selected_cat = array( $_POST['cat_id'] ); +} +elseif ( isset($_GET['delete_permanent']) ) +{ + $query = ' +DELETE FROM '.OLD_PERMALINKS_TABLE.' + WHERE permalink="'.$_GET['delete_permanent'].'" + LIMIT 1'; + pwg_query($query); + if (mysql_affected_rows()==0) + array_push($page['errors'], 'Cannot delete the old permalink !'); +} + +$template->set_filename('permalinks', 'admin/permalinks.tpl' ); + +$query = ' +SELECT + id, + CONCAT(id, " - ", name, IF(permalink IS NULL, "", " √") ) AS name, + uppercats, global_rank +FROM '.CATEGORIES_TABLE; + +display_select_cat_wrapper( $query, $selected_cat, 'categories', false ); + +$query = ' +SELECT id, name, permalink + FROM '.CATEGORIES_TABLE.' + WHERE permalink IS NOT NULL'; +$result=pwg_query($query); +while ( $row=mysql_fetch_assoc($result) ) +{ + $display_name = get_cat_display_name( array($row) ); + $template->assign_block_vars( 'permalink', + array( + 'CAT_ID' => $row['id'], + 'CAT' => $display_name, + 'PERMALINK' => $row['permalink'], + ) + ); +} + +$url_del_base = get_root_url().'admin.php?page=permalinks'; + +$query = 'SELECT * FROM '.OLD_PERMALINKS_TABLE; +$result = pwg_query($query); +while ( $row=mysql_fetch_assoc($result) ) +{ + $row['display_name'] = get_cat_display_name_cache($row['cat_id']); + $row['U_DELETE'] = + add_url_params( + $url_del_base, + array( 'delete_permanent'=> $row['permalink'] ) + ); + $template->assign_block_vars( 'deleted_permalink', $row ); +} + +$template->assign_var('U_HELP', get_root_url().'popuphelp.php?page=permalinks'); + +$template->assign_var_from_handle('ADMIN_CONTENT', 'permalinks'); +?> diff --git a/admin/plugin.php b/admin/plugin.php index 1657f10c8..aa8faaade 100644 --- a/admin/plugin.php +++ b/admin/plugin.php @@ -49,8 +49,7 @@ if (count($sections)<2) } $plugin_id = $sections[0]; -$check_db_plugin = get_db_plugins('active', $plugin_id ); -if (empty($check_db_plugin)) +if ( !isset($pwg_loaded_plugins[$plugin_id]) ) { die('Invalid URL - plugin '.$plugin_id.' not active'); } -- cgit v1.2.3