Просмотр исходного кода

Ticket #652 - Use instead of common search.

AntonLV 9 лет назад
Родитель
Сommit
e6e1ea6337

+ 1 - 1
inc/classes/BxDol.php

@@ -99,6 +99,6 @@ interface iBxDolContentInfoService
     public function serviceGetText ($iContentId);
     public function serviceGetThumb ($iContentId);
     public function serviceGetInfo ($iContentId, $bSearchableFieldsOnly = true);
-    public function serviceGetSearchResultUnit ($iContentId);
+    public function serviceGetSearchResultUnit ($iContentId, $sUnitTemplate = '');
 }
 /** @} */

+ 5 - 2
inc/classes/BxDolCmts.php

@@ -939,9 +939,12 @@ class BxDolCmts extends BxDolFactory implements iBxDolReplaceable, iBxDolContent
         return $aComment;
     }
 
-    public function serviceGetSearchResultUnit ($iContentId)
+    public function serviceGetSearchResultUnit ($iContentId, $sUnitTemplate = '')
     {
-        return $this->getComment($iContentId, array(), array('type' => BX_CMT_DISPLAY_FLAT, 'view_only' => true));
+        $aComment = $this->_oQuery->getCommentsBy(array('type' => 'id', 'id' => $iContentId));
+        $this->setId($aComment['cmt_object_id']);
+
+        return $this->getComment($aComment, array(), array('type' => BX_CMT_DISPLAY_FLAT, 'view_only' => true));
     }
 
     /**

+ 2 - 2
inc/classes/BxDolContentInfo.php

@@ -212,9 +212,9 @@ class BxDolContentInfo extends BxDolFactory implements iBxDolFactoryObject
         return $this->_call('get_info', $iContentId, $bSearchableFieldsOnly);
     }
 
-    public function getContentSearchResultUnit ($iContentId)
+    public function getContentSearchResultUnit ($iContentId, $sUnitTemplate = '')
     {
-        return $this->_call('get_search_result_unit', $iContentId);
+        return $this->_call('get_search_result_unit', $iContentId, $sUnitTemplate);
     }
 
     protected function _call($sMethod)

+ 3 - 2
inc/classes/BxDolContentInfoCmts.php

@@ -64,9 +64,10 @@ class BxDolContentInfoCmts extends BxDolContentInfo
         return $this->_oCmts->serviceGetInfo($iContentId);
     }
 
-    public function getContentSearchResultUnit ($iContentId)
+    public function getContentSearchResultUnit ($iContentId, $sUnitTemplate = '')
     {
-        return $this->_oCmts->serviceGetSearchResultUnit($iContentId);
+        $this->_oCmts->addCssJs();
+        return '<ul class="cmts">' . $this->_oCmts->serviceGetSearchResultUnit($iContentId, $sUnitTemplate) . '</ul>';
     }
 }
 

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

@@ -97,13 +97,16 @@ class BxBaseModGeneralModule extends BxDolModule
         return array_flip(array_intersect(array_flip($aContentInfo), $aFields));
     }
 
-    public function serviceGetSearchResultUnit ($iContentId)
+    public function serviceGetSearchResultUnit ($iContentId, $sUnitTemplate = '')
     {
         $aContentInfo = $this->_oDb->getContentInfoById($iContentId);
         if(empty($aContentInfo))
             return '';
 
-        return $this->_oTemplate->unit($aContentInfo);
+        if(empty($sUnitTemplate))
+            $sUnitTemplate = 'unit.html';
+
+        return $this->_oTemplate->unit($aContentInfo, true, $sUnitTemplate);
     }
 
     public function serviceModuleIcon ()

+ 8 - 0
modules/base/groups/classes/BxBaseModGroupsModule.php

@@ -32,6 +32,14 @@ class BxBaseModGroupsModule extends BxBaseModProfileModule
         echo(json_encode($a));
     }
 
+    public function serviceGetSearchResultUnit ($iContentId, $sUnitTemplate = '')
+    {
+        if(empty($sUnitTemplate))
+            $sUnitTemplate = 'unit.html';
+
+        return parent::serviceGetSearchResultUnit($iContentId, $sUnitTemplate);
+    }
+
     /**
      * Check if this module entry can be used as profile
      */

+ 8 - 0
modules/base/profile/classes/BxBaseModProfileModule.php

@@ -61,6 +61,14 @@ class BxBaseModProfileModule extends BxBaseModGeneralModule implements iBxDolCon
         return $mixedResult !== false ? $mixedResult : '';
     }
 
