TYPO3 CMS  TYPO3_7-6
TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject Class Reference
Inheritance diagram for TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject:
TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject TYPO3\CMS\Frontend\ContentObject\Menu\ImageMenuContentObject TYPO3\CMS\Frontend\ContentObject\Menu\JavaScriptMenuContentObject TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject

Public Member Functions

 start ($tmpl, $sys_page, $id, $conf, $menuNumber, $objSuffix='')
 
 makeMenu ()
 
 generate ()
 
 writeMenu ()
 
 filterMenuPages (&$data, $banUidArray, $spacer)
 
 procesItemStates ($splitCount)
 
 link ($key, $altTarget='', $typeOverride='')
 
 changeLinksForAccessRestrictedPages (&$LD, $page, $mainTarget, $typeOverride)
 
 isNext ($uid, $MPvar='')
 
 isActive ($uid, $MPvar='')
 
 isCurrent ($uid, $MPvar='')
 
 isSubMenu ($uid)
 
 isItemState ($kind, $key)
 
 accessKey ($title)
 
 userProcess ($mConfKey, $passVar)
 
 setATagParts ()
 
 getPageTitle ($title, $nav_title)
 
 getMPvar ($key)
 
 getDoktypeExcludeWhere ()
 
 getBannedUids ()
 
 menuTypoLink ($page, $oTarget, $no_cache, $script, $overrideArray='', $addParams='', $typeOverride='')
 
 getSysPage ()
 
 getParentContentObject ()
 
 setParentMenu (array $menuArr=[], $menuItemKey)
 
 getParentMenuArr ()
 
 getParentMenuItem ()
 

Public Attributes

 $menuNumber = 1
 
 $entryLevel = 0
 
 $spacerIDList = '199'
 
 $doktypeExcludeList = '6'
 
 $alwaysActivePIDlist = []
 
 $imgNamePrefix = 'img'
 
 $imgNameNotRandom = 0
 
 $debug = 0
 
 $parent_cObj = null
 
 $GMENU_fixKey = 'gmenu'
 
 $MP_array = []
 
 $conf = []
 
 $mconf = []
 
 $tmpl = null
 
 $sys_page = null
 
 $id
 
 $nextActive
 
 $menuArr
 
 $hash
 
 $result = []
 
 $rL_uidRegister
 
 $INPfixMD5
 
 $I
 
 $WMresult
 
 $WMfreezePrefix
 
 $WMmenuItems
 
 $WMsubmenuObjSuffixes
 
 $WMextraScript
 
 $WMcObj = null
 
 $alternativeMenuTempArray = ''
 
 $nameAttribute = 'name'
 
 $parentMenuArr = []
 

Protected Member Functions

 removeInaccessiblePages (array $pages)
 
 prepareMenuItemsForUserSpecificMenu ($specialValue, $sortingField)
 
 prepareMenuItemsForLanguageMenu ($specialValue)
 
 prepareMenuItemsForDirectoryMenu ($specialValue, $sortingField)
 
 prepareMenuItemsForUpdatedMenu ($specialValue, $sortingField)
 
 prepareMenuItemsForKeywordsMenu ($specialValue, $sortingField)
 
 prepareMenuItemsForRootlineMenu ()
 
 prepareMenuItemsForBrowseMenu ($specialValue, $sortingField, $additionalWhere)
 
 determineOriginalShortcutPage (array $page)
 
 sectionIndex ($altSortField, $pid=null)
 
 getDatabaseConnection ()
 
 getTypoScriptFrontendController ()
 
 getTimeTracker ()
 
 getCache ()
 
 getRuntimeCache ()
 
 hasParentMenuArr ()
 
 hasParentMenuItemKey ()
 
 hasParentMenuItem ()
 

Protected Attributes

 $useCacheHash = false
 
 $parentMenuArrItemKey
 

Detailed Description

Generating navigation/menus from TypoScript

The HMENU content object uses this (or more precisely one of the extension classes). Among others the class generates an array of menu items. Thereafter functions from the subclasses are called. The class is always used through extension classes (like GraphicalMenuContentObject or TextMenuContentObject).

Definition at line 37 of file AbstractMenuContentObject.php.

Member Function Documentation

◆ accessKey()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::accessKey (   $title)

Creates an access-key for a TMENU/GMENU menu item based on the menu item titles first letter

Parameters
string$titleMenu item title.
Returns
array Returns an array with keys "code" ("accesskey" attribute for the img-tag) and "alt" (text-addition to the "alt" attribute) if an access key was defined. Otherwise array was empty

Definition at line 1977 of file AbstractMenuContentObject.php.

