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

#3651 - Add context parameters for mentions request

RomanL 4 лет назад
Родитель
Сommit
9f6f70485a

+ 14 - 6
inc/classes/BxDolSearchExtended.php

@@ -110,8 +110,8 @@ class BxDolSearchExtended extends BxDolFactory implements iBxDolFactoryObject
         foreach ($aResult as &$aItem) {
             $aItem['symbol'] = bx_get('symbol');
         }
-        header('Content-Type:text/javascript; charset=utf-8');
-        echo json_encode($aResult);
+        
+        return $aResult;
     }
     
     static public function actionGetHashtags()
@@ -123,17 +123,25 @@ class BxDolSearchExtended extends BxDolFactory implements iBxDolFactoryObject
                 $aResult[] = ['label' => $aItem['meta'], 'value' => $aItem['id'], 'url' => $aItem['url'], 'symbol' => bx_get('symbol')];
             }
         }
-        header('Content-Type:text/javascript; charset=utf-8');
-        echo json_encode($aResult);
+        
+        return $aResult;
     }
     
     static public function actionGetMention()
     {
+        $a = bx_get_base_url_inline();
+        $aResult = [];
+        
         if(bx_get('symbol') == '@')
-            self::actionGetAuthors();
+            $aResult = self::actionGetAuthors();
         
         if(bx_get('symbol') == '#')
-            self::actionGetHashtags();
+            $aResult = self::actionGetHashtags();
+        
+        bx_alert('search', 'get_mention', 0, 0, array('params' => $a[1], 'override_result' => &$aResult));
+        
+        header('Content-Type:text/javascript; charset=utf-8');
+        echo json_encode($aResult);
     }
 
     static public function encodeConditions($aConditions) 

+ 5 - 2
inc/js/editor.quill.js

@@ -10,7 +10,10 @@ function bx_editor_init(oEditor, oParams){
         languages: ['javascript', 'php', 'html', 'css']
     });
 
-    bEmptyToolbar = oParams.toolbar == false ? true : false
+    bEmptyToolbar = oParams.toolbar == false ? true : false;
+    
+    if (oParams.query_params == undefined)
+        oParams.query_params = {};
 
     oParams.toolbar = {
         container: bEmptyToolbar ? [] : oParams.toolbar,
@@ -165,7 +168,7 @@ function bx_editor_init(oEditor, oParams){
                 mentionListClass: 'ql-mention-list bx-menu-ver',
                 listItemClass: 'bx-menu-item bx-def-color-bg-hl-hover',
                 source: function (searchTerm, renderList, mentionChar) {
-                  $.getJSON(oParams.root_url + 'searchExtended.php?action=get_mention&', { symbol: mentionChar, term: searchTerm}, function(data){
+                  $.getJSON(oParams.root_url + 'searchExtended.php?action=get_mention', $.extend({}, {symbol: mentionChar, term: searchTerm}, oParams.query_params), function(data){
                       renderList(data, searchTerm);
                   });
                 },

+ 1 - 1
modules/boonex/timeline/classes/BxTimelineFormPost.php

@@ -162,7 +162,7 @@ class BxTimelineFormPost extends BxBaseModGeneralFormEntry
         if(!$this->_oModule->_oConfig->isEditorToolbar())
         	$oEditor->setCustomToolbarButtons('');
 
-        $this->_sCodeAdd .= $oEditor->attachEditor ('#' . $this->aFormAttrs['id'] . ' [name='.$aInput['name'].']', $iViewMode, $this->_bDynamicMode, ['form_id' => $this->aFormAttrs['id'], 'element_name' => $aInput['name']]);
+        $this->_sCodeAdd .= $oEditor->attachEditor ('#' . $this->aFormAttrs['id'] . ' [name='.$aInput['name'].']', $iViewMode, $this->_bDynamicMode, ['form_id' => $this->aFormAttrs['id'], 'element_name' => $aInput['name'], 'query_params' => $this->getHtmlEditorQueryParams($aInput)]);
 
         return true;
     }

+ 11 - 1
template/scripts/BxBaseCmtsForm.php

@@ -41,7 +41,17 @@ class BxBaseCmtsForm extends BxTemplFormView
             $this->aInputs['cmt_image']['ghost_template'] = '';
         }
     }
-
+    
+    function getHtmlEditorQueryParams($aInput)
+    {
+        $aQueryParams = parent::getHtmlEditorQueryParams($aInput);
+        if (isset($this->aInputs['id'])){
+            $aQueryParams['cid'] = $this->aInputs['id']['value'];
+        }
+        $aQueryParams['m'] ='sys_cmts';
+        return $aQueryParams;
+    }
+    
     public function getAttributeMask($sAttribute)
     {
         $sName = '_sAttributeMask' . bx_gen_method_name($sAttribute);

+ 3 - 1
template/scripts/BxBaseEditorQuill.php

@@ -24,7 +24,8 @@ class BxBaseEditorQuill extends BxDolEditor
             selector: '{bx_var_selector}',
             css_class: '{bx_var_css_additional_class}',
             toolbar: {toolbar},
-            root_url: '{bx_url_root}'
+            root_url: '{bx_url_root}',
+            query_params: {bx_var_query_params},
         }
         {bx_var_editor_name} = bx_editor_init({bx_var_editor_name}, oParams);";
    
@@ -115,6 +116,7 @@ class BxBaseEditorQuill extends BxDolEditor
         $sInitEditor = $this->_replaceMarkers(self::$CONF_COMMON, array(
             'bx_var_custom_init' => $sCustomInit,
             'bx_var_selector' => bx_js_string($sSelector, BX_ESCAPE_STR_APOS),
+            'bx_var_query_params' => isset($aAttrs['query_params']) ? json_encode($aAttrs['query_params']) : "''",
             'bx_var_form_id' => $aAttrs['form_id'],
             'toolbar' => $sToolbarItems ? '[' . $sToolbarItems . ']' : 'false',
             'bx_var_css_additional_class' => $sToolbarItems ? '' : 'bx-form-input-html-quill-empty',

+ 15 - 1
template/scripts/BxBaseFormView.php

@@ -1343,10 +1343,24 @@ BLAH;
         if (!$oEditor)
             return false;
 
-        $this->_sCodeAdd .= $oEditor->attachEditor ('#' . $this->aFormAttrs['id'] . ' [name='.$aInput['name'].']', $iViewMode, $this->_bDynamicMode, ['form_id' => $this->aFormAttrs['id'], 'element_name' => $aInput['name']]);
+        $this->_sCodeAdd .= $oEditor->attachEditor ('#' . $this->aFormAttrs['id'] . ' [name='.$aInput['name'].']', $iViewMode, $this->_bDynamicMode, ['form_id' => $this->aFormAttrs['id'], 'element_name' => $aInput['name'], 'query_params' => $this->getHtmlEditorQueryParams($aInput)]);
 
         return true;
     }
+    
+    function getHtmlEditorQueryParams($aInput)
+    {
+        $aQueryParams = ['i' => $aInput['name'], 'f' => $this->aFormAttrs['id']];
+        if (isset($this->MODULE)){
+            $aQueryParams['m'] = $this->MODULE;
+        }
+
+        if (isset($this->_iContentId) && $this->_iContentId){
+            $aQueryParams['cid'] = $this->_iContentId;
+        }
+        
+        return $aQueryParams;
+    }
 
     /**
      * Generate Select Box Element