找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1255|回复: 0

[分享] DEDECMS中LOOP标签循环出arcurl标签(获取链接)

[复制链接]
发表于 2018-7-13 20:02:43 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
在DEDECMSV5.3中,提供了loop万能循环标签,但是此循环标签只能循环出该表中的字段,而“[field:arcurl/]”链接标签并不能被解析出来,而DEDECMS官方论坛上也没有找到相关的解决办法,所以只有自己动手写代码了!

这是官方提供的代码:
{dede:loop table='dede_archives' sort='' row='4' if=''}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:loop}

以下是我的解决方案:

1.打开Include/common.func.php,找到54行,再这里添加一个函数代码如下:
  1. function IDReturnURL($ID)
  2. {
  3. global $dsql;
  4. $query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,
  5. tp.defaultname,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath
  6. from dede_archives arc left join dede_arctype tp on arc.typeid=tp.id where arc.id = ".$ID;
  7. $row = $dsql->GetOne($query);
  8. $ReturnURL = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
  9.     $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
  10. return $ReturnURL;
  11. }
复制代码

2.而在模板中我们的调用方式的写法也有所改变,代码如下:

{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}

问题已经完美解决了!

同样的当你要用自定义sql 标签的时候,也是一样的。

其实,就是用[field:id function=IDReturnURL(@me)/]代替了[field:arcurl/]标签,我解决此问题的核心就是[field:id function=IDReturnURL(@me)/]和IDReturnURL!


在sql标签中
  1. [field:id runphp='yes']$arcRow=GetOneArchive(@me);@me=$arcRow['arcurl'];[/field:id]
复制代码


也可以调出来。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2025-1-9 23:59 , Processed in 0.044830 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表