[TASK] Add phpDoc in ClickMenu
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Classes / ClickMenu / ClickMenu.php
index c13c937..85e00d9 100644 (file)
@@ -28,57 +28,123 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
  */
 class ClickMenu {
 
-       // Internal, static: GPvar:
-       // Defines if the click menu is first level or second. Second means the click menu is triggered from another menu.
+       /**
+        * Defines if the click menu is first level or second.
+        * Second means the click menu is triggered from another menu.
+        *
+        * @var int
+        */
        public $cmLevel = 0;
 
-       // Clipboard array (submitted by eg. pressing the paste button)
+       /**
+        * Clipboard array (submitted by eg. pressing the paste button)
+        *
+        * @var bool
+        */
        public $CB;
 
-       // Internal, static:
-       // Backpath for scripts/images.
+       /**
+        * Backpath for scripts/images
+        *
+        * @var string
+        */
        public $backPath = '';
 
-       // BackPath place holder: We need different backPath set whether the clickmenu is written back to a frame which is not in typo3/ dir or if the clickmenu is shown in the top frame (no backpath)
+       /**
+        * BackPath place holder: We need different backPath set whether the clickmenu
+        * is written back to a frame which is not in typo3/ dir or if the clickmenu
+        * is shown in the top frame (no backpath)
+        *
+        * @var string
+        */
        public $PH_backPath = '###BACK_PATH###';
 
-       // If set, the calling document should be in the listframe of a frameset.
-       public $listFrame = 0;
+       /**
+        * If set, the calling document should be in the listframe of a frameset.
+        *
+        * @var bool
+        */
+       public $listFrame = FALSE;
 
-       // If set, the menu is about database records, not files. (set if part 2 [1] of the item-var is NOT blank)
-       public $isDBmenu = 0;
+       /**
+        * If set, the menu is about database records, not files. (set if part 2 [1] of the item-var is NOT blank)
+        *
+        * @var bool
+        */
+       public $isDBmenu = FALSE;
 
-       // If TRUE, the "content" frame is always used for reference (when condensed mode is enabled)
-       public $alwaysContentFrame = 0;
+       /**
+        * If TRUE, the "content" frame is always used for reference (when condensed mode is enabled)
+        *
+        * @var bool
+        */
+       public $alwaysContentFrame = FALSE;
 
-       // Stores the parts of the input $item string, splitted by "|":
-       // [0] = table/file, [1] = uid/blank, [2] = flag: If set, listFrame,
-       // If "2" then "content frame" is forced  [3] = ("+" prefix = disable
-       // all by default, enable these. Default is to disable) Items key list
+       /**
+        * Stores the parts of the input $item string, splitted by "|":
+        * [0] = table/file, [1] = uid/blank, [2] = flag: If set, listFrame,
+        * If "2" then "content frame" is forced  [3] = ("+" prefix = disable
+        * all by default, enable these. Default is to disable) Items key list
+        *
+        * @var array
+        */
        public $iParts = array();
 
-       // Contains list of keywords of items to disable in the menu
+       /**
+        * Contains list of keywords of items to disable in the menu
+        *
+        * @var array
+        */
        public $disabledItems = array();
 
-       // If TRUE, Show icons on the left.
-       public $leftIcons = 0;
+       /**
+        * If TRUE, Show icons on the left.
+        *
+        * @var bool
+        */
+       public $leftIcons = FALSE;
 
-       // Array of classes to be used for user processing of the menu content. This is for the API of adding items to the menu from outside.
+       /**
+        * Array of classes to be used for user processing of the menu content.
+        * This is for the API of adding items to the menu from outside.
+        *
+        * @var array
+        */
        public $extClassArray = array();
 
-       // Enable/disable ajax behavior
-       public $ajax = 0;
+       /**
+        * Enable/disable ajax behavior
+        *
+        * @var bool
+        */
+       public $ajax = FALSE;
 
-       // Internal, dynamic:
-       // Counter for elements in the menu. Used to number the name / id of the mouse-over icon.
+       /**
+        * Counter for elements in the menu. Used to number the name / id of the mouse-over icon.
+        *
+        * @var int
+        */
        public $elCount = 0;
 
-       // Set, when edit icon is drawn.
-       public $editPageIconSet = 0;
+       /**
+        * Set, when edit icon is drawn.
+        *
+        * @var bool
+        */
+       public $editPageIconSet = FALSE;
 
-       // Set to TRUE, if editing of the element is OK.
-       public $editOK = 0;
+       /**
+        * Set to TRUE, if editing of the element is OK.
+        *
+        * @var bool
+        */
+       public $editOK = FALSE;
 
+       /**
+        * The current record
+        *
+        * @var array
+        */
        public $rec = array();
 
        /**
@@ -91,7 +157,7 @@ class ClickMenu {
                $this->cmLevel = (int)GeneralUtility::_GP('cmLevel');
                $this->CB = GeneralUtility::_GP('CB');
                if (GeneralUtility::_GP('ajax')) {
-                       $this->ajax = 1;
+                       $this->ajax = TRUE;
                        // XML has to be parsed, no parse errors allowed
                        @ini_set('display_errors', 0);
                }
@@ -106,17 +172,17 @@ class ClickMenu {
                $this->iParts[3] = GeneralUtility::_GP('enDisItems');
                // Setting flags:
                if ($this->iParts[2]) {
-                       $this->listFrame = 1;
+                       $this->listFrame = TRUE;
                }
                if ($this->iParts[2] == 2) {
-                       $this->alwaysContentFrame = 1;
+                       $this->alwaysContentFrame = TRUE;
                }
                if (isset($this->iParts[1]) && $this->iParts[1] !== '') {
-                       $this->isDBmenu = 1;
+                       $this->isDBmenu = TRUE;
                }
                $TSkey = ($this->isDBmenu ? 'page' : 'folder') . ($this->listFrame ? 'List' : 'Tree');
                $this->disabledItems = GeneralUtility::trimExplode(',', $GLOBALS['BE_USER']->getTSConfigVal('options.contextMenu.' . $TSkey . '.disableItems'), TRUE);
-               $this->leftIcons = $GLOBALS['BE_USER']->getTSConfigVal('options.contextMenu.options.leftIcons');
+               $this->leftIcons = (bool)$GLOBALS['BE_USER']->getTSConfigVal('options.contextMenu.options.leftIcons');
                // &cmLevel flag detected (2nd level menu)
                if (!$this->cmLevel) {
                        // Make 1st level clickmenu:
@@ -171,7 +237,7 @@ class ClickMenu {
                // If record found (or root), go ahead and fill the $menuItems array which will contain data for the elements to render.
                if (is_array($this->rec) || $root) {
                        // Get permissions
-                       $lCP = $GLOBALS['BE_USER']->calcPerms(BackendUtility::getRecord('pages', $table == 'pages' ? $this->rec['uid'] : $this->rec['pid']));
+                       $lCP = $GLOBALS['BE_USER']->calcPerms(BackendUtility::getRecord('pages', $table === 'pages' ? $this->rec['uid'] : $this->rec['pid']));
                        // View
                        if (!in_array('view', $this->disabledItems)) {
                                if ($table === 'pages') {
@@ -187,7 +253,7 @@ class ClickMenu {
                                if (!in_array('edit', $this->disabledItems)) {
                                        $menuItems['edit'] = $this->DB_edit($table, $uid);
                                }
-                               $this->editOK = 1;
+                               $this->editOK = TRUE;
                        }
                        // New:
                        if (!in_array('new', $this->disabledItems) && $GLOBALS['BE_USER']->isPSet($lCP, $table, 'new')) {
@@ -225,7 +291,7 @@ class ClickMenu {
                                        $menuItems['pasteafter'] = $this->DB_paste($table, -$uid, 'after', $elInfo);
                                }
                        }
-                       $subname = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('subname');
+                       $subname = GeneralUtility::_GP('subname');
                        $localItems = array();
                        if (!$this->cmLevel && !in_array('moreoptions', $this->disabledItems, TRUE)) {
                                // Creating menu items here:
@@ -234,7 +300,7 @@ class ClickMenu {
                                        $localItems['moreoptions'] = $this->linkItem(
                                                $this->label('more'),
                                                $this->excludeIcon(''),
-                                               'top.loadTopMenu(\'' . \TYPO3\CMS\Core\Utility\GeneralUtility::linkThisScript() . '&cmLevel=1&subname=moreoptions\');return false;',
+                                               'top.loadTopMenu(\'' . GeneralUtility::linkThisScript() . '&cmLevel=1&subname=moreoptions\');return false;',
                                                FALSE,
                                                TRUE
                                        );
@@ -339,7 +405,7 @@ class ClickMenu {
                        $lCP = $GLOBALS['BE_USER']->calcPerms(BackendUtility::getRecord('pages', $table === 'pages' ? $this->rec['uid'] : $this->rec['pid']));
                        // Edit:
                        if (!$root && ($GLOBALS['BE_USER']->isPSet($lCP, $table, 'edit') || $GLOBALS['BE_USER']->isPSet($lCP, $table, 'editcontent'))) {
-                               $this->editOK = 1;
+                               $this->editOK = TRUE;
                        }
                        $menuItems = $this->processingByExtClassArray($menuItems, $table, $uid);
                }
@@ -415,8 +481,10 @@ class ClickMenu {
         */
        public function urlRefForCM($url, $retUrl = '', $hideCM = 1, $overrideLoc = '') {
                $loc = 'top.content.list_frame';
-               $editOnClick = ($overrideLoc ? 'var docRef=' . $overrideLoc : 'var docRef=(top.content.list_frame)?top.content.list_frame:' . $loc) . '; docRef.location.href=top.TS.PATH_typo3+\'' . $url . '\'' . ($retUrl ? '+\'&' . $retUrl . '=\'+top.rawurlencode(' . $this->frameLocation('docRef.document') . '.pathname+' . $this->frameLocation('docRef.document') . '.search)' : '') . ';' . ($hideCM ? 'return hideCM();' : '');
-               return $editOnClick;
+               return ($overrideLoc ? 'var docRef=' . $overrideLoc : 'var docRef=(top.content.list_frame)?top.content.list_frame:' . $loc)
+                       . '; docRef.location.href=top.TS.PATH_typo3+\'' . $url . '\'' . ($retUrl ? '+\'&' . $retUrl . '=\'+top.rawurlencode('
+                       . $this->frameLocation('docRef.document') . '.pathname+' . $this->frameLocation('docRef.document') . '.search)' : '')
+                       . ';' . ($hideCM ? 'return hideCM();' : '');
        }
 
        /**
@@ -429,14 +497,14 @@ class ClickMenu {
         * @internal
         */
        public function DB_copycut($table, $uid, $type) {
-               if ($this->clipObj->current == 'normal') {
+               if ($this->clipObj->current === 'normal') {
                        $isSel = $this->clipObj->isSelected($table, $uid);
                }
                $addParam = array();
                if ($this->listFrame) {
                        $addParam['reloadListFrame'] = $this->alwaysContentFrame ? 2 : 1;
                }
-               return $this->linkItem($this->label($type), $this->excludeIcon(IconUtility::getSpriteIcon('actions-edit-' . $type . ($isSel === $type ? '-release' : ''))), 'top.loadTopMenu(\'' . $this->clipObj->selUrlDB($table, $uid, ($type == 'copy' ? 1 : 0), ($isSel == $type), $addParam) . '\');return false;');
+               return $this->linkItem($this->label($type), $this->excludeIcon(IconUtility::getSpriteIcon('actions-edit-' . $type . ($isSel === $type ? '-release' : ''))), 'top.loadTopMenu(\'' . $this->clipObj->selUrlDB($table, $uid, ($type === 'copy' ? 1 : 0), ($isSel == $type), $addParam) . '\');return false;');
        }
 
        /**
@@ -455,7 +523,7 @@ class ClickMenu {
                $editOnClick = '';
                $loc = 'top.content.list_frame';
                if ($GLOBALS['BE_USER']->jsConfirmation(2)) {
-                       $conf = $loc . ' && confirm(' . GeneralUtility::quoteJSvalue(sprintf($GLOBALS['LANG']->sL(('LLL:EXT:lang/locallang_core.xlf:mess.' . ($elInfo[2] == 'copy' ? 'copy' : 'move') . '_' . $type)), $elInfo[0], $elInfo[1])) . ')';
+                       $conf = $loc . ' && confirm(' . GeneralUtility::quoteJSvalue(sprintf($GLOBALS['LANG']->sL(('LLL:EXT:lang/locallang_core.xlf:mess.' . ($elInfo[2] === 'copy' ? 'copy' : 'move') . '_' . $type)), $elInfo[0], $elInfo[1])) . ')';
                } else {
                        $conf = $loc;
                }
@@ -516,8 +584,8 @@ class ClickMenu {
         */
        public function DB_db_list($table, $uid, $rec) {
                $urlParams = array();
-               $urlParams['id'] = $table == 'pages' ? $uid : $rec['pid'];
-               $urlParams['table'] = $table == 'pages' ? '' : $table;
+               $urlParams['id'] = $table === 'pages' ? $uid : $rec['pid'];
+               $urlParams['table'] = $table === 'pages' ? '' : $table;
                $url = BackendUtility::getModuleUrl('web_list', $urlParams, '', TRUE);
                return $this->linkItem($GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->getLL('CM_db_list')), $this->excludeIcon(IconUtility::getSpriteIcon('actions-system-list-open')), 'top.nextLoadModuleUrl=\'' . $url . '\';top.goToModule(\'web_list\', 1);', 0);
        }
@@ -533,8 +601,8 @@ class ClickMenu {
         */
        public function DB_moveWizard($table, $uid, $rec) {
                // Hardcoded field for tt_content elements.
-               $url = 'move_el.php?table=' . $table . '&uid=' . $uid . ($table == 'tt_content' ? '&sys_language_uid=' . (int)$rec['sys_language_uid'] : '');
-               return $this->linkItem($GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->getLL('CM_moveWizard' . ($table == 'pages' ? '_page' : ''))), $this->excludeIcon(IconUtility::getSpriteIcon('actions-' . ($table === 'pages' ? 'page' : 'document') . '-move')), $this->urlRefForCM($url, 'returnUrl'), 0);
+               $url = 'move_el.php?table=' . $table . '&uid=' . $uid . ($table === 'tt_content' ? '&sys_language_uid=' . (int)$rec['sys_language_uid'] : '');
+               return $this->linkItem($GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->getLL('CM_moveWizard' . ($table === 'pages' ? '_page' : ''))), $this->excludeIcon(IconUtility::getSpriteIcon('actions-' . ($table === 'pages' ? 'page' : 'document') . '-move')), $this->urlRefForCM($url, 'returnUrl'), 0);
        }
 
        /**
@@ -551,7 +619,7 @@ class ClickMenu {
                $tmpTSc = BackendUtility::getModTSconfig($this->pageinfo['uid'], 'mod.web_list');
                $tmpTSc = $tmpTSc['properties']['newContentWiz.']['overrideWithExtension'];
                $newContentWizScriptPath = ExtensionManagementUtility::isLoaded($tmpTSc) ? ExtensionManagementUtility::extRelPath($tmpTSc) . 'mod1/db_new_content_el.php' : 'sysext/cms/layout/db_new_content_el.php';
-               $url = $table == 'pages' ? 'db_new.php?id=' . $uid . '&pagesOnly=1' : $newContentWizScriptPath . '?id=' . $rec['pid'] . '&sys_language_uid=' . (int)$rec['sys_language_uid'];
+               $url = $table === 'pages' ? 'db_new.php?id=' . $uid . '&pagesOnly=1' : $newContentWizScriptPath . '?id=' . $rec['pid'] . '&sys_language_uid=' . (int)$rec['sys_language_uid'];
                return $this->linkItem($GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->getLL('CM_newWizard')), $this->excludeIcon(IconUtility::getSpriteIcon('actions-' . ($table === 'pages' ? 'page' : 'document') . '-new')), $this->urlRefForCM($url, 'returnUrl'), 0);
        }
 
@@ -564,7 +632,7 @@ class ClickMenu {
         * @internal
         */
        public function DB_editAccess($table, $uid) {
-               $addParam = '&columnsOnly=' . rawurlencode((implode(',', $GLOBALS['TCA'][$table]['ctrl']['enablecolumns']) . ($table == 'pages' ? ',extendToSubpages' : '')));
+               $addParam = '&columnsOnly=' . rawurlencode((implode(',', $GLOBALS['TCA'][$table]['ctrl']['enablecolumns']) . ($table === 'pages' ? ',extendToSubpages' : '')));
                $url = 'alt_doc.php?edit[' . $table . '][' . $uid . ']=edit' . $addParam;
                return $this->linkItem($GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->getLL('CM_editAccess')), $this->excludeIcon(IconUtility::getSpriteIcon('actions-document-edit-access')), $this->urlRefForCM($url, 'returnUrl'), 1);
        }
