AntonLV %!s(int64=9) %!d(string=hai) anos
pai
achega
5f9d856684

+ 28 - 15
inc/classes/BxDolCover.php

@@ -86,6 +86,29 @@ class BxDolCover extends BxDolFactory implements iBxDolSingleton
         return ($GLOBALS['bxDolClasses']['BxDolCover'] = $o);
     }
 
+    /**
+     * Get cover image URL by descriptive array. 
+     * @param mixed $mixedImage - image descriptive array.
+     * @return string with image URL or false on error. 
+     */
+    public static function getCoverImageUrl($mixedImage)
+    {
+        $bObject = !empty($mixedImage['object']);
+        $bTranscoder = !empty($mixedImage['transcoder']);
+        if(!is_array($mixedImage) || !isset($mixedImage['id']) || (!$bObject && !$bTranscoder))
+            return false;
+
+        if($bObject)
+            $o = BxDolStorage::getObjectInstance($mixedImage['object']);
+        else if($bTranscoder)
+            $o = BxDolTranscoder::getObjectInstance($mixedImage['transcoder']);
+
+        if(!$o)
+            return false;
+
+        return $o->getFileUrlById($mixedImage['id']);
+    }
+
     /**
      * Determine whether cover is already set for the page or not.  
      */
@@ -119,23 +142,13 @@ class BxDolCover extends BxDolFactory implements iBxDolSingleton
      */
     public function setCoverImageUrl ($mixedCoverImage)
     {
-        if (is_string($mixedCoverImage)) {
+        if (is_string($mixedCoverImage))
             $this->_sCoverImageUrl = $mixedCoverImage;
-        } 
-        elseif (is_array($mixedCoverImage) && isset($mixedCoverImage['id']) && (isset($mixedCoverImage['object']) || isset($mixedCoverImage['transcoder']))) {
-
-            if (!empty($mixedCoverImage['object']))
-                $o = BxDolStorage::getObjectInstance($mixedCoverImage['object']);
-            elseif (!empty($mixedCoverImage['transcoder']))
-                $o = BxDolTranscoder::getObjectInstance($mixedCoverImage['transcoder']);
-            if (!$o)
-                return false;
-
-            $this->_sCoverImageUrl = $o->getFileUrlById($mixedCoverImage['id']);
-        } 
-        else {
+        else
+            $this->_sCoverImageUrl = self::getCoverImageUrl($mixedCoverImage);
+
+        if(!$this->_sCoverImageUrl)
             return false;
-        }
 
         bx_alert('system', 'set_cover_image', 0, false, array('cover_image' => &$this->_sCoverImageUrl, 'cover' => $this));
 

+ 1 - 1
modules/base/profile/classes/BxBaseModProfilePageEntry.php

@@ -80,7 +80,7 @@ class BxBaseModProfilePageEntry extends BxBaseModGeneralPageEntry
         }
 
         // set cover
-        $this->_oModule->_oTemplate->setCover($this->_aContentInfo);
+        $this->_oModule->_oTemplate->setCover($this, $this->_aContentInfo);
     }
 
     public function getCode ()

+ 13 - 4
modules/base/profile/classes/BxBaseModProfileTemplate.php

@@ -80,7 +80,7 @@ class BxBaseModProfileTemplate extends BxBaseModGeneralTemplate
     /**
      * Get profile cover
      */
-    function setCover ($aData, $sTemplateName = 'cover.html')
+    function setCover ($oPage, $aData, $sTemplateName = 'cover.html')
     {
         $CNF = &$this->_oConfig->CNF;
 
@@ -88,19 +88,28 @@ class BxBaseModProfileTemplate extends BxBaseModGeneralTemplate
             $CNF = &$this->_oConfig->CNF;
             $aData[$CNF['FIELD_PICTURE']] = 0;
         }
-        
+
         if (CHECK_ACTION_RESULT_ALLOWED !== $this->getModule()->checkAllowedViewCoverImage($aData)) {
             $CNF = &$this->_oConfig->CNF;
             $aData[$CNF['FIELD_COVER']] = 0;
         }
-        
+
         $sUrl = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_ENTRY'] . '&id=' . $aData[$CNF['FIELD_ID']]);
 
         $sUrlPicture = $this->urlPicture ($aData);
         $sUrlAvatar = $this->urlAvatar ($aData);
         $sUrlPictureChange = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_EDIT_ENTRY'] . '&id=' . $aData[$CNF['FIELD_ID']]);
 
-        $sUrlCover = $this->urlCover ($aData);
+        $sUrlCover = $this->urlCover ($aData, false);
+        if(!$sUrlCover && $oPage !== false && $oPage->isPageCover()) {
+            $aCover = $oPage->getPageCoverImage();
+			if(!empty($aCover))
+				$sUrlCover = BxDolCover::getCoverImageUrl($aCover);
+        }
+
+        if(!$sUrlCover)
+            $sUrlCover = $this->getImageUrl('cover.jpg');
+        
         $sUrlCoverChange = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_EDIT_COVER'] . '&id=' . $aData[$CNF['FIELD_ID']]);
 
         $sCoverPopup = '';