AntonLV пре 10 година
родитељ
комит
4c02beae7d

+ 8 - 0
inc/classes/BxDolCover.php

@@ -95,6 +95,14 @@ class BxDolCover extends BxDol implements iBxDolSingleton
         return ($GLOBALS['bxDolClasses']['BxDolCover'] = $o);
     }
 
+    /**
+     * Determine whether cover is already set for the page or not.  
+     */
+    public function isCover()
+    {
+    	return !empty($this->_sCoverImageUrl) || !empty($this->_aOptions);
+    }
+
     /**
      * Set custom cover options
      * @param $aOptions - cover options, default template supports the following: title. For more info @see template/cover.html

+ 7 - 1
inc/classes/BxDolPage.php

@@ -140,8 +140,14 @@ class BxDolPage extends BxDol implements iBxDolFactoryObject, iBxDolReplaceable
      * @param $sURI unique page URI
      * @return object instance or false on error
      */
-    static public function getObjectInstanceByURI($sURI)
+    static public function getObjectInstanceByURI($sURI = '')
     {
+    	if(empty($sURI) && bx_get('i') !== false) {
+    		$sURI = bx_process_input(bx_get('i'));
+    		if(empty($sURI))
+    			return false;
+    	}
+
         $sObject = BxDolPageQuery::getPageObjectNameByURI($sURI);
         return $sObject ? self::getObjectInstance($sObject) : false;
     }

+ 7 - 6
inc/classes/BxDolTemplate.php

@@ -1155,13 +1155,14 @@ class BxDolTemplate extends BxDol implements iBxDolSingleton
             		break;
 
             	$bCover = true;
