AntonLV 9 ani în urmă
părinte
comite
80d4b037f3

+ 3 - 0
inc/classes/BxDolCmts.php

@@ -961,6 +961,9 @@ class BxDolCmts extends BxDolFactory implements iBxDolReplaceable, iBxDolContent
     public function serviceGetSearchResultUnit ($iContentId, $sUnitTemplate = '')
     {
         $aComment = $this->_oQuery->getCommentsBy(array('type' => 'id', 'id' => $iContentId));
+        if(empty($aComment) || !is_array($aComment))
+            return '';
+
         $this->setId($aComment['cmt_object_id']);
 
         return $this->getComment($aComment, array(), array('type' => BX_CMT_DISPLAY_FLAT, 'view_only' => true));

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

@@ -16,15 +16,21 @@ define('BX_ELASTICSEARCH_LOG', 1);
  */
 class BxElsApi extends BxDol
 {
+	protected $_oModule;
+
     protected $_sError = false;
     protected $_iTimeout = 30;
     protected $_sApiUrl = 'http://localhost:9200';
 
     protected $_aOprs = array('AND' => array('AG' => 'bool', 'FN' => 'filter'), 'OR' => array('AG' => 'dis_max', 'FN' => 'queries'));
 
-    public function __construct()
+    public function __construct(&$oModule)
     {
-        $this->_sApiUrl = getParam('bx_elasticsearch_api_url');
+        $this->_oModule = $oModule;
+
+        $CNF = &$this->_oModule->_oConfig->CNF;
+
+        $this->_sApiUrl = getParam($CNF['PARAM_API_URL']);
     }
 
     public function searchSimple($sIndex, $sType, $sTerm) 

+ 3 - 0
modules/boonex/elasticsearch/classes/BxElsConfig.php

@@ -28,6 +28,9 @@ class BxElsConfig extends BxBaseModGeneralConfig
             'FIELD_TITLE' => 'title',
             'FIELD_TEXT' => 'text',
 
+            // params
+			'PARAM_API_URL' => 'bx_elasticsearch_api_url',
+
             // objects
         	'OBJECT_FORM_MANAGE' => 'bx_elasticsearch_manage',
             'OBJECT_FORM_MANAGE_DISPLAY_INDEX' => 'bx_elasticsearch_manage_index',

+ 8 - 1
modules/boonex/elasticsearch/classes/BxElsModule.php

@@ -18,7 +18,7 @@ class BxElsModule extends BxBaseModGeneralModule
         parent::__construct($aModule);
 
         bx_import('Api', $aModule);
-        $this->_oApi = new BxElsApi();
+        $this->_oApi = new BxElsApi($this);
     }
 
     public function actionDebug($sType = '', $sIndex = '')
@@ -116,6 +116,13 @@ class BxElsModule extends BxBaseModGeneralModule
         echo '</pre>';
     }
 
+    public function serviceIsConfigured()
+    {
+        $CNF = &$this->_oConfig->CNF;
+
+        return isset($CNF['PARAM_API_URL']) && getParam($CNF['PARAM_API_URL']) != '';
+    }
+
     public function serviceSearchSimple($sTerm, $sType = '', $sIndex = '')
     {
         if(empty($sIndex))

+ 5 - 2
searchKeyword.php

@@ -11,8 +11,11 @@ require_once('./inc/header.inc.php');
 require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
 
 $sClass = 'BxTemplSearch';
-if(BxDolModuleQuery::getInstance()->isEnabledByName('bx_elasticsearch')) {
-     $oModule = BxDolModule::getInstance('bx_elasticsearch');
+
+$sElsName = 'bx_elasticsearch';
+$sElsMethod = 'is_configured';
+if(BxDolRequest::serviceExists($sElsName, $sElsMethod) && BxDolService::call($sElsName, $sElsMethod)) {
+     $oModule = BxDolModule::getInstance($sElsName);
 
      bx_import('Search', $oModule->_aModule);
      $sClass = 'BxElsSearch';

+ 5 - 2
searchKeywordContent.php

@@ -13,8 +13,11 @@ require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
 bx_import('BxDolLanguages');
 
 $sClass = 'BxDolSearch';
-if(BxDolModuleQuery::getInstance()->isEnabledByName('bx_elasticsearch')) {
-     $oModule = BxDolModule::getInstance('bx_elasticsearch');
+
+$sElsName = 'bx_elasticsearch';
+$sElsMethod = 'is_configured';
+if(BxDolRequest::serviceExists($sElsName, $sElsMethod) && BxDolService::call($sElsName, $sElsMethod)) {
+     $oModule = BxDolModule::getInstance($sElsName);
 
      bx_import('Search', $oModule->_aModule);
      $sClass = 'BxElsSearch';