[TASK] feedit: Bring back editNoPopup 42/35142/2
authorPaul Golmann <mail@pje-web.de>
Wed, 20 Aug 2014 15:00:24 +0000 (17:00 +0200)
committerMarkus Klein <klein.t3@reelworx.at>
Mon, 8 Dec 2014 00:24:57 +0000 (01:24 +0100)
* Restore edit_editNoPopup/forceNoPopup TSConfig options removed in #49640
* Initialize frontend editing when displayFieldEditIcons is set

Releases: master, 6.2
Resolves: #61095
Related: #43447
Related: #49640
Change-Id: I900a62b447a1a67265ce22cd73e150646344e090
Reviewed-on: http://review.typo3.org/35142
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
typo3/sysext/backend/Classes/FrontendBackendUserAuthentication.php
typo3/sysext/feedit/Classes/FrontendEditPanel.php
typo3/sysext/frontend/Classes/View/AdminPanelView.php

index d920db1..9b7662a 100644 (file)
@@ -69,7 +69,7 @@ class FrontendBackendUserAuthentication extends \TYPO3\CMS\Core\Authentication\B
        public $extPageInTreeInfo = array();
 
        /**
-        * General flag which is set if the adminpanel should be displayed at all.
+        * General flag which is set if the adminpanel is enabled at all.
         *
         * @var boolean
         */
@@ -142,8 +142,11 @@ class FrontendBackendUserAuthentication extends \TYPO3\CMS\Core\Authentication\B
         * @return boolean Whether frontend editing is active
         */
        public function isFrontendEditingActive() {
-               return $this->extAdmEnabled
-                       && ($this->adminPanel->isAdminModuleEnabled('edit') || $GLOBALS['TSFE']->displayEditIcons == 1);
+               return $this->extAdmEnabled && (
+                       $this->adminPanel->isAdminModuleEnabled('edit') ||
+                       $GLOBALS['TSFE']->displayEditIcons == 1 ||
+                       $GLOBALS['TSFE']->displayFieldEditIcons == 1
+               );
        }
 
        /**
index 3ee47dc..c93a555 100644 (file)
@@ -237,7 +237,8 @@ class FrontendEditPanel {
        }
 
        /**
-        * Creates a link to a script (eg. typo3/alt_doc.php or typo3/db_new.php) which either opens in the current frame OR in a pop-up window.
+        * Creates a link to a script (eg. typo3/alt_doc.php or typo3/db_new.php)
+        * which either opens in the current frame OR in a pop-up window.
         *
         * @param string $string The string to wrap in a link, typ. and image used as button in the edit panel.
         * @param string $url The URL of the link. Should be absolute if supposed to work with <base> path set.
@@ -245,8 +246,15 @@ class FrontendEditPanel {
         * @see    editPanelLinkWrap()
         */
        protected function editPanelLinkWrap_doWrap($string, $url) {
-               $onclick = 'vHWin=window.open(' . GeneralUtility::quoteJSvalue($url . '&returnUrl=close.html') . ',\'FEquickEditWindow\',\'width=690,height=500,status=0,menubar=0,scrollbars=1,resizable=1\');vHWin.focus();return false;';
-               return '<a href="#" onclick="' . htmlspecialchars($onclick) . '" class="frontEndEditIconLinks">' . $string . '</a>';
+               // Open in the current frame?
+               if ($GLOBALS['BE_USER']->adminPanel->extGetFeAdminValue('edit', 'editNoPopup')) {
+                       $href = htmlspecialchars($url . '&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')));
+                       return '<a href="' . $href . '" class="frontEndEditIconLinks">' . $string . '</a>';
+               } else {
+                       $onclick = 'vHWin=window.open(' . GeneralUtility::quoteJSvalue($url . '&returnUrl=close.html') .
+                               ',\'FEquickEditWindow\',\'width=690,height=500,status=0,menubar=0,scrollbars=1,resizable=1\');vHWin.focus();return false;';
+                       return '<a href="#" onclick="' . htmlspecialchars($onclick) . '" class="frontEndEditIconLinks">' . $string . '</a>';
+               }
        }
 
        /**
index 3a618e7..f6b0372 100644 (file)
@@ -161,14 +161,19 @@ class AdminPanelView {
                if (!$this->isAdminModuleEnabled($sectionName)) {
                        return NULL;
                }
-               // Exceptions where the values can be overridden from backend:
+
+               // Exceptions where the values can be overridden (forced) from backend:
                // deprecated
-               if ($sectionName . '_' . $val === 'edit_displayIcons' && $GLOBALS['BE_USER']->extAdminConfig['module.']['edit.']['forceDisplayIcons']) {
-                       return TRUE;
-               }
-               if ($sectionName . '_' . $val === 'edit_displayFieldIcons' && $GLOBALS['BE_USER']->extAdminConfig['module.']['edit.']['forceDisplayFieldIcons']) {
+               if (
+                       $sectionName === 'edit' && (
+                               $val === 'displayIcons' && $GLOBALS['BE_USER']->extAdminConfig['module.']['edit.']['forceDisplayIcons'] ||
+                               $val === 'displayFieldIcons' && $GLOBALS['BE_USER']->extAdminConfig['module.']['edit.']['forceDisplayFieldIcons'] ||
+                               $val === 'editNoPopup' && $GLOBALS['BE_USER']->extAdminConfig['module.']['edit.']['forceNoPopup']
+                       )
+               ) {
                        return TRUE;
                }
+
                // Override all settings with user TSconfig
                if ($val && isset($GLOBALS['BE_USER']->extAdminConfig['override.'][$sectionName . '.'][$val])) {
                        return $GLOBALS['BE_USER']->extAdminConfig['override.'][$sectionName . '.'][$val];
@@ -176,13 +181,16 @@ class AdminPanelView {
                if (isset($GLOBALS['BE_USER']->extAdminConfig['override.'][$sectionName])) {
                        return $GLOBALS['BE_USER']->extAdminConfig['override.'][$sectionName];
                }
-               $retVal = $val ? $GLOBALS['BE_USER']->uc['TSFE_adminConfig'][$sectionName . '_' . $val] : 1;
+
+               $returnValue = $val ? $GLOBALS['BE_USER']->uc['TSFE_adminConfig'][$sectionName . '_' . $val] : 1;
+
+               // Exception for preview
                if ($sectionName === 'preview' && $this->ext_forcePreview) {
-                       return !$val ? TRUE : $retVal;
+                       return !$val ? TRUE : $returnValue;
                }
 
                // See if the menu is expanded!
-               return $this->isAdminModuleOpen($sectionName) ? $retVal : NULL;
+               return $this->isAdminModuleOpen($sectionName) ? $returnValue : NULL;
        }
 
        /**