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

返回列表 發帖
查看: 8267|回復: 2

關于帖子里個人簽名的分析

83

主題

-6

回帖

329

積分

爐火純青

貢獻
2 點
金幣
241 個
樓主
發表于 2019-6-3 15:57:10 | 只看樓主 |倒序瀏覽 |閱讀模式


首先在發帖/回帖的時候,在右側的選擇項里有使用個人簽名的功能,如圖。
勾選后發帖,相應處理進入source\include\post\post_newthread.php文件,在452行附近,相關代碼
  1. $usesig =!empty($_G['gp_usesig']) && $_G['group']['maxsigsize'] ? 1 : 0;
復制代碼


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

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

下面看下瀏覽帖子內容時是如何處理個人簽名的。
在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']) : '';
復制代碼


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

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

這句代碼為:
如果帖子內容的字數>簽名顯示條件設置的字數,就為$post['signature'],否則為空。

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


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

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


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

然后看模板中是如何處理的。
在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}-->
復制代碼

  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>
復制代碼

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

  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}-->
復制代碼

為正常情況下的顯示。

回復

使用道具 舉報

15

主題

1868

回帖

2164

積分

應用開發者

discuz 老兵

貢獻
11 點
金幣
198 個
QQ
沙發
發表于 2019-6-3 17:14:12 | 只看Ta
感謝分享給
回復

使用道具 舉報

21

主題

500

回帖

1057

積分

應用開發者

貢獻
29 點
金幣
193 個
QQ
板凳
發表于 2019-6-4 15:00:56 | 只看Ta
感謝分享!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-9-18 13:25 , Processed in 0.064892 second(s), 28 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表