mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-03-28 17:42:57 +01:00
- admin/cat_options page really added this time : manage options for the
whole categories tree : uploadable, commentable, status and visible git-svn-id: http://piwigo.org/svn/trunk@604 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
333
admin/cat_options.php
Normal file
333
admin/cat_options.php
Normal file
@@ -0,0 +1,333 @@
|
||||
<?php
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | PhpWebGallery - a PHP based picture gallery |
|
||||
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
||||
// | Copyright (C) 2003-2004 PhpWebGallery Team - http://phpwebgallery.net |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | branch : BSF (Best So Far)
|
||||
// | file : $RCSfile$
|
||||
// | last update : $Date$
|
||||
// | last modifier : $Author$
|
||||
// | revision : $Revision$
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | 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 |
|
||||
// | |
|
||||
// | This program is distributed in the hope that it will be useful, but |
|
||||
// | WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
||||
// | General Public License for more details. |
|
||||
// | |
|
||||
// | You should have received a copy of the GNU General Public License |
|
||||
// | along with this program; if not, write to the Free Software |
|
||||
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
|
||||
// | USA. |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
if (!defined('PHPWG_ROOT_PATH'))
|
||||
{
|
||||
die ("Hacking attempt!");
|
||||
}
|
||||
include_once(PHPWG_ROOT_PATH.'admin/include/isadmin.inc.php');
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | modification registration |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// print '<pre>';
|
||||
// print_r($_POST);
|
||||
// print '</pre>';
|
||||
if (isset($_POST['submit']) and count($_POST['cat']) > 0)
|
||||
{
|
||||
switch ($_GET['section'])
|
||||
{
|
||||
case 'upload' :
|
||||
{
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.'
|
||||
SET uploadable = \''.$_POST['option'].'\'
|
||||
WHERE id IN ('.implode(',', $_POST['cat']).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
break;
|
||||
}
|
||||
case 'comments' :
|
||||
{
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.'
|
||||
SET commentable = \''.$_POST['option'].'\'
|
||||
WHERE id IN ('.implode(',', $_POST['cat']).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
break;
|
||||
}
|
||||
case 'visible' :
|
||||
{
|
||||
// locking a category => all its child categories become locked
|
||||
if ($_POST['option'] == 'false')
|
||||
{
|
||||
$subcats = get_subcat_ids($_POST['cat']);
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.'
|
||||
SET visible = \'false\'
|
||||
WHERE id IN ('.implode(',', $subcats).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
// unlocking a category => all its parent categories become unlocked
|
||||
if ($_POST['option'] == 'true')
|
||||
{
|
||||
$uppercats = array();
|
||||
$query = '
|
||||
SELECT uppercats
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE id IN ('.implode(',', $_POST['cat']).')
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
$uppercats = array_merge($uppercats,
|
||||
explode(',', $row['uppercats']));
|
||||
}
|
||||
$uppercats = array_unique($uppercats);
|
||||
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.'
|
||||
SET visible = \'true\'
|
||||
WHERE id IN ('.implode(',', $uppercats).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'status' :
|
||||
{
|
||||
// make a category private => all its child categories become private
|
||||
if ($_POST['option'] == 'false')
|
||||
{
|
||||
$subcats = get_subcat_ids($_POST['cat']);
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.'
|
||||
SET status = \'private\'
|
||||
WHERE id IN ('.implode(',', $subcats).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
// make public a category => all its parent categories become public
|
||||
if ($_POST['option'] == 'true')
|
||||
{
|
||||
$uppercats = array();
|
||||
$query = '
|
||||
SELECT uppercats
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE id IN ('.implode(',', $_POST['cat']).')
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
$uppercats = array_merge($uppercats,
|
||||
explode(',', $row['uppercats']));
|
||||
}
|
||||
$uppercats = array_unique($uppercats);
|
||||
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.'
|
||||
SET status = \'public\'
|
||||
WHERE id IN ('.implode(',', $uppercats).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | template init |
|
||||
// +-----------------------------------------------------------------------+
|
||||
$template->set_filenames(array('cat_options'=>'admin/cat_options.tpl'));
|
||||
|
||||
if (!isset($_GET['section']))
|
||||
{
|
||||
$page['section'] = 'upload';
|
||||
}
|
||||
else
|
||||
{
|
||||
$page['section'] = $_GET['section'];
|
||||
}
|
||||
|
||||
$base_url = PHPWG_ROOT_PATH.'admin.php?page=cat_options&section=';
|
||||
$template->assign_vars(
|
||||
array(
|
||||
'L_SUBMIT'=>$lang['submit'],
|
||||
'L_RESET'=>$lang['reset'],
|
||||
'L_CAT_OPTIONS_MENU_UPLOAD'=>$lang['cat_options_menu_upload'],
|
||||
'L_CAT_OPTIONS_MENU_VISIBLE'=>$lang['cat_options_menu_visible'],
|
||||
'L_CAT_OPTIONS_MENU_COMMENTS'=>$lang['cat_options_menu_comments'],
|
||||
'L_CAT_OPTIONS_MENU_STATUS'=>$lang['cat_options_menu_status'],
|
||||
'L_CAT_OPTIONS_UPLOAD_INFO'=>$lang['cat_options_upload_info'],
|
||||
'L_CAT_OPTIONS_UPLOAD_TRUE'=>$lang['cat_options_upload_true'],
|
||||
'L_CAT_OPTIONS_UPLOAD_FALSE'=>$lang['cat_options_upload_false'],
|
||||
'L_CAT_OPTIONS_COMMENTS_INFO'=>$lang['cat_options_comments_info'],
|
||||
'L_CAT_OPTIONS_COMMENTS_TRUE'=>$lang['cat_options_comments_true'],
|
||||
'L_CAT_OPTIONS_COMMENTS_FALSE'=>$lang['cat_options_comments_false'],
|
||||
'L_CAT_OPTIONS_VISIBLE_INFO'=>$lang['cat_options_visible_info'],
|
||||
'L_CAT_OPTIONS_VISIBLE_TRUE'=>$lang['cat_options_visible_true'],
|
||||
'L_CAT_OPTIONS_VISIBLE_FALSE'=>$lang['cat_options_visible_false'],
|
||||
'L_CAT_OPTIONS_STATUS_INFO'=>$lang['cat_options_status_info'],
|
||||
'L_CAT_OPTIONS_STATUS_TRUE'=>$lang['cat_options_status_true'],
|
||||
'L_CAT_OPTIONS_STATUS_FALSE'=>$lang['cat_options_status_false'],
|
||||
|
||||
'U_UPLOAD'=>add_session_id($base_url.'upload'),
|
||||
'U_VISIBLE'=>add_session_id($base_url.'visible'),
|
||||
'U_COMMENTS'=>add_session_id($base_url.'comments'),
|
||||
'U_STATUS'=>add_session_id($base_url.'status'),
|
||||
|
||||
'F_ACTION'=>add_session_id($base_url.$page['section'])
|
||||
)
|
||||
);
|
||||
|
||||
$template->assign_vars(array(strtoupper($page['section']).'_CLASS'=>'opened'));
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | form display |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// for each section, categories in the multiselect field can be :
|
||||
//
|
||||
// - true : uploadable for upload section
|
||||
// - false : un-uploadable for upload section
|
||||
// - NA : (not applicable) for virtual categories
|
||||
//
|
||||
// for true and false status, we associates an array of category ids,
|
||||
// function display_select_categories will use the given CSS class for each
|
||||
// option
|
||||
$cats_true = array();
|
||||
$cats_false = array();
|
||||
switch ($page['section'])
|
||||
{
|
||||
case 'upload' :
|
||||
{
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE uploadable = \'true\'
|
||||
AND dir IS NOT NULL
|
||||
AND site_id = 1
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
array_push($cats_true, $row['id']);
|
||||
}
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE uploadable = \'false\'
|
||||
AND dir IS NOT NULL
|
||||
AND site_id = 1
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
array_push($cats_false, $row['id']);
|
||||
}
|
||||
|
||||
$template->assign_block_vars('upload', array());
|
||||
|
||||
break;
|
||||
}
|
||||
case 'comments' :
|
||||
{
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE commentable = \'true\'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
array_push($cats_true, $row['id']);
|
||||
}
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE commentable = \'false\'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
array_push($cats_false, $row['id']);
|
||||
}
|
||||
|
||||
$template->assign_block_vars('comments', array());
|
||||
|
||||
break;
|
||||
}
|
||||
case 'visible' :
|
||||
{
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE visible = \'true\'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
array_push($cats_true, $row['id']);
|
||||
}
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE visible = \'false\'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
array_push($cats_false, $row['id']);
|
||||
}
|
||||
|
||||
$template->assign_block_vars('visible', array());
|
||||
|
||||
break;
|
||||
}
|
||||
case 'status' :
|
||||
{
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE status = \'public\'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
array_push($cats_true, $row['id']);
|
||||
}
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE status = \'private\'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
{
|
||||
array_push($cats_false, $row['id']);
|
||||
}
|
||||
|
||||
$template->assign_block_vars('status', array());
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
$CSS_classes = array('optionTrue'=>$cats_true,
|
||||
'optionFalse'=>$cats_false);
|
||||
|
||||
$user['expand'] = true;
|
||||
$structure = create_user_structure('');
|
||||
display_select_categories($structure,
|
||||
' ',
|
||||
array(),
|
||||
'category_option',
|
||||
$CSS_classes);
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | sending html code |
|
||||
// +-----------------------------------------------------------------------+
|
||||
$template->assign_var_from_handle('ADMIN_CONTENT', 'cat_options');
|
||||
?>
|
||||
@@ -334,4 +334,10 @@ $lang['cat_options_upload_info'] = '(multi)select categories to make them upload
|
||||
$lang['cat_options_comments_true'] = 'authorize comments';
|
||||
$lang['cat_options_comments_false'] = 'forbid comments';
|
||||
$lang['cat_options_comments_info'] = '(multi)select categories to make them commentable or not. By inheritance, an element is commentable if it belongs at least to one commentable category.';
|
||||
$lang['cat_options_visible_true'] = 'unlock';
|
||||
$lang['cat_options_visible_false'] = 'lock temporary';
|
||||
$lang['cat_options_visible_info'] = '(multi)select categories to lock or unlock them. If you lock category, all its child categories becomes locked. It you unlock a category, all its parent categories becomes unlocked';
|
||||
$lang['cat_options_status_true'] = 'public';
|
||||
$lang['cat_options_status_false'] = 'private';
|
||||
$lang['cat_options_status_info'] = '(multi)select categories to make them public or private. If you make a category private, all its child categories becomes private. It you make a category public, all its parent categories becomes public';
|
||||
?>
|
||||
61
template/default/admin/cat_options.tpl
Normal file
61
template/default/admin/cat_options.tpl
Normal file
@@ -0,0 +1,61 @@
|
||||
<p class="confMenu">
|
||||
<a class="{UPLOAD_CLASS}" href="{U_UPLOAD}">{L_CAT_OPTIONS_MENU_UPLOAD}</a>
|
||||
<a class="{COMMENTS_CLASS}" href="{U_COMMENTS}">{L_CAT_OPTIONS_MENU_COMMENTS}</a>
|
||||
<a class="{VISIBLE_CLASS}" href="{U_VISIBLE}">{L_CAT_OPTIONS_MENU_VISIBLE}</a>
|
||||
<a class="{STATUS_CLASS}" href="{U_STATUS}">{L_CAT_OPTIONS_MENU_STATUS}</a>
|
||||
</p>
|
||||
|
||||
<form action="{F_ACTION}" method="post">
|
||||
|
||||
<select style="width:500px" multiple="multiple" name="cat[]" size="20">
|
||||
<!-- BEGIN category_option -->
|
||||
<option class="{category_option.CLASS}" {category_option.SELECTED} value="{category_option.VALUE}">{category_option.OPTION}</option>
|
||||
<!-- END category_option -->
|
||||
</select>
|
||||
|
||||
<!-- BEGIN upload -->
|
||||
<p>{L_CAT_OPTIONS_UPLOAD_INFO}</p>
|
||||
<p>
|
||||
<input type="radio" name="option" value="true"/> <span class="optionTrue">{L_CAT_OPTIONS_UPLOAD_TRUE}</span>
|
||||
</p>
|
||||
<p>
|
||||
<input type="radio" name="option" value="false"/> <span class="optionFalse">{L_CAT_OPTIONS_UPLOAD_FALSE}</span>
|
||||
</p>
|
||||
<!-- END upload -->
|
||||
|
||||
<!-- BEGIN comments -->
|
||||
<p>{L_CAT_OPTIONS_COMMENTS_INFO}</p>
|
||||
<p>
|
||||
<input type="radio" name="option" value="true"/> <span class="optionTrue">{L_CAT_OPTIONS_COMMENTS_TRUE}</span>
|
||||
</p>
|
||||
<p>
|
||||
<input type="radio" name="option" value="false"/> <span class="optionFalse">{L_CAT_OPTIONS_COMMENTS_FALSE}</span>
|
||||
</p>
|
||||
<!-- END comments -->
|
||||
|
||||
<!-- BEGIN visible -->
|
||||
<p>{L_CAT_OPTIONS_VISIBLE_INFO}</p>
|
||||
<p>
|
||||
<input type="radio" name="option" value="true"/> <span class="optionTrue">{L_CAT_OPTIONS_VISIBLE_TRUE}</span>
|
||||
</p>
|
||||
<p>
|
||||
<input type="radio" name="option" value="false"/> <span class="optionFalse">{L_CAT_OPTIONS_VISIBLE_FALSE}</span>
|
||||
</p>
|
||||
<!-- END visible -->
|
||||
|
||||
<!-- BEGIN status -->
|
||||
<p>{L_CAT_OPTIONS_STATUS_INFO}</p>
|
||||
<p>
|
||||
<input type="radio" name="option" value="true"/> <span class="optionTrue">{L_CAT_OPTIONS_STATUS_TRUE}</span>
|
||||
</p>
|
||||
<p>
|
||||
<input type="radio" name="option" value="false"/> <span class="optionFalse">{L_CAT_OPTIONS_STATUS_FALSE}</span>
|
||||
</p>
|
||||
<!-- END status -->
|
||||
|
||||
<p style="text-align:center;">
|
||||
<input type="submit" value="{L_SUBMIT}" name="submit" class="bouton" />
|
||||
<input type="reset" name="reset" value="{L_RESET}" class="bouton" />
|
||||
</p>
|
||||
|
||||
</form>
|
||||
Reference in New Issue
Block a user