AntonLV 5 лет назад
Родитель
Сommit
c7cbd91d21

+ 25 - 19
inc/classes/BxDolCmtsGridAdministration.php

@@ -12,23 +12,24 @@ define('BX_DOL_MANAGE_TOOLS_ADMINISTRATION', 'administration');
 class BxDolCmtsGridAdministration extends BxTemplGrid
 {
     protected $_sManageType;
-	protected $_sParamsDivider;
-    
+    protected $_sParamsDivider;
+
     protected $_sFilter1Name;
-	protected $_sFilter1Value;
-	protected $_aFilter1Values;
+    protected $_sFilter1Value;
+    protected $_aFilter1Values;
     
     public function __construct ($aOptions, $oTemplate = false)
     {
         $this->_sFilter1Name = 'filter1';
+        $this->_aFilter1Values = ['' => _t('_adm_txt_select_module')];
 
         $aModules = BxDolModuleQuery::getInstance()->getModulesBy(array('type' => 'modules', 'active' => 1));
-        $this->_aFilter1Values[''] = _t('_adm_txt_select_module');
-        foreach($aModules as $aModule){
+        foreach($aModules as $aModule) {
             $oModule = BxDolModule::getInstance($aModule['name']);
-            if(isset($oModule->_oConfig->CNF['OBJECT_COMMENTS'])){
-                $this->_aFilter1Values[$aModule['name']] = $aModule['title'];
-            }
+            if(!$oModule || !isset($oModule->_oConfig->CNF['OBJECT_COMMENTS']))
+                continue;
+
+            $this->_aFilter1Values[$aModule['name']] = $aModule['title'];
         }
 
     	$sFilter1 = bx_get($this->_sFilter1Name);
@@ -38,7 +39,8 @@ class BxDolCmtsGridAdministration extends BxTemplGrid
         }
        
     	if(!$oTemplate)
-			$oTemplate = BxDolTemplate::getInstance();
+            $oTemplate = BxDolTemplate::getInstance();
+
         parent::__construct ($aOptions, $oTemplate);
 
         $this->_sManageType = BX_DOL_MANAGE_TOOLS_ADMINISTRATION;
@@ -46,20 +48,24 @@ class BxDolCmtsGridAdministration extends BxTemplGrid
 
         $this->_sDefaultSortingOrder = 'DESC';
     }
-    
-	protected function _getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage)
+
+    protected function _getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage)
     {
         if(strpos($sFilter, $this->_sParamsDivider) !== false)
             list($this->_sFilter1Value, $sFilter) = explode($this->_sParamsDivider, $sFilter);
 
-    	if(!empty($this->_sFilter1Value)){
-            $oSelectedModule = BxDolModule::getInstance($this->_sFilter1Value);
-            $oCmts = BxDolCmts::getObjectInstance($oSelectedModule->_oConfig->CNF['OBJECT_COMMENTS'], 0, false);
-            $this->_aOptions['source'] = "SELECT  sys_cmts_ids.id, sys_cmts_ids.cmt_id, sys_cmts_ids.reports, cmts.*, sys_accounts.email FROM sys_cmts_ids INNER JOIN " . $oCmts->getCommentsTableName() . " cmts ON cmts.cmt_id = sys_cmts_ids.cmt_id INNER JOIN sys_profiles ON cmts.cmt_author_id=sys_profiles.id INNER JOIN sys_accounts ON sys_profiles.account_id=sys_accounts.id WHERE sys_cmts_ids.system_id = " . $oCmts->getSystemId();
-        }
-        else{
+    	if(empty($this->_sFilter1Value)) 
             return '';
-        }
+
+        $oModule = BxDolModule::getInstance($this->_sFilter1Value);
+        if(!$oModule)
+            return '';
+
+        $oCmts = BxDolCmts::getObjectInstance($oModule->_oConfig->CNF['OBJECT_COMMENTS'], 0, false);
+        if(!$oCmts || !$oCmts->isEnabled())
+            return '';
+
+        $this->_aOptions['source'] = $oModule->_oDb->prepareAsString("SELECT `sys_cmts_ids`.`id`, `sys_cmts_ids`.`cmt_id`, `sys_cmts_ids`.`reports`, `cmts`.*, `sys_accounts`.`email` FROM `sys_cmts_ids` INNER JOIN " . $oCmts->getCommentsTableName() . " AS `cmts` ON `cmts`.`cmt_id`=`sys_cmts_ids`.`cmt_id` INNER JOIN `sys_profiles` ON `cmts`.`cmt_author_id`=`sys_profiles`.`id` INNER JOIN `sys_accounts` ON `sys_profiles`.`account_id`=`sys_accounts`.`id` WHERE `sys_cmts_ids`.`system_id`=?", $oCmts->getSystemId());
 
         return parent::_getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage);
     }

+ 1 - 1
install/sql/system.sql

@@ -4660,7 +4660,7 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 
 -- GRIDS: moderation tools
 INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `visible_for_levels`, `override_class_name`, `override_class_file`) VALUES
-('sys_cmts_administration', 'Sql', '', '', 'cmt_id', 'cmt_time', '', '', 20, NULL, 'start', '', 'cmt_text,email', '', 'like', 'reports', '', 192, 'BxTemplCmtsGridAdministration', '');
+('sys_cmts_administration', 'Sql', '', 'sys_cmts_ids', 'cmt_id', 'cmt_time', '', '', 20, NULL, 'start', '', 'cmt_text,email', '', 'like', 'reports', '', 192, 'BxTemplCmtsGridAdministration', '');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 ('sys_cmts_administration', 'checkbox', '_sys_select', '2%', 0, '0', '', 1),

