AntonLV hace 6 años
padre
commit
b9a9cf6dd0

+ 1 - 1
inc/classes/BxDol.php

@@ -280,7 +280,7 @@ interface iBxDolContentInfoService
     public function serviceGetAll ($aParams = array());
 
     public function serviceGetSearchableFieldsExtended($aInputsAdd = array());
-    public function serviceGetSearchResultExtended($aParams, $iStart = 0, $iPerPage = 0);
+    public function serviceGetSearchResultExtended($aParams, $iStart = 0, $iPerPage = 0, $bFilterMode = false);
 }
 
 /**

+ 2 - 2
inc/classes/BxDolContentInfo.php

@@ -292,9 +292,9 @@ class BxDolContentInfo extends BxDolFactory implements iBxDolFactoryObject
         return $this->_call('get_searchable_fields_extended');
     }
 
-    public function getSearchResultExtended ($aParams, $iStart = 0, $iPerPage = 0)
+    public function getSearchResultExtended ($aParams, $iStart = 0, $iPerPage = 0, $bFilterMode = false)
     {
-        return $this->_call('get_search_result_extended', $aParams, $iStart, $iPerPage);
+        return $this->_call('get_search_result_extended', $aParams, $iStart, $iPerPage, $bFilterMode);
     }
 
     protected function _call($sMethod)

+ 5 - 0
inc/classes/BxDolSearchExtended.php

@@ -57,6 +57,7 @@ class BxDolSearchExtended extends BxDolFactory implements iBxDolFactoryObject
     protected $_sObject;
     protected $_aObject;
 
+    protected $_bFilterMode;
 
     /**
      * Constructor
@@ -70,6 +71,10 @@ class BxDolSearchExtended extends BxDolFactory implements iBxDolFactoryObject
 
         $this->_sObject = $aObject['object'];
         $this->_aObject = $aObject;
+
+        $this->_bFilterMode = false;
+        if(isset($this->_aObject['filter']))
+            $this->_bFilterMode = (int)$this->_aObject['filter'] != 0;
     }
 
     /**

+ 1 - 0
install/sql/system.sql

@@ -1180,6 +1180,7 @@ CREATE TABLE `sys_objects_search_extended` (
   `object_content_info` varchar(64) NOT NULL  default '',
   `module` varchar(32) NOT NULL  default '',
   `title` varchar(255) NOT NULL default '',
+  `filter` tinyint(4) NOT NULL DEFAULT '0',
   `active` tinyint(4) NOT NULL DEFAULT '0',
   `class_name` varchar(32) NOT NULL  default '',
   `class_file` varchar(255) NOT NULL  default '',

+ 2 - 2
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -340,9 +340,9 @@ class BxBaseModGeneralModule extends BxDolModule
         return $aResult;
     }
 
-    public function serviceGetSearchResultExtended($aParams, $iStart = 0, $iPerPage = 0)
+    public function serviceGetSearchResultExtended($aParams, $iStart = 0, $iPerPage = 0, $bFilterMode = false)
     {
-        if(empty($aParams) || !is_array($aParams))
+        if((empty($aParams) || !is_array($aParams)) && !$bFilterMode)
             return array();
 
         return $this->_oDb->getEntriesBy(array('type' => 'search_ids', 'search_params' => $aParams, 'start' => $iStart, 'per_page' => $iPerPage));

+ 1 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -14,6 +14,7 @@
     <string name="_Allowed actions"><![CDATA[Allowed actions]]></string>
     <string name="_anonymous"><![CDATA[anonymous]]></string>
     <string name="_anonymous_f"><![CDATA[anonymous ({0})]]></string>
+        <string name="_Apply"><![CDATA[Apply]]></string>
 	<string name="_Are_you_sure"><![CDATA[Are you sure?]]></string>
 	<string name="_Auth type"><![CDATA[Auth type]]></string>
 	<string name="_Basic"><![CDATA[Basic]]></string>

+ 1 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -14,6 +14,7 @@
     <string name="_Allowed actions"><![CDATA[Разрешённые действия]]></string>
     <string name="_anonymous"><![CDATA[Аноним]]></string>
     <string name="_anonymous_f"><![CDATA[Аноним ({0})]]></string>
+        <string name="_Apply"><![CDATA[Применить]]></string>
 	<string name="_Are_you_sure"><![CDATA[Вы уверены?]]></string>
 	<string name="_Auth type"><![CDATA[Тип авторизации]]></string>
 	<string name="_Basic"><![CDATA[Базовая]]></string>

+ 4 - 4
template/scripts/BxBaseSearchExtended.php

@@ -88,7 +88,7 @@ class BxBaseSearchExtended extends BxDolSearchExtended
             $oForm->initChecker(array(), $aParams['cond']);
         }
 
-        if(!$oForm->isSubmittedAndValid()) 
+        if(!$oForm->isSubmittedAndValid() && !$this->_bFilterMode)
             return '';
 
         $oContentInfo = BxDolContentInfo::getObjectInstance($this->_aObject['object_content_info']);
@@ -123,7 +123,7 @@ class BxBaseSearchExtended extends BxDolSearchExtended
             }
         }
 
-        if(empty($aParamsSearch) || !is_array($aParamsSearch))
+        if((empty($aParamsSearch) || !is_array($aParamsSearch)) && !$this->_bFilterMode)
             return '';
 
         if (!$iPerPage) {
@@ -134,7 +134,7 @@ class BxBaseSearchExtended extends BxDolSearchExtended
         $aResults = false;
         bx_alert('search', 'get_data', 0, false, array('object' => $this->_aObject, 'search_params' => &$aParamsSearch, 'search_results' => &$aResults));
     	if($aResults === false)
-    	    $aResults = $oContentInfo->getSearchResultExtended($aParamsSearch, $iStart, $iPerPage + 1);
+    	    $aResults = $oContentInfo->getSearchResultExtended($aParamsSearch, $iStart, $iPerPage + 1, $this->_bFilterMode);
 
     	if(empty($aResults) || !is_array($aResults))
     	    return '';
@@ -247,7 +247,7 @@ class BxBaseSearchExtended extends BxDolSearchExtended
         $aForm['inputs']['search'] = array(
             'type' => 'submit',
             'name' => $sFormSubmit,
-            'value' => _t('_Search')
+            'value' => _t($this->_bFilterMode ? '_Apply' : '_Search')
         );
 
         $sClass = 'BxTemplSearchExtendedForm';