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;不允许空值。
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" /> 显示 <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" /> 是 <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',
另外一处修改,大概在229行
ishidden,
后面增加
isnofollow,
大概在232行
'$ishidden',
后面增加
'$isnofollow',
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' ";?>/> 显示 <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' ";?>> 是 <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',
这样就可以在栏目修改里看到效果,默认栏目没有该属性。
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