我是小站长 發表於 2019-6-3 15:57:10

关于帖子里个人签名的分析

<br /><br /><font style="font-size:10.5pt">首先在发帖/回帖的时候,在右侧的选择项里有使用个人签名的功能,如图。</font><font style="font-size:10.5pt">勾选后发帖,相应处理进入source\include\post\post_newthread.php文件,在452行附近,相关代码</font><ol><li>$usesig =!empty($_G['gp_usesig']) &amp;&amp; $_G['group']['maxsigsize'] ? 1 : 0;</ol><font face="微软雅黑"><br /></font><br /><font style="font-size:10.5pt">$usesig为是否使用个人签名的标志,1表示使用个人签名,0为不使用。</font><font face="微软雅黑"><font style="font-size:10.5pt">其中$_G['gp_usesig']就是前面说的使用个人签名的值,$_G['group']['maxsigsize']为所在用户组下的签名文字最大长度,如图。</font></font><br /><font face="微软雅黑"><font style="font-size:10.5pt">回帖的处理类似,不做叙述。</font></font><br /><font face="微软雅黑"><font style="font-size:10.5pt">下面看下浏览帖子内容时是如何处理个人签名的。</font></font><font style="font-size:10.5pt">在source\module\forum\forum_viewthread.php文件,964行附近,代码如下。</font><ol><li>$post['signature'] = $post['usesig'] ? ($_G['setting']['sigviewcond'] ? (strlen($post['message']) &gt; $_G['setting']['sigviewcond'] ? $post['signature'] : '') : $post['signature']) : '';</ol><br /><br /><font style="font-size:10.5pt">首先判断是否使用个人签名,$post['usesig']即为前面的使用个人签名的值,1为使用,0为不使用。</font><font face="微软雅黑"><font style="font-size:10.5pt">$_G['setting']['sigviewcond']为签名显示条件,只有帖子字数大于这个数值后才显示签名,具体位置如图:</font></font><br /><font face="微软雅黑"><font style="font-size:10.5pt">$post['signature']为个人签名。</font></font><font face="微软雅黑"><font style="font-size:10.5pt">第一个三元表达式:</font></font><ol><li>(strlen($post['message'])&gt; $_G['setting']['sigviewcond'] ? $post['signature'] : '')</ol><br /><font face="微软雅黑"><font style="font-size:10.5pt">这句代码为:</font></font><font style="font-size:10.5pt">如果帖子内容的字数&gt;签名显示条件设置的字数,就为$post['signature'],否则为空。</font><br /><font face="微软雅黑"><font style="font-size:10.5pt">第二个三元表达式:</font></font><ol><li>($_G['setting']['sigviewcond']? (strlen($post['message']) &gt; $_G['setting']['sigviewcond'] ?$post['signature'] : '') : $post['signature'])</ol><br /><br /><font face="微软雅黑"><font style="font-size:10.5pt">如果设置了签名显示条件,就显示为上面第一个表达式的值,否则显示为个人签名。</font></font><br /><font face="微软雅黑"><font style="font-size:10.5pt">第三个三元表达式:</font></font><ol><li>$post['usesig'] ?($_G['setting']['sigviewcond'] ? (strlen($post['message']) &gt;$_G['setting']['sigviewcond'] ? $post['signature'] : '') : $post['signature']): '';</ol><br /><br /><font face="微软雅黑"><font style="font-size:10.5pt">如果帖子里选择了使用个人签名,则显示为上面第二个表达式的值,否则为空。</font></font><br /><font face="微软雅黑"><font style="font-size:10.5pt">然后看模板中是如何处理的。</font></font><font style="font-size:10.5pt">在template\default\forum\viewthread_node.htm,287行附近,代码如下:</font><ol><li>&lt;!--{if$post['signature'] &amp;&amp; ($_G['setting']['bannedmessages'] &amp; 4&amp;&amp; ($post['memberstatus'] == '-1' || ($post['authorid'] &amp;&amp;!$post['username']) || ($post['groupid'] == 4 || $post['groupid'] == 5) ||($post['status'] &amp; 1)))}--&gt;&lt;divclass=&quot;sign&quot;&gt;{lang member_signature_banned}&lt;/div&gt;&lt;!--{elseif$post['signature'] &amp;&amp; !$post['anonymous'] &amp;&amp;$showsignatures}--&gt;&lt;divclass=&quot;sign&quot;style=&quot;max-height:{$_G['setting']['maxsigrows']}px;maxHeightIE:{$_G['setting']['maxsigrows']}px;&quot;&gt;$post&lt;/div&gt;&lt;!--{/if}--&gt;</ol><br /><ol><li>&lt;!--{if$post['signature'] &amp;&amp; ($_G['setting']['bannedmessages'] &amp; 4&amp;&amp; ($post['memberstatus'] == '-1' || ($post['authorid'] &amp;&amp;!$post['username']) || ($post['groupid'] == 4 || $post['groupid'] == 5) ||($post['status'] &amp; 1)))}--&gt;&lt;divclass=&quot;sign&quot;&gt;{lang member_signature_banned}&lt;/div&gt;</ol><br /><font face="微软雅黑"><font style="font-size:10.5pt">为用户被禁止下的显示情况,此时签名显示为签名被屏蔽。</font></font><br /><ol><li>&lt;!--{elseif$post['signature'] &amp;&amp; !$post['anonymous'] &amp;&amp;$showsignatures}--&gt;&lt;divclass=&quot;sign&quot;style=&quot;max-height:{$_G['setting']['maxsigrows']}px;maxHeightIE:{$_G['setting']['maxsigrows']}px;&quot;&gt;$post&lt;/div&gt;&lt;!--{/if}--&gt;</ol><br /><font face="微软雅黑"><font style="font-size:10.5pt">为正常情况下的显示。</font></font><br />发帖

耗子 發表於 2019-6-3 17:14:12

感谢分享给

onetheme 發表於 2019-6-4 15:00:56

感谢分享!!
頁: [1]
查看完整版本: 关于帖子里个人签名的分析