+    public function serviceGetSearchResultUnit ($iContentId, $sUnitTemplate = '')
+    {
+        if(empty($sUnitTemplate))
+            $sUnitTemplate = 'unit_with_cover.html';
+
+        return parent::serviceGetSearchResultUnit($iContentId, $sUnitTemplate);
+    }
+
 	public function servicePrivateProfileMsg()
     {
         return MsgBox(_t('_sys_access_denied_to_private_content'));

+ 7 - 2
modules/boonex/elasticsearch/classes/BxElsApi.php

@@ -25,9 +25,14 @@ class BxElsApi extends BxDol
         $this->_sApiUrl = getParam('bx_elasticsearch_api_url');
     }
 
-    public function searchData($sIndex, $sTerm) 
+    public function searchData($sIndex, $sType, $sTerm) 
     {
-        return $this->api("/$sIndex/_search?q=" . $sTerm);
+        $sQuery = "/$sIndex";
+        if(!empty($sType))
+            $sQuery .= "/$sType";
+        $sQuery .= "/_search?q=" . $sTerm;
+
+        return $this->api($sQuery);
     }
 
     public function getData($sIndex, $sType, $iContentId) 

+ 2 - 2
modules/boonex/elasticsearch/classes/BxElsModule.php

@@ -64,12 +64,12 @@ class BxElsModule extends BxBaseModGeneralModule
         echo '</pre>';
     }
 
-    public function serviceSearch($sTerm, $sIndex = '')
+    public function serviceSearch($sTerm, $sType = '', $sIndex = '')
     {
         if(empty($sIndex))
             $sIndex = $this->_oConfig->getIndex();
 
-        $mixedResult = $this->_oApi->searchData($sIndex, $sTerm);
+        $mixedResult = $this->_oApi->searchData($sIndex, $sType, $sTerm);
         if(!$mixedResult || !is_array($mixedResult))
             return false;
 

+ 5 - 2
modules/boonex/timeline/classes/BxTimelineModule.php

@@ -366,13 +366,16 @@ class BxTimelineModule extends BxBaseModNotificationsModule implements iBxDolCon
         return $this->_oDb->getEvents(array('browse' => 'id', 'value' => $iContentId));
     }
 
-    public function serviceGetSearchResultUnit ($iContentId)
+    public function serviceGetSearchResultUnit ($iContentId, $sUnitTemplate = '')
     {
         $aEvent = $this->_oDb->getEvents(array('browse' => 'id', 'value' => $iContentId));
         if(empty($aEvent) || !is_array($aEvent))
             return '';
 
-        return $this->_oTemplate->unit($aEvent);
+        if(empty($sUnitTemplate))
+            $sUnitTemplate = 'unit.html';
+
+        return $this->_oTemplate->unit($aEvent, true, $sUnitTemplate);
     }
 
     /**

+ 9 - 1
searchKeyword.php

@@ -10,7 +10,15 @@
 require_once('./inc/header.inc.php');
 require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
 
-$oSearch = new BxTemplSearch(bx_get('section'));
+$sClass = 'BxTemplSearch';
+if(BxDolModuleQuery::getInstance()->isEnabledByName('bx_elasticsearch')) {
+     $oModule = BxDolModule::getInstance('bx_elasticsearch');
+
+     bx_import('Search', $oModule->_aModule);
+     $sClass = 'BxElsSearch';
+}
+
+$oSearch = new $sClass(bx_get('section'));
 $oSearch->setLiveSearch(bx_get('live_search') ? 1 : 0);
 $oSearch->setMetaType(bx_process_input(bx_get('type')));
 $oSearch->setCategoryObject(bx_process_input(bx_get('cat')));

+ 9 - 1
searchKeywordContent.php

@@ -12,7 +12,15 @@ require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
 
 bx_import('BxDolLanguages');
 
-$o = new BxDolSearch(bx_get('section'));
+$sClass = 'BxDolSearch';
+if(BxDolModuleQuery::getInstance()->isEnabledByName('bx_elasticsearch')) {
+     $oModule = BxDolModule::getInstance('bx_elasticsearch');
+
+     bx_import('Search', $oModule->_aModule);
+     $sClass = 'BxElsSearch';
+}
+
+$o = new $sClass(bx_get('section'));
 $o->setLiveSearch(bx_get('live_search') ? 1 : 0);
 $o->setMetaType(bx_process_input(bx_get('type')));
 $o->setCategoryObject(bx_process_input(bx_get('cat')));