Quellcode durchsuchen

Ticket #5542 - Extended search: Add search by Visibility.

AntonLV vor 3 Monaten
Ursprung
Commit
310dc0ab1f

+ 15 - 3
template/scripts/BxBaseSearchExtended.php

@@ -47,14 +47,26 @@ class BxBaseSearchExtended extends BxDolSearchExtended
         $this->_iAgeMax = 75;
     }
 
-    public function getForm($aParams = array())
+    public function getForm($aParams = [])
     {
         if(!$this->isEnabled())
             return '';
 
         $oForm = $this->prepareForm($aParams);
-
-        return bx_is_api() ? bx_api_get_block('form', $oForm->getCodeAPI(), ['id' => 2, 'ext' => ['name' => $this->_aObject['module'] . '_serach', 'request' => ['url' => '/api.php?r=system/get_form/TemplSearchExtendedServices&params[]=' . $this->_aObject['module'], 'immutable' => true]]]) : $oForm->getCode();
+        if(!$this->_bIsApi) 
+            return $oForm->getCode();
+
+        $sParams = $this->_aObject['module'];
+        if(($sK = 'context_id') && ($iContextId = $aParams[$sK] ?? false))
+            $sParams = json_encode(['object' => $this->_aObject['module'], $sK => $iContextId]);
+
+        return [bx_api_get_block('form', $oForm->getCodeAPI(), [
+            'id' => 2, 
+            'ext' => [
+                'name' => $this->_aObject['module'] . '_serach', 
+                'request' => ['url' => '/api.php?r=system/get_form/TemplSearchExtendedServices&params[]=' . $sParams, 'immutable' => true]
+            ]
+        ])];
     }
     
     /**

+ 7 - 7
template/scripts/BxBaseSearchExtendedServices.php

@@ -22,8 +22,12 @@ class BxBaseSearchExtendedServices extends BxDol
     public function serviceGetForm($mParams)
     {
         $aParams = [];
-        if (is_string($mParams))
-            $aParams['object'] = $mParams;
+        if(is_string($mParams)) {
+            if(($_mParams = json_decode($mParams, true)) !== null)
+                $aParams = $_mParams;
+            else
+                $aParams['object'] = $mParams;
+        }
         else
             $aParams = $mParams;
         $this->prepareParams($aParams);
@@ -35,11 +39,7 @@ class BxBaseSearchExtendedServices extends BxDol
         if(!$oSearch || !$oSearch->isEnabled())
             return '';
 
-        $mForm = $oSearch->getForm($aParams);
-        if(bx_is_api())
-            $mForm = [$mForm];
-
-        return $mForm;
+        return $oSearch->getForm($aParams);
     }
 
     public function serviceGetSorting($mParams)