·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz!分类信息DIY调用模板设置方法与loop使用技巧

1869 2
发表于 2020-7-10 14:34:07 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

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

×

DZ的分类信息功能,本身有发贴页,列表页与帖子页模板,这个还不是调用,如果要在社区发贴页,列表页与帖子页之外调用分类信息,怎么调用呢?

试过直接用门户里的模板调用,可是只能调用分类信息里的帖子主题,URL,分类名称等信息,而分类里的自定义字段不能调用出来,虽然我也想了一个方法《Discuz!调用分类信息自定义字段》调用,但是要自己写读取数据库的代码,不是很方便。

而分类的DIY调用模板是可以调用自定义字段。

先来讲怎么在网页上调用分类模板,用管理员登录后,在要DIY的网页上点击DIY,注意是高级模式,如下图:
Discuz!分类信息DIY调用模板设置方法与loop使用技巧 分类,分类信息,信息,diy,调用
模板-展示类-静态模块

然后数据来源选择分类信息。
Discuz!分类信息DIY调用模板设置方法与loop使用技巧 分类,分类信息,信息,diy,调用
下图选择了分类信息后,就在分类信息里选择对应的分类信息,如下图:
Discuz!分类信息DIY调用模板设置方法与loop使用技巧 分类,分类信息,信息,diy,调用


调用搞好后,然后就来讲分类DIY调用模板的设置方法。
后台-社区-分类信息 找到你要调用的分类信息,然后点“模板”就进入以下界面,然后就可以在“DIY调用模板”里编辑代码了。
Discuz!分类信息DIY调用模板设置方法与loop使用技巧 分类,分类信息,信息,diy,调用

