Details
-
Type:
Improvement
-
Status: Done/Fixed
-
Priority:
Minor
-
Resolution: Won't Fix
-
Affects Version/s: 3.4.2
-
Fix Version/s: 3.4.4
-
Component/s: CiviCRM API
-
Labels:None
Description
Background: Module developers may register new pages/paths in the CiviCRM menu system by implementing hook_civicrm_xmlMenu. Prior to CiviCRM 3.0, these menu items automatically appeared in the web interface; following 3.0, these menu items must also be registered and maintained in the civicrm_navigation table.
Goal: Extend the XML menu handler to optionally, automatically INSERT and DELETE rows in civicrm_navigation so that module implementers are not required to.
Details: Based on IRC discussion (2011-06-10 circa 6pm EDT) , a few details are anticipated:
1. The XML format will need to be extended with:
1.a. an option to enable/disable page registration. (e.g. "auto-register=true" or "is_managed=1").
1.b. an option to specify the name of the preferred/default parent node
2. When rebuilding the menu, one will need to reconcile the civicrm_navigation table with the XML – i.e. insert rows for new XML nodes and remove stale rows which no longer appear in XML.
3. The civicrm_navigation table will need to differentiate rows which are automatically managed from rows which are manually managed. (For comparison, the D6 menu system does this with two columns – a boolean "customized" and a string "module".)