issue 63. make it able to use checking is_logged status in menu grant

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.3.1@10955 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
chschy 2012-07-27 09:49:27 +00:00
parent 339c6e6d29
commit 71aeed5009
4 changed files with 46 additions and 5 deletions

View file

@ -138,8 +138,11 @@
unset($source_args->act);
if($source_args->menu_open_window!="Y") $source_args->menu_open_window = "N";
if($source_args->menu_expand !="Y") $source_args->menu_expand = "N";
if($source_args->menu_grant_default == -1) $source_args->group_srls = -1;
if(!is_array($source_args->group_srls)) $source_args->group_srls = str_replace('|@|',',',$source_args->group_srls);
else $source_args->group_srls = implode(',', $source_args->group_srls);
$source_args->parent_srl = (int)$source_args->parent_srl;
if($source_args->cType == 'CREATE') $source_args->menu_url = $source_args->create_menu_url;
@ -713,7 +716,7 @@
'$group_srls = array_keys($logged_info->group_list); '.
'} else { '.
'$is_admin = false; '.
'$group_srsl = array(); '.
'$group_srls = array(); '.
'}';
// Create the xml cache file (a separate session is needed for xml cache)
$xml_buff = sprintf(
@ -812,7 +815,7 @@
$link = '<?php print $_names[$lang_type]; ?>';
}
// If the value of node->group_srls exists
if($group_srls) $group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s)))))',$group_srls);
if($group_srls)$group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s))))||($is_logged&&%s))',$group_srls,$group_srls === -1?1:-1);
else $group_check_code = "true";
$attribute = sprintf(
'node_srl="%s" parent_srl="%s" text="<?php if(%s) { %s }?>" url="<?php print(%s?"%s":"")?>" href="<?php print(%s?"%s":"")?>" open_window="%s" expand="%s" normal_btn="%s" hover_btn="%s" active_btn="%s" link="<?php if(%s) {?>%s<?php }?>"',
@ -871,7 +874,7 @@
if($node->url) $child_output['url_list'][] = $node->url;
$output['url_list'] = array_merge($output['url_list'], $child_output['url_list']);
// If node->group_srls value exists
if($node->group_srls) $group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s)))))',$node->group_srls);
if($node->group_srls)$group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s))))||($is_logged && %s))',$node->group_srls,$node->group_srls === -1?1:-1);
else $group_check_code = "true";
// List variables
$href = str_replace(array('&','"','<','>'),array('&amp;','&quot;','&lt;','&gt;'),$node->href);