Răsfoiți Sursa

Ticket #4971 - Build-in API support: Work with Create Ad forms.

AntonLV 5 luni în urmă
părinte
comite
776c871a42

+ 9 - 8
modules/boonex/ads/classes/BxAdsFormEntry.php

@@ -88,13 +88,9 @@ class BxAdsFormEntry extends BxBaseModTextFormEntry
         if(isset($this->aInputs[$CNF['FIELD_SEG_COUNTRY']]))
             $this->aInputs[$CNF['FIELD_SEG_COUNTRY']]['values'] = array_merge(['' => _t('_bx_ads_form_entry_input_seg_country_all')], $this->aInputs[$CNF['FIELD_SEG_COUNTRY']]['values']);
 
-        if($this->aParams['display'] == $CNF['OBJECT_FORM_ENTRY_DISPLAY_ADD'] && isset($this->aInputs['do_submit']))
-            $this->aInputs['do_submit'] = array_merge($this->aInputs['do_submit'], [
-                'type' => 'button',
-                'attrs' => [
-                    'onclick' => $sJsObject . '.selectCategory(this);'
-                ]
-            ]);
+        $this->addMarkers([
+            'js_object' => $sJsObject
+        ]);
     }
 
     function getCode($bDynamicMode = false)
@@ -427,7 +423,7 @@ class BxAdsFormEntry extends BxBaseModTextFormEntry
 
         return bx_get_logged_profile_id();
     }
-    
+
     protected function _getSourceType()
     {
         $CNF = &$this->_oModule->_oConfig->CNF;
@@ -444,6 +440,11 @@ class BxAdsFormEntry extends BxBaseModTextFormEntry
         $iAuthorId = $this->_getAuthorId();
         return $this->_oModule->serviceGetSource($iAuthorId);
     }
+
+    protected function _genInputButtonAttrs(&$aInput)
+    {
+        return $this->_replaceMarkers(parent::_genInputButtonAttrs($aInput));
+    }
 }
 
 /** @} */

+ 5 - 2
modules/boonex/ads/classes/BxAdsModule.php

@@ -535,9 +535,12 @@ class BxAdsModule extends BxBaseModTextModule
     {
         $iCategory = is_numeric($sParams) ? (int)$sParams : 0;
 
+        if($this->_bIsApi && ($iCategory = bx_get('category_select')) !== false)
+            $iCategory = (int)$iCategory;
+
         if(($sDisplay = $this->getCategoryDisplay('add', $iCategory)) !== false) {
             if(empty($sParams) || !is_array($sParams))
-                $sParams = array();
+                $sParams = [];
 
             $sParams['display'] = $sDisplay;
         }
@@ -547,7 +550,7 @@ class BxAdsModule extends BxBaseModTextModule
 
         return parent::serviceEntityCreate($sParams);
     }
