本文作者:较瘦黎博客

织梦currentstyle内调用function函数的解决办法

较瘦黎博客 2020-09-19 15:56:43 375 抢沙发
织梦currentstyle内调用function函数的解决办法摘要: 最近开发一个网站, 遇到一个很尴尬的事情, 织梦的{dede:channel}标签调用currentstyle的时候, 无法再让某些字段调用function函数处理,就出现了这样一个问题 {dede:channel typeid=1 row=6 curre...

最近开发一个网站, 遇到一个很尴尬的事情, 织梦的{dede:channel}标签调用currentstyle的时候, 无法再让某些字段调用function函数处理,就出现了这样一个问题

{dede:channel typeid='1' row='6' currentstyle='<li class="a"><a href="~typelink~">~typename~<span class="xg1 num">???这里该填什么???</span></a></li>'}
<li>
    <a href="[field:typelink/]">
        [field:typename/]
            <span class="xg1 num">
                [field:id function="GetTotalArc(@me)"/]
            </span>
    </a>
</li>
{/dede:channel}
需求是这样子的,有一个栏目列表 , 需要调用该栏目下的文章数量, 当选中该栏目的时候并高亮显示。本文这里使用的是GetTotalArc()函数通过栏目的id来获取到该栏目下的文章数量
那么问题来了,在currentstyle里面没法调用function

解决办法

打开\include\taglib下的channel.lib.php文件

我们之所以可以用~typelink~,~typename~这些获取到我们想要的数据,就是因为这一句,找到这一句

$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);

可以看到,图中有几条这样的语句,织梦用这样的方式替换我们模板上的关键字

ps:我的程序经过了无数次的二开,可能图中看到的代码跟你的有点不一样

因为织梦通过这个语句替换我们的关键字, 那么我们就照样子画葫芦,把我们需要的字段加进去

加上这一句,把我们需要的函数插进去;

$linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr);
$linkOkstr = str_replace("~id~",$row['id'],$linkOkstr);
$linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
 $linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
$linkOkstr = str_replace("~number~",GetTotalArc($row['id']),$linkOkstr);
这个时候函数就插进currentstyle里面去了

模板调用

直接以~关键字~的形式调用即可

{dede:channel typeid='1' row='6' currentstyle='<li class="a"><a href="~typelink~">~typename~<span class="xg1 num">???这里该填什么???</span></a></li>'}
<li>
    <a href="[field:typelink/]">
        [field:typename/]
            <span class="xg1 num">
                [field:id function="GetTotalArc(@me)"/]
            </span>
    </a>
</li>
{/dede:channel}
这时候在前端就可以看到, 栏目列表调用该栏目文章总数,并且在选中的时候可以高亮显示
文章投稿或转载声明:

来源: 较瘦黎博客 版权归原作者所有,转载请保留出处。本站文章发布于2020-09-19
温馨提示: 文章内容系作者个人观点,不代表 较瘦黎博客 对其观点赞同或支持。

操作:
赞(0

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

发表评论

快捷回复:

评论列表 (有 0 条评论, 375人围观) 参与讨论