Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从php代码(drupal)添加可见菜单项_Drupal_Menu_Module - Fatal编程技术网

如何从php代码(drupal)添加可见菜单项

如何从php代码(drupal)添加可见菜单项,drupal,menu,module,Drupal,Menu,Module,我有一个重要的“创建”日期字段的内容类型。我有 菜单链接(在主链接中),链接到显示列表的页面 我的内容类型的所有节点的。() 我想有菜单链接(在主链接中可见)到每年 将显示“我的内容”类型的节点 (). 我想添加这些菜单 当节点正在创建和 只有当它有一个“创建”的新年日期时。 我知道我可以在mymodule_菜单函数中创建路径,但它 不创建可见的菜单项。(也许我能把它放好 父项链接id或其他操作?如果将菜单项的“类型”设置为“普通”菜单项,则可以使用创建可见菜单项。此外,还可以通过定义包含父项路

我有一个重要的“创建”日期字段的内容类型。我有 菜单链接(在主链接中),链接到显示列表的页面 我的内容类型的所有节点的。() 我想有菜单链接(在主链接中可见)到每年 将显示“我的内容”类型的节点 (). 我想添加这些菜单 当节点正在创建和 只有当它有一个“创建”的新年日期时。 我知道我可以在mymodule_菜单函数中创建路径,但它 不创建可见的菜单项。(也许我能把它放好
父项链接id或其他操作?

如果将菜单项的“类型”设置为“普通”菜单项,则可以使用创建可见菜单项。此外,还可以通过定义包含父项路径的路径来嵌套这些菜单项。例如,“mycontenttype/2010”将是“mycontenttype”的子菜单项(我相信您也可以使用Drupal的菜单管理表单手动设置父/子关系。您还可以使用“菜单项”值设置应添加到的菜单项,以自动将其添加到主链接,而不是导航

至于在新年期间创建节点时创建一个新菜单项,您需要稍微调整一下。我认为很容易确定该类型节点的唯一年份(使用视图或手动查询数据库)。要在添加新菜单项时更新菜单表,您可以调用

我认为将所有这些联系在一起的方法是编写钩子菜单函数来查询数据库,找到唯一的创建日期年份,并为每年创建一个菜单项。在钩子节点中,检查创建的年份是否是新的(必须有办法对此进行优化,这样它就不会在每次创建节点时都被调用,但我将留给您)。如果是新年,则清除菜单表(menu_rebuild)以重新创建菜单项,并包括一个用于新年的菜单项