找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 160|回复: 0

[cms教程] DEDECMS中LOOP标签循环出arcurl标签(获取链接)

[复制链接]

该用户从未签到

发表于 2020-5-28 10:21:40 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在织梦DEDECMSV5.3中,提供了loop万能循环标签,但是此循环标签只能循环出该表中的字段,而“[field:arcurl/]”链接标签并不能被解析出来,而织梦DEDECMS官方论坛上也没有找到相关的解决办法,所以只有自己动手写代码了!
         
        这是官方提供的代码:
        {dede:loop table='dede_archives' sort='' row='4' if=''}
        [url=[field:arcurl/],[field:title/][/url]
        {/dede:loop}
        以下是我的解决方案:
         
        1.打开Include/common.func.php,找到54行,再这里添加一个函数代码如下:
         
        function IDReturnURL($ID)
        {
        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.而在模板中我们的调用方式的写法也有所改变,代码如下:
         
        {dede:loop table='dede_archives' sort='' row='4' if=''}
        [*,·[url=[field:id function=IDReturnURL(@me)/],[field:title function=cn_substrR(@me,44)/][/url]
        {/dede:loop}
        问题已经完美解决了!
         
        同样的当你要用自定义sql 标签的时候,也是一样的。
         
        其实,就是用[field:id function=IDReturnURL(@me)/]代替了[field:arcurl/]标签,我解决此问题的核心就是[field:id function=IDReturnURL(@me)/]和IDReturnURL!
         
         
        在sql标签中
        [field:id runphp='yes',$arcRow=GetOneArchive(@me);@me=$arcRow['arcurl',;[/field:id,
         
        也可以调出来。
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-27 03:47

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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