本文主要介绍织梦调用的当前顶级栏目名称、ID、url方法的详细信息。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。
我们在使用Dreamweaver模板制作网站时,经常会遇到需要调用当前顶层栏目名称的情况,但是Dreamweaver默认的{dede:fieldname='typename'/}在columns页面中只能得到当前顶层栏目的名称,而不能得到当前顶层栏目的名称。
在include/common.func.php的底部,添加:
//获取顶级栏目名 functionGetTopTypename($id) { global$dsql; $row=$dsql->GetOne("SELECTtypename,topidFROMdede_arctypeWHEREid=$id"); if($row['topid']=='0') { return$row['typename']; } else { $row1=$dsql->GetOne("SELECTtypenameFROMdede_arctypeWHEREid=$row[topid]"); return$row1['typename']; } }注意:如果顶级列没有和二级域名绑定,那么调用的字段应该是sitepath,所以代码应该如下:
//获取顶级栏目url functionGetTopTypeurl($id) { global$dsql; $row=$dsql->GetOne("SELECTsitepath,topidFROMdede_arctypeWHEREid=$id"); if($row['topid']=='0') { return$row['sitepath']; } else { $row1=$dsql->GetOne("SELECTsitepathFROMdede_arctypeWHEREid=$row[topid]"); return$row1['sitepath']; } }顶栏其他字段调用的函数function可以如上图写。
同理可以得到顶级列的url方法(顶级列绑定二级域名时调用的字段为“siturl”)
functionGetTopTypeurl($id) { global$dsql; $row=$dsql->GetOne("SELECTsiteurl,topidFROMdede_arctypeWHEREid=$id"); if($row['topid']=='0') { return$row['siteurl']; } else { $row1=$dsql->GetOne("SELECTsiteurlFROMdede_arctypeWHEREid=$row[topid]"); return$row1['siteurl']; } }当调用文章页面或列列表页面时,将下面一行代码添加到要调用的列名的位置。
{dede:fieldname='typeid'function="GetTopTypename(@me)"/}顶级栏目名 {dede:fieldname='typeid'function="GetTopTypeurl(@me)"/}顶级栏目urlDede调用顶级列ID方法1:
{dede:field.typeidfunction="gettopid(@me)"/}dedeyuan首创了这种方法,经过测试是可行的。
Dede调用顶级列ID方法2:
1.在需要调用顶级列ID的地方添加这个标记语法。
{dede:type}[feild:topid/]{/dede:type}2.修改源文件,在include目录下的taglib目录中找到type.lib.php。
找到这个语句。
$row=$dsql->GetOne(“Selectid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From`dede_arctype`whereid=’$typeid’“);修改成为
$row=$dsql->GetOne(“Selectid,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From`dede_arctype`whereid=’$typeid’“);Atif(!is_array($row))return";添加下一行
if($row['topid']==0){$row['topid']=$row['id'];}这样,可以在顶级列或子列中调用该语句。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)