- in admin menu, status option for categories is not "permissions" but

"private or public" choice = different language item

- get_cat_display_name changed : use $conf['level_separator'] to unify
  presentation

- default values for category properties commentable, uploadable, status and
  visible (set in include/config.inc.php) used for category creation
  (admin/update, admin/remote_site, admin/cat_list)

- use mass_inserts in admin/update for inserting new categories

- only one query for counting the number of sub categories in admin/cat_list


git-svn-id: http://piwigo.org/svn/trunk@642 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall 2004-12-12 21:06:39 +00:00
parent 9037726f5a
commit 391fac78a8
24 changed files with 303 additions and 182 deletions

View file

@ -30,7 +30,6 @@ define('PHPWG_ROOT_PATH','./');
define('IN_ADMIN', true);
include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
include_once( PHPWG_ROOT_PATH.'admin/include/isadmin.inc.php' );
//--------------------------------------- validating page and creation of title
$page_valide = false;
$title = '';
@ -85,7 +84,7 @@ switch ( $_GET['page'] )
if ( isset( $page['cat'] ) and is_numeric( $page['cat'] ) )
{
$result = get_cat_info( $page['cat'] );
$name = get_cat_display_name( $result['name'],' > ', '' );
$name = get_cat_display_name($result['name'], '');
$title.= ' "'.$name.'"';
}
}
@ -202,7 +201,7 @@ $template->assign_vars(array(
'L_CAT_UPLOAD'=>$lang['upload'],
'L_CAT_COMMENTS'=>$lang['comments'],
'L_CAT_VISIBLE'=>$lang['lock'],
'L_CAT_STATUS'=>$lang['permissions'],
'L_CAT_STATUS'=>$lang['admin_menu_cat_status'],
'U_CONFIG_GENERAL'=>add_session_id($conf_link.'general' ),
'U_CONFIG_COMMENTS'=>add_session_id($conf_link.'comments' ),

View file

@ -59,58 +59,88 @@ else if (isset($_POST['submit']))
if (!count($errors))
{
$parent_id = !empty($_GET['parent_id'])?$_GET['parent_id']:'NULL';
// As we don't create a virtual category every day, let's do (far) too
// much queries
$parent_id = !empty($_GET['parent_id'])?$_GET['parent_id']:'NULL';
if ($parent_id != 'NULL')
{
$query = '
SELECT id,uppercats,global_rank,visible,status
FROM '.CATEGORIES_TABLE.'
WHERE id = '.$parent_id.'
;';
$row = mysql_fetch_array(pwg_query($query));
$parent = array('id' => $row['id'],
'uppercats' => $row['uppercats'],
'visible' => $row['visible'],
'status' => $row['status'],
'global_rank' => $row['global_rank']);
}
$insert = array();
$insert{'name'} = $_POST['virtual_name'];
$insert{'rank'} = $_POST['rank'];
$insert{'commentable'} = $conf['newcat_default_commentable'];
$insert{'uploadable'} = $conf['newcat_default_uploadable'];
if (isset($parent))
{
$insert{'id_uppercat'} = $parent{'id'};
// at creation, must a category be visible or not ? Warning : if
// the parent category is invisible, the category is automatically
// create invisible. (invisible = locked)
if ('false' == $parent['visible'])
{
$insert{'visible'} = 'false';
}
else
{
$insert{'visible'} = $conf['newcat_default_visible'];
}
// at creation, must a category be public or private ? Warning :
// if the parent category is private, the category is
// automatically create private.
if ('private' == $parent['status'])
{
$insert{'status'} = 'private';
}
else
{
$insert{'status'} = $conf['newcat_default_status'];
}
}
else
{
$insert{'visible'} = $conf['newcat_default_visible'];
$insert{'status'} = $conf['newcat_default_status'];
}
$inserts = array($insert);
// we have then to add the virtual category
$query = '
INSERT INTO '.CATEGORIES_TABLE.'
(name,id_uppercat,rank,site_id)
VALUES
(\''.$_POST['virtual_name'].'\','.$parent_id.','.$_POST['rank'].',NULL)
;';
pwg_query($query);
$dbfields = array('site_id','name','id_uppercat','rank','commentable',
'uploadable','visible','status');
mass_inserts(CATEGORIES_TABLE, $dbfields, $inserts);
// And last we update the uppercats
$query = '
SELECT MAX(id)
FROM '.CATEGORIES_TABLE.'
;';
$my_id = array_pop(mysql_fetch_array(pwg_query($query)));
if ($parent_id != 'NULL')
{
$query = '
SELECT uppercats, global_rank
FROM '.CATEGORIES_TABLE.'
WHERE id = '.$parent_id.'
;';
$result = pwg_query($query);
$row = mysql_fetch_array($result);
$parent_uppercats = $row['uppercats'];
$parent_global_rank = $row['global_rank'];
}
$query = '
UPDATE '.CATEGORIES_TABLE.'
';
if (!empty($parent_uppercats))
UPDATE '.CATEGORIES_TABLE;
if (isset($parent))
{
$query.= " SET uppercats = CONCAT('".$parent_uppercats."',',',id)";
$query.= "
SET uppercats = CONCAT('".$parent['uppercats']."',',',id)
, global_rank = CONCAT('".$parent['global_rank']."','.',rank)";
}
else
{
$query.= ' SET uppercats = id';
}
if (!empty($parent_global_rank))
{
$query.= " , global_rank = CONCAT('".$parent_global_rank."','.',rank)";
}
else
{
$query.= ' , uppercats = id';
$query.= '
SET uppercats = id
, global_rank = id';
}
$query.= '
WHERE id = '.$my_id.'
@ -142,23 +172,22 @@ $result = pwg_query($query);
while ($row = mysql_fetch_assoc($result))
{
$categories[$row['rank']] = $row;
$categories[$row['rank']]['nb_subcats'] = 0;
}
// +-----------------------------------------------------------------------+
// | Navigation path |
// +-----------------------------------------------------------------------+
if (isset($_GET['parent_id']))
{
$separator = ' <span style="font-size:15px">&rarr;</span> ';
$base_url = PHPWG_ROOT_PATH.'admin.php?page=cat_list';
$navigation = '<a class="" href="'.add_session_id($base_url).'">';
$navigation.= $lang['home'];
$navigation.= '</a>';
$navigation.= $separator;
$navigation.= $conf['level_separator'];
$current_category = get_cat_info($_GET['parent_id']);
$navigation.= get_cat_display_name($current_category['name'],
$separator,
$base_url.'&amp;parent_id=',
false);
}
@ -337,7 +366,25 @@ if (count($infos) != 0)
// +-----------------------------------------------------------------------+
// | Categories display |
// +-----------------------------------------------------------------------+
while (list($id,$category) = each($categories))
$ranks = array();
foreach ($categories as $category)
{
$ranks[$category['id']] = $category['rank'];
}
$query = '
SELECT id_uppercat, COUNT(*) AS nb_subcats
FROM '. CATEGORIES_TABLE.'
WHERE id_uppercat IN ('.implode(',', array_keys($ranks)).')
GROUP BY id_uppercat
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
$categories[$ranks[$row['id_uppercat']]]['nb_subcats'] = $row['nb_subcats'];
}
foreach ($categories as $category)
{
$images_folder = PHPWG_ROOT_PATH.'template/';
$images_folder.= $user['template'].'/admin/images';
@ -356,17 +403,7 @@ while (list($id,$category) = each($categories))
}
else
{
// (Gweltas) May be should we have to introduce a computed field in the
// table to avoid this query -> (z0rglub) no because the number of
// sub-categories depends on permissions
$query = '
SELECT COUNT(id) AS nb_sub_cats
FROM '. CATEGORIES_TABLE.'
WHERE id_uppercat = '.$category['id'].'
;';
$row = mysql_fetch_array(pwg_query($query));
if ($row['nb_sub_cats'] > 0)
if ($category['nb_subcats'] > 0)
{
$image_src = $images_folder.'/icon_subfolder.gif';
}

View file

@ -103,11 +103,10 @@ foreach (array('comment','dir','site_id') as $nullable)
// Navigation path
$url = PHPWG_ROOT_PATH.'admin.php?page=cat_list&amp;parent_id=';
$navigation = '<a class="" href="'.add_session_id(PHPWG_ROOT_PATH.'admin.php?page=cat_list').'">';
$navigation.= $lang['home'].'</a> <span style="font-size:15px">&rarr;</span>';
$navigation.= $lang['home'].'</a>'.$conf['level_separator'];
$navigation.= get_cat_display_name_cache(
$category['uppercats'],
' <span style="font-size:15px">&rarr;</span>',
$url);
$form_action = PHPWG_ROOT_PATH.'admin.php?page=cat_modify&amp;cat_id='.$_GET['cat_id'];

View file

@ -104,8 +104,7 @@ while ( $row = mysql_fetch_array( $result ) )
}
// category name
$cat_infos = get_cat_info( $row['id'] );
$name = get_cat_display_name( $cat_infos['name'],' &gt; ',
'font-weight:bold;' );
$name = get_cat_display_name($cat_infos['name']);
$vtp->setVar( $sub, 'category.name', $name );
// any subcat forbidden for this group ?
if ( $is_group_allowed == 2 )

View file

@ -788,7 +788,7 @@ function is_user_allowed( $category_id, $restrictions )
function get_category_directories( $basedir )
{
$sub_dirs = array();
if ( $opendir = opendir( $basedir ) )
{
while ( $file = readdir( $opendir ) )

View file

@ -248,9 +248,7 @@ if (isset($page['cat']))
// Navigation path
$current_category = get_cat_info($_GET['cat_id']);
$url = PHPWG_ROOT_PATH.'admin.php?page=infos_images&amp;cat_id=';
$category_path = get_cat_display_name($current_category['name'],
'-&gt;',
$url);
$category_path = get_cat_display_name($current_category['name'], $url);
$form_action = PHPWG_ROOT_PATH.'admin.php';
$form_action.= '?page=infos_images&amp;cat_id='.$_GET['cat_id'];

View file

@ -162,10 +162,10 @@ $url_img = PHPWG_ROOT_PATH.'picture.php?image_id='.$_GET['image_id'];
$url_img .= '&amp;cat='.$row['storage_category_id'];
$date = isset($_POST['date_creation']) && empty($errors)
?$_POST['date_creation']:date_convert_back(@$row['date_creation']);
$url = PHPWG_ROOT_PATH.'admin.php?page=cat_modify&amp;cat_id=';
$storage_category = get_cat_display_name_cache($row['uppercats'],
' &rarr; ',
'',
$url,
false);
//----------------------------------------------------- template initialization
$template->set_filenames(array('picture_modify'=>'admin/picture_modify.tpl'));

View file

@ -176,7 +176,7 @@ function update_remote_site($listing_file, $site_id)
*/
function insert_remote_category($xml_content, $site_id, $id_uppercat, $level)
{
global $counts, $removes;
global $counts, $removes, $conf;
$uppercats = '';
// 0. retrieving informations on the category to display
@ -184,15 +184,18 @@ function insert_remote_category($xml_content, $site_id, $id_uppercat, $level)
if (is_numeric($id_uppercat))
{
$query = '
SELECT name,uppercats,dir
SELECT id,name,uppercats,dir,status,visible
FROM '.CATEGORIES_TABLE.'
WHERE id = '.$id_uppercat.'
;';
$row = mysql_fetch_array(pwg_query($query));
$parent = array('id' => $row['id'],
'name' => $row['name'],
'dir' => $row['dir'],
'uppercats' => $row['uppercats'],
'visible' => $row['visible'],
'status' => $row['status']);
$uppercats = $row['uppercats'];
$name = $row['name'];
insert_remote_element($xml_content, $id_uppercat);
}
@ -224,6 +227,39 @@ SELECT name,uppercats,dir
// array of new categories to insert
$inserts = array();
// calculate default value at category creation
$create_values = array();
if (isset($parent))
{
// at creation, must a category be visible or not ? Warning : if
// the parent category is invisible, the category is automatically
// create invisible. (invisible = locked)
if ('false' == $parent['visible'])
{
$create_values{'visible'} = 'false';
}
else
{
$create_values{'visible'} = $conf['newcat_default_visible'];
}
// at creation, must a category be public or private ? Warning :
// if the parent category is private, the category is
// automatically create private.
if ('private' == $parent['status'])
{
$create_values{'status'} = 'private';
}
else
{
$create_values{'status'} = $conf['newcat_default_status'];
}
}
else
{
$create_values{'visible'} = $conf['newcat_default_visible'];
$create_values{'status'} = $conf['newcat_default_status'];
}
foreach ($xml_dirs as $xml_dir)
{
// 5. Is the category already existing ? we create a subcat if not
@ -239,9 +275,13 @@ SELECT name,uppercats,dir
$insert{'name'} = $name;
$insert{'site_id'} = $site_id;
$insert{'uppercats'} = 'undef';
if (is_numeric($id_uppercat))
$insert{'commentable'} = $conf['newcat_default_commentable'];
$insert{'uploadable'} = 'false';
$insert{'status'} = $create_values{'status'};
$insert{'visible'} = $create_values{'visible'};
if (isset($parent))
{
$insert{'id_uppercat'} = $id_uppercat;
$insert{'id_uppercat'} = $parent['id'];
}
array_push($inserts, $insert);
}
@ -251,31 +291,25 @@ SELECT name,uppercats,dir
if (count($inserts) > 0)
{
// inserts all found categories
$dbfields = array('dir','name','site_id','uppercats','id_uppercat');
$dbfields = array('dir','name','site_id','uppercats','id_uppercat',
'commentable','uploadable','status','visible');
mass_inserts(CATEGORIES_TABLE, $dbfields, $inserts);
$counts{'new_categories'}+= count($inserts);
// updating uppercats field
$query = '
UPDATE '.CATEGORIES_TABLE.'
SET uppercats = ';
if ($uppercats != '')
UPDATE '.CATEGORIES_TABLE;
if (isset($parent))
{
$query.= "CONCAT('".$uppercats."',',',id)";
$query.= "
SET uppercats = CONCAT('".$parent['uppercats']."',',',id)
WHERE id_uppercat = ".$id_uppercat;
}
else
{
$query.= 'id';
}
$query.= '
WHERE id_uppercat ';
if (!is_numeric($id_uppercat))
{
$query.= 'IS NULL';
}
else
{
$query.= '= '.$id_uppercat;
$query.= '
SET uppercats = id
WHERE id_uppercat IS NULL';
}
$query.= '
;';

View file

@ -47,24 +47,30 @@ function insert_local_category($id_uppercat)
$cat_directory = PHPWG_ROOT_PATH.'galleries';
if (is_numeric($id_uppercat))
{
$query = 'SELECT name,uppercats,dir FROM '.CATEGORIES_TABLE;
$query.= ' WHERE id = '.$id_uppercat;
$query.= ';';
$row = mysql_fetch_array( pwg_query( $query));
$uppercats = $row['uppercats'];
$name = $row['name'];
$dir = $row['dir'];
$query = '
SELECT id,name,uppercats,dir,visible,status
FROM '.CATEGORIES_TABLE.'
WHERE id = '.$id_uppercat.'
;';
$row = mysql_fetch_array(pwg_query($query));
$parent = array('id' => $row['id'],
'name' => $row['name'],
'dir' => $row['dir'],
'uppercats' => $row['uppercats'],
'visible' => $row['visible'],
'status' => $row['status']);
$upper_array = explode( ',', $uppercats);
$upper_array = explode( ',', $parent['uppercats']);
$local_dir = '';
$database_dirs = array();
$query = '
SELECT id,dir FROM '.CATEGORIES_TABLE.'
WHERE id IN ('.$uppercats.')
SELECT id,dir
FROM '.CATEGORIES_TABLE.'
WHERE id IN ('.$parent['uppercats'].')
;';
$result = pwg_query( $query);
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
$database_dirs[$row['id']] = $row['dir'];
@ -78,8 +84,8 @@ SELECT id,dir FROM '.CATEGORIES_TABLE.'
// 1. display the category name to update
$output = '<ul class="menu">';
$output.= '<li><strong>'.$name.'</strong>';
$output.= ' [ '.$dir.' ]';
$output.= '<li><strong>'.$parent['name'].'</strong>';
$output.= ' [ '.$parent['dir'].' ]';
$output.= '</li>';
// 2. we search pictures of the category only if the update is for all
@ -94,7 +100,8 @@ SELECT id,dir FROM '.CATEGORIES_TABLE.'
$sub_category_dirs = array();
$query = '
SELECT id,dir FROM '.CATEGORIES_TABLE.'
SELECT id,dir
FROM '.CATEGORIES_TABLE.'
WHERE site_id = 1
';
if (!is_numeric($id_uppercat))
@ -131,6 +138,39 @@ SELECT id,dir FROM '.CATEGORIES_TABLE.'
// array of new categories to insert
$inserts = array();
// calculate default value at category creation
$create_values = array();
if (isset($parent))
{
// at creation, must a category be visible or not ? Warning : if
// the parent category is invisible, the category is automatically
// create invisible. (invisible = locked)
if ('false' == $parent['visible'])
{
$create_values{'visible'} = 'false';
}
else
{
$create_values{'visible'} = $conf['newcat_default_visible'];
}
// at creation, must a category be public or private ? Warning :
// if the parent category is private, the category is
// automatically create private.
if ('private' == $parent['status'])
{
$create_values{'status'} = 'private';
}
else
{
$create_values{'status'} = $conf['newcat_default_status'];
}
}
else
{
$create_values{'visible'} = $conf['newcat_default_visible'];
$create_values{'status'} = $conf['newcat_default_status'];
}
foreach ($fs_subdirs as $fs_subdir)
{
@ -139,22 +179,27 @@ SELECT id,dir FROM '.CATEGORIES_TABLE.'
$category_id = array_search($fs_subdir, $sub_category_dirs);
if (!is_numeric($category_id))
{
$insert = array();
if (preg_match('/^[a-zA-Z0-9-_.]+$/', $fs_subdir))
{
$name = str_replace('_', ' ', $fs_subdir);
$value = "('".$fs_subdir."','".$name."',1";
if (!is_numeric($id_uppercat))
$insert{'dir'} = $fs_subdir;
$insert{'name'} = $name;
$insert{'site_id'} = 1;
$insert{'uppercats'} = 'undef';
$insert{'commentable'} = $conf['newcat_default_commentable'];
$insert{'uploadable'} = $conf['newcat_default_uploadable'];
$insert{'status'} = $create_values{'status'};
$insert{'visible'} = $create_values{'visible'};
if (isset($parent))
{
$value.= ',NULL';
$insert{'id_uppercat'} = $parent['id'];
}
else
{
$value.= ','.$id_uppercat;
}
$value.= ",'undef'";
$value.= ')';
array_push($inserts, $value);
array_push($inserts, $insert);
}
else
{
@ -167,37 +212,27 @@ SELECT id,dir FROM '.CATEGORIES_TABLE.'
// we have to create the category
if (count($inserts) > 0)
{
$query = '
INSERT INTO '.CATEGORIES_TABLE.'
(dir,name,site_id,id_uppercat,uppercats) VALUES
';
$query.= implode(',', $inserts);
$query.= '
;';
pwg_query($query);
$dbfields = array(
'dir','name','site_id','id_uppercat','uppercats','commentable',
'uploadable','visible','status'
);
mass_inserts(CATEGORIES_TABLE, $dbfields, $inserts);
$counts['new_categories']+= count($inserts);
// updating uppercats field
$query = '
UPDATE '.CATEGORIES_TABLE.'
SET uppercats = ';
if ($uppercats != '')
UPDATE '.CATEGORIES_TABLE;
if (isset($parent))
{
$query.= "CONCAT('".$uppercats."',',',id)";
$query.= "
SET uppercats = CONCAT('".$parent['uppercats']."',',',id)
WHERE id_uppercat = ".$parent['id'];
}
else
{
$query.= 'id';
}
$query.= '
WHERE id_uppercat ';
if (!is_numeric($id_uppercat))
{
$query.= 'IS NULL';
}
else
{
$query.= '= '.$id_uppercat;
$query.= '
SET uppercats = id
WHERE id_uppercat IS NULL';
}
$query.= '
;';

View file

@ -220,8 +220,7 @@ while ( $row = mysql_fetch_array( $result ) )
}
// category name
$cat_infos = get_cat_info( $row['id'] );
$name = get_cat_display_name( $cat_infos['name'],' &gt; ',
'font-weight:bold;' );
$name = get_cat_display_name($cat_infos['name']);
$vtp->setVar( $sub, 'category.name', $name );
// usergroups
if ( count( $usergroups ) > 0 )

View file

@ -102,14 +102,16 @@ else
$is_user_allowed = is_user_allowed( $row['id'], $restrictions );
$url = PHPWG_ROOT_PATH.'admin.php?page=cat_perm&amp;cat_id='.$row['id'];
$cat_infos = get_cat_info( $row['id'] );
$template->assign_block_vars('permission.category',array(
'CAT_NAME'=> get_cat_display_name($cat_infos['name'],' &gt; ', 'font-weight:bold;' ),
'CAT_ID'=>$row['id'],
'AUTH_YES'=>!$is_user_allowed?'checked="checked"':'',
'AUTH_NO' =>$is_user_allowed?'checked="checked"':'',
'CAT_URL'=>add_session_id($url)
));
$template->assign_block_vars(
'permission.category',
array(
'CAT_NAME'=> get_cat_display_name($cat_infos['name']),
'CAT_ID'=>$row['id'],
'AUTH_YES'=>!$is_user_allowed?'checked="checked"':'',
'AUTH_NO' =>$is_user_allowed?'checked="checked"':'',
'CAT_URL'=>add_session_id($url)
));
// any subcat forbidden for this user ?
if ( $is_user_allowed == 2 )
{

View file

@ -113,7 +113,7 @@ while ( $row = mysql_fetch_array( $result ) )
$cat_names[$row['storage_category_id']]['dir'] =
PHPWG_ROOT_PATH.get_complete_dir( $row['storage_category_id'] );
$cat_names[$row['storage_category_id']]['display_name'] =
get_cat_display_name( $cat['name'], ' &gt; ', 'font-weight:bold;' );
get_cat_display_name($cat['name']);
}
$preview_url = PHPWG_ROOT_PATH.$cat_names[$row['storage_category_id']]['dir'].$row['file'];
$class='row1';

View file

@ -152,7 +152,7 @@ SELECT name,file,storage_category_id as cat_id,tn_ext,path
{
$cat_result = get_cat_info($subrow['cat_id']);
$array_cat_names[$subrow['cat_id']] =
get_cat_display_name($cat_result['name'], ' &gt; ', '');
get_cat_display_name($cat_result['name'], '');
}
// name of the picture

View file

@ -363,6 +363,8 @@ SELECT file,tn_ext,'.$conf['calendar_datefield'].',path
}
elseif (isset($page['calendar_day']))
{
$old_level_separator = $conf['level_separator'];
$conf['level_separator'] = '<br />';
// for each category of this day, display a random picture
foreach ($calendar_categories as $calendar_category => $nb_pics)
{
@ -373,7 +375,8 @@ elseif (isset($page['calendar_day']))
else
{
$cat_infos = get_cat_info( $calendar_category );
$name = get_cat_display_name($cat_infos['name'],'<br />','',false);
$name = get_cat_display_name($cat_infos['name'],'',false);
$name = '['.$name.']';
}
$name.= ' ('.$nb_pics.')';
@ -426,5 +429,6 @@ SELECT file,tn_ext,'.$conf['calendar_datefield'].',path
$row_number = 0;
}
}
$conf['level_separator'] = $old_level_separator;
}
?>

View file

@ -59,6 +59,8 @@ if (mysql_num_rows($result) > 0)
$row_number = 0;
}
$old_level_separator = $conf['level_separator'];
$conf['level_separator'] = '<br />';
// for each category, we have to search a recent picture to display and
// the name to display
while ( $row = mysql_fetch_array( $result ) )
@ -90,4 +92,5 @@ while ( $row = mysql_fetch_array( $result ) )
$row_number = 0;
}
}
$conf['level_separator'] = $old_level_separator;
?>

View file

@ -76,7 +76,7 @@ $conf['picture_ext'] = array('jpg','JPG','png','PNG','gif','GIF');
// top_number : number of element to display for "best rated" and "most
// visited" categories
$conf['top_number'] = 10;
$conf['top_number'] = 15;
// anti-flood_time : number of seconds between 2 comments : 0 to disable
$conf['anti-flood_time'] = 60;
@ -168,18 +168,25 @@ $conf['show_queries'] = false;
// show_gt : display generation time at the bottom of each page
$conf['show_gt'] = true;
// Default options for new categories.
//
// Some options for categories (commentable, uploadable, status, visible)
// must be set directly in the database by changing the corresponding
// default values of the column. Examples :
//
// ALTER TABLE phpwebgallery_categories ALTER visible SET DEFAULT 'true';
// ALTER TABLE phpwebgallery_categories ALTER status SET DEFAULT 'private';
// ALTER TABLE phpwebgallery_categories ALTER uploadable SET DEFAULT 'true';
// ALTER TABLE phpwebgallery_categories ALTER commentable SET DEFAULT 'false';
//
// MySQL default values are used when inserting a row and that no value is
// given for the column. In PhpWebGallery, the above columns are not valued
// during categories insertion, so default values are important.
// newcat_default_commentable : at creation, must a category be commentable
// or not ?
$conf['newcat_default_commentable'] = 'true';
// newcat_default_uploadable : at creation, must a category be uploadable or
// not ?
$conf['newcat_default_uploadable'] = 'true';
// newcat_default_visible : at creation, must a category be visible or not ?
// Warning : if the parent category is invisible, the category is
// automatically create invisible. (invisible = locked)
$conf['newcat_default_visible'] = 'true';
// newcat_default_status : at creation, must a category be public or private
// ? Warning : if the parent category is private, the category is
// automatically create private.
$conf['newcat_default_status'] = 'public';
// level_separator : character string used for separating a category level
// to the sub level
$conf['level_separator'] = ' / ';
?>

View file

@ -348,7 +348,6 @@ function initialize_category( $calling_page = 'category' )
$page['uppercats'] = $result['uppercats'];
$page['title'] =
get_cat_display_name($page['cat_name'],
' &gt; ',
'category.php?cat=',
false);
$page['where'] = ' WHERE category_id = '.$page['cat'];
@ -758,7 +757,6 @@ function display_select_categories($categories,
if ($fullname)
{
$option = get_cat_display_name_cache($category['uppercats'],
' &rarr; ',
'',
false);
}

View file

@ -159,10 +159,11 @@ function style_select($default_style, $select_name = "style")
* @return string
*/
function get_cat_display_name($cat_informations,
$separator,
$url = 'category.php?cat=',
$replace_space = true)
{
global $conf;
$output = '';
$is_first = true;
foreach ($cat_informations as $id => $name)
@ -173,7 +174,7 @@ function get_cat_display_name($cat_informations,
}
else
{
$output.= $separator;
$output.= $conf['level_separator'];
}
if ($url == '')
@ -205,17 +206,15 @@ function get_cat_display_name($cat_informations,
* the categories name without links.
*
* @param string uppercats
* @param string separator
* @param string url
* @param boolean replace_space
* @return string
*/
function get_cat_display_name_cache($uppercats,
$separator,
$url = 'category.php?cat=',
$replace_space = true)
{
global $cat_names;
global $cat_names, $conf;
if (!isset($cat_names))
{
@ -242,7 +241,7 @@ SELECT id,name
}
else
{
$output.= $separator;
$output.= $conf['level_separator'];
}
if ($url == '')

View file

@ -51,6 +51,7 @@ function getContent( $element )
// attribute $attribute for the tag $element.
function getAttribute( $element, $attribute )
{
// echo htmlentities($element).'<br /><br />';
$regex = '/^<\w+[^>]*'.$attribute.'\s*=\s*"('.VAL_REG.')"/i';
if ( preg_match( $regex, $element, $out ) ) return $out[1];
else return '';

View file

@ -351,4 +351,5 @@ $lang['cat_dissociated'] = 'dissociated from';
$lang['storage_category'] = 'storage category';
$lang['represents'] = 'represents';
$lang['doesnt_represent'] = 'doesn\'t represent';
$lang['admin_menu_cat_status'] = 'Public / Private';
?>

View file

@ -348,7 +348,12 @@ if ( isset( $_POST['content'] ) && !empty($_POST['content']) )
// notification to the administrators
if ( $conf['mail_notification'] )
{
$cat_name = get_cat_display_name( $page['cat_name'], ' > ', '' );
// locally, we change the $conf['level_separator']
$conf_separator = $conf['level_separator'];
$conf['level_separator'] = ' > ';
$cat_name = get_cat_display_name($page['cat_name'], '');
$conf['level_separator'] = $conf_separator;
$cat_name = strip_tags( $cat_name );
notify( 'comment', $cat_name.' > '.$picture['current']['name']);
}
@ -389,7 +394,7 @@ $title_img = $picture['current']['name'];
$title_nb = '';
if (is_numeric( $page['cat'] ))
{
$title_img = replace_space(get_cat_display_name($page['cat_name'],' &gt; '));
$title_img = replace_space(get_cat_display_name($page['cat_name']));
$n = $page['num'] + 1;
$title_nb = $n.'/'.$page['cat_nb_images'];
}
@ -443,6 +448,8 @@ $template->assign_vars(array(
'WIDTH_IMG' => $picture_size[0],
'HEIGHT_IMG' => $picture_size[1],
'LEVEL_SEPARATOR' => $conf['level_separator'],
'L_HOME' => $lang['home'],
'L_SLIDESHOW' => $lang['slideshow'],
'L_STOP_SLIDESHOW' => $lang['slideshow_stop'],
@ -768,13 +775,12 @@ foreach ($cat_array as $category)
if (count($cat_array) > 3)
{
$cat_output .= get_cat_display_name_cache($category['uppercats'],
' &rarr; ');
$cat_output .= get_cat_display_name_cache($category['uppercats']);
}
else
{
$cat_info = get_cat_info($category['category_id']);
$cat_output .= get_cat_display_name($cat_info['name'], ' &rarr; ');
$cat_output .= get_cat_display_name($cat_info['name']);
}
// the picture is commentable if it belongs at least to one category which
// is commentable

View file

@ -2,7 +2,7 @@
<div class="information">{information.INFORMATION}</div>
<!-- END information -->
<div class="titrePage">
<div id="gauche"><a href="{U_HOME}">{L_HOME}</a> &gt; {CATEGORY}</div>
<div id="gauche"><a href="{U_HOME}">{L_HOME}</a>{LEVEL_SEPARATOR}{CATEGORY}</div>
<div id="centre" class="nameImage">{TITLE}</div>
<div id="droite">{PHOTO}</div>
</div>

View file

@ -132,7 +132,7 @@ function clean_iptc_value($value)
// remove binary nulls
$value = str_replace(chr(0x00), ' ', $value);
return $value;
return htmlentities($value);
}
function get_sync_iptc_data($file)

View file

@ -274,7 +274,7 @@ if ( isset( $page['waiting_id'] ) )
else
{
$advise_title = $lang['upload_advise'];
$advise_title.= get_cat_display_name( $page['cat_name'], ' - ' );
$advise_title.= get_cat_display_name($page['cat_name']);
}
$username = !empty($_POST['username'])?$_POST['username']:$user['username'];