require_once DOL_DOCUMENT_ROOT.'/'.$pagedef['headfile'] bypassed
Dolibarr's standard mechanism for a core file loading a module file
(dol_include_once(), via dol_buildpath()): no custom/ alternate-root
resolution, no '..' path-traversal guard, no graceful failure/logging
if the path were ever wrong. headfile values are plain relative paths
(e.g. 'core/lib/company.lib.php') so no registry changes needed.
Calls $hookmanager->initHooks(array('extrafieldsadmin', 'globaladmin'))
before getExtrafieldsAdminMap() runs, so a module declaring either
context in its module_parts['hooks'] descriptor gets its actions_xxx
class instantiated and can respond to the 'getExtrafieldsAdminMap'
hook added in the previous commit. Follows the {feature}admin +
globaladmin naming convention used by other admin pages (e.g.
admin/company.php, admin/defaultvalues.php).
Completes the agenda extrafields migration split from the previous commit: the
unified controller now lets a registry entry override the real elementtype
passed downstream while the whitelist still gates on the untrusted URL param,
letting the new 'agenda' entry and Task 11's existing 'actioncomm' entry both
operate on the same llx_actioncomm table with distinct tab-bar presentations.