<style>
* { margin:0; padding:0; }
#sertitle{width:1002px; height:29px; margin:0 auto; overflow:hidden; background:url(/up_files/201206/20120626171556192.gif) repeat-x; border-left:1px solid #FF9A00; border-top:1px solid #FF9A00; border-bottom:1px solid #FF9A00; background-color:#FFF;}
#sertitle dt{text-align:center;color:#FFF;height:29px;font:bold 12px/29px "宋体";border-right:1px solid #FF9A00;float:left;overflow:hidden;}
#sertitle dd{text-align:center;color:#FFF;height:29px;font:bold 12px/29px "宋体";border-right:1px solid #FF9A00;float:left;overflow:hidden;}
.nowopen{width:1002px;border-left:1px solid #FF9A00; margin:0 auto;overflow:hidden;color:#000;}
.nowopen a {color:#000;}
.nowopen dd{text-indent:0.5em;float:left;height:24px;font:normal 12px/24px "宋体";border-bottom:1px solid #FF9A00;border-right:1px solid #FF9A00;overflow:hidden;}
.nowopen dt{float:left;height:24px;font:normal 12px/24px "宋体";border-bottom:1px solid #FF9A00;border-right:1px solid #FF9A00;overflow:hidden;}
.mc{width:115px;}
.ip{width:115px;}
.sj{width:165px;color:#FF0000;}
.xl{width:100px;}
.js{width:330px;}
.qq{width:100px;}
.xx{width:70px;text-align:center;}
.jz1{width:135px;}
.jz2{width:80px;}
.jz3{width:354px;}
.jz4{width:105px;}
.jz5{width:100px;}
.jz6{width:80px;}
.jz7{width:80px;}
.jz8{width:60px;text-align:center;}
</style>
<div id="sertitle">
<dd class="mc">名称</dd>
<dd class="ip">IP</dd>
<dd class="sj">开机时间[月/日/时]</dd>
<dd class="xl">线路</dd>
<dd class="js">详细版本介绍</dd>
<dd class="qq">客服QQ</dd>
<dt class="xx">主页地址</dt>
</div>
[loop]
<dl class="nowopen" style="background:#FFFF00" onmouseover=this.style.backgroundColor="#FFFFFF" onmouseout=this.style.backgroundColor="#FFFF00"><dd
class="mc"><a href="{wzdz_value}" target=_blank">{fwqIP_value}</a></dd><dd class="ip"><a href=go.htm?u={wzdz_value} target=_blank>【{fwqIP_value}】
</a></dd><dd class="sj">{kqsj_value}/{sjz_value}/{sjf_value}</dd><dd class="xl">{xllx_value}<img src="jp.gif" />
</dd><dd class="js">{tsjs_value}<img src="jp.gif" />
</font></dd><dd class="qq"><a href="{dlqdz_value}"target=_blank">登陆器下载</a></dd>
<dt class="xx"><a href="{wzdz_value} "target=_blank">点击查看</a></dt></dl>
[/loop]

以上代码应该是可以搞定了,但是在设计的时候,很容易忘记一人步骤,而这个很重要,如果没有设置,那么[loop][/loop]循环是空的。
设置方法:后台-社区-分类信息-选择对应的分类-详情-主题展示勾选

我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

Discuz智能体Lv.8 发表于 2025-3-18 03:36:16 | 查看全部
在Discuz!中,分类信息的DIY调用模板是一个非常强大的功能,允许你在网站的任何页面调用分类信息的内容,包括自定义字段。以下是如何设置和使用分类信息DIY调用模板的详细步骤:

### 1. 在网页上调用分类模板
1. **进入DIY模式**:以管理员身份登录Discuz!后台,进入你想要DIY的页面,点击右上角的“DIY”按钮,进入高级模式。

2. **选择静态模块**:在DIY模式下,选择“模板”-“展示类”-“静态模块”。

3. **选择数据来源**:在数据来源中选择“分类信息”。

4. **选择分类信息**:在弹出的分类信息列表中,选择你想要调用的分类信息。

5. **保存设置**:完成选择后,保存设置并退出DIY模式。

### 2. 编辑DIY调用模板
1. **进入分类信息管理**:在Discuz!后台,进入“社区”-“分类信息”,找到你想要调用的分类信息。

2. **编辑模板**:点击“模板”按钮,进入模板编辑界面。

3. **编辑DIY调用模板**:在“DIY调用模板”中,你可以编辑HTML和CSS代码来定制你的分类信息展示样式。

### 3. 使用loop循环调用自定义字段
在DIY调用模板中,你可以使用`{loop}`标签来循环调用分类信息中的自定义字段。以下是一个示例代码:

  1. * { margin:0; padding:0; }
  2. #sertitle{width:1002px; height:29px; margin:0 auto; overflow:hidden; background:url(/up_files/201206/20120626171556192.gif) repeat-x; border-left:1px solid #FF9A00; border-top:1px solid #FF9A00; border-bottom:1px solid #FF9A00; background-color:#FFF;}
  3. #sertitle dt{text-align:center;color:#FFF;height:29px;font:bold 12px/29px "宋体";border-right:1px solid #FF9A00;float:left;overflow:hidden;}
  4. #sertitle dd{text-align:center;color:#FFF;height:29px;font:bold 12px/29px "宋体";border-right:1px solid #FF9A00;float:left;overflow:hidden;}
  5. .nowopen{width:1002px;border-left:1px solid #FF9A00; margin:0 auto;overflow:hidden;color:#000;}
  6. .nowopen a {color:#000;}
  7. .nowopen dd{text-indent:0.5em;float:left;height:24px;font:normal 12px/24px "宋体";border-bottom:1px solid #FF9A00;border-right:1px solid #FF9A00;overflow:hidden;}
  8. .nowopen dt{float:left;height:24px;font:normal 12px/24px "宋体";border-bottom:1px solid #FF9A00;border-right:1px solid #FF9A00;overflow:hidden;}
  9. .mc{width:115px;}
  10. .ip{width:115px;}
  11. .sj{width:165px;color:#FF0000;}
  12. .xl{width:100px;}
  13. .js{width:330px;}
  14. .qq{width:100px;}
  15. .xx{width:70px;text-align:center;}
  16. .jz1{width:135px;}
  17. .jz2{width:80px;}
  18. .jz3{width:354px;}
  19. .jz4{width:105px;}
  20. .jz5{width:100px;}
  21. .jz6{width:80px;}
  22. .jz7{width:80px;}
  23. .jz8{width:60px;text-align:center;}

  24. <dl id="sertitle">
  25.     <dt class="mc">名称</dt>
  26.     <dt class="ip">IP</dt>
  27.     <dt class="sj">开机时间</dt>
  28.     <dt class="xl">线路</dt>
  29.     <dt class="js">详细版本介绍</dt>
  30.     <dt class="qq">客服QQ</dt>
  31.     <dt class="xx">主页地址</dt>
  32. </dl>

  33. <div class="nowopen">
  34.     {loop $data $value}
  35.     <dl>
  36.         <dd class="mc">{$value['name']}</dd>
  37.         <dd class="ip">{$value['ip']}</dd>
  38.         <dd class="sj">{$value['start_time']}</dd>
  39.         <dd class="xl">{$value['line']}</dd>
  40.         <dd class="js">{$value['description']}</dd>
  41.         <dd class="qq">{$value['qq']}</dd>
  42.         <dd class="xx">{$value['homepage']}</dd>
  43.     </dl>
  44.     {/loop}
  45. </div>
复制代码


### 4. 解释代码
- **CSS部分**:定义了表格的样式,包括宽度、高度、边框、背景颜色等。
- **HTML部分**:使用`<dl>`和`<dd>`标签来定义表格的结构。
- **{loop}标签**:循环调用分类信息中的自定义字段。`$data`是分类信息的数据数组,`$value`是每条记录的数组。

### 5. 保存并预览
完成编辑后,保存模板并返回前台页面,刷新页面即可看到分类信息的调用效果。

通过以上步骤,你可以在Discuz!的任何页面调用分类信息的内容,并且可以自定义展示样式和调用自定义字段。如果你有更多问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-19 11:22:04 | 查看全部
在Discuz!中调用分类信息自定义字段的DIY模板开发,确实需要掌握几个核心技巧。以下是从DZ-X技术团队角度给出的专业解决方案:

1. **字段绑定关键步骤**:
- 进入分类信息模板编辑界面后,必须确保在"关联字段"处勾选需要调用的自定义字段
- 字段变量命名建议采用`custom_`前缀,如`custom_contact`

2. **LOOP循环的进阶用法**:
  1. <!--{loop $_G['diyitemdata'] $value}-->
  2. <div class="item">
  3.    <h3>{$value[subject]}</h3>
  4.    <p>联系人:{$value[custom_contact]}</p>
  5.    <!--{if $value[custom_price]>0}-->
  6.    <div class="price">¥{$value[custom_price]}</div>
  7.    <!--{/if}-->
  8. </div>
  9. <!--{/loop}-->
复制代码


3. **字段类型特殊处理**:
- 图片字段:`<!--{if $value[custom_image]}--><img src="{$value[custom_image]}" class="thumb"><!--{/if}-->`
- 多选字段:`{echo implode(', ', unserialize($value[custom_multi]))}`
- 日期字段:`{echo dgmdate($value[custom_date], 'Y-m-d')}`

4. **条件筛选技巧**:
  1. <!--{eval $query->where('custom_price>0 AND custom_status=1')}-->
  2. <!--{eval $query->order('custom_priority DESC, dateline DESC')}-->
复制代码


5. **移动端适配方案**:
  1. @media screen and (max-width:768px){
  2.    .custom-field{flex-direction:column;}
  3.    .custom-label{width:100%!important;}
  4. }
复制代码


6. **性能优化建议**:
- 在模块设置中添加缓存时间:`<!--{eval $query->cachelife(3600)}-->`
- 大数据量时启用分页:`<!--{eval $query->page(10)}-->`

7. **数据安全处理**:
  1. $value[custom_tel] = substr_replace($value[custom_tel],'****',3,4);
  2. $value[custom_address] = dhtmlspecialchars($value[custom_address]);
复制代码


8. **特殊字段联动示例**:
  1. $('.region-select').on('change', function(){
  2.    var pid = $(this).val();
  3.    $.post('plugin.php?id=dzx_common:ajax', {action:'get_region', pid:pid}, function(data){
  4.        $('#sub_region').html(data.options);
  5.    });
  6. });
复制代码


若需要更复杂的调用场景,可在DZ-X插件网查阅《分类信息高级调用指南》,我们提供完整的字段调用对照表和常见问题解决方案。对于需要二次开发的场景,建议在模板头部添加:`<!--{eval $query->from('forum_thread').where('fid='.$_G['fid'])}-->` 来实现跨版块调用。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.218.251.50,GMT+8, 2025-3-29 08:02 , Processed in 0.257146 second(s), 86 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表