欢迎来到欣怡建站!我们致力于提供优质的网站建站服务
注册

DedeCMS附加表自定义字段关联主表文章

相关案例演示

用DedeCMS开发装修网站的时候,需要设计师和设计作品关联。发布文章(作品)时,一部分内容在主表dede_addonarticle,另一部分(自定义字段)在附加表dede_archives。提供两种实现方法:①根据发布人调用相关文章;②判断频道模型附加表自定义字段的值是否相同,调用主表相关文章。

用附加表自定义字段进行关联(推荐)

思路:

判断附表中的某个自定义段来调用主表中的内容,文章的ID和附加表的AID是一一对应的。

详细步骤:

①核心 -> 内容模型管理 -> 普通文章 -> 字段管理 -> 添加新字段(designer);

频道模型增加自定义字段

②模板用sql标签调用

{dede:sql sql="SELECT * FROM dede_archives JOIN dede_addonarticle ON dede_addonarticle.aid = dede_archives.id where dede_addonarticle.designer=~designer~ ORDER BY id desc limit 9999"} <p>[field:designer/]的其他作品:</p> <a href='[field:arcurl/]' target="_blank"> <img src=http://www.dede58.com/a/dedejq/"[field:litpic/]" width="100" height="100" alt="[field:title/]"/> </a> <p class="pr"> <h4><a href='[field:arcurl/]' target="_blank">[field:title/]</a></h4> <p>[field:description/]</p> </p> {/dede:sql}

说明:该sql语句橙色部分根据自己的实际情况修改,dede_archives 是文章主表,dede_addonarticle是附加表,红色designer是自定义字段。

用文章发布者进行关联

这是网上介绍的,但是一旦作者改变了,关联就失效了。设计师对应模板里面中:

用sql调用:

{dede:sql sql="Select * From dede_addonarticle where writer = ~writer~"} <p><a href=http://www.dede58.com/a/dedejq/"[field:arcurl/]">[field:title/]</a><span>[field:writer/]<span></p> {/dede:sql}

用arclist或list标签调用:

{dede:arclist writer=~writer~ } <p><a href=http://www.dede58.com/a/dedejq/"[field:arcurl/]">[field:title/]</a><span>[field:writer/]<span></p> {/dede:arclist}

说明:writer=~writer~和writer=this效果一样。

用文章关键词关联文章

这个方法关联比较麻烦:发布设计师的时候关键词要填写该设计师名称,发布作品的时候关键词也要填写对应设计师,作品需要调用作者时还得填写自定义字段。

这样在用likearticle标签调用相似文章,设计师、作品都会出现,可以设置指定的mytypeid(不是typeid)进行控制相似标签,多个栏目用英文“,”逗号隔开:

{dede:likearticle mytypeid='1,2,3'} <p><a href=http://www.dede58.com/a/dedejq/"[field:arcurl/]">[field:title/]</a></p> {/dede:likearticle}

likeartcle全局调用相似文章支持order by参考文章《DedeCMS标签likearticle调用全站相关文章支持排序》

作者:欣怡建站 挑错 时间:2020-01-08 22:08
首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(984818011)进行交流。
相关教程
在线客服