AntonLV 10 lat temu
rodzic
commit
6d3147b6a6

+ 9 - 2
inc/classes/BxDolTemplate.php

@@ -1150,8 +1150,15 @@ class BxDolTemplate extends BxDol implements iBxDolSingleton
                 $sRet = $oInformer ? $oInformer->display() : '';
                 break;
             case 'cover':
-                $oCover = BxDolCover::getInstance($this);
-                $sRet = $oCover ? $oCover->display() : '';
+            	$oCover = BxDolCover::getInstance($this);
+            	if(!$oCover)
+            		break;
+
+            	$bCover = true;
+            	if(bx_get('i') !== false)
+					$bCover = BxDolPage::getObjectInstanceByURI(bx_process_input(bx_get('i')))->isPageCover();
+                
+                $sRet = $bCover ? $oCover->display() : $oCover->displayEmpty();
                 break;
             case 'dol_images':
                 $sRet = $this->_processJsImages();

+ 1 - 0
install/sql/system.sql

@@ -3274,6 +3274,7 @@ CREATE TABLE IF NOT EXISTS `sys_objects_page` (
   `title_system` varchar(255) NOT NULL,
   `title` varchar(255) NOT NULL,
   `module` varchar(32) NOT NULL,
+  `cover` tinyint(4) NOT NULL DEFAULT '1',
   `layout_id` int(11) NOT NULL,
   `visible_for_levels` int(11) NOT NULL DEFAULT '2147483647',
   `visible_for_levels_editable` tinyint(4) NOT NULL DEFAULT '1',

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

@@ -518,6 +518,7 @@
 	<string name="_adm_bp_txt_edit_block_popup"><![CDATA[Edit "{0}" Block]]></string>
 	<string name="_adm_bp_txt_new_block_popup"><![CDATA[Add New Block]]></string>
 	<string name="_adm_bp_txt_page_cache_lifetime"><![CDATA[Cache]]></string>
+	<string name="_adm_bp_txt_page_cover"><![CDATA[Cover]]></string>
 	<string name="_adm_bp_txt_page_layout"><![CDATA[Layout]]></string>
 	<string name="_adm_bp_txt_page_layout_empty"><![CDATA[Select Layout...]]></string>
 	<string name="_adm_bp_txt_page_meta_description"><![CDATA[Page (Meta) Description]]></string>

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

@@ -518,6 +518,7 @@
 	<string name="_adm_bp_txt_edit_block_popup"><![CDATA[Редактировать "{0}" Блок]]></string>
 	<string name="_adm_bp_txt_new_block_popup"><![CDATA[Добавить новый Блок]]></string>
 	<string name="_adm_bp_txt_page_cache_lifetime"><![CDATA[Кэш]]></string>
+	<string name="_adm_bp_txt_page_cover"><![CDATA[Обложка]]></string>
 	<string name="_adm_bp_txt_page_layout"><![CDATA[Отображение]]></string>
 	<string name="_adm_bp_txt_page_layout_empty"><![CDATA[Выбрать Отображение...]]></string>
 	<string name="_adm_bp_txt_page_meta_description"><![CDATA[Мета-описание страницы]]></string>

+ 1 - 0
studio/classes/BxDolStudioBuilderPageQuery.php

@@ -79,6 +79,7 @@ class BxDolStudioBuilderPageQuery extends BxDolStudioPageQuery
                 `tp`.`title_system` AS `title_system`,
                 `tp`.`title` AS `title`,
                 `tp`.`module` AS `module`,
+                `tp`.`cover` AS `cover`,
                 `tp`.`layout_id` AS `layout_id`,
                 `tp`.`visible_for_levels` AS `visible_for_levels`,
                 `tp`.`visible_for_levels_editable` AS `visible_for_levels_editable`,

+ 12 - 1
studio/template/scripts/BxBaseStudioBuilderPage.php

@@ -910,7 +910,18 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
                 		'id' => $this->aHtmlIds['url_field_id'],
 						'disabled' => 'disabled'
 					),
-				)
+				),
+				'cover' => array(
+                    'type' => 'switcher',
+                    'name' => 'cover',
+                    'caption' => _t('_adm_bp_txt_page_cover'),
+                    'info' => '',
+                    'value' => '1',
+                    'checked' => $aPage['cover'] == '1',
+                    'db' => array (
+                        'pass' => 'Int',
+                    )
+                ),
             )
         );
 

+ 9 - 1
template/scripts/BxBaseCover.php

@@ -40,7 +40,7 @@ class BxBaseCover extends BxDolCover
             $mixedOptions = $oMenuSubmenu->getParamsForCover();
 
             if (!$mixedOptions || !is_array($mixedOptions))
-                return $this->_oTemplate->parseHtmlByName($this->_sTemplateNameEmpty, array());
+                return $this->displayEmpty();
 
             if (!$this->_sCoverImageUrl) {
                 $iId = (int)getParam('sys_site_cover_common');
@@ -62,6 +62,14 @@ class BxBaseCover extends BxDolCover
 
         return $this->_oTemplate->parseHtmlByName($this->_sTemplateName, array_merge($this->_aOptiondDefault, $this->_aOptions));
     }
+    
+    /**
+     * Display Empty Cover.
+     */
+    public function displayEmpty ()
+    {
+    	return $this->_oTemplate->parseHtmlByName($this->_sTemplateNameEmpty, array());
+    }
 
     /**
      * Add css/js files which are needed for display and functionality.

+ 9 - 0
template/scripts/BxBasePage.php

@@ -87,6 +87,15 @@ class BxBasePage extends BxDolPage
         return $sPageCode;
     }
 
+    /**
+     * Is page cover enabled.
+     * @return string
+     */
+    public function isPageCover()
+    {
+    	return (int)$this->_aObject['cover'] == 1;
+    }
+
     /**
      * Get block title.
      * @return string