一、phpcms-v9默认情况下只能在最底层栏目下添加内容,而不能给含有子栏目的栏目添加内容,如果需要给含有子栏目的栏目下添加内容的需求,则需要修改content.php控制器的如下代码:
- /**
- * 显示栏目菜单列表
- */
- public function public_categorys() {
- $show_header = '';
- $cfg = getcache('common','commons');
- $ajax_show = intval($cfg['category_ajax']);
- $from = isset($_GET['from']) && in_array($_GET['from'],array('block')) ? $_GET['from'] : 'content';
- $tree = pc_base::load_sys_class('tree');
- if($from=='content' && $_SESSION['roleid'] != 1) {
- $this->priv_db = pc_base::load_model('category_priv_model');
- $priv_result = $this->priv_db->select(array('action'=>'init','roleid'=>$_SESSION['roleid'],'siteid'=>$this->siteid,'is_admin'=>1));
- $priv_catids = array();
- foreach($priv_result as $_v) {
- $priv_catids[] = $_v['catid'];
- }
- if(emptyempty($priv_catids)) return '';
- }
- $categorys = array();
- if(!emptyempty($this->categorys)) {
- foreach($this->categorys as $r) {
- if($r['siteid']!=$this->siteid || ($r['type']==2 && $r['child']==0)) continue;
- if($from=='content' && $_SESSION['roleid'] != 1 && !in_array($r['catid'],$priv_catids)) {
- $arrchildid = explode(',',$r['arrchildid']);
- $array_intersect = array_intersect($priv_catids,$arrchildid);
- if(emptyempty($array_intersect)) continue;
- }
- if($r['type']==1 || $from=='block') {
- if($r['type']==0) {
- $r['vs_show'] = "<a href='?m=block&c=block_admin&a=public_visualization&menuid=".$_GET['menuid']."&catid=".$r['catid']."&type=show' target='right'>[".L('content_page')."]</a>";
- } else {
- $r['vs_show'] ='';
- }
- $r['icon_type'] = 'file';
- $r['add_icon'] = '';
- $r['type'] = 'add';
- } else {
- $r['icon_type'] = $r['vs_show'] = '';
- $r['type'] = 'init';
- $r['add_icon'] = "<a target='right' href='?m=content&c=content&menuid=".$_GET['menuid']."&catid=".$r['catid']."' onclick=javascript:openwinx('?m=content&c=content&a=add&menuid=".$_GET['menuid']."&catid=".$r['catid']."&hash_page=".$_SESSION['hash_page']."','')><img src='".IMG_PATH."add_content.gif' alt='".L('add')."'></a> ";
- }
- $categorys[$r['catid']] = $r;
- }
- }
- if(!emptyempty($categorys)) {
- $tree->init($categorys);
- switch($from) {
- case 'block':
- $strs = "<span class='/$icon_type'>/$add_icon<a href='?m=block&c=block_admin&a=public_visualization&menuid=".$_GET['menuid']."&catid=/$catid&type=list' target='right'>/$catname</a> /$vs_show</span>";
- $strs2 = "<img src='".IMG_PATH."folder.gif'> <a href='?m=block&c=block_admin&a=public_visualization&menuid=".$_GET['menuid']."&catid=/$catid&type=category' target='right'>/$catname</a>";
- break;
- default:
- $strs = "<span class='/$icon_type'>/$add_icon<a href='?m=content&c=content&a=/$type&menuid=".$_GET['menuid']."&catid=/$catid' target='right' onclick='open_list(this)'>/$catname</a></span>";
- //修改前
- //$strs2 = "<span class='folder'>/$catname</span>";
- //修改后
- $strs2 = "<span class='/$icon_type'>/$add_icon<a href='?m=content&c=content&a=/$type&menuid=".$_GET['menuid']."&catid=/$catid' target='right' onclick='open_list(this)'>/$catname</a></span>"; //开源软件:Vevb.com
- break;
- }
- $categorys = $tree->get_treeview(0,'category_tree',$strs,$strs2,$ajax_show);
- } else {
- $categorys = L('please_add_category');
- }
- include $this->admin_tpl('category_tree');
- exit;
- }
2.截图如下:
二、案例:
【咨询】栏目下有很多子栏目,如,【即时、国际、大陆等等】,当要添加的内容不属于 【即时、国际、大陆、台湾、港澳、社会、深度、图片、评论、军事、历史、文化、专题、排行】任何一个 栏目时,会将要添加的内容将放在 【咨询 】顶级栏目下
当点击【咨询】时,将显示不属于【即时、国际、大陆、台湾、港澳、社会、深度、图片、评论、军事、历史、文化、专题、排行】栏目下的文章列表
三、尽量避免这种情况的发生,因为这样会引起index.html文件的冲突,如果确实需要完成此功能,我们可以采取一种其它的实现方式。比如,再建立一个名称为【其它】的子栏目,专门用于存放暂时没有归类的文章。如果不想在模版中显示【其它】这个名字,可以将其屏蔽掉,
新闻热点
疑难解答