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.