References $a, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$result, and TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getTypoScriptFrontendController().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject\writeMenu(), and TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject\writeMenu().

◆ changeLinksForAccessRestrictedPages()

◆ determineOriginalShortcutPage()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::determineOriginalShortcutPage ( array  $page)
protected

Determines original shortcut destination in page overlays.

Since the pages records used for menu rendering are overlaid by default, the original 'shortcut' value is lost, if a translation did not define one. The behaviour in TSFE can be compared to the 'mergeIfNotBlank' feature, but it's hardcoded there and not related to the mentioned setting at all.

Parameters
array$page
Returns
array

Definition at line 1703 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getTypoScriptFrontendController().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\link().

◆ filterMenuPages()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::filterMenuPages ( $data,
  $banUidArray,
  $spacer 
)

Checks if a page is OK to include in the final menu item array. Pages can be excluded if the doktype is wrong, if they are hidden in navigation, have a uid in the list of banned uids etc.

Parameters
array$dataArray of menu items
array$banUidArrayArray of page uids which are to be excluded
bool$spacerIf set, then the page is a spacer.
Returns
bool Returns TRUE if the page can be safely included.
Exceptions

Definition at line 1216 of file AbstractMenuContentObject.php.

References $GLOBALS, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getTypoScriptFrontendController(), TYPO3\CMS\Core\Utility\GeneralUtility\getUserObj(), TYPO3\CMS\Core\Utility\GeneralUtility\hideIfDefaultLanguage(), TYPO3\CMS\Core\Utility\GeneralUtility\hideIfNotTranslated(), if, TYPO3\CMS\Core\Utility\ArrayUtility\inArray(), and TYPO3\CMS\Core\Utility\GeneralUtility\inList().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\makeMenu(), and TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\removeInaccessiblePages().

◆ generate()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::generate ( )

Generates the the menu data.

Subclasses should overwrite this method.

Returns
void

Definition at line 526 of file AbstractMenuContentObject.php.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\makeMenu().

◆ getBannedUids()

◆ getCache()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getCache ( )
protected

◆ getDatabaseConnection()

◆ getDoktypeExcludeWhere()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getDoktypeExcludeWhere ( )

◆ getMPvar()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getMPvar (   $key)

◆ getPageTitle()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getPageTitle (   $title,
  $nav_title 
)

Returns the title for the navigation

Parameters
string$titleThe current page title
string$nav_titleThe current value of the navigation title
Returns
string Returns the navigation title if it is NOT blank, otherwise the page title.

Definition at line 2038 of file AbstractMenuContentObject.php.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject\writeMenu(), and TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject\writeMenu().

◆ getParentContentObject()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getParentContentObject ( )

Returns the parent content object

Returns

Definition at line 2227 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$parent_cObj.

◆ getParentMenuArr()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getParentMenuArr ( )

◆ getParentMenuItem()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getParentMenuItem ( )

◆ getRuntimeCache()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getRuntimeCache ( )
protected

◆ getSysPage()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getSysPage ( )

◆ getTimeTracker()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getTimeTracker ( )
protected
Returns
TimeTracker

Definition at line 2251 of file AbstractMenuContentObject.php.

References $GLOBALS.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\start().

◆ getTypoScriptFrontendController()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::getTypoScriptFrontendController ( )
protected
Returns
TypoScriptFrontendController

Definition at line 2243 of file AbstractMenuContentObject.php.

