Bläddra i källkod

Ticket #2634 - 'custom' block type.

AntonLV 6 år sedan
förälder
incheckning
e37b25d61c

+ 2 - 1
install/sql/system.sql

@@ -4718,7 +4718,7 @@ CREATE TABLE IF NOT EXISTS `sys_pages_blocks` (
   `designbox_id` int(11) NOT NULL DEFAULT '11',
   `visible_for_levels` int(11) NOT NULL DEFAULT '2147483647',
   `hidden_on` varchar(255) NOT NULL DEFAULT '',
-  `type` enum('raw','html','lang','image','rss','menu','service','wiki') NOT NULL DEFAULT 'raw',
+  `type` enum('raw','html','lang','image','rss','menu','custom','service','wiki') NOT NULL DEFAULT 'raw',
   `content` text NOT NULL,
   `text` mediumtext NOT NULL,
   `text_updated` int(11) NOT NULL,
@@ -4740,6 +4740,7 @@ INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designb
 ('', 0, 'skeletons', '_sys_block_type_lang', 11, 2147483647, 'lang', '', 0, 1, 1, 0),
 ('', 0, 'skeletons', '_sys_block_type_menu', 11, 2147483647, 'menu', '', 0, 1, 1, 0),
 ('', 0, 'skeletons', '_sys_block_type_wiki', 11, 2147483647, 'wiki', '', 0, 1, 1, 0),
+('', 0, 'skeletons', '_sys_block_type_custom', 11, 2147483647, 'custom', '', 0, 1, 1, 0),
 ('', 0, 'skeletons', '_sys_block_type_service', 11, 2147483647, 'service', '', 0, 0, 1, 0);
 
 -- service blocks

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

@@ -1870,6 +1870,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_audit_userside_caching"><![CDATA[User-side caching for static content]]></string>
 	<string name="_sys_audit_version"><![CDATA[version]]></string>
 	<string name="_sys_audit_version_script"><![CDATA[UNA version]]></string>
+        <string name="_sys_block_type_custom"><![CDATA[custom]]></string>
 	<string name="_sys_block_type_html"><![CDATA[html]]></string>
 	<string name="_sys_block_type_image"><![CDATA[image]]></string>
 	<string name="_sys_block_type_lang"><![CDATA[lang]]></string>

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

@@ -1856,6 +1856,7 @@
 	<string name="_sys_audit_userside_caching"><![CDATA[Кэширование статичного содержимого на стороне пользователя]]></string>
 	<string name="_sys_audit_version"><![CDATA[версия]]></string>
 	<string name="_sys_audit_version_script"><![CDATA[Версия UNA]]></string>
+        <string name="_sys_block_type_custom"><![CDATA[индивидуальный]]></string>
 	<string name="_sys_block_type_html"><![CDATA[html]]></string>
 	<string name="_sys_block_type_image"><![CDATA[изображение]]></string>
 	<string name="_sys_block_type_lang"><![CDATA[язык]]></string>

+ 1 - 0
studio/classes/BxDolStudioBuilderPage.php

@@ -19,6 +19,7 @@ define('BX_DOL_STUDIO_BP_BLOCK_IMAGE', 'image');
 define('BX_DOL_STUDIO_BP_BLOCK_LANG', 'lang');
 define('BX_DOL_STUDIO_BP_BLOCK_MENU', 'menu');
 define('BX_DOL_STUDIO_BP_BLOCK_WIKI', 'wiki');
+define('BX_DOL_STUDIO_BP_BLOCK_CUSTOM', 'custom');
 define('BX_DOL_STUDIO_BP_BLOCK_SERVICE', 'service');
 
 class BxDolStudioBuilderPage extends BxTemplStudioPage

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

@@ -1355,6 +1355,10 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
             	$sResult = 'file-word';
             	break;
 
+            case BX_DOL_STUDIO_BP_BLOCK_CUSTOM:
+                $sResult = 'file';
+            	break;
+
             case BX_DOL_STUDIO_BP_BLOCK_SERVICE:
                 $sResult = $this->getModuleIcon($aBlock['module'], 'page');
                 break;
@@ -1378,6 +1382,7 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
         $aFields = array();
 
         switch($aBlock['type']) {
+            case BX_DOL_STUDIO_BP_BLOCK_CUSTOM:
             case BX_DOL_STUDIO_BP_BLOCK_RAW:
                 $aFields = array(
                     'content' => array(

+ 12 - 0
template/scripts/BxBasePage.php

@@ -377,6 +377,18 @@ class BxBasePage extends BxDolPage
         return $s;
     }
 
+    /**
+     * Get content for 'custom' block type.
+     * @return string
+     */
+    protected function _getBlockCustom ($aBlock)
+    {
+        $s = '<div class="bx-page-custom-container">' . BxDolTemplate::getInstance()->parseHtmlByContent($aBlock['content'], array()) . '</div>';
+        $s = $this->_replaceMarkers($s, array('block_id' => $aBlock['id']));
+        $s = bx_process_macros($s);
+        return $s;
+    }
+
     /**
      * Get content for 'html' block type.
      * @return string