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

主题内容页独立主题和回复

DivivitYan听音乐 2021-11-7 21:44:385.3K 次点击 阅读模式     
按照惯例先来解读一下逻辑。
主题内容页所涉及到的模板文件为:viewthread.htm。通过分析,我们发现 viewthread.htm 只是主题内容页的一个整体框架。
因为主题内容和回复内容的结构框架一样,所以当布局到内容(包括主题和回复)的时候。便用了
  1. <!--{loop $postlist $post}-->
  2.                 <!--{if $rushreply && $_GET['checkrush'] && $post['rewardfloor'] != 1}-->
  3.                         <!--{eval continue;}-->
  4.                 <!--{/if}-->
  5.                 <div id="post_$post[pid]" {if $_G['blockedpids'] && $post['inblacklist']}style="display:none;"{/if}>
  6.                         <!--{subtemplate forum/viewthread_node}-->
  7.                 </div>
  8.                 <!--{eval $postcount++;}-->
  9. <!--{/loop}-->
复制代码

所以接下来,我们只需要分析 viewthread_node.htm 即可。
viewthread_node.htm 就是无数个显示在主题内容页的楼层(1楼、2楼、3楼、4楼,用的都是这一个模板)。
这里我们暂时管它叫做table框架。(因为这里主要的就是一个 <table> 结构)

既然我们要做主题部分和回复部分的脱离,那我们只需要针对 viewthread_node.htm 这个模板做一个判断即可。
逻辑是这样的,首先在 viewthread_node.htm 的
<table id="pid$post[pid]" class="plhin" summary="pid$post[pid]" cellspacing="0" cellpadding="0">

标签之上做一个判断
  1. <!--{if $post['first']}-->
复制代码
来判断以下内容是楼主。其次在</table>的下面继续判断
  1. <!--{else}-->
  2.    在这里,再把table框架复制一份放在这里
  3. <!--{/if}-->
复制代码
这样,就实现了主题内容和回复内容脱离的目的。需要注意的是,在else下面放入的是将被无限循环的回复内容。也就是说我们可以任意修改这里的框架结构来实现于主题内容不一样的效果。
啊舒服sdf
目前尚无回复
添加一条新回复
您需要登录后才可以回帖 登录 | 立即注册

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

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