RELATEED CONSULTING
相关咨询
在线沟通
手机:13486983554
服务时间:8:30-20:00
建站知识
关闭右侧工具栏
织梦一级栏目设置为外链后,导航无法显示的解
  • 作者:admin
  • 发表时间:2019-03-03 00:38
  • 来源:未知

最近站长在仿站是,因为需要,在设置栏目时,将一个顶级栏目设置成了外链形式,在生成首页时,发现这个设置了外链的一级栏目消失了,并且它下面的二级栏目页同样消失了。。。这下开心了!哈哈
 
出现问题了,我们就要寻找问题!
 
如下是我调用导航的代码:
 
 
{dede:channelartlist typeid='top' currentstyle="on"}
 
    <li class="{dede:field.currentstyle/}">
 
        <a href="{dede:field name='typeurl'/}" target="_self">{dede:field name='typename'/}</a>
 
        {dede:field name=typeid runphp="yes"}
 
                  global $dsql;
 
                  $sql = "SELECT id From `dede_arctype` WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100 ";
 
                  $row = $dsql->GetOne($sql);      
 
                  @me=is_array($row)?'<div class="sub">':'';
 
            {/dede:field}
 
        {dede:channel type='son' noself='yes' }
 
        <a href="[field:typelink/]" target="_self">[field:typename/]</a>
 
        {/dede:channel}
 
        {dede:field name=typeid runphp="yes"}
 
              global $dsql;
 
              $sql = "SELECT id From `dede_arctype` WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100 ";
 
              $row = $dsql->GetOne($sql);      
 
              @me=is_array($row)?'</div>':'';
 
                {/dede:field}
 
        </li>
 
{/dede:channelartlist}   
 
 
可以看出,我的一级导航使用了dede:channelartlist标签进行调用!那么出问题的肯定是dede:channelartlist标签了!
 
现在我们需要找到dede:channelartlist标签:
 
路径:include/taglib/channelartlist.lib.php  打开找到67行:
 
1
 
 
$tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 "; 
 
 
改成:
 
1
 
 
$tpsql = " reid=0 AND ishidden<>1 AND channeltype>0 "; 
 
 
 
 
 
以为这样就OK了吗?那是大错特错!
 
这样只是解决了dede:channelartlist标签能调用外链的栏目了!可实际使用中,如站长这样,一级栏目下还有二级栏目(非外链栏目),那这些二级栏目是需要生成html文件进行访问的!
 
那现在问题来了!你能在生成里面找到这个一级栏目被设置成外链的栏目吗?
 
答案很明显:不能!
 
那这个外链栏目下的二级栏目同时也消失了,现在想更新这部分栏目页也没有办法更新了!
 
 
 
 
 
 
 
 
下面接着找到:include/typelink.class.php,并打开!
 
找到276行:
 
1
 
 
$query = "SELECT id,typename,ispart FROM `dede_arctype` WHERE ispart<>2 AND reid=0 $ctsql ORDER BY sortrank ASC"; 
 
 
改成:
 
 
1
 
 
$query = "SELECT id,typename,ispart FROM `dede_arctype` WHERE reid=0 $ctsql ORDER BY sortrank ASC"; 
 
 
 
 
 
接着如果在二级栏目新增文章时,由于当前的一级栏目设置成了外链,所有在新增文章是无法选择二级栏目
 
找到:dede/inc/inc_catalog_options.php, 并打开!
 
找到68行:
 
1
 
 
$query = "SELECT id,typename,ispart,channeltype FROM `dede_arctype` WHERE ispart<>2 AND reid=0 ORDER BY sortrank ASC "; 
 
 
改成:
 
1
 
 
$query = "SELECT id,typename,ispart,channeltype FROM `dede_arctype` WHERE reid=0 ORDER BY sortrank ASC "; 

大功告成,义乌网站建设小编整理发布