Browse Source

#5232 Group/Profile based modules: content cache issue

Alex Trofimov 1 year ago
parent
commit
fa14753d55

+ 6 - 0
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -145,6 +145,7 @@ class BxBaseModGeneralModule extends BxDolModule
 
     public function actionUpdateImagePosition($iContentId, $sFiledName, $sH, $sV)
     {
+        // TODO: check permissions
         $this->serviceUpdateImagePosition($iContentId, $sFiledName, $sH, $sV);
     }
 
@@ -1258,6 +1259,11 @@ class BxBaseModGeneralModule extends BxDolModule
 
         $this->_oDb->updateEntriesBy([$CNF[$sFieldNamePos] => $sValue], [$CNF['FIELD_ID'] => $iContentId]);
 
+        if($this instanceof BxBaseModProfileModule) {
+            $aContentInfo = $this->_oDb->getContentInfoById($iContentId);
+            bx_content_cache_del_by_prefix('sprofile_unit_vars:' . $aContentInfo['profile_id'] . ':');
+        }
+
         return true;
     }
 

+ 3 - 0
modules/base/groups/classes/BxBaseModGroupsModule.php

@@ -2370,6 +2370,9 @@ class BxBaseModGroupsModule extends BxBaseModProfileModule
             $CNF['FIELD_COVER'] => 'cover',
         ];
 
+        bx_content_cache_del_by_prefix('sprofile_unit_vars:' . $aContentInfo['profile_id'] . ':');
+        bx_content_cache_del_by_prefix('menu_sys_toolbar_member_p' . $aContentInfo['profile_id']);
+
         if(!empty($aField2Method[$sFiledName]))
             /**
              * @hooks

+ 2 - 0
modules/base/profile/classes/BxBaseModProfileFormsEntryHelper.php

@@ -181,6 +181,8 @@ class BxBaseModProfileFormsEntryHelper extends BxBaseModGeneralFormsEntryHelper
             bx_content_cache_del("profile_switcher_" . $oEditedProfile->getAccountId() . "_1");
         }
 
+        bx_content_cache_del_by_prefix('sprofile_unit_vars:' . $oEditedProfile->id() . ':');
+
         return '';
     }
 

+ 3 - 0
modules/base/profile/classes/BxBaseModProfileModule.php

@@ -2259,6 +2259,9 @@ class BxBaseModProfileModule extends BxBaseModGeneralModule implements iBxDolCon
         if(!$iProfileId && ($oProfile = BxDolProfile::getInstanceByContentAndType($iContentId, $sModule)) !== false)
             $iProfileId = $oProfile->id();
 
+        bx_content_cache_del_by_prefix('sprofile_unit_vars:' . $iProfileId . ':');
+        bx_content_cache_del_by_prefix('menu_sys_toolbar_member_p' . $iProfileId);
+
         $aField2Method = [
             $CNF['FIELD_PICTURE'] => 'picture',
             $CNF['FIELD_COVER'] => 'cover',