[BUGFIX] Correctly handle forceTypeValue = 0 78/19778/9
authorSteffen Roßkamp <sr@blackblizzard.org>
Sat, 27 Dec 2014 00:11:18 +0000 (01:11 +0100)
committerBenjamin Mack <benni@typo3.org>
Sun, 21 Jun 2015 08:22:29 +0000 (10:22 +0200)
Setting config.forceTypeValue or forceTypeValue in GMENU, TMENU,
IMGMENU or JSMENU objects to 0 (zero) is now handled properly
and type is forced to zero.

Resolves: #23270
Releases: master, 6.2
Change-Id: If4a829aacf091ec3fae78329915b7c74619245b3
Reviewed-on: http://review.typo3.org/19778
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Arjen Hoekema <arjenhoekema@gmail.com>
Tested-by: Arjen Hoekema <arjenhoekema@gmail.com>
Reviewed-by: Benjamin Mack <benni@typo3.org>
Tested-by: Benjamin Mack <benni@typo3.org>
typo3/sysext/frontend/Classes/ContentObject/Menu/AbstractMenuContentObject.php

index d82e8cd..2d4e5fc 100644 (file)
@@ -2018,15 +2018,15 @@ abstract class AbstractMenuContentObject {
         * @param string $script Alternative script name (unused)
         * @param array|string $overrideArray Array to override values in $page, empty string to skip override
         * @param string $addParams Parameters to add to URL
         * @param string $script Alternative script name (unused)
         * @param array|string $overrideArray Array to override values in $page, empty string to skip override
         * @param string $addParams Parameters to add to URL
-        * @param string $typeOverride "type" value
+        * @param int|string $typeOverride "type" value, empty string means "not set"
         * @return array See linkData
         */
        public function menuTypoLink($page, $oTarget, $no_cache, $script, $overrideArray = '', $addParams = '', $typeOverride = '') {
                $conf = array(
                        'parameter' => is_array($overrideArray) && $overrideArray['uid'] ? $overrideArray['uid'] : $page['uid']
                );
         * @return array See linkData
         */
        public function menuTypoLink($page, $oTarget, $no_cache, $script, $overrideArray = '', $addParams = '', $typeOverride = '') {
                $conf = array(
                        'parameter' => is_array($overrideArray) && $overrideArray['uid'] ? $overrideArray['uid'] : $page['uid']
                );
-               if ($typeOverride && MathUtility::canBeInterpretedAsInteger($typeOverride)) {
-                       $conf['parameter'] .= ',' . $typeOverride;
+               if (MathUtility::canBeInterpretedAsInteger($typeOverride)) {
+                       $conf['parameter'] .= ',' . (int)$typeOverride;
                }
                if ($addParams) {
                        $conf['additionalParams'] = $addParams;
                }
                if ($addParams) {
                        $conf['additionalParams'] = $addParams;