今天对dedebiz进行开发网站播放器的时候,遇到一个问题,文章页需要对多个条件判断字符串的来选择性输出内容
起先我想得很简单,直接用最粗暴的方法来实现
因为我要判断多个条件,{dede:field.mp3/}和{dede:field.typeid/}进行判断
{dede:field.mp3 runphp='yes'}@me=empty(@me)?'':'输出内容';{/dede:field.mp3}
上面这个方法就只能对单个条件判断显然行不能
于是想到了dedebiz支持php写法的{dede:php}这个标签,划重点来了
标签里面是不能直接获取到{dede:field.title/}、{dede:field.arcurl/}、{dede:field.body/}等之类的变量
我们只能通过 $refObj->Fields 来获取文章页的所有变量
{dede:php} print_r($refObj->Fields); {/dede:php}
通过以上原理发现所有的调用参数都在里面了$refObj->Fields['title'],$refObj->Fields['arcurl'],$refObj->Fields['typeid']等都可以得到值了
于是就能使用原生php代码进行开发了
{dede:php}
if($refObj->Fields['typeid'] == 9 && !empty($refObj->Fields['mp3'])){
echo '<div id="playermusic"></div><script>musicplay("'.$refObj->Fields["musicname"].'","'.$refObj->Fields["mp3"].'","'.$refObj->Fields["musicimg"].'");</script>';
}
{/dede:php}
这样就完美的进行了原开php判断了!真心建议官方可以出一个标签手册,使用方法教程,新手还是很多标签不知道用法,会踩太多的坑了!
下面就是最后的开发效果了,实现不能栏目下的状态判断!
如需转载请注明出处。
本文地址:https://www.senxia.me/php/3.html