本文實(shí)例講述了織夢(mèng)Dedecms中萬能標(biāo)簽loop不能輸入U(xiǎn)RL的解決方法。
萬能標(biāo)簽loop是可以隨意的在dedecms中調(diào)用任意表的數(shù)據(jù)標(biāo)簽,所以叫萬能標(biāo)簽。但在使用loop時(shí)發(fā)現(xiàn)我們常用的arcurl為空了,意思就是url沒有,那就等于這個(gè)標(biāo)簽沒有了,下面我就來給大家解決此問題。
官方loop標(biāo)簽說明
標(biāo)簽名稱:loop
功能說明:調(diào)用任意表的數(shù)據(jù)標(biāo)簽
適用范圍:全局標(biāo)記
基本語法:
{dede:loop table='dede_archives' sort='' row='4' if=''}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:loop}
標(biāo)簽屬性:
table:查詢表名
sort:用于排序的字段
row:返回結(jié)果的條數(shù)
if:查詢的條件
示例:
{dede:loop table='dede_archives' sort='' row='4' if=''}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:loop}
輸出結(jié)果 :
<a href=''>你好dedecms</a>
通過輸出結(jié)果可以看出url地址沒有,所以這個(gè)標(biāo)簽就沒用了,通過以下修改可以解決次問題:
1.打開include/common.func.php,找到54行,再這里添加一個(gè)函數(shù)代碼如下:
function IDReturnURL($ID)
{
//lonely
global $dsql;
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,
tp.defaultname,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath
from dede_archives arc left join dede_arctype tp on arc.typeid=tp.id where arc.id = ".$ID;
$row = $dsql->GetOne($query);
$ReturnURL = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
$row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
return $ReturnURL;
}
2.在模板中的調(diào)用方式也要有所改變,代碼如下:
{dede:loop table='dede_archives' sort='' row='4' if=''}
<li>·<a href='[field:id function=IDReturnURL(@me)/]'>[field:title function=cn_substrR(@me,44)/]</a></li>
{/dede:loop}
這樣問題就完美解決了