[TASK] Deprecate $TSFE->anchorPrefix 40/38040/3
authorBenjamin Mack <benni@typo3.org>
Mon, 23 Mar 2015 14:28:04 +0000 (15:28 +0100)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Tue, 24 Mar 2015 19:04:06 +0000 (20:04 +0100)
The shortcut variable for having the anchorPrefix within
$TSFE is set when a baseURL is defined and does the same
as config.prefixLocalAnchors = auto. It is solely used for
Indexed Search and only if baseURL is activated.

The patch deprecates this property and implements
the functionality directly when needed within indexed_search.

Resolves: #65938
Releases: master
Change-Id: Ie57f57501f15f69ef5f6859d0517f7c0bcced117
Reviewed-on: http://review.typo3.org/38040
Reviewed-by: Jan Helke <typo3@helke.de>
Tested-by: Jan Helke <typo3@helke.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/core/Documentation/Changelog/master/Deprecation-65938-TSFEAnchorPrefix.rst [new file with mode: 0644]
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
typo3/sysext/frontend/Classes/Page/PageGenerator.php
typo3/sysext/indexed_search/Classes/Controller/SearchFormController.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-65938-TSFEAnchorPrefix.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-65938-TSFEAnchorPrefix.rst
new file mode 100644 (file)
index 0000000..86d28ab
--- /dev/null
@@ -0,0 +1,28 @@
+===============================================================
+Deprecation: #65938 - Discourage usage of "$TSFE->anchorPrefix"
+===============================================================
+
+Description
+===========
+
+The property "anchorPrefix" within TypoScriptFrontendController is set to the relative path from the public site
+root when ``config.baseURL`` is set, and can be used to prefix local anchors with that prefix. The option is
+deprecated in favor of using ``config.absRefPrefix`` when this functionality is needed.
+
+Affected installations
+======================
+
+All installations or extensions relying on the TypoScriptFrontendController property "anchorPrefix" running
+with the TypoScript option ``config.baseURL`` enabled.
+
+
+Migration
+=========
+
+Use the PHP code below directly to fetch the information when needing baseURL and the anchorPrefix option.
+
+.. code-block:: php
+
+       GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'), strlen(GeneralUtility::getIndpEnv('TYPO3_SITE_URL'))
+
+Alternatively, use ``config.absRefPrefix`` to achieve the same result.
index c93ca9f..48571a0 100644 (file)
@@ -689,6 +689,7 @@ class TypoScriptFrontendController {
        /**
         * The proper anchor prefix needed when using speaking urls. (only set if
         * baseUrl is set)
+        * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8, use substr(GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'), strlen(GeneralUtility::getIndpEnv('TYPO3_SITE_URL'))) directly
         * @var string
         */
        public $anchorPrefix = '';
index 031fe2b..4e6d4e8 100644 (file)
@@ -74,6 +74,7 @@ class PageGenerator {
                // Base url:
                if (isset($tsfe->config['config']['baseURL'])) {
                        $tsfe->baseUrl = $tsfe->config['config']['baseURL'];
+                       // Deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8
                        $tsfe->anchorPrefix = substr(GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'), strlen(GeneralUtility::getIndpEnv('TYPO3_SITE_URL')));
                }
                // Internal and External target defaults
index 1459e15..cf6c44e 100644 (file)
@@ -1487,9 +1487,10 @@ class SearchFormController extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin {
                        $lines = array();
                        $html = $this->cObj->getSubpart($this->templateCode, '###RESULT_SECTION_LINKS###');
                        $item = $this->cObj->getSubpart($this->templateCode, '###RESULT_SECTION_LINKS_LINK###');
+                       $anchorPrefix = $GLOBALS['TSFE']->baseUrl ? substr(GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'), strlen(GeneralUtility::getIndpEnv('TYPO3_SITE_URL'))) : '';
                        foreach ($this->resultSections as $id => $dat) {
                                $markerArray = array();
-                               $aBegin = '<a href="' . htmlspecialchars(($this->frontendController->anchorPrefix . '#anchor_' . md5($id))) . '">';
+                               $aBegin = '<a href="' . htmlspecialchars($anchorPrefix . '#anchor_' . md5($id)) . '">';
                                $aContent = htmlspecialchars((trim($dat[0]) ? trim($dat[0]) : $this->pi_getLL('unnamedSection'))) . ' (' . $dat[1] . ' ' . $this->pi_getLL(($dat[1] > 1 ? 'word_pages' : 'word_page'), '', TRUE) . ')';
                                $aEnd = '</a>';
                                $markerArray['###LINK###'] = $aBegin . $aContent . $aEnd;