久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區(qū)

標(biāo)題: 關(guān)于帖子里個(gè)人簽名的分析 [打印本頁]

作者: 我是小站長    時(shí)間: 2019-6-3 15:57
標(biāo)題: 關(guān)于帖子里個(gè)人簽名的分析
本帖最后由 我是小站長 于 2019-6-3 15:57 編輯

首先在發(fā)帖/回帖的時(shí)候,在右側(cè)的選擇項(xiàng)里有使用個(gè)人簽名的功能,如圖。
[attach]981652[/attach]
勾選后發(fā)帖,相應(yīng)處理進(jìn)入source\include\post\post_newthread.php文件,在452行附近,相關(guān)代碼
  1. $usesig =!empty($_G['gp_usesig']) && $_G['group']['maxsigsize'] ? 1 : 0;
復(fù)制代碼


$usesig為是否使用個(gè)人簽名的標(biāo)志,1表示使用個(gè)人簽名,0為不使用。
其中$_G['gp_usesig']就是前面說的使用個(gè)人簽名的值,$_G['group']['maxsigsize']為所在用戶組下的簽名文字最大長度,如圖。
[attach]981650[/attach]

回帖的處理類似,不做敘述。

下面看下瀏覽帖子內(nèi)容時(shí)是如何處理個(gè)人簽名的。
在source\module\forum\forum_viewthread.php文件,964行附近,代碼如下。
  1. $post['signature'] = $post['usesig'] ? ($_G['setting']['sigviewcond'] ? (strlen($post['message']) > $_G['setting']['sigviewcond'] ? $post['signature'] : '') : $post['signature']) : '';
復(fù)制代碼


首先判斷是否使用個(gè)人簽名,$post['usesig']即為前面的使用個(gè)人簽名的值,1為使用,0為不使用。
$_G['setting']['sigviewcond']為簽名顯示條件,只有帖子字?jǐn)?shù)大于這個(gè)數(shù)值后才顯示簽名,具體位置如圖:
[attach]981651[/attach]

$post['signature']為個(gè)人簽名。
第一個(gè)三元表達(dá)式:
  1. (strlen($post['message'])> $_G['setting']['sigviewcond'] ? $post['signature'] : '')
復(fù)制代碼

這句代碼為:
如果帖子內(nèi)容的字?jǐn)?shù)>簽名顯示條件設(shè)置的字?jǐn)?shù),就為$post['signature'],否則為空。

第二個(gè)三元表達(dá)式:
  1. ($_G['setting']['sigviewcond']? (strlen($post['message']) > $_G['setting']['sigviewcond'] ?$post['signature'] : '') : $post['signature'])
復(fù)制代碼


如果設(shè)置了簽名顯示條件,就顯示為上面第一個(gè)表達(dá)式的值,否則顯示為個(gè)人簽名。

第三個(gè)三元表達(dá)式:
  1. $post['usesig'] ?($_G['setting']['sigviewcond'] ? (strlen($post['message']) >$_G['setting']['sigviewcond'] ? $post['signature'] : '') : $post['signature']): '';
復(fù)制代碼


如果帖子里選擇了使用個(gè)人簽名,則顯示為上面第二個(gè)表達(dá)式的值,否則為空。

然后看模板中是如何處理的。
在template\default\forum\viewthread_node.htm,287行附近,代碼如下:
  1. <!--{if$post['signature'] && ($_G['setting']['bannedmessages'] & 4&& ($post['memberstatus'] == '-1' || ($post['authorid'] &&!$post['username']) || ($post['groupid'] == 4 || $post['groupid'] == 5) ||($post['status'] & 1)))}--><divclass="sign">{lang member_signature_banned}</div><!--{elseif$post['signature'] && !$post['anonymous'] &&$showsignatures}--><divclass="sign"style="max-height:{$_G['setting']['maxsigrows']}px;maxHeightIE:{$_G['setting']['maxsigrows']}px;">$post[signature]</div><!--{/if}-->
復(fù)制代碼

  1. <!--{if$post['signature'] && ($_G['setting']['bannedmessages'] & 4&& ($post['memberstatus'] == '-1' || ($post['authorid'] &&!$post['username']) || ($post['groupid'] == 4 || $post['groupid'] == 5) ||($post['status'] & 1)))}--><divclass="sign">{lang member_signature_banned}</div>
復(fù)制代碼

為用戶被禁止下的顯示情況,此時(shí)簽名顯示為簽名被屏蔽。

  1. <!--{elseif$post['signature'] && !$post['anonymous'] &&$showsignatures}--><divclass="sign"style="max-height:{$_G['setting']['maxsigrows']}px;maxHeightIE:{$_G['setting']['maxsigrows']}px;">$post[signature]</div><!--{/if}-->
復(fù)制代碼

為正常情況下的顯示。


作者: 耗子    時(shí)間: 2019-6-3 17:14
感謝分享給
作者: onetheme    時(shí)間: 2019-6-4 15:00
感謝分享!!




歡迎光臨 Discuz! 官方交流社區(qū) (http://www.9999xn.com/) Powered by Discuz! W1.0