-    
+
     public function serviceEntityEditBudget ($iContentId = 0, $sDisplay = false)
     {
         $CNF = &$this->_oConfig->CNF;

+ 2 - 0
modules/boonex/ads/install/langs/en.xml

@@ -79,6 +79,8 @@
     <string name="_bx_ads_form_entry_price_year_display_view"><![CDATA[With Price and Year: View]]></string>
 
     <string name="_bx_ads_form_entry_input_author"><![CDATA[Author]]></string>
+    <string name="_bx_ads_form_entry_input_sys_do_select"><![CDATA[Select]]></string>
+    <string name="_bx_ads_form_entry_input_do_select"><![CDATA[Select]]></string>
     <string name="_bx_ads_form_entry_input_sys_do_submit"><![CDATA[Submit]]></string>
     <string name="_bx_ads_form_entry_input_do_submit"><![CDATA[Submit]]></string>
     <string name="_bx_ads_form_entry_input_sys_title"><![CDATA[Title]]></string>

+ 2 - 1
modules/boonex/ads/install/sql/install.sql

@@ -819,6 +819,7 @@ INSERT INTO `sys_form_inputs`(`object`, `module`, `name`, `value`, `values`, `ch
 ('bx_ads', 'bx_ads', 'cf', '1', '#!sys_content_filter', 0, 'select', '_sys_form_entry_input_sys_cf', '_sys_form_entry_input_cf', '', 0, 0, 0, '', '', '', '', '', '', 'Int', '', 1, 0),
 ('bx_ads', 'bx_ads', 'allow_view_to', '', '', 0, 'custom', '_bx_ads_form_entry_input_sys_allow_view_to', '_bx_ads_form_entry_input_allow_view_to', '', 1, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_ads', 'bx_ads', 'delete_confirm', 1, '', 0, 'checkbox', '_bx_ads_form_entry_input_sys_delete_confirm', '_bx_ads_form_entry_input_delete_confirm', '_bx_ads_form_entry_input_delete_confirm_info', 1, 0, 0, '', '', '', 'Avail', '', '_bx_ads_form_entry_input_delete_confirm_error', '', '', 1, 0),
+('bx_ads', 'bx_ads', 'do_select', '_bx_ads_form_entry_input_do_select', '', 0, 'button', '_bx_ads_form_entry_input_sys_do_select', '', '', 0, 0, 0, 'a:1:{s:7:"onclick";s:32:"{js_object}.selectCategory(this)";}', '', '', '', '', '', '', '', 1, 0),
 ('bx_ads', 'bx_ads', 'do_submit', '_bx_ads_form_entry_input_do_submit', '', 0, 'submit', '_bx_ads_form_entry_input_sys_do_submit', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_ads', 'bx_ads', 'do_cancel', '_sys_form_input_cancel', '', 0, 'button', '_sys_form_input_sys_cancel', '', '', 0, 0, 0, 'a:2:{s:7:"onclick";s:41:"window.open(''{edit_cancel_url}'', ''_self'')";s:5:"class";s:22:"bx-def-margin-sec-left";}', '', '', '', '', '', '', '', 0, 0),
 ('bx_ads', 'bx_ads', 'controls', '', 'do_submit,do_cancel', 0, 'input_set', '_sys_form_input_sys_controls', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 0, 0),
@@ -858,7 +859,7 @@ INSERT INTO `sys_form_inputs`(`object`, `module`, `name`, `value`, `values`, `ch
 
 INSERT INTO `sys_form_display_inputs`(`display_name`, `input_name`, `visible_for_levels`, `active`, `order`) VALUES 
 ('bx_ads_entry_add', 'category_select', 2147483647, 1, 1),
-('bx_ads_entry_add', 'do_submit', 2147483647, 1, 2),
+('bx_ads_entry_add', 'do_select', 2147483647, 1, 2),
 
 ('bx_ads_entry_edit_budget', 'budget_total', 2147483647, 1, 1),
 ('bx_ads_entry_edit_budget', 'budget_daily', 2147483647, 1, 2),

+ 2 - 0
modules/boonex/russian/data/langs/bx_ads/ru.xml

@@ -78,6 +78,8 @@
     <string name="_bx_ads_form_entry_price_year_display_view"><![CDATA[С указанием цены и года: Просмотреть]]></string>
 
     <string name="_bx_ads_form_entry_input_author"><![CDATA[Автор]]></string>
+    <string name="_bx_ads_form_entry_input_sys_do_select"><![CDATA[Выбирать]]></string>
+    <string name="_bx_ads_form_entry_input_do_select"><![CDATA[Выбирать]]></string>
     <string name="_bx_ads_form_entry_input_sys_do_submit"><![CDATA[Выполнить]]></string>
     <string name="_bx_ads_form_entry_input_do_submit"><![CDATA[Выполнить]]></string>
     <string name="_bx_ads_form_entry_input_sys_title"><![CDATA[Заголовок]]></string>