首页 > CMS > PhpCMS > 正文

【phpcms-v9】如何实现在含有子栏目的栏目下添加内容?

2024-09-10 07:15:50
字体:
来源:转载
供稿:网友

一、phpcms-v9默认情况下只能在最底层栏目下添加内容,而不能给含有子栏目的栏目添加内容,如果需要给含有子栏目的栏目下添加内容的需求,则需要修改content.php控制器的如下代码:

  1. /**  
  2.      * 显示栏目菜单列表  
  3.      */   
  4.     public function public_categorys() {   
  5.         $show_header = '';   
  6.         $cfg = getcache('common','commons');   
  7.         $ajax_show = intval($cfg['category_ajax']);   
  8.         $from = isset($_GET['from']) && in_array($_GET['from'],array('block')) ? $_GET['from'] : 'content';   
  9.         $tree = pc_base::load_sys_class('tree');   
  10.         if($from=='content' && $_SESSION['roleid'] != 1) {     
  11.             $this->priv_db = pc_base::load_model('category_priv_model');   
  12.             $priv_result = $this->priv_db->select(array('action'=>'init','roleid'=>$_SESSION['roleid'],'siteid'=>$this->siteid,'is_admin'=>1));   
  13.             $priv_catids = array();   
  14.             foreach($priv_result as $_v) {   
  15.                 $priv_catids[] = $_v['catid'];   
  16.             }   
  17.             if(emptyempty($priv_catids)) return '';   
  18.         }   
  19.         $categorys = array();   
  20.         if(!emptyempty($this->categorys)) {   
  21.             foreach($this->categorys as $r) {   
  22.                 if($r['siteid']!=$this->siteid ||  ($r['type']==2 && $r['child']==0)) continue;   
  23.                 if($from=='content' && $_SESSION['roleid'] != 1 && !in_array($r['catid'],$priv_catids)) {   
  24.                     $arrchildid = explode(',',$r['arrchildid']);   
  25.                     $array_intersect = array_intersect($priv_catids,$arrchildid);   
  26.                     if(emptyempty($array_intersect)) continue;   
  27.                 }   
  28.                 if($r['type']==1 || $from=='block') {   
  29.                     if($r['type']==0) {   
  30.                         $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>";   
  31.                     } else {   
  32.                         $r['vs_show'] ='';   
  33.                     }   
  34.                     $r['icon_type'] = 'file';   
  35.                     $r['add_icon'] = '';   
  36.                     $r['type'] = 'add';   
  37.                 } else {   
  38.                     $r['icon_type'] = $r['vs_show'] = '';   
  39.                     $r['type'] = 'init';   
  40.                     $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> ";   
  41.                 }   
  42.                 $categorys[$r['catid']] = $r;   
  43.             }   
  44.         }   
  45.         if(!emptyempty($categorys)) {   
  46.             $tree->init($categorys);   
  47.                 switch($from) {   
  48.                     case 'block':   
  49.                         $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>";   
  50.                         $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>";   
  51.                     break;   
  52.    
  53.                     default:   
  54.                         $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>";   
  55.                         //修改前   
  56.                         //$strs2 = "<span class='folder'>/$catname</span>";  
  57.                         //修改后   
  58.                         $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 
  59.                         break;   
  60.                 }   
  61.             $categorys = $tree->get_treeview(0,'category_tree',$strs,$strs2,$ajax_show);   
  62.         } else {   
  63.             $categorys = L('please_add_category');   
  64.         }   
  65.         include $this->admin_tpl('category_tree');   
  66.         exit;   
  67.     }  

2.截图如下:

二、案例:

【咨询】栏目下有很多子栏目,如,【即时、国际、大陆等等】,当要添加的内容不属于 【即时、国际、大陆、台湾、港澳、社会、深度、图片、评论、军事、历史、文化、专题、排行】任何一个 栏目时,会将要添加的内容将放在 【咨询 】顶级栏目下

当点击【咨询】时,将显示不属于【即时、国际、大陆、台湾、港澳、社会、深度、图片、评论、军事、历史、文化、专题、排行】栏目下的文章列表

三、尽量避免这种情况的发生,因为这样会引起index.html文件的冲突,如果确实需要完成此功能,我们可以采取一种其它的实现方式。比如,再建立一个名称为【其它】的子栏目,专门用于存放暂时没有归类的文章。如果不想在模版中显示【其它】这个名字,可以将其屏蔽掉,

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表