Added feature #11460: felogin - Integrate possibility to disable redirects on the fly
authorOliver Hader <oliver.hader@typo3.org>
Fri, 3 Jul 2009 09:05:38 +0000 (09:05 +0000)
committerOliver Hader <oliver.hader@typo3.org>
Fri, 3 Jul 2009 09:05:38 +0000 (09:05 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@5679 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/felogin/pi1/class.tx_felogin_pi1.php
typo3/sysext/felogin/template.html

index 48b57db..9563895 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-07-03  Oliver Hader  <oliver@typo3.org>
+
+       * Added feature #11460: felogin - Integrate possibility to disable redirects on the fly (patch by Steffen Kamper)
+
 2009-07-01  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Follow-up to issue #11009: External Links get prepended with http://typo3 in RTE htmlArea in Firefox 3.0.11/3.5b4
index 081dd78..2b23bb8 100644 (file)
@@ -41,6 +41,7 @@ class tx_felogin_pi1 extends tslib_pibase {
        var $template;
        var $uploadDir;
        var $redirectUrl;
+       protected $noRedirect = false;
 
        /**
         * The main method of the plugin
@@ -82,6 +83,7 @@ class tx_felogin_pi1 extends tslib_pibase {
                        // GPvars:
                $this->logintype = t3lib_div::_GP('logintype');
                $this->redirectUrl = t3lib_div::_GP('redirect_url');
+               $this->noRedirect = ($this->piVars['noredirect'] || $this->conf['redirectDisable']);
 
                        // if config.typolinkLinkAccessRestrictedPages is set, the var is return_url
                $returnUrl =  t3lib_div::_GP('return_url');
@@ -97,7 +99,7 @@ class tx_felogin_pi1 extends tslib_pibase {
                $this->userIsLoggedIn = $GLOBALS['TSFE']->loginUser;
 
                        // Redirect
-               if ($this->conf['redirectMode'] && !$this->conf['redirectDisable']) {
+               if ($this->conf['redirectMode'] && !$this->conf['redirectDisable'] && !$this->noRedirect) {
                        $this->redirectUrl = $this->processRedirect();
                }
 
@@ -117,7 +119,7 @@ class tx_felogin_pi1 extends tslib_pibase {
 
 
                        // Process the redirect
-               if (($this->logintype === 'login' || $this->logintype === 'logout') && $this->redirectUrl) {
+               if (($this->logintype === 'login' || $this->logintype === 'logout') && $this->redirectUrl && !$this->noRedirect) {
                        if (!$GLOBALS['TSFE']->fe_user->cookieId) {
                                $content .= '<p style="color:red; font-weight:bold;">' . $this->pi_getLL('cookie_warning', '', 1) . '</p>';
                        } else {
@@ -214,6 +216,8 @@ class tx_felogin_pi1 extends tslib_pibase {
                $markerArray['###STORAGE_PID###'] = $this->spid;
                $markerArray['###USERNAME###'] = htmlspecialchars($GLOBALS['TSFE']->fe_user->user['username']);
                $markerArray['###USERNAME_LABEL###'] = $this->pi_getLL('username', '', 1);
+               $markerArray['###NOREDIRECT###'] = $this->noRedirect ? '1' : '0';
+               $markerArray['###PREFIXID###'] = $this->prefixId;
                $markerArray = array_merge($markerArray, $this->getUserFieldMarkers());
 
                if ($this->redirectUrl) {
@@ -304,6 +308,8 @@ class tx_felogin_pi1 extends tslib_pibase {
                $markerArray['###STORAGE_PID###'] = $this->spid;
                $markerArray['###USERNAME_LABEL###'] = $this->pi_getLL('username', '', 1);
                $markerArray['###REDIRECT_URL###'] = $gpRedirectUrl ? htmlspecialchars($gpRedirectUrl) : htmlspecialchars($this->redirectUrl);
+               $markerArray['###NOREDIRECT###'] = $this->noRedirect ? '1' : '0';
+               $markerArray['###PREFIXID###'] = $this->prefixId;
                $markerArray = array_merge($markerArray, $this->getUserFieldMarkers());
 
                if ($this->flexFormValue('showForgotPassword','sDEF') || $this->conf['showForgotPasswordLink']) {
@@ -643,4 +649,4 @@ if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/felogin
        include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/felogin/pi1/class.tx_felogin_pi1.php']);
 }
 
-?>
+?>
\ No newline at end of file
index d68be0d..5021935 100644 (file)
@@ -14,8 +14,9 @@
        <li>###ACTION_URI###     - URI of the request for the login/logout form</li>
        <li>###EXTRA_HIDDEN###   - Hook required (additionnal hidden field used by kb_md5fepw extension by Kraft Bernhard)</li>
        <li>###ON_SUBMIT###      - Hook required (used by kb_md5fepw extension by Kraft Bernhard)</li>
-       <li>###PREFIXID###       - Same as class name ('tx_newloginbox_pi1') usefull to get a unique classname prefix</li>
+       <li>###PREFIXID###       - Same as class name ('tx_felogin_pi1') usefull to get a unique classname prefix</li>
        <li>###REDIRECT_URL###   - URL of redirection upon login</li>
+       <li>###NOREDIRECT###     - if set, no redirect will be done</li>
        <li>###STORAGE_PID###    - explicit enough I guess (if not : id of the page where user are stored)</li>
        <li>###STATUS_HEADER###  - depends of the template</li>
        <li>###STATUS_MESSAGE### - depends of the template</li>
@@ -78,6 +79,7 @@
                <input type="hidden" name="logintype" value="login" />
                <input type="hidden" name="pid" value="###STORAGE_PID###" />
                <input type="hidden" name="redirect_url" value="###REDIRECT_URL###" />
+               <input type="hidden" name="###PREFIXID###[noredirect]" value="###NOREDIRECT###" />
                ###EXTRA_HIDDEN###
        </div>
        </fieldset>
        <div class="felogin-hidden"> 
                <input type="hidden" name="logintype" value="logout" />
                <input type="hidden" name="pid" value="###STORAGE_PID###" />
+               <input type="hidden" name="###PREFIXID###[noredirect]" value="###NOREDIRECT###" />
        </div>
        </fieldset>
 </form>