DedeCMS织梦导航栏目增加nofollow属性与调用

上次我们介绍了一个超级简单方法来实现:dede:channel织梦导航指定栏目产生rel="nofollow"或新窗口target="_blank"  ,今天我们来介绍修改程序来完成增加nofollow属性,做到后台可控可设置。

网站建设中对不想参与排名的栏目增加rel=nofollow属性,而DedeCMS并没这样的设置,在以前版本有[field:rel/]标签,等同于dropmenu加上栏目id,并没有实际作用。实现在{dede:channel}标签下为某个栏目增加rel=nofollow属性,跟着做啦修改源文件吧。

使用工具:

Navicat
EditPlus

修改部分:

数据库dede_arttype表
/dede/catalog_add.htm
/dede/catalog_add.htm
/dede/catalog_edit.php
/dede/catalog_edit.html

具体步骤:

1.在dede_arttype数据库表增加isnofollow字段

       用Navicat或其他数据库管理软件打开dede_arttype表,增加键名:isnofollow;类型:smalllint,长度:6;小数点:0;不允许空值。

为栏目增加nofollow属性

2.修改/dede/catalog_add.htm

       大概在219行

 <tr>
  <td width="150" class='bline' height="26" style="padding-left:10px;">是否隐藏栏目:</td>
  <td class='bline'>
   <input type='radio' name='ishidden' value='0' class='np' checked="checked" />
   显示 &nbsp;
   <input type='radio' name='ishidden' value='1' class='np' />
   隐藏
 </td>
</tr>

       下面增加

<tr>
 <td class="bline" style="padding-left:10px;" width="150" height="26">Nofollow设置:</td>
 <td class="bline">
  <input name="isnofollow" value="1" class="np" type="radio" />
  是 &nbsp;
  <input name="isnofollow" value="0" class="np" type="radio"  checked='1' />
  否
 </td><!--www.zuola.net-->
</tr>

3.修改/dede/catalog_add.php

       大概在65行的地方,一定要注意符号

ishidden,

后面增加

isnofollow,

'$namerule2','0','0',

后面增加

'0',

增加nofollow属性修改

       另外一处修改,大概在229行

ishidden,

后面增加

isnofollow,

大概在232行

'$ishidden',

后面增加

'$isnofollow',

增加nofollow属性修改文件

4.修改/dede/catalog_edit.htm

       找到

<tr>
<td width="150" class='bline' height="26" style="padding-left:10px;">是否隐藏栏目:</td>
  <td class='bline'>
   <input type='radio' name='ishidden' value='0' class='np'<?php if($myrow['ishidden']=="0") echo " checked='1' ";?>/>
   显示 &nbsp;
   <input type='radio' name='ishidden' value='1' class='np'<?php if($myrow['ishidden']=="1") echo " checked='1' ";?>/>
   隐藏
</td>
</tr>

       下面增加

<tr>
 <td class="bline" style="padding-left:10px;" width="150" height="26">Nofollow设置:</td>
 <td class="bline">
  <input name="isnofollow" value="1" class="np" type="radio" <?php if($myrow['isnofollow']=="1") echo " checked='1' ";?>>
  是 &nbsp;
  <input name="isnofollow" value="0" class="np" type="radio" <?php if($myrow['isnofollow']=="0") echo " checked='1' ";?>/>
  否
 </td>
</tr>

5.修改/dede/catalog_edit.php

       找到如下代码:

ishidden='$ishidden',

       注意一共有两处,代码下面增加

isnofollow='$isnofollow',

栏目增加nofollow属性方法

       这样就可以在栏目修改里看到效果,默认栏目没有该属性。

为栏目增加nofollow属性

6.前台模板调用

<p class="nav pl">
 <ul>
  <li><a href="{dede:global.cfg_basehost/}">{dede:global.cfg_indexname/}</a></li>
  {dede:channel typeid='' type='top'}<li><a href="[field:typeurl/]"
  [field:isnofollow runphp="yes"]
   if(@me==1) @me="rel='nofollow'";else @me="";
  [/field:isnofollow]>[field:typename/]</a></li>{/dede:channel}
 </ul>
</p>

        但是这样写是调用不出来的,因为{dede:channel}没有这个词,修改方法和增加英文栏目名、栏目缩略图是一样的,参考其他文章《DedeCMS增加英文栏目名称栏目缩略图及调用》

        打开/include/taglib/channel.lib.php,找到如下代码,

if($type=='top')

       找到

typename

       有三处修改,大概在78,86,92行,在typename后面增加下面代码,注意前面一个逗号。

,isnofollow