Actions
Bug #92508
closedhook filterMenuPages never has access to config
Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2020-10-07
Due date:
% Done:
100%
Estimated time:
TYPO3 Version:
10
PHP Version:
7.3
Tags:
hook, xclass, filter, menu
Complexity:
Is Regression:
Sprint Focus:
Description
Hooking functions created with
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/tslib/class.tslib_menu.php']['filterMenuPages'][]
(defined in TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject)
never have access to the capsulated configuration as there isn't any function to expose the values.
For a bit more complicated challenges this hook is therefore useless.
The ugly but possible alternative is an XCLASS.
EDIT:
-----
More detailed, using the hook the following interface is mandatory:
/** * interface for classes which hook into AbstractMenuContentObject */ interface AbstractMenuFilterPagesHookInterface { /** * Checks if a page is OK to include in the final menu item array. * * @param array $data Array of menu items * @param array $banUidArray Array of page uids which are to be excluded * @param bool $spacer If set, then the page is a spacer. * @param \TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject $obj The menu object * @return bool Returns TRUE if the page can be safely included. */ public function processFilter(array &$data, array $banUidArray, $spacer, AbstractMenuContentObject $obj); }
All the parameters of processFilter() are filled with values, but most of them can't be accessed because the are protected and never have getter-methods.
Actions