@@ -597,9 +665,9 @@ class ClickMenu {
                $loc = 'top.content.list_frame';
                $addParam = '';
                $theIcon = 'actions-document-open';
-               if ($this->iParts[0] == 'pages' && $this->iParts[1] && $GLOBALS['BE_USER']->check('modules', $pageModule)) {
+               if ($this->iParts[0] === 'pages' && $this->iParts[1] && $GLOBALS['BE_USER']->check('modules', $pageModule)) {
                        $theIcon = 'actions-page-open';
-                       $this->editPageIconSet = 1;
+                       $this->editPageIconSet = TRUE;
                        if ($GLOBALS['BE_USER']->uc['classicPageEditMode']) {
                                $addParam = '&editRegularContentFromId=' . (int)$this->iParts[1];
                        } else {
@@ -916,14 +984,14 @@ class ClickMenu {
                // Pseudo table name for use in the clipboard.
                $table = '_FILE';
                $uid = GeneralUtility::shortmd5($path);
-               if ($this->clipObj->current == 'normal') {
+               if ($this->clipObj->current === 'normal') {
                        $isSel = $this->clipObj->isSelected($table, $uid);
                }
                $addParam = array();
                if ($this->listFrame) {
                        $addParam['reloadListFrame'] = $this->alwaysContentFrame ? 2 : 1;
                }
-               return $this->linkItem($this->label($type), $this->excludeIcon(IconUtility::getSpriteIcon('actions-edit-' . $type . ($isSel === $type ? '-release' : ''))), 'top.loadTopMenu(\'' . $this->clipObj->selUrlFile($path, ($type == 'copy' ? 1 : 0), ($isSel == $type), $addParam) . '\');return false;');
+               return $this->linkItem($this->label($type), $this->excludeIcon(IconUtility::getSpriteIcon('actions-edit-' . $type . ($isSel === $type ? '-release' : ''))), 'top.loadTopMenu(\'' . $this->clipObj->selUrlFile($path, ($type === 'copy' ? 1 : 0), ($isSel == $type), $addParam) . '\');return false;');
        }
 
        /**
@@ -958,7 +1026,7 @@ class ClickMenu {
                $editOnClick = '';
                $loc = 'top.content.list_frame';
                if ($GLOBALS['BE_USER']->jsConfirmation(2)) {
-                       $conf = $loc . ' && confirm(' . GeneralUtility::quoteJSvalue(sprintf($GLOBALS['LANG']->sL(('LLL:EXT:lang/locallang_core.xlf:mess.' . ($elInfo[2] == 'copy' ? 'copy' : 'move') . '_into')), $elInfo[0], $elInfo[1])) . ')';
+                       $conf = $loc . ' && confirm(' . GeneralUtility::quoteJSvalue(sprintf($GLOBALS['LANG']->sL(('LLL:EXT:lang/locallang_core.xlf:mess.' . ($elInfo[2] === 'copy' ? 'copy' : 'move') . '_into')), $elInfo[0], $elInfo[1])) . ')';
                } else {
                        $conf = $loc;
                }
@@ -992,7 +1060,7 @@ class ClickMenu {
        public function printDragDropClickMenu($table, $srcId, $dstId) {
                $menuItems = array();
                // If the drag and drop menu should apply to PAGES use this set of menu items
-               if ($table == 'pages') {
+               if ($table === 'pages') {
                        // Move Into:
                        $menuItems['movePage_into'] = $this->dragDrop_copymovepage($srcId, $dstId, 'move', 'into');
                        // Move After:
@@ -1003,7 +1071,7 @@ class ClickMenu {
                        $menuItems['copyPage_after'] = $this->dragDrop_copymovepage($srcId, $dstId, 'copy', 'after');
                }
                // If the drag and drop menu should apply to FOLDERS use this set of menu items
-               if ($table == 'folders') {
+               if ($table === 'folders') {
                        // Move Into:
                        $menuItems['moveFolder_into'] = $this->dragDrop_copymovefolder($srcId, $dstId, 'move');
                        // Copy Into:
@@ -1039,7 +1107,7 @@ class ClickMenu {
         * @internal
         */
        public function dragDrop_copymovepage($srcUid, $dstUid, $action, $into) {
-               $negativeSign = $into == 'into' ? '' : '-';
+               $negativeSign = $into === 'into' ? '' : '-';
                $editOnClick = '';
                $loc = 'top.content.list_frame';
                $editOnClick = 'if(' . $loc . '){' . $loc . '.document.location=top.TS.PATH_typo3+"tce_db.php?redirect="+top.rawurlencode(' . $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+"' . '&cmd[pages][' . $srcUid . '][' . $action . ']=' . $negativeSign . $dstUid . '&prErr=1&vC=' . $GLOBALS['BE_USER']->veriCode() . BackendUtility::getUrlToken('tceAction') . '";}hideCM();top.nav.refresh();';
@@ -1171,7 +1239,7 @@ class ClickMenu {
                $out = array();
                foreach ($menuItems as $cc => $i) {
                        // MAKE horizontal spacer
-                       if (is_string($i) && $i == 'spacer') {
+                       if (is_string($i) && $i === 'spacer') {
                                $out[] = '
                                        <tr class="bgColor2">
                                                <td colspan="2"><img src="clear.gif" width="1" height="1" alt="" /></td>
@@ -1217,7 +1285,6 @@ class ClickMenu {
                                        if ($place) {
                                                switch (strtolower($place)) {
                                                        case 'after':
-
                                                        case 'before':
                                                                if ($menuEntry) {
                                                                        $p = 1;
@@ -1236,20 +1303,20 @@ class ClickMenu {
                                                                        if (!$found) {
                                                                                break;
                                                                        }
-                                                                       if ($place == 'before') {
+                                                                       if ($place === 'before') {
                                                                                $pointer--;
-                                                                               if ($placeExtra == 'spacer' and prev($menuItems) == 'spacer') {
+                                                                               if ($placeExtra === 'spacer' and prev($menuItems) === 'spacer') {
                                                                                        $pointer--;
                                                                                }
-                                                                       } elseif ($place == 'after') {
-                                                                               if ($placeExtra == 'spacer' and next($menuItems) == 'spacer') {
+                                                                       } elseif ($place === 'after') {
+                                                                               if ($placeExtra === 'spacer' and next($menuItems) === 'spacer') {
                                                                                        $pointer++;
                                                                                }
                                                                        }
                                                                }
                                                                break;
                                                        default:
-                                                               if (strtolower($place) == 'top') {
+                                                               if (strtolower($place) === 'top') {
                                                                        $pointer = 0;
                                                                } else {
                                                                        $pointer = count($menuItems);
@@ -1328,7 +1395,7 @@ class ClickMenu {
                        if ($only) {
                                $newMenuArray = array();
                                foreach ($menuItems as $key => $value) {
-                                       if (GeneralUtility::inList($this->iParts[3], $key) || is_string($value) && $value == 'spacer') {
+                                       if (GeneralUtility::inList($this->iParts[3], $key) || is_string($value) && $value === 'spacer') {
                                                $newMenuArray[$key] = $value;
                                        }
                                }
@@ -1355,7 +1422,7 @@ class ClickMenu {
                // Remove doubles:
                $prevItemWasSpacer = FALSE;
                foreach ($menuItems as $key => $value) {
-                       if (is_string($value) && $value == 'spacer') {
+                       if (is_string($value) && $value === 'spacer') {
                                if ($prevItemWasSpacer) {
                                        unset($menuItems[$key]);
                                }
@@ -1368,14 +1435,14 @@ class ClickMenu {
                reset($menuItems);
                $key = key($menuItems);
                $value = current($menuItems);
-               if (is_string($value) && $value == 'spacer') {
+               if (is_string($value) && $value === 'spacer') {
                        unset($menuItems[$key]);
                }
                // Remove last:
                end($menuItems);
                $key = key($menuItems);
                $value = current($menuItems);
-               if (is_string($value) && $value == 'spacer') {
+               if (is_string($value) && $value === 'spacer') {
                        unset($menuItems[$key]);
                }
                // Return processed menu items: