Procházet zdrojové kódy

Ticket #5736 - API: Track referrer page for visitors if redirect to Last Page is used after profile creation.

AntonLV před 3 týdny
rodič
revize
5b192236d9

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

@@ -786,6 +786,26 @@ class BxBaseModGeneralModule extends BxDolModule
         return $this->_oConfig->CNF['T']['txt_sample_single'] ?? '';
     }
 
+    /**
+     * @page service Service Calls
+     * @section bx_base_general Base General
+     * @subsection bx_base_general-other Other
+     * @subsubsection bx_base_general-module_sample module_config
+     * 
+     * @code bx_srv('bx_posts', 'module_config', [...]); @endcode
+     * 
+     * Get module config (CNF)
+     * 
+     * @see BxBaseModGeneralModule::serviceModuleConfig
+     */
+    /** 
+     * @ref bx_base_general-module_config "module_config"
+     */
+    public function serviceModuleConfig ()
+    {
+        return $this->_oConfig->getCNF();
+    }
+
     public function serviceGetModerators($iContentId)
     {
         return $this->getModerators($iContentId);

+ 11 - 1
template/scripts/BxBasePage.php

@@ -544,9 +544,19 @@ class BxBasePage extends BxDolPage
         $sMetaTitle = $this->_getPageMetaTitle();
         $sName = $this->_getPageTitle();
         $sUri = $this->_aObject['uri'];
+        $sUrl = ($bGetParams && !empty($aGetParams[0]) ? $aGetParams[0] : $sUri) . ($sQueryString != '' ? '?' . $sQueryString : '');
         $sModule = $this->getModule();
         $aElements = $this->getPageBlocksAPI($aBlocks);
 
+        if(!$bLogged && !in_array($sUri, ['home', 'login', 'create-account']) && ($sAutoProfile = getParam('sys_account_default_profile_type'))) {
+            $sRedirect = getParam($sAutoProfile . '_redirect_aadd');
+            if($sRedirect == 'last') {
+                $aAutoProfileConfig = bx_srv($sAutoProfile, 'module_config');
+                if($sUri != ($aAutoProfileConfig['URI_ADD_ENTRY'] ?? ''))
+                    BxDolSession::getInstance()->setValue('custom-referrer', $sUrl);
+            }
+        }
+
         $a = [
             'id' => $this->_aObject['id'],
             'title' => $sMetaTitle ? $sMetaTitle : $sName,
@@ -555,7 +565,7 @@ class BxBasePage extends BxDolPage
             'keywords' => $this->_getPageMetaKeywords(),
             'image' => '',
             'uri' => $sUri,
-            'url' => ($bGetParams && !empty($aGetParams[0]) ? $aGetParams[0] : $sUri) . ($sQueryString != '' ? '?' . $sQueryString : ''),
+            'url' => $sUrl,
             'author' => $this->_aObject['author'],
             'added' => $this->_aObject['added'],
             'module' => $sModule,