帝国CMS在list.var中使用程序代码不能的原因

澳门新葡亰手机版 1

在用帝国CMS做网站的时候,为了美化网页,我们常常需要根据不同的字段值用不同的图片来代替,比如商品中的颜色,我们希望用颜色图片来代替各种颜色显示。

帝国CMS的教程已经很清楚了,http://www.phome.net/doc/manual/
帝国CMS从6.6开始,可以在编辑列表模版时,在list.var中使用程序代码,如下图(图片来自帝国CMS网站):

又如下图:

澳门新葡亰手机版 1

澳门新葡亰手机版,有两个字段值:“新家教、紧急”。通常我们用帝国CMS标签调用出是直接显示“新家教、紧急”文字的。如果想用上面的图片一样美观显示,就要用到if判断了。

listtemp3.jpg

内容页调用:

勾选后“使用程序代码”后就可以了,比如判断标题图片是否存在,而加载不同的显示样式:
if(empty($r[titlepic]))
{
$r[titlepic]=’img.gif’;
}
$listtemp='<li><a href=”[!–titleurl–]”><img
src=”[!–titlepic–]”></a></li>’;

?phpif($navinfor[proof]=='新家教'){?img src="/images/ico1.jpg"?}elseif($navinfor[proof]=='紧急'){?img src="/images/ico2.jpg"?}?

如何写代码看官方的教程吧,主要几点:
1、增加模板时list.var模板需要勾选“使用程序代码”选项。
2、直接添加PHP代码,不需要加<?和?>程序开始和结束标记。
3、字段值数组变量为$r,对应的字段变量为$r[字段名],如:标题字段变量就是$r[title]。另外编号变量为$no
4、将最终模板内容赋给$listtemp变量。
5、如果$listtemp引用模板内容是用单引号,那么里面使用单引号前面要加,例如:$listtemp='<img
src='[!–titlepic–]’>’;
相反如果引用模板内容是用双引号,那么里面使用双引号前面也要加,例如:$listtemp=”<img
src=”[!–titlepic–]”>”;

如果字段proof的值为“新家教”则输出ico1.jpg,如果值为“紧急”则输出ico2.jpg。

我主要想讲的上面没提到的,很多人照抄上面的例子,却不行,我使用的是7.2版,一直以为新版取消了,或者换了别的写法,网上也找不到相关的文章,很多提到这问题,却没有说明原因。
一、不能将HTML与程序代码混写,和模版中使用标签是不同的,所有HTML代码必须做为字符串赋给$listtemp;