فهرست منبع

#3051 Asynchronous blocks

Alex Trofimov 6 سال پیش
والد
کامیت
c7e3d69c90

+ 4 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -512,6 +512,7 @@
 	<string name="_adm_bp_mi_page_visibility"><![CDATA[Visibility]]></string>
 	<string name="_adm_bp_scs_save"><![CDATA[The changes were successfully saved]]></string>
 	<string name="_adm_bp_txt_block_active"><![CDATA[Active]]></string>
+	<string name="_adm_bp_txt_block_async"><![CDATA[Asynchronous Mode]]></string>
 	<string name="_adm_bp_txt_block_content_attachments_html"><![CDATA[Attachments]]></string>
 	<string name="_adm_bp_txt_block_content_image_align"><![CDATA[Alignment]]></string>
 	<string name="_adm_bp_txt_block_content_image_align_center"><![CDATA[center]]></string>
@@ -2776,11 +2777,14 @@ If it is not enabled then please consider implement this optimization, since it
     <string name="_sys_next"><![CDATA[Next]]></string>
     <string name="_sys_notification_account"><![CDATA[Accounts created in the last 24 hours:]]></string>
     <string name="_sys_no_menu"><![CDATA[No menu]]></string>
+    <string name="_sys_no_async"><![CDATA[Asynchronous mode disabled]]></string>
     <string name="_sys_not_available"><![CDATA[n/a]]></string>
     <string name="_sys_not_specified"><![CDATA[Not Specified]]></string>
     <string name="_sys_on"><![CDATA[on]]></string>
     <string name="_sys_off"><![CDATA[off]]></string>
     <string name="_sys_pages"><![CDATA[Pages]]></string>
+    <string name="_sys_page_content_ph_loading_indicator"><![CDATA[With loading indicator]]></string>
+    <string name="_sys_page_content_ph_timeline"><![CDATA[With timeline placeholder]]></string>
 	<string name="_sys_page_block_title_about"><![CDATA[About]]></string>
 	<string name="_sys_page_block_title_account_profile_create"><![CDATA[Create a profile...]]></string>
 	<string name="_sys_page_block_title_account_profile_switcher"><![CDATA[Use site as ...]]></string>

+ 4 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -512,6 +512,7 @@
 	<string name="_adm_bp_mi_page_visibility"><![CDATA[Видимость]]></string>
 	<string name="_adm_bp_scs_save"><![CDATA[Изменения успешно сохранены]]></string>
 	<string name="_adm_bp_txt_block_active"><![CDATA[Активный]]></string>
+    <string name="_adm_bp_txt_block_async"><![CDATA[Асинхронный режим]]></string>
 	<string name="_adm_bp_txt_block_content_attachments_html"><![CDATA[Вложения]]></string>
 	<string name="_adm_bp_txt_block_content_image_align"><![CDATA[Выравнивание]]></string>
 	<string name="_adm_bp_txt_block_content_image_align_center"><![CDATA[по центру]]></string>
@@ -2727,11 +2728,14 @@
     <string name="_sys_next"><![CDATA[Ещё]]></string>
     <string name="_sys_notification_account"><![CDATA[Аккаунты, созданные за последние 24 часа:]]></string>
     <string name="_sys_no_menu"><![CDATA[Меню отсутствует]]></string>
+    <string name="_sys_no_async"><![CDATA[Асинхронный режим выключен]]></string>
     <string name="_sys_not_available"><![CDATA[н/д]]></string>
     <string name="_sys_not_specified"><![CDATA[Не указано]]></string>
     <string name="_sys_on"><![CDATA[вкл.]]></string>
     <string name="_sys_off"><![CDATA[выкл.]]></string>
     <string name="_sys_pages"><![CDATA[Страницы]]></string>
+    <string name="_sys_page_content_ph_loading_indicator"><![CDATA[С индикатором загрузки]]></string>
+    <string name="_sys_page_content_ph_timeline"><![CDATA[С заполнителем в виде ленты]]></string>
 	<string name="_sys_page_block_title_about"><![CDATA[Об...]]></string>
 	<string name="_sys_page_block_title_account_profile_create"><![CDATA[Создать профиль...]]></string>
 	<string name="_sys_page_block_title_account_profile_switcher"><![CDATA[Использовать сайт как ...]]></string>

+ 6 - 0
studio/classes/BxDolStudioBuilderPageQuery.php

@@ -229,6 +229,11 @@ class BxDolStudioBuilderPageQuery extends BxDolStudioPageQuery
         return (int)$this->getOne("SELECT FOUND_ROWS()");
     }
 
+    function getContentPlaceholders()
+    {
+        return $this->getPairs('SELECT `id`, `title` FROM `sys_pages_content_placeholders` ORDER BY `order`', 'id', 'title');
+    }
+
     function getSubmenus($mixedTemplateIds = 8)
     {
         if(!is_array($mixedTemplateIds))
@@ -415,6 +420,7 @@ class BxDolStudioBuilderPageQuery extends BxDolStudioPageQuery
                 `tpb`.`title_system` AS `title_system`,
                 `tpb`.`title` AS `title`,
                 `tpb`.`designbox_id` AS `designbox_id`,
+                `tpb`.`async` AS `async`,
                 `tpb`.`submenu` AS `submenu`,
                 `tpb`.`tabs` AS `tabs`,
                 `tpb`.`hidden_on` AS `hidden_on`,

+ 16 - 0
studio/template/scripts/BxBaseStudioBuilderPage.php

@@ -698,6 +698,17 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
                         'error' => _t('_adm_bp_err_block_designbox'),
                     ),
                 ),
+                'async' => array(
+                    'type' => 'select',
+                    'name' => 'async',
+                    'caption' => _t('_adm_bp_txt_block_async'),
+                    'info' => '',
+                    'value' => isset($aBlock['async']) ? $aBlock['async'] : 0,
+                    'required' => '0',
+                    'db' => array (
+                        'pass' => 'Int',
+                    ),
+                ),
                 'submenu' => array(
                     'type' => 'select',
                     'name' => 'submenu',
@@ -805,6 +816,11 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
         foreach($aDBoxes as $aDBox)
             $aForm['inputs']['designbox_id']['values'][] = array('key' => $this->sSelectKeyPrefix . $aDBox['id'], 'value' => _t($aDBox['title']));
 
+        $aContentPlaceholders = $this->oDb->getContentPlaceholders();
+        $aForm['inputs']['async']['values'][] = array('key' => 0, 'value' => _t('_sys_no_async'));
+        foreach ($aContentPlaceholders as $iId => $sTitle)
+            $aForm['inputs']['async']['values'][] = array('key' => $iId, 'value' => _t($sTitle));
+
         $aSubmenus = $this->oDb->getBlockSubmenus();
         $aForm['inputs']['submenu']['values'][] = array('key' => '', 'value' => _t('_sys_no_menu'));
         foreach ($aSubmenus as $sObject => $sTitle)