Deprecation: #85902 - IMGMENU/GMENU
See forge#85902
Description
Rendering a Hierarchical Menu via TypoScript previously allowed various rendering methods, namely textual (TMENU
),
but also rendering menu items as images (GMENU
) or as an image map (IMGMENU
). Both graphical possibilities
have been marked as deprecated, as it is considered bad practice building websites
nowadays - images with a fixed width, and text within images has various drawbacks in terms of accessibility and
responsive renderings.
The following PHP classes have been marked as deprecated:
\TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Graphical Menu Content Object \TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Image Menu Content Object
The related TypoScript menu objects GMENU
and GMENUITEM
as well as IMGMENU
and IMGMENUITEM
have been
marked as deprecated.
On top the following TypoScript options within a MENU item, regarding TMENU have been marked as deprecated:
- imgNamePrefix
- imgNameNotRandom
The following TMENU item properties should not be used anymore.
- RO_chBgColor
- beforeImg
- beforeImgTagParams
- beforeImgLink
- beforeROImg
- RO
- afterImg
- afterImgTagParams
- afterImgLink
- afterROImg
The following item states have been marked as deprecated ("RO" for "rollover" in graphics-related items).
- IFSUBRO
- ACTRO
- ACTIFSUBRO
- CURRO
- CURIFSUBRO
- USRRO
- USERDEF1RO
- USERDEF2RO
The following previously public properties are now marked as internal and trigger a PHP E_
error,
partly due to preparations of refactoring the PHP code once GMENU functionality is removed, and partly
due to the highly connected functionality within the PHP classes:
TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->menu Number TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->entry Level TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->spacer IDList TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->doktype Exclude List TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->always Active PIDlist TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->img Name Prefix TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->img Name Not Random TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->debug TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->GMENU_ fix Key TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->MP_ array TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->conf TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->mconf - [not scanned]
TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->tmpl TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->sys_ page - [not scanned]
TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->id TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->next Active TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->menu Arr TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->hash TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->result TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->r L_ uid Register TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->INPfix MD5 TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->I TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->WMresult TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->WMfreeze Prefix TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->WMmenu Items TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->WMsubmenu Obj Suffixes TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->WMextra Script TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->WMc Obj TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->alternative Menu Temp Array TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->name Attribute
The following methods have changed visibility:
TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->sub Menu () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->link () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->proces Item States () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->change Links For Access Restricted Pages () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->is Next () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->is Active () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->is Current () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->is Sub Menu () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->is Item State () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->access Key () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->user Process () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->set ATag Parts () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->get Page Title () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->get MPvar () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->get Doktype Exclude Where () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->get Banned Uids () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Abstract Menu Content Object->menu Typo Link () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Graphical Menu Content Object->ext Proc_ RO () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Graphical Menu Content Object->ext Proc_ init () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Graphical Menu Content Object->ext Proc_ before Linking () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Graphical Menu Content Object->ext Proc_ after Linking () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Graphical Menu Content Object->ext Proc_ before All Wrap () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Graphical Menu Content Object->ext Proc_ finish () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Text Menu Content Object->get Before After () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Text Menu Content Object->ext Proc_ init () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Text Menu Content Object->ext Proc_ before Linking () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Text Menu Content Object->ext Proc_ after Linking () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Text Menu Content Object->ext Proc_ before All Wrap () TYPO3\
CMS\ Frontend\ Content Object\ Menu\ Text Menu Content Object->ext Proc_ finish ()
The following functionality has been marked as deprecated as well:
TYPO3\
CMS\ Frontend\ Controller\ Typo Script Frontend Controller->set JS ('mouse Over')
Impact
Instantiating any of the deprecated PHP classes, or calling any of the PHP methods will trigger a
PHP E_
error, as well as setting any of the previously public properties.
Using GMENU
or IMGMENU
or any of the TypoScript settings will also raise a PHP E_
error.
Affected Installations
TYPO3 installations using GMENU
or IMGMENU
TypoScript functionality, roll-over functionality within menus
in Frontend, or image-related functionality related to HMENU
, or extending HMENU
with their custom menus.
Migration
Migrate to TMENU
by using "before" and "after" functionality to effectively render images with GIFBUILDER
.