+ 25 - 31
template/scripts/BxBaseCmtsGridAdministration.php

@@ -27,7 +27,7 @@ class BxBaseCmtsGridAdministration extends BxDolCmtsGridAdministration
             'sObjName' => $this->sJsObject,
             'aHtmlIds' => array(),
             'oRequestParams' => array(),
-        	'sObjNameGrid' => 'sys_cmts_administration'
+            'sObjNameGrid' => 'sys_cmts_administration'
         );
         return BxDolTemplate::getInstance()->_wrapInTagJsCode("var " . $this->sJsObject . " = new BxDolCmtsManageTools(" . json_encode($aParams) . ");");
     }
@@ -73,12 +73,8 @@ class BxBaseCmtsGridAdministration extends BxDolCmtsGridAdministration
         if(empty($sFilterName) || empty($aFilterValues))
             return '';
 
-        //todo
-		$CNF = &$this->_oModule->_oConfig->CNF;
-		
-
-		foreach($aFilterValues as $sKey => $sValue)
-			$aFilterValues[$sKey] = _t($sValue);
+        foreach($aFilterValues as $sKey => $sValue)
+            $aFilterValues[$sKey] = _t($sValue);
 
         $aInputModules = array(
             'type' => 'select',
@@ -88,13 +84,13 @@ class BxBaseCmtsGridAdministration extends BxDolCmtsGridAdministration
                 'onChange' => 'javascript:' . $this->sJsObject . '.onChangeFilter(this)'
             ),
             'value' => $sFilterValue,
-            'values' => array_merge(array('' => _t($CNF['T']['filter_item_select_one_' . $sFilterName])), $aFilterValues)
+            'values' => $aFilterValues
         );
 
         $oForm = new BxTemplFormView(array());
         return $oForm->genRow($aInputModules);
     }
-    
+
     protected function _getSearchInput()
     {
         $aInputSearch = array(
@@ -126,13 +122,13 @@ class BxBaseCmtsGridAdministration extends BxDolCmtsGridAdministration
     	$oProfile = BxDolProfile::getInstance($aRow['cmt_author_id']);
     	$sProfile = $oProfile->getDisplayName();
 
-		$oAcl = BxDolAcl::getInstance();
+        $oAcl = BxDolAcl::getInstance();
 
     	$sAccountEmail = '';
     	$sManageAccountUrl = '';
     	if($oProfile && $oProfile instanceof BxDolProfile && $oAcl->isMemberLevelInSet(128)) {
-    		$sAccountEmail = $oProfile->getAccountObject()->getEmail();
-	    	$sManageAccountUrl = $this->_getManageAccountUrl($sAccountEmail);
+            $sAccountEmail = $oProfile->getAccountObject()->getEmail();
+            $sManageAccountUrl = $this->_getManageAccountUrl($sAccountEmail);
     	}
 
         $mixedValue = $this->_oTemplate->parseHtmlByName('author_link.html', array(
@@ -140,12 +136,12 @@ class BxBaseCmtsGridAdministration extends BxDolCmtsGridAdministration
             'title' => $sProfile,
             'content' => $sProfile,
         	'bx_if:show_account' => array(
-        		'condition' => !empty($sManageAccountUrl), 
-        		'content' => array(
-        			'href' => $sManageAccountUrl,
-		        	'title' => _t('_sys_grid_txt_account_manager'),
-		        	'content' => $sAccountEmail
-        		)
+                    'condition' => !empty($sManageAccountUrl), 
+                    'content' => array(
+                        'href' => $sManageAccountUrl,
+                        'title' => _t('_sys_grid_txt_account_manager'),
+                        'content' => $sAccountEmail
+                    )
         	)
         ));
 
@@ -171,26 +167,24 @@ class BxBaseCmtsGridAdministration extends BxDolCmtsGridAdministration
         }
         return parent::_getCellDefault($mixedValue, $sKey, $aField, $aRow);
     }
-    
+
     protected function _getManageAccountUrl($sFilter = '')
     {
     	$sModuleAccounts = 'bx_accounts';
     	if(!BxDolModuleQuery::getInstance()->isEnabledByName($sModuleAccounts))
-    		return '';
-
-		$sTypeUpc = strtoupper($this->_sManageType);
-		$oModuleAccounts = BxDolModule::getInstance($sModuleAccounts);
-		if(!$oModuleAccounts || empty($oModuleAccounts->_oConfig->CNF['URL_MANAGE_' . $sTypeUpc]))
-			return '';
+            return '';
 
-		$sLink = $oModuleAccounts->_oConfig->CNF['URL_MANAGE_' . $sTypeUpc];
+        $sTypeUpc = strtoupper($this->_sManageType);
+        $oModuleAccounts = BxDolModule::getInstance($sModuleAccounts);
+        if(!$oModuleAccounts || empty($oModuleAccounts->_oConfig->CNF['URL_MANAGE_' . $sTypeUpc]))
+            return '';
 
-		$sLink = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink($sLink);
-		
-		if(!empty($sFilter))
-			$sLink = bx_append_url_params($sLink, array('filter' => $sFilter));
+        $sLink = $oModuleAccounts->_oConfig->CNF['URL_MANAGE_' . $sTypeUpc];
+        $sLink = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink($sLink);
+        if(!empty($sFilter))
+            $sLink = bx_append_url_params($sLink, array('filter' => $sFilter));
 
-		return $sLink;
+        return $sLink;
     }
 }