瀏覽代碼

Ticket #4759 - Market: Improve Header Image and Icon functionality.

AntonLV 2 年之前
父節點
當前提交
0df23efed9

+ 4 - 3
modules/base/general/classes/BxBaseModGeneralFormEntry.php

@@ -567,10 +567,11 @@ class BxBaseModGeneralFormEntry extends BxTemplFormView
         if(isset($CNF['FIELD_CHANGED']) && empty($aValsToAdd[$CNF['FIELD_CHANGED']]) && empty($this->getCleanValue($CNF['FIELD_CHANGED'])))
             $aValsToAdd[$CNF['FIELD_CHANGED']] = time();
 
-        if(CHECK_ACTION_RESULT_ALLOWED === $this->_oModule->checkAllowedSetThumb($iContentId) && isset($CNF['FIELD_THUMB'])) {
-            $aThumb = bx_process_input (bx_get($CNF['FIELD_THUMB']), BX_DATA_INT);
+        if(CHECK_ACTION_RESULT_ALLOWED === $this->_oModule->checkAllowedSetThumb($iContentId) && isset($CNF['FIELD_THUMB']) && ($aThumb = bx_get($CNF['FIELD_THUMB'])) !== false) {
+            $aThumb = bx_process_input($aThumb, BX_DATA_INT);
+
             $aValsToAdd[$CNF['FIELD_THUMB']] = 0;
-            if (!empty($aThumb)){
+            if(!empty($aThumb)) {
                 if(is_array($aThumb) && ($iFileThumb = array_pop($aThumb)))
                    $aValsToAdd[$CNF['FIELD_THUMB']] = $iFileThumb;
                else

+ 28 - 19
modules/boonex/market/classes/BxMarketFormEntry.php

@@ -14,6 +14,8 @@
  */
 class BxMarketFormEntry extends BxBaseModTextFormEntry
 {
+    protected $_bPhotoGhostCheckboxes;
+
     public function __construct($aInfo, $oTemplate = false)
     {
         $this->MODULE = 'bx_market';
@@ -21,6 +23,11 @@ class BxMarketFormEntry extends BxBaseModTextFormEntry
 
         $CNF = &$this->_oModule->_oConfig->CNF;
 
+        /*
+         * Disabled since Header Image and Icon uploaders were moved on view product page.
+         */
+        $this->_bPhotoGhostCheckboxes = false;
+
         $iProfileId = bx_get_logged_profile_id();
 
         if(isset($this->aInputs[$CNF['FIELD_TITLE']], $this->aInputs[$CNF['FIELD_NAME']])) {
@@ -160,10 +167,9 @@ class BxMarketFormEntry extends BxBaseModTextFormEntry
         return $iContentId;
     }
 
-	function update ($iContentId, $aValsToAdd = array(), &$aTrackTextFieldsChanges = null)
+    function update ($iContentId, $aValsToAdd = array(), &$aTrackTextFieldsChanges = null)
     {
         $CNF = &$this->_oModule->_oConfig->CNF;
-        
 
         $sNameKey = $CNF['FIELD_NAME'];
         if(isset($this->aInputs[$sNameKey])) {
@@ -176,18 +182,19 @@ class BxMarketFormEntry extends BxBaseModTextFormEntry
             }
         }
 
-	    if($this->_oModule->checkAllowedSetCover() === CHECK_ACTION_RESULT_ALLOWED) {
-            $aCover = bx_process_input (bx_get($CNF['FIELD_COVER']), BX_DATA_INT);
+        //TODO: Continue from here. Do the same for Thumb.
+        if(($aCover = bx_get($CNF['FIELD_COVER'])) !== false && $this->_oModule->checkAllowedSetCover() === CHECK_ACTION_RESULT_ALLOWED) {
+            $aCover = bx_process_input($aCover, BX_DATA_INT);
 
             $aValsToAdd[$CNF['FIELD_COVER']] = 0;
-            if (!empty($aCover) && is_array($aCover) && ($iFileCover = array_pop($aCover)))
+            if(!empty($aCover) && is_array($aCover) && ($iFileCover = array_pop($aCover)))
                 $aValsToAdd[$CNF['FIELD_COVER']] = $iFileCover;
         }
 
-		$aPackage = bx_process_input(bx_get($CNF['FIELD_PACKAGE']), BX_DATA_INT);
-		$aValsToAdd[$CNF['FIELD_PACKAGE']] = 0;
-		if(!empty($aPackage) && is_array($aPackage) && ($iFilePackage = array_pop($aPackage)))
-			$aValsToAdd[$CNF['FIELD_PACKAGE']] = $iFilePackage;
+        $aPackage = bx_process_input(bx_get($CNF['FIELD_PACKAGE']), BX_DATA_INT);
+        $aValsToAdd[$CNF['FIELD_PACKAGE']] = 0;
+        if(!empty($aPackage) && is_array($aPackage) && ($iFilePackage = array_pop($aPackage)))
+            $aValsToAdd[$CNF['FIELD_PACKAGE']] = $iFilePackage;
 
         $iResult = parent::update ($iContentId, $aValsToAdd, $aTrackTextFieldsChanges);
 
@@ -253,22 +260,24 @@ class BxMarketFormEntry extends BxBaseModTextFormEntry
         }
     }
 
-    protected function _getPhotoGhostTmplVars($aContentInfo = array())
+    protected function _getPhotoGhostTmplVars($aContentInfo = [])
     {
         $CNF = &$this->_oModule->_oConfig->CNF;
 
         $aResult = parent::_getPhotoGhostTmplVars($aContentInfo);
-        $aResult = array_merge($aResult, array(
+
+        if(!empty($aResult['bx_if:set_thumb']))
+            $aResult['bx_if:set_thumb']['condition'] = $this->_bPhotoGhostCheckboxes && $aResult['bx_if:set_thumb']['condition'];
+
+        return array_merge($aResult, [
             'cover_id' => isset($aContentInfo[$CNF['FIELD_COVER']]) ? $aContentInfo[$CNF['FIELD_COVER']] : 0,
-            'bx_if:set_cover' => array (
-                'condition' => CHECK_ACTION_RESULT_ALLOWED === $this->_oModule->checkAllowedSetCover(),
-                'content' => array (
+            'bx_if:set_cover' => [
+                'condition' => $this->_bPhotoGhostCheckboxes && $this->_oModule->checkAllowedSetCover() === CHECK_ACTION_RESULT_ALLOWED,
+                'content' => [
                     'name_cover' => $CNF['FIELD_COVER'],
-                ),
-            ),
-        ));
-
-        return $aResult;
+                ]
+            ]
+        ]);
     }
 
     protected function _getFileGhostTmplVars($aContentInfo = array())

+ 23 - 0
modules/boonex/market/classes/BxMarketUploaderHTML5.php

@@ -20,6 +20,29 @@ class BxMarketUploaderHTML5 extends BxTemplUploaderHTML5
         $this->_oModule = BxDolModule::getInstance('bx_market');
     }
 
+    public function getGhostsWithOrder($iProfileId, $sFormat, $sImagesTranscoder = false, $iContentId = false, $isLatestOnly = false)
+    {
+        $CNF = &$this->_oModule->_oConfig->CNF;
+
+        $a = $this->getGhosts($iProfileId, 'array', $sImagesTranscoder, $iContentId);
+        if(!$isLatestOnly) {
+            if($iContentId && ($aContentInfo = $this->_oModule->_oDb->getContentInfoById($iContentId))) {
+                if(!empty($aContentInfo[$CNF['FIELD_THUMB']]))
+                    unset($a[$aContentInfo[$CNF['FIELD_THUMB']]]);
+
+                if(!empty($aContentInfo[$CNF['FIELD_COVER']]))
+                    unset($a[$aContentInfo[$CNF['FIELD_COVER']]]);
+            }
+        }
+        else 
+            $a = array_slice($a, 0, 1, true);
+
+        if(!empty($a) && is_array($a))
+            $a = ['g' => $a, 'o' => array_keys($a)];
+
+        return $sFormat == 'json' ? json_encode($a) : $a;
+    }
+
     protected function getGhostTemplateVars($aFile, $iProfileId, $iContentId, $oStorage, $oImagesTranscoder)
     {
     	return $this->_oModule->getGhostTemplateVars($aFile, $iProfileId, $iContentId, $oStorage, $oImagesTranscoder);