فهرست منبع

#1689 When profile status isn't 'active' then hide any profile content: forum

Alex Trofimov 4 سال پیش
والد
کامیت
d411d40788
2فایلهای تغییر یافته به همراه6 افزوده شده و 2 حذف شده
  1. 5 2
      modules/boonex/forum/classes/BxForumGrid.php
  2. 1 0
      modules/boonex/forum/classes/BxForumSearchResult.php

+ 5 - 2
modules/boonex/forum/classes/BxForumGrid.php

@@ -337,8 +337,8 @@ class BxForumGrid extends BxTemplGrid
     	$sSelectClause = $sJoinClause = $sWhereClause = $sGroupByClause = '';
     	$sSelectClause = $sJoinClause = $sWhereClause = $sGroupByClause = '';
 
 
     	//--- Check status
     	//--- Check status
-    	$sWhereClause .= " AND `" . $this->_oModule->_oConfig->CNF['FIELD_STATUS'] . "`='active'";
-    	$sWhereClause .= " AND `" . $this->_oModule->_oConfig->CNF['FIELD_STATUS_ADMIN'] . "`='active'";
+    	$sWhereClause .= " AND `{$CNF['TABLE_ENTRIES']}`.`" . $this->_oModule->_oConfig->CNF['FIELD_STATUS'] . "`='active'";
+    	$sWhereClause .= " AND `{$CNF['TABLE_ENTRIES']}`.`" . $this->_oModule->_oConfig->CNF['FIELD_STATUS_ADMIN'] . "`='active'";
 
 
     	//--- Check privacy
     	//--- Check privacy
     	$iAuthorId = 0;
     	$iAuthorId = 0;
@@ -388,6 +388,9 @@ class BxForumGrid extends BxTemplGrid
             $sWhereClause .= " AND `" . $CNF['TABLE_ENTRIES'] . "`.`" . $CNF['FIELD_RESOLVABLE'] . "` = 1 AND `" . $CNF['TABLE_ENTRIES'] . "`.`" . $CNF['FIELD_RESOLVE'] . "` = " . $this->_sFilter1Value;
             $sWhereClause .= " AND `" . $CNF['TABLE_ENTRIES'] . "`.`" . $CNF['FIELD_RESOLVABLE'] . "` = 1 AND `" . $CNF['TABLE_ENTRIES'] . "`.`" . $CNF['FIELD_RESOLVE'] . "` = " . $this->_sFilter1Value;
         }
         }
         
         
+        // filter out posts of suspended members
+        $sJoinClause .= " INNER JOIN `sys_profiles` AS `p` ON (`p`.`id` = `{$CNF['TABLE_ENTRIES']}`.`{$CNF['FIELD_AUTHOR']}` AND `p`.`status` = 'active') ";
+
         // filter by badges
         // filter by badges
         if(isset($this->_sFilter2Value) && $this->_sFilter2Value != ''){
         if(isset($this->_sFilter2Value) && $this->_sFilter2Value != ''){
             $aObjects = BxDolBadges::getInstance()->getData(['type' => 'by_module&badge', 'badge_id' => $this->_sFilter2Value, 'module' => $this->_oModule->_aModule['name']]);
             $aObjects = BxDolBadges::getInstance()->getData(['type' => 'by_module&badge', 'badge_id' => $this->_sFilter2Value, 'module' => $this->_oModule->_aModule['name']]);

+ 1 - 0
modules/boonex/forum/classes/BxForumSearchResult.php

@@ -183,6 +183,7 @@ class BxForumSearchResult extends BxBaseModTextSearchResult
         $this->processReplaceableMarkers($oProfileAuthor);
         $this->processReplaceableMarkers($oProfileAuthor);
 
 
         $this->addConditionsForPrivateContent($CNF, $oProfileAuthor);
         $this->addConditionsForPrivateContent($CNF, $oProfileAuthor);
+        $this->addCustomConditions($CNF, $oProfileAuthor, $sMode, $aParams);
     }
     }
 
 
     function getAlterOrder()
     function getAlterOrder()