References $GLOBALS.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\accessKey(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\changeLinksForAccessRestrictedPages(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\determineOriginalShortcutPage(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\filterMenuPages(), TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject\generate(), TYPO3\CMS\Frontend\ContentObject\Menu\ImageMenuContentObject\generate(), TYPO3\CMS\Frontend\ContentObject\Menu\JavaScriptMenuContentObject\generate_level(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getBannedUids(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\isSubMenu(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\link(), TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject\makeGifs(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\makeMenu(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\prepareMenuItemsForBrowseMenu(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\prepareMenuItemsForDirectoryMenu(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\prepareMenuItemsForKeywordsMenu(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\prepareMenuItemsForLanguageMenu(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\prepareMenuItemsForUpdatedMenu(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\sectionIndex(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\start(), TYPO3\CMS\Frontend\ContentObject\Menu\ImageMenuContentObject\writeMenu(), and TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject\writeMenu().

◆ hasParentMenuArr()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::hasParentMenuArr ( )
protected

◆ hasParentMenuItem()

◆ hasParentMenuItemKey()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::hasParentMenuItemKey ( )
protected

◆ isActive()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::isActive (   $uid,
  $MPvar = '' 
)

Returns TRUE if the page with UID $uid is active (in the current rootline)

Parameters
int$uidPage uid to evaluate.
string$MPvarMPvar for the current position of item.
Returns
bool TRUE if page with $uid is active

Definition at line 1841 of file AbstractMenuContentObject.php.

References $uid.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\JavaScriptMenuContentObject\generate_level(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\isItemState(), and TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\link().

◆ isCurrent()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::isCurrent (   $uid,
  $MPvar = '' 
)

Returns TRUE if the page with UID $uid is the CURRENT page (equals $this->getTypoScriptFrontendController()->id)

Parameters
int$uidPage uid to evaluate.
string$MPvarMPvar for the current position of item.
Returns
bool TRUE if page $uid = $this->getTypoScriptFrontendController()->id

Definition at line 1862 of file AbstractMenuContentObject.php.

References $uid.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\isItemState().

◆ isItemState()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::isItemState (   $kind,
  $key 
)

Used by procesItemStates() to evaluate if a menu item (identified by $key) is in a certain state.

Parameters
string$kindThe item state to evaluate (SPC, IFSUB, ACT etc... but no xxxRO states of course)
int$keyKey pointing to menu item from ->menuArr
Returns
bool Returns TRUE if state matches

Definition at line 1934 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getMPvar(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\isActive(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\isCurrent(), and TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\isSubMenu().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\procesItemStates().

◆ isNext()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::isNext (   $uid,
  $MPvar = '' 
)

Returns TRUE if the page with UID $uid is the NEXT page in root line (which means a submenu should be drawn)

Parameters
int$uidPage uid to evaluate.
string$MPvarMPvar for the current position of item.
Returns
bool TRUE if page with $uid is active

Definition at line 1820 of file AbstractMenuContentObject.php.

References $uid.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\changeLinksForAccessRestrictedPages().

◆ isSubMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::isSubMenu (   $uid)

◆ link()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::link (   $key,
  $altTarget = '',
  $typeOverride = '' 
)

Creates the URL, target and onclick values for the menu item link. Returns them in an array as key/value pairs for -tag attributes This function doesn't care about the url, because if we let the url be redirected, it will be logged in the stat!!!

Parameters
int$keyPointer to a key in the $this->menuArr array where the value for that key represents the menu item we are linking to (page record)
string$altTargetAlternative target
string$typeOverrideAlternative type
Returns
array Returns an array with A-tag attributes as key/value pairs (HREF, TARGET and onClick)

Definition at line 1550 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$conf, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\changeLinksForAccessRestrictedPages(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\determineOriginalShortcutPage(), TYPO3\CMS\Frontend\Page\PageRepository\DOKTYPE_LINK, TYPO3\CMS\Frontend\Page\PageRepository\DOKTYPE_SHORTCUT, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getMPvar(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getRuntimeCache(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getSysPage(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getTypoScriptFrontendController(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\isActive(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\menuTypoLink(), TYPO3\CMS\Core\Utility\GeneralUtility\quoteJSvalue(), TYPO3\CMS\Frontend\Page\PageRepository\SHORTCUT_MODE_RANDOM_SUBPAGE, and TYPO3\CMS\Core\Utility\GeneralUtility\validEmail().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject\writeMenu(), and TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject\writeMenu().

◆ makeMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::makeMenu ( )

Creates the menu in the internal variables, ready for output. Basically this will read the page records needed and fill in the internal $this->menuArr Based on a hash of this array and some other variables the $this->result variable will be loaded either from cache OR by calling the generate() method of the class to create the menu for real.

Returns
void

Definition at line 427 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\filterMenuPages(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\generate(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getBannedUids(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getCache(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getTypoScriptFrontendController(), TYPO3\CMS\Core\Utility\GeneralUtility\inList(), and TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\userProcess().

◆ menuTypoLink()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::menuTypoLink (   $page,
  $oTarget,
  $no_cache,
  $script,
  $overrideArray = '',
  $addParams = '',
  $typeOverride = '' 
)

Calls typolink to create menu item links.

Parameters
array$pagePage record (uid points where to link to)
string$oTargetTarget frame/window
bool$no_cacheTRUE if caching should be disabled
string$scriptAlternative script name (unused)
array | string$overrideArrayArray to override values in $page, empty string to skip override
string$addParamsParameters to add to URL
int | string$typeOverride"type" value, empty string means "not set"
Returns
array See linkData

Definition at line 2106 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$conf, and TYPO3\CMS\Core\Utility\MathUtility\canBeInterpretedAsInteger().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\changeLinksForAccessRestrictedPages(), TYPO3\CMS\Frontend\ContentObject\Menu\ImageMenuContentObject\generate(), TYPO3\CMS\Frontend\ContentObject\Menu\JavaScriptMenuContentObject\generate_level(), and TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\link().

◆ prepareMenuItemsForBrowseMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::prepareMenuItemsForBrowseMenu (   $specialValue,
  $sortingField,
  $additionalWhere 
)
protected

◆ prepareMenuItemsForDirectoryMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::prepareMenuItemsForDirectoryMenu (   $specialValue,
  $sortingField 
)
protected

◆ prepareMenuItemsForKeywordsMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::prepareMenuItemsForKeywordsMenu (   $specialValue,
  $sortingField 
)
protected

◆ prepareMenuItemsForLanguageMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::prepareMenuItemsForLanguageMenu (   $specialValue)
protected

◆ prepareMenuItemsForRootlineMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::prepareMenuItemsForRootlineMenu ( )
protected

Fetches all menuitems if special = rootline is set

Returns
array

Definition at line 1015 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Core\Utility\MathUtility\canBeInterpretedAsInteger().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\removeInaccessiblePages().

◆ prepareMenuItemsForUpdatedMenu()

◆ prepareMenuItemsForUserSpecificMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::prepareMenuItemsForUserSpecificMenu (   $specialValue,
  $sortingField 
)
protected

Fetches all menuitems if special = userfunction is set

Parameters
string$specialValueThe value from special.value
string$sortingFieldThe sorting field
Returns
array

Definition at line 640 of file AbstractMenuContentObject.php.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\removeInaccessiblePages().

◆ procesItemStates()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::procesItemStates (   $splitCount)

Generating the per-menu-item configuration arrays based on the settings for item states (NO, RO, ACT, CUR etc) set in ->mconf (config for the current menu object) Basically it will produce an individual array for each menu item based on the item states. BUT in addition the "optionSplit" syntax for the values is ALSO evaluated here so that all property-values are "option-splitted" and the output will thus be resolved. Is called from the "generate" functions in the extension classes. The function is processor intensive due to the option split feature in particular. But since the generate function is not always called (since the ->result array may be cached, see makeMenu) it doesn't hurt so badly.

Parameters
int$splitCountNumber of menu items in the menu
Returns
array An array with two keys: array($NOconf,$ROconf) - where $NOconf contains the resolved configuration for each item when NOT rolled-over and $ROconf contains the ditto for the mouseover state (if any)

Definition at line 1290 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\isItemState().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject\generate(), TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject\generate(), and TYPO3\CMS\Frontend\ContentObject\Menu\ImageMenuContentObject\generate().

◆ removeInaccessiblePages()

◆ sectionIndex()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::sectionIndex (   $altSortField,
  $pid = null 
)
protected

Generates a list of content objects with sectionIndex enabled available on a specific page

Used for menus with sectionIndex enabled

Parameters
string$altSortFieldAlternative sorting field
int$pidThe page id to search for sections
Exceptions

Definition at line 2146 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$result, $uid, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getDatabaseConnection(), and TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getTypoScriptFrontendController().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\removeInaccessiblePages().

◆ setATagParts()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::setATagParts ( )

Creates the tag parts for the current item (in $this->I, [A1] and [A2]) based on other information in this array (like $this->I['linkHREF'])

Returns
void

Definition at line 2022 of file AbstractMenuContentObject.php.

References $params, and TYPO3\CMS\Core\Utility\GeneralUtility\implodeAttributes().

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject\writeMenu(), and TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject\writeMenu().

◆ setParentMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::setParentMenu ( array  $menuArr = [],
  $menuItemKey 
)

Set the parentMenuArr and key to provide the parentMenu informations to the subMenu, special fur IProcFunc and itemArrayProcFunc user functions.

Definition at line 2281 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$menuArr.

◆ start()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::start (   $tmpl,
  $sys_page,
  $id,
  $conf,
  $menuNumber,
  $objSuffix = '' 
)

The initialization of the object. This just sets some internal variables.

Parameters
TemplateService$tmplThe $this->getTypoScriptFrontendController()->tmpl object
PageRepository$sys_pageThe $this->getTypoScriptFrontendController()->sys_page object
int | string$idA starting point page id. This should probably be blank since the 'entryLevel' value will be used then.
array$confThe TypoScript configuration for the HMENU cObject
int$menuNumberMenu number; 1,2,3. Should probably be 1
string$objSuffixSubmenu Object suffix. This offers submenus a way to use alternative configuration for specific positions in the menu; By default "1 = TMENU" would use "1." for the TMENU configuration, but if this string is set to eg. "a" then "1a." would be used for configuration instead (while "1 = " is still used for the overall object definition of "TMENU")
Returns
bool Returns TRUE on success
See also
::HMENU()

Definition at line 258 of file AbstractMenuContentObject.php.

References TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$conf, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$entryLevel, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$id, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$menuNumber, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$MP_array, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$sys_page, TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\$tmpl, debug(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getDatabaseConnection(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getTimeTracker(), TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\getTypoScriptFrontendController(), TYPO3\CMS\Core\Utility\GeneralUtility\intExplode(), and TYPO3\CMS\Core\Utility\GeneralUtility\makeInstance().

◆ userProcess()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::userProcess (   $mConfKey,
  $passVar 
)

Calls a user function for processing of internal data. Used for the properties "IProcFunc" and "itemArrayProcFunc"

Parameters
string$mConfKeyKey pointing for the property in the current ->mconf array holding possibly parameters to pass along to the function/method. Currently the keys used are "IProcFunc" and "itemArrayProcFunc".
mixed$passVarA variable to pass to the user function and which should be returned again from the user function. The idea is that the user function modifies this variable according to what you want to achieve and then returns it. For "itemArrayProcFunc" this variable is $this->menuArr, for "IProcFunc" it is $this->I
Returns
mixed The processed $passVar

Definition at line 2006 of file AbstractMenuContentObject.php.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\makeMenu(), TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject\writeMenu(), and TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject\writeMenu().

◆ writeMenu()

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::writeMenu ( )
Returns
string The HTML for the menu

Definition at line 533 of file AbstractMenuContentObject.php.

Member Data Documentation

◆ $alternativeMenuTempArray

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$alternativeMenuTempArray = ''

◆ $alwaysActivePIDlist

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$alwaysActivePIDlist = []

Definition at line 70 of file AbstractMenuContentObject.php.

◆ $conf

◆ $debug

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$debug = 0

Definition at line 85 of file AbstractMenuContentObject.php.

◆ $doktypeExcludeList

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$doktypeExcludeList = '6'

Definition at line 65 of file AbstractMenuContentObject.php.

◆ $entryLevel

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$entryLevel = 0

◆ $GMENU_fixKey

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$GMENU_fixKey = 'gmenu'

Definition at line 97 of file AbstractMenuContentObject.php.

◆ $hash

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$hash

Definition at line 155 of file AbstractMenuContentObject.php.

◆ $I

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$I

Definition at line 178 of file AbstractMenuContentObject.php.

◆ $id

◆ $imgNameNotRandom

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$imgNameNotRandom = 0

Definition at line 80 of file AbstractMenuContentObject.php.

◆ $imgNamePrefix

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$imgNamePrefix = 'img'

Definition at line 75 of file AbstractMenuContentObject.php.

◆ $INPfixMD5

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$INPfixMD5

◆ $mconf

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$mconf = []

Definition at line 118 of file AbstractMenuContentObject.php.

◆ $menuArr

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$menuArr

◆ $menuNumber

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$menuNumber = 1

◆ $MP_array

◆ $nameAttribute

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$nameAttribute = 'name'

Definition at line 222 of file AbstractMenuContentObject.php.

◆ $nextActive

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$nextActive

◆ $parent_cObj

◆ $parentMenuArr

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$parentMenuArr = []

Definition at line 237 of file AbstractMenuContentObject.php.

◆ $parentMenuArrItemKey

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$parentMenuArrItemKey
protected

◆ $result

◆ $rL_uidRegister

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$rL_uidRegister

◆ $spacerIDList

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$spacerIDList = '199'

Definition at line 58 of file AbstractMenuContentObject.php.

◆ $sys_page

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$sys_page = null

◆ $tmpl

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$tmpl = null

◆ $useCacheHash

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$useCacheHash = false
protected

Definition at line 230 of file AbstractMenuContentObject.php.

◆ $WMcObj

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$WMcObj = null

Definition at line 208 of file AbstractMenuContentObject.php.

◆ $WMextraScript

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$WMextraScript

◆ $WMfreezePrefix

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$WMfreezePrefix

Definition at line 188 of file AbstractMenuContentObject.php.

◆ $WMmenuItems

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$WMmenuItems

◆ $WMresult

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$WMresult

Definition at line 183 of file AbstractMenuContentObject.php.

◆ $WMsubmenuObjSuffixes

TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::$WMsubmenuObjSuffixes

Definition at line 198 of file AbstractMenuContentObject.php.