In my project we implement a little menu that provides information about the module. This snippet lives in drutexml.module
.
function drutexml_menu() {
$items['drutexml'] = array(
'title' => 'LaTeX filter implemented via LaTeXML',
'page callback' => 'drutexml_information',
'access callback' => TRUE,
);
return $items;
}
Actually this is a bit silly, and I want to turn it back off inside the installation profile. But as it turns out...
SELECT link_path, module FROM menu_links WHERE link_path = "drutexml";
+-----------+--------+
| link_path | module |
+-----------+--------+
| drutexml | system |
+-----------+--------+
and then in menu.inc
, where menu_link_delete
is implemented, we see this bit of logic on line 2997:
if ($item && ($item['module'] != 'system' || $item['updated'] || $force)) { ...
In other words, I can only delete non-"system" links. That's fine with me! Or it would be, if my link was stored with the name of the module where hook_menu
is implemented in the first place.
What's going on here? Why is this said to be a "system" link?