替换 Drupal 中的节点编辑菜单

发布于 2024-12-17 07:22:59 字数 888 浏览 0 评论 0原文

如何更改(取消设置或添加)我的编辑节点菜单中的新按钮?在这种情况下,我想禁用“设置”菜单并添加一个新菜单...我查看了 $form$form_state,但没有那里有运气。至少,我是这么认为的...

在此处输入图像描述

编辑

模块名称:出版物
安装:publication.install
文件:publication.module

function publication_menu_alter(&$items) {
     unset($items['node/%node/edit']);
}

编辑2

function publication_menu() {
    $items['node/add/fiche'] = array(
        'title' => 'New linked fiche',
        'type' => MENU_LOCAL_TASK
    );
    return $items;
}

编辑3 我想做的是允许我的用户向现有内容添加更多内容。所以他们不允许编辑当前内容,只能添加一些细节。所以我想,我删除edit按钮并将其替换为add按钮,并且add按钮链接到他所在的页面可以创造更多的内容。就是这样 :)

How can I change (unset or add) a new button in my edit-node menu? In this case, I would like to diable the 'Settings'-menu and add a new menu... I looked in the $form and the $form_state, but no luck there. At least, that's what I think...

enter image description here

EDIT

Module name: publication
Install: publication.install
File: publication.module

function publication_menu_alter(&$items) {
     unset($items['node/%node/edit']);
}

EDIT 2

function publication_menu() {
    $items['node/add/fiche'] = array(
        'title' => 'New linked fiche',
        'type' => MENU_LOCAL_TASK
    );
    return $items;
}

EDIT 3
What I'm trying to do is to allow my users to add some more content to existing content. So they are not allowed to edit the current content, only to add some details. So I thought, I delete the edit-button and replace it with an add-button and the add-button links to a page where he can create more content. That's it :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

‘画卷フ 2024-12-24 07:22:59

您应该使用 hook_menu_alter 来取消设置菜单。

function publication_menu_alter(&$items) {
    // print_r($items);
    // Find path you want to unset then unset it.
    // Should be something like:
    unset($items['your/menu/path']);
}

以及用于定义新菜单的 hook_menu 。在你的情况下,我认为它应该是菜单类型 MENU_LOCAL_TASK 因为你想添加一个新选项卡。不是吗?

function publication_menu() {
    $items['node/%node/something_else'] = array(
        'title' => 'My title',
        'page callback' => 'mymodule_abc_view',
        'page arguments' => array(1),
        'access arguments' => array('access content'),
        'type' => MENU_LOCAL_TASK
    );
    return $items;
}

function mymodule_abc_view($nid = NULL) {
    return 'This node ID is '. $nid;
}

You should use hook_menu_alter to unset menu.

function publication_menu_alter(&$items) {
    // print_r($items);
    // Find path you want to unset then unset it.
    // Should be something like:
    unset($items['your/menu/path']);
}

And hook_menu for defining new one. In your case I believe it should be menu type MENU_LOCAL_TASK since you want to add a new tab. Isn't it?

function publication_menu() {
    $items['node/%node/something_else'] = array(
        'title' => 'My title',
        'page callback' => 'mymodule_abc_view',
        'page arguments' => array(1),
        'access arguments' => array('access content'),
        'type' => MENU_LOCAL_TASK
    );
    return $items;
}

function mymodule_abc_view($nid = NULL) {
    return 'This node ID is '. $nid;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文