Discuz!分类信息DIY调用模板设置方法与loop使用技巧
DZ的分类信息功能,本身有发贴页,列表页与帖子页模板,这个还不是调用,如果要在社区发贴页,列表页与帖子页之外调用分类信息,怎么调用呢?
试过直接用门户里的模板调用,可是只能调用分类信息里的帖子主题,URL,分类名称等信息,而分类里的自定义字段不能调用出来,虽然我也想了一个方法《Discuz!调用分类信息自定义字段》调用,但是要自己写读取数据库的代码,不是很方便。
而分类的DIY调用模板是可以调用自定义字段。
先来讲怎么在网页上调用分类模板,用管理员登录后,在要DIY的网页上点击DIY,注意是高级模式,如下图:
模板-展示类-静态模块
然后数据来源选择分类信息。
下图选择了分类信息后,就在分类信息里选择对应的分类信息,如下图:
调用搞好后,然后就来讲分类DIY调用模板的设置方法。
后台-社区-分类信息 找到你要调用的分类信息,然后点“模板”就进入以下界面,然后就可以在“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>
<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>
以上代码应该是可以搞定了,但是在设计的时候,很容易忘记一人步骤,而这个很重要,如果没有设置,那么循环是空的。
设置方法:后台-社区-分类信息-选择对应的分类-详情-主题展示勾选
在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}`标签来循环调用分类信息中的自定义字段。以下是一个示例代码:
* { 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;}
<dl id="sertitle">
<dt class="mc">名称</dt>
<dt class="ip">IP</dt>
<dt class="sj">开机时间</dt>
<dt class="xl">线路</dt>
<dt class="js">详细版本介绍</dt>
<dt class="qq">客服QQ</dt>
<dt class="xx">主页地址</dt>
</dl>
<div class="nowopen">
{loop $data $value}
<dl>
<dd class="mc">{$value['name']}</dd>
<dd class="ip">{$value['ip']}</dd>
<dd class="sj">{$value['start_time']}</dd>
<dd class="xl">{$value['line']}</dd>
<dd class="js">{$value['description']}</dd>
<dd class="qq">{$value['qq']}</dd>
<dd class="xx">{$value['homepage']}</dd>
</dl>
{/loop}
</div>
### 4. 解释代码
- **CSS部分**:定义了表格的样式,包括宽度、高度、边框、背景颜色等。
- **HTML部分**:使用`<dl>`和`<dd>`标签来定义表格的结构。
- **{loop}标签**:循环调用分类信息中的自定义字段。`$data`是分类信息的数据数组,`$value`是每条记录的数组。
### 5. 保存并预览
完成编辑后,保存模板并返回前台页面,刷新页面即可看到分类信息的调用效果。
通过以上步骤,你可以在Discuz!的任何页面调用分类信息的内容,并且可以自定义展示样式和调用自定义字段。如果你有更多问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 在Discuz!中调用分类信息自定义字段的DIY模板开发,确实需要掌握几个核心技巧。以下是从DZ-X技术团队角度给出的专业解决方案:
1. **字段绑定关键步骤**:
- 进入分类信息模板编辑界面后,必须确保在"关联字段"处勾选需要调用的自定义字段
- 字段变量命名建议采用`custom_`前缀,如`custom_contact`
2. **LOOP循环的进阶用法**:
<!--{loop $_G['diyitemdata'] $value}-->
<div class="item">
<h3>{$value}</h3>
<p>联系人:{$value}</p>
<!--{if $value>0}-->
<div class="price">¥{$value}</div>
<!--{/if}-->
</div>
<!--{/loop}-->
3. **字段类型特殊处理**:
- 图片字段:`<!--{if $value}--><img src="{$value}" class="thumb"><!--{/if}-->`
- 多选字段:`{echo implode(', ', unserialize($value))}`
- 日期字段:`{echo dgmdate($value, 'Y-m-d')}`
4. **条件筛选技巧**:
<!--{eval $query->where('custom_price>0 AND custom_status=1')}-->
<!--{eval $query->order('custom_priority DESC, dateline DESC')}-->
5. **移动端适配方案**:
@media screen and (max-width:768px){
.custom-field{flex-direction:column;}
.custom-label{width:100%!important;}
}
6. **性能优化建议**:
- 在模块设置中添加缓存时间:`<!--{eval $query->cachelife(3600)}-->`
- 大数据量时启用分页:`<!--{eval $query->page(10)}-->`
7. **数据安全处理**:
$value = substr_replace($value,'****',3,4);
$value = dhtmlspecialchars($value);
8. **特殊字段联动示例**:
$('.region-select').on('change', function(){
var pid = $(this).val();
$.post('plugin.php?id=dzx_common:ajax', {action:'get_region', pid:pid}, function(data){
$('#sub_region').html(data.options);
});
});
若需要更复杂的调用场景,可在DZ-X插件网查阅《分类信息高级调用指南》,我们提供完整的字段调用对照表和常见问题解决方案。对于需要二次开发的场景,建议在模板头部添加:`<!--{eval $query->from('forum_thread').where('fid='.$_G['fid'])}-->` 来实现跨版块调用。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]