美妙社 - MeiMiaoShe.com
不只是一个[美味]且[奇妙]的社区
现在注册
已注册用户请  登录
节点活跃用户
DivivitYan  • 26 讨论
MMS_LJfOrMxm  • 1 讨论
不看回复  • 1 讨论
我的记忆误解了  • 1 讨论
罗钊刚  • 1 讨论
美妙社  ›  建站笔记

指定版块的主题内容页使用其他模板的方法

DivivitYan懵逼 2021-11-7 21:44:037.9K 次点击 阅读模式     
首先,我们在做这个修改方案之前,应该先找到入口,也就是得先找到主题内容页的模板文件是从哪里载入进来的。
在模板中。viewthread.htm为主题内容页模板。那么入口的载入点则是其中的
  1. <div id="post_$post[pid]" {if $_G['blockedpids'] && $post['inblacklist']}style="display:none;"{/if}>
  2. <!--{subtemplate forum/viewthread_node}-->
  3. </div>
复制代码
既然是做其他模板,那么最简单直接的方法就是用if判断。只要模板是有依可查。
比如,我们以版块为例,我们知道版块的唯一标识名为“fid”,那么我们就可以利用if来判断当前板块是否符合我们想要的结果。
即:
  1. <!--{if $_G['fid'] == 45}-->
  2. <div id="post_$post[pid]" {if $_G['blockedpids'] && $post['inblacklist']}style="display:none;"{/if}>
  3. <!--{subtemplate forum/1}-->
  4. </div>
  5. <!--{else}-->
  6. <div id="post_$post[pid]" {if $_G['blockedpids'] && $post['inblacklist']}style="display:none;"{/if}>
  7. <!--{subtemplate forum/2}-->
  8. </div>
  9. <!--{/if}-->
复制代码
这是一个很简单的判断,当版块的fid为45的时候,加载模板1,否则加载模板2。
我们可以根据这个简单的判断来演变出各种我们所需的判断,比如
  1. <!--{if $thread['sortid'] == 8 && $_G['fid'] == 45}-->
复制代码
表示当分类信息ID(sortid,这个在pre_forum_thread中有,所以我们在这里直接用discuz自带的局部变量就可以)等于8,并且只有在版块ID(fid)为45的版块。
注意: && 表示2个条件同时满足的情况下。|| 表示或者其中一个

简单的来总结一下,其实很简单,因为我们是在viewthread.htm中做判断,那么在数据表中的pre_forum_thread、pre_forum_post,中的字段,都可以拿来做我们的判断依据。并且我们可以直接使用$thread["***"]或者$post["***"]。不需要我们再自定义变量。
这样,我们就可以随心所欲的根据自己的需求来修改版块的模板了。
啊舒服sdf
目前尚无回复
添加一条新回复
您需要登录后才可以回帖 登录 | 立即注册

本节点积分规则
站点统计  ·  手机版  ·  小黑屋  ·  帮助  ·  Archiver  ·  手机版  ·  小黑屋  ·  90 人在线  最高记录 291  ·  TOP
愿孤独的人都会唱歌,愿漂泊的人都有酒喝!
World is powered by solitude
GMT+8, 2024-6-14 11:28, Processed in 0.289317 second(s), 177 queries .

  Inspire by v2ex, Powered by Discuz! X3.5, Template by MeiMiaoShe.Com, © 2001-2024 Discuz! Team.