gpt4 book ai didi

drupal - 复制完成后,如何修改 Drupal 6 中的 Book Copy 模块以将用户转发到不同的起始选项卡?

转载 作者:行者123 更新时间:2023-12-04 07:00:51 25 4
gpt4 key购买 nike

使用 Drupal 6 中的 Book Copy 模块复制书籍的示例调用(假设存在书籍 ID 为 142 的节点):

www.examplesite.com/book_copy/copy/142

当调用上述站点并复制节点 142 时,它会通知用户图书已复制,但会在图书副本的大纲选项卡上启动用户。我认为在图书副本的“编辑”选项卡上启动用户会更直观,这样用户就可以立即开始编辑图书信息。大纲不如在“编辑”选项卡中设置书籍的实际初始详细信息重要。

有谁知道我如何修改模块以将用户转发到“编辑”选项卡?我查看了代码,它只是没有点击。我无法准确解释这本书模块是如何在幕后工作的。任何建议将不胜感激。谢谢!

最佳答案

我没有使用 book_copy 的经验模块,但查看 book_copy_copy_book() 的最后几行功能:

$book = node_load(array('nid' => $newbid));
$book->bookcopydata = array();
$book->bookcopydata['message'] = t('Successfully cloned "%message", now viewing copy.', array('%message' => $message));
if (_book_outline_access($book)) {
$book->bookcopydata['url'] = 'node/'. $newbid .'/outline';
}
else {
$book->bookcopydata['url'] = 'node/'. $newbid;
}

// The function signature is: hook_book_copy_goto_alter(&$data);
drupal_alter("book_copy_goto", $book);
drupal_set_message($book->bookcopydata['message']);
drupal_goto($book->bookcopydata['url']); // requires user has 'administer book outline' or can access personal books

如果用户没有“管理书籍大纲”权限,他将自动在新书页结束。如果您希望用户始终在新书编辑页面上结束,您可以替换整个 if
if (_book_outline_access($book)) { ... }

带有调整后 url 的 else 部分的赋值子句:
$book->bookcopydata['url'] = 'node/'. $newbid . '/edit';

但是, 不建议直接更改模块代码 (更新冲突),特别是如果 该模块提供了一个 Hook 来实现您需要“从外部”进行的更改 .因此,在您的情况下,“正确”的方法是实现所提供的 hook_book_copy_goto_alter(&$data)在自定义模块中,以根据您的喜好调整重定向 URL:
function yourModule_book_copy_goto_alter(&$new_book) {
$new_book->bookcopydata['url'] = 'node/'. $new_book->nid . '/edit';
}

关于drupal - 复制完成后,如何修改 Drupal 6 中的 Book Copy 模块以将用户转发到不同的起始选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1864791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com