默认情况下,“书本复制”模块将创建一个新书,其名称与正在复制的书籍完全相同。这可能会让人感到困惑,实际上导致其中一个网站开发人员意外删除原始图书,这是在菜单等中引用并使网站处于奇怪的状态。
如果副本的名称不是原始名称,那么这个问题就永远不会发生。我挖掘了代码,但似乎无法弄明白。任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
您可以使用hook_book_copy_alter()
中提供的book_copy_copy_book()
:
...
// The function signature is: hook_book_copy_alter(&$node, $oldbid, $newbid);
drupal_alter("book_copy", $node, $bid, $newbid);
...
因此,在自定义模块中,您可以实现以下命令以在新节点上实现更改的标题:
function yourModule_book_copy_alter(&$node, $oldbid, $newbid) {
// Adjust the title ...
$node->title = 'Copy of ' .$node->title; // TODO: Change to the variation you want
// ... and save the node again
node_save($node);
}
答案 1 :(得分:0)
事实证明,在我找到任何答案之前,我已经弄明白了。我做的是替换:
$node->title = t('Clone of !title', array('!title' => $node->title));
使用:
if( $node->title == "Project Template" ){
$node->title = "New Project From Template";
}
else{
$node->title = t('Clone of !title', array('!title' => $node->title));
}
与node_clone模块关联的clone_pages.inc文件的lone_node_save()函数内部。