-            	if(bx_get('i') !== false) {
-            		$oPage = BxDolPage::getObjectInstanceByURI(bx_process_input(bx_get('i')));
-
+            	$oPage = BxDolPage::getObjectInstanceByURI();
+            	if($oPage !== false) {
 					$bCover = $oPage->isPageCover();
-					$aCover = $oPage->getPageCoverImage();
-					if($bCover && !empty($aCover))
-						$oCover->setCoverImageUrl($aCover);
+					if($bCover && !$oCover->isCover()) {
+						$aCover = $oPage->getPageCoverImage();
+						if(!empty($aCover))
+							$oCover->setCoverImageUrl($aCover);
+					}
             	}
 
                 $sRet = $bCover ? $oCover->display() : $oCover->displayEmpty();

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
install/sql/system.sql


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

@@ -589,8 +589,7 @@
 	<string name="_adm_dsg_err_save"><![CDATA[Cannot save: ]]></string>
 	<string name="_adm_dsg_scs_save"><![CDATA[The changes were successfully saved]]></string>
 	<string name="_adm_dsg_txt_alt_text"><![CDATA[Logo Text]]></string>
-	<string name="_adm_dsg_txt_cover_common"><![CDATA[Common pages cover]]></string>
-	<string name="_adm_dsg_txt_cover_home"><![CDATA[Home page cover]]></string>
+	<string name="_adm_dsg_txt_cover_common"><![CDATA[Default pages cover]]></string>
 	<string name="_adm_dsg_txt_splash_enabled"><![CDATA[Enable splash page]]></string>
 	<string name="_adm_dsg_txt_default"><![CDATA[default]]></string>
 	<string name="_adm_dsg_txt_icon_apple"><![CDATA[Apple Touch Devices (152x152)]]></string>

+ 11 - 7
modules/boonex/market/classes/BxMarketTemplate.php

@@ -65,6 +65,14 @@ class BxMarketTemplate extends BxBaseModTextTemplate
     {
 		$CNF = &BxDolModule::getInstance($this->MODULE)->_oConfig->CNF;
 
+		if(empty($aData[$CNF['FIELD_COVER']]))
+			return;
+
+		$mixedOptions = BxDolPage::getObjectInstanceByURI()->getPageCoverParams();
+        if(empty($mixedOptions) || !is_array($mixedOptions))
+        	return;
+
+        //--- Get Cover image URL
         $oImagesTranscoder = BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_COVER']);
 		if(empty($oImagesTranscoder))
 			return;
@@ -73,13 +81,7 @@ class BxMarketTemplate extends BxBaseModTextTemplate
 		if(empty($sCoverUrl))
 			return;
 
-		$oCover = BxDolCover::getInstance($this);
-		$oCover->setCoverImageUrl($sCoverUrl);
-
-		$mixedOptions = BxDolMenu::getObjectInstance('sys_site_submenu')->getParamsForCover();
-        if(empty($mixedOptions) || !is_array($mixedOptions))
-        	return;
-
+		//--- Get Thumbnail image URL
 		$oImagesTranscoder = BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_PREVIEW']);
 		if(empty($oImagesTranscoder))
 			return;
@@ -88,6 +90,8 @@ class BxMarketTemplate extends BxBaseModTextTemplate
 		if(empty($sThumbnailUrl))
 			return;
 
+		$oCover = BxDolCover::getInstance($this);
+		$oCover->setCoverImageUrl($sCoverUrl);
 		$oCover->set(array_merge($mixedOptions, array(
 			'bx_if:image' => array (
                 'condition' => true,

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

@@ -587,8 +587,7 @@
 	<string name="_adm_dsg_err_save"><![CDATA[Невозможно сохранить: ]]></string>
 	<string name="_adm_dsg_scs_save"><![CDATA[Изменения удачно сохранены]]></string>
 	<string name="_adm_dsg_txt_alt_text"><![CDATA[Текст лого]]></string>
-	<string name="_adm_dsg_txt_cover_common"><![CDATA[Обложка обычных страниц]]></string>
-	<string name="_adm_dsg_txt_cover_home"><![CDATA[Обложка главной страницы]]></string>
+	<string name="_adm_dsg_txt_cover_common"><![CDATA[Стандартная обложка страницы]]></string>
 	<string name="_adm_dsg_txt_splash_enabled"><![CDATA[Включить титульную страницу]]></string>
 	<string name="_adm_dsg_txt_default"><![CDATA[по умолчанию]]></string>
 	<string name="_adm_dsg_txt_icon_apple"><![CDATA[Устройства Apple Touch (152x152)]]></string>

+ 1 - 3
page.php

@@ -16,9 +16,7 @@ check_logged();
 
 $oTemplate = BxDolTemplate::getInstance();
 
-$sURI = bx_process_input(bx_get('i'));
-$oPage = $sURI ? BxDolPage::getObjectInstanceByURI($sURI) : false;
-
+$oPage = BxDolPage::getObjectInstanceByURI();
 if ($oPage) {
 
     $oTemplate->setPageNameIndex (BX_PAGE_DEFAULT);

+ 12 - 13
studio/classes/BxDolStudioDesigner.php

@@ -48,7 +48,6 @@ class BxDolStudioDesigner extends BxTemplStudioPage
 
 		$this->aCovers = array(
         	'cover_common' => array('setting' => 'sys_site_cover_common', 'title' => '_adm_dsg_txt_cover_common'),
-        	'cover_home' => array('setting' => 'sys_site_cover_home', 'title' => '_adm_dsg_txt_cover_home')
         );
     }
 
@@ -153,18 +152,6 @@ class BxDolStudioDesigner extends BxTemplStudioPage
         return true;
     }
 
-	function deleteCover($sCover)
-    {
-        $oStorage = BxDolStorage::getObjectInstance(BX_DOL_STORAGE_OBJ_IMAGES);
-
-        $iId = (int)getParam($this->aCovers[$sCover]['setting']);
-        if($iId != 0 && !$oStorage->deleteFile($iId, getLoggedId()))
-            return false;
-
-        $this->oDb->setParam($this->aCovers[$sCover]['setting'], 0);
-        return true;
-    }
-
     function submitIcon(&$oForm)
     {
         $iProfileId = getLoggedId();
@@ -214,6 +201,18 @@ class BxDolStudioDesigner extends BxTemplStudioPage
 		return $this->getJsResult('_adm_dsg_scs_save', true, true, BX_DOL_URL_STUDIO . 'designer.php?page=' . BX_DOL_STUDIO_DSG_TYPE_COVER);
     }
 
+	function deleteCover($sCover)
+    {
+        $oStorage = BxDolStorage::getObjectInstance(BX_DOL_STORAGE_OBJ_IMAGES);
+
+        $iId = (int)getParam($this->aCovers[$sCover]['setting']);
+        if($iId != 0 && !$oStorage->deleteFile($iId, getLoggedId()))
+            return false;
+
+        $this->oDb->setParam($this->aCovers[$sCover]['setting'], 0);
+        return true;
+    }
+
     function submitSplash(&$oForm)
     {
     	$this->oDb->setParam('sys_site_splash_code', $oForm->getCleanValue('code'));

+ 2 - 2
studio/template/scripts/BxBaseStudioBuilderPage.php

@@ -44,8 +44,8 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
     );
 
 	protected $aPageSettings = array(
-		array('name' => 'options', 'title' => '_adm_bp_mi_page_options', 'active' => 0),
-		array('name' => 'cover', 'title' => '_adm_bp_mi_page_cover', 'active' => 1),
+		array('name' => 'options', 'title' => '_adm_bp_mi_page_options', 'active' => 1),
+		array('name' => 'cover', 'title' => '_adm_bp_mi_page_cover', 'active' => 0),
         array('name' => 'layout', 'title' => '_adm_bp_mi_page_layout', 'active' => 0),
         array('name' => 'visibility', 'title' => '_adm_bp_mi_page_visibility', 'active' => 0),
         array('name' => 'cache', 'title' => '_adm_bp_mi_page_cache', 'active' => 0),

+ 16 - 26
template/cover.html

@@ -7,29 +7,19 @@
 </bx_if:logged_in>
 
 <div class="bx-menu-toolbar-padding">
-<div class="bx-cover-wrapper __class__" <bx_if:bg>style="background-image:url(__image_url__)"</bx_if:bg>>
-    <div class="bx-cover-gradient"></div>
-    <div class="bx-cover bx-def-centered bx-def-page-width bx-def-padding bx-def-box-sizing">
-
-        <bx_if:image>
-        <div class="bx-cover-image">
-            <img class="bx-def-border bx-def-round-corners" style="background-image:url(__icon_url__)" src="<bx_icon_url:spacer.gif />" />
-        </div>
-        </bx_if:image>
-
-        <div class="bx-cover-title bx-def-margin-sec-topbottom bx-def-font-h1" style="z-index:2;">
-
-            <bx_if:icon><i class="sys-icon bx-def-font-contrasted bx-def-margin-sec-right __icon__"></i></bx_if:icon>            
-
-            <span class="bx-def-font-contrasted">__title__</span>
-
-        </div>
-
-        <div class="bx-cover-actions">
-            __actions__
-        </div>
-
-    </div>
-
-</div>
-</div>
+	<div class="bx-cover-wrapper __class__" <bx_if:bg>style="background-image:url(__image_url__)"</bx_if:bg>>
+	    <div class="bx-cover-gradient"></div>
+	    <div class="bx-cover bx-def-centered bx-def-page-width bx-def-padding bx-def-box-sizing">
+	        <bx_if:image>
+		        <div class="bx-cover-image">
+		            <img class="bx-def-border bx-def-round-corners" style="background-image:url(__icon_url__)" src="<bx_icon_url:spacer.gif />" />
+		        </div>
+	        </bx_if:image>
+	        <div class="bx-cover-title bx-def-margin-sec-topbottom bx-def-font-h1" style="z-index:2;">
+	            <bx_if:icon><i class="sys-icon bx-def-font-contrasted bx-def-margin-sec-right __icon__"></i></bx_if:icon>
+	            <span class="bx-def-font-contrasted">__title__</span>
+	        </div>
+	        <div class="bx-cover-actions">__actions__</div>
+	    </div>
+	</div>
+</div>

+ 16 - 23
template/scripts/BxBaseCover.php

@@ -34,33 +34,26 @@ class BxBaseCover extends BxDolCover
     {
         $this->_addJsCss();
 
-        if (!$this->_aOptions) {
+        if(!empty($this->_aOptions) && is_array($this->_aOptions))
+        	return $this->_oTemplate->parseHtmlByName($this->_sTemplateName, array_merge($this->_aOptiondDefault, $this->_aOptions));
 
-            $oMenuSubmenu = BxDolMenu::getObjectInstance('sys_site_submenu');
-            $mixedOptions = $oMenuSubmenu->getParamsForCover();
+		$mixedOptions = BxDolPage::getObjectInstanceByURI()->getPageCoverParams();
+		if(empty($mixedOptions) || !is_array($mixedOptions))
+			return $this->displayEmpty();
 
-            if (!$mixedOptions || !is_array($mixedOptions))
-                return $this->displayEmpty();
+		if(!$this->_sCoverImageUrl) {
+			$iId = (int)getParam('sys_site_cover_common');
+			if($iId != 0)
+				$this->setCoverImageUrl(array('id' => $iId, 'transcoder' => BX_DOL_TRANSCODER_OBJ_COVER));
+		}
 
-            if (!$this->_sCoverImageUrl) {
-                $iId = (int)getParam('sys_site_cover_common');
-                if ($iId != 0)
-                	$this->setCoverImageUrl(array(
-                		'id' => $iId,
-                		'transcoder' => BX_DOL_TRANSCODER_OBJ_COVER
-                    ));
-            }
-                
-            if ($this->_sCoverImageUrl)
-                $mixedOptions['bx_if:bg'] = array (
-                    'condition' => true,
-                    'content' => array('image_url' => $this->_sCoverImageUrl),
-                );
+		if($this->_sCoverImageUrl)
+			$mixedOptions['bx_if:bg'] = array (
+				'condition' => true,
+				'content' => array('image_url' => $this->_sCoverImageUrl),
+			);
 
-            return $this->_oTemplate->parseHtmlByName($this->_sTemplateName, array_merge($this->_aOptiondDefault, $mixedOptions));
-        }        
-
-        return $this->_oTemplate->parseHtmlByName($this->_sTemplateName, array_merge($this->_aOptiondDefault, $this->_aOptions));
+		return $this->_oTemplate->parseHtmlByName($this->_sTemplateName, array_merge($this->_aOptiondDefault, $mixedOptions));        
     }
     
     /**

+ 1 - 1
template/scripts/BxBaseMenuSubmenu.php

@@ -88,7 +88,7 @@ class BxBaseMenuSubmenu extends BxTemplMenu
         return '';
     }
 
-    public function getParamsForCover ()
+    public function getPageCoverParams ()
     {
         $aMenuItemSelected = $this->getSelectedMenuItem ();
         if (!$aMenuItemSelected)

+ 36 - 7
template/scripts/BxBasePage.php

@@ -100,15 +100,44 @@ class BxBasePage extends BxDolPage
     	return (int)$this->_aObject['cover'] == 1;
     }
 
-	public function getPageCoverImage()
+	public function getPageCoverImage($bTranscoder = true)
     {
-    	if(empty($this->_aObject['cover_image']))
-    		return array();
-
-    	return array(
-    		'id' => (int)$this->_aObject['cover_image'], 
-    		'object' => $this->_sStorage
+    	$iId = (int)$this->_aObject['cover_image'];
+    	if(empty($iId)) {
+    		$iId = (int)getParam('sys_site_cover_common');
+    		if(empty($iId))
+    			return array();
+    	}
+
+    	$aResult = array(
+    		'id' => $iId
     	);
+    	if($bTranscoder)
+    		$aResult['transcoder'] = BX_DOL_TRANSCODER_OBJ_COVER;
+    	else 
+    		$aResult['object'] = $this->_sStorage;
+
+    	return $aResult;
+    }
+
+    public function getPageCoverParams()
+    {
+    	$aParams = BxDolMenu::getObjectInstance('sys_site_submenu')->getPageCoverParams();
+    	if(!empty($aParams) && is_array($aParams))
+    		return $aParams;
+
+    	return array (
+            'title' => $this->_getPageTitle(),
+            'actions' => '',
+            'bx_if:image' => array (
+                'condition' => false,
+                'content' => array(),
+            ),
+            'bx_if:icon' => array (
+                'condition' => false,
+                'content' => array(),
+            ),
+        );
     }
 
     /**

+ 9 - 6
template/scripts/BxBasePageHome.php

@@ -19,15 +19,18 @@ class BxBasePageHome extends BxTemplPage
         parent::__construct($aObject, $oTemplate);
         $this->addMarkers(array('site_title' => getParam('site_title')));
 
-        $oCover = BxDolCover::getInstance();
-        $iFileIdCover = (int)getParam('sys_site_cover_home');
-        $oCover->set(array(
+        $aCover = $this->getPageCoverImage();
+
+        $bTmplVarsCover = !empty($aCover['id']);
+        $aTmplVarsCover = $bTmplVarsCover ? array('image_url' => BxDolTranscoder::getObjectInstance($aCover['transcoder'])->getFileUrlById($aCover['id'])) : array();
+
+        BxDolCover::getInstance()->set(array(
             'class' => 'bx-cover-homepage',
             'title' => _t('_sys_txt_homepage_cover', BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=create-account')),
             'bx_if:bg' => array (
-                'condition' => $iFileIdCover,
-                'content' => array('image_url' => ($iFileIdCover ? BxDolTranscoder::getObjectInstance(BX_DOL_TRANSCODER_OBJ_COVER)->getFileUrlById($iFileIdCover) : '')),
-            ),            
+                'condition' => $bTmplVarsCover,
+                'content' => $aTmplVarsCover,
+            ),
         ));
     }
 

Неке датотеке нису приказане због велике количине промена