[TASK] Streamline phpdoc annotations in EXT:fluid
[Packages/TYPO3.CMS.git] / typo3 / sysext / fluid / Classes / Core / ViewHelper / ViewHelperResolver.php
index cf9206a..a355f53 100644 (file)
@@ -36,37 +36,35 @@ use TYPO3\CMS\Extbase\Object\ObjectManagerInterface;
  * made capable of "mixing" two different ViewHelper namespaces
  * to effectively create aliases for the Fluid core ViewHelpers
  * to be loaded in the TYPO3\CMS\ViewHelpers scope as well.
+ *
+ * Default ViewHelper namespaces are read TYPO3 configuration at:
+ *
+ * $GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces']
+ *
+ * Extending this array allows third party ViewHelper providers
+ * to automatically add or extend namespaces which then become
+ * available in every Fluid template file without having to
+ * register the namespace.
+ *
+ * @internal This is a helper class which is not considered part of TYPO3's Public API.
  */
 class ViewHelperResolver extends \TYPO3Fluid\Fluid\Core\ViewHelper\ViewHelperResolver
 {
     /**
-     * Custom merged namespace for CMS Fluid adapter;
-     * will look for classes in both namespaces starting
-     * from the bottom.
-     *
-     * @var array
-     */
-    protected $namespaces = [
-        'f' => [
-            'TYPO3Fluid\\Fluid\\ViewHelpers',
-            'TYPO3\\CMS\\Fluid\\ViewHelpers'
-        ]
-    ];
-
-    /**
      * ViewHelperResolver constructor
      *
-     * Responsible for adding a third namespace in case this is requested from
-     * the admin panel - causes overlaying of `f:` with `f:debug`.
+     * Loads namespaces defined in global TYPO3 configuration. Overlays `f:`
+     * with `f:debug:` when Fluid debugging is enabled in the admin panel,
+     * causing debugging-specific ViewHelpers to be resolved in that case.
      */
     public function __construct()
     {
-        $configuration = $this->getBackendUser()->uc['TSFE_adminConfig'];
-        if (TYPO3_MODE === 'FE'
-            && isset($configuration['preview_showFluidDebug'])
-            && $configuration['preview_showFluidDebug']
-        ) {
-            $this->namespaces['f'][] = 'TYPO3\\CMS\\Fluid\\ViewHelpers\\Debug';
+        $this->namespaces = $GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces'];
+        if (TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_FE && $this->getBackendUser() instanceof BackendUserAuthentication) {
+            $configuration = $this->getBackendUser()->uc['AdminPanel'];
+            if (isset($configuration['preview_showFluidDebug']) && $configuration['preview_showFluidDebug']) {
+                $this->namespaces['f'][] = 'TYPO3\\CMS\\Fluid\\ViewHelpers\\Debug';
+            }
         }
     }