又学会一招:DEDE处理多个字段
比如我有一个字段叫推荐(tuijian)
我想当这个字段为空的时候就替换成其他字段的内容,比如要替换成aid的内容
直接[field:tuijian runphp=’yes’]处理代码[/field:tuijian]貌似无法取得其他字段的内容的
找了一下解决办法
实际上我们可以采用这个
[field:array runphp=’yes’]@me=@me[‘title’];[/field:array]处理多个字符
比如刚才的功能可以写成
[field:array runphp=’yes’]
$aa=@me[‘tuijian’];
if(empty($aa)){
@me=@me[‘aid’];
}else{
@me=@me[‘tuijian’];
}
[/field:array]
这个功能非常有用~记录一下
顺便附上找到的文章
关于dede模板文件里面的编程总结
我们用dede最常见的就是模板的制作.下面列举一些制作dede模板文件的时候里面的一些编程总结
一 .字段调用函数 :
1. artlist标签里面:
[field:pubdate function=MyDate(‘Y-m-d H:i’,@me)/]
2. 文章页面里面(article_article.htm):
{dede:field.pubdate function=”MyDate(‘Y-m-d H:i’,@me)”/}
或者这样写 {dede:field name=’pubdate’ function=”MyDate(‘Y-m-d H:i’,@me)”/}
上面的@me代表pubdate这个字段值,函数返回处理后的值
二.字段值用PHP处理的
1. artlist标签里面:
处理单个字段:[field:title runphp=’yes’]@me ;[/field:title]
处理多个字符: [field:array runphp=’yes’]@me=@me[‘title’];[/field:array]
2. 文章页面里面(article_article.htm):
处理单个字段: {dede:field.title runphp=’yes’} @me;{/dede:field.title}
或者 {dede:field name=’title’ runphp=’yes’} @me;{/dede:field}
处理多个字符: {dede:field.array runphp=’yes’} @me=@me[‘title’];{/dede:field.array}
或者 {dede:field name=’array’ runphp=’yes’} @me=@me[‘title’];{/dede:field}
三.模板文件里面直接写PHP带码
{dede:php}
$flag=1;
if($flag==1) {
echo ‘111′;
}else{
echo ‘22′;
}
{/dede:php}
四.其它
1.在文章列表中,显示当前文章的评论数量:
[field:ID runphp=’yes’]$dsql = new dedesql(false);$dsql -> SetQuery(“Select count(id) as c
from dede_feedback where aid=”.@me);$row = $dsql -> getone();@me=$row[‘c’];[/field:ID]
2.文章收藏次数
[field:ID runphp=’yes’]$dsql = new dedesql();$dsql -> SetQuery(“select count(*) as c from
dede_member_stow where aid=”.@me);$nic_row = $dsql -> getone();@me=$nic_row[‘c’];[/field:ID]
3.
{dede:field.id runphp=’yes’}
$tsql = new DedeSql(false);
$gname = ”;
$row = $tsql->GetOne(“Select 字段名 From 表名 where aid=’@me’”);
$gname .= “进入游戏”;
@me=$gname;
{/dede:field.id}
4. 列表页调用会员任意字段信息.
[field:mid runphp=yes]
$tsql = new DedeSql(false);
$mid = ”;
$tsql->SetQuery(“Select m.mid,m.userid,c.company,c.address,c.url FROM dede_member m left join
dede_member_company c on m.mid = c.mid where m.mid=’@me’”);
$tsql->Execute(‘t’);
while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC))
{
$mid .= “
.$row[‘company’].”
”.”
.$row[‘url’].”
”;
}
@me=$mid;
[/field:mid]
或简单一个表:
公司地址:
[field:mid runphp=yes]
$tsql = new DedeSql(false);
$mid = ”;
$tsql->SetQuery(“Select mid,company,address From dede_member_company where mid=’@me’”);
$tsql->Execute(‘t’);
while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC))
{
$mid = $row[‘address’];
}
@me=$mid;
[/field:mid]