Drupal节点2页内容分割
我的雇主要求网站上的某些页面具有两页功能。 这意味着某些默认内容正常显示在node_view页面上,但第二部分应该在单击链接时显示。Drupal节点2页内容分割
这将是容易的,如果我能做到这一点在多个节点,但要求是所有的数据被存储在一个节点,但跨两页显示。
我砍死在一起,下面的代码:
function mymodule_node_view($node, $view_mode, $langcode){
$path = current_path();
$path_alias = drupal_lookup_path('alias',$path);
$links = array('test' => array('title'=>'my_link', 'query'=>'', 'href'=>"{$path_alias}/nextpage"));
$node->content['my_module'] = array(
'#theme' => 'links__node__mymodule',
'#links' => $links,
'#attributes' => array('class' => array('links', 'inline')),
);
}
这将创建一个名为my_link在我的内容区域的顶部超链接 - 这是伟大的。
的问题开始,当我点击超链接。假如我是http://example.org/homepage我单击超链接,我希望被重定向到http://example.org/homepage/nextpage。另外,我仍然想维护我所在的实际节点的视图和编辑选项卡。但是,drupal正确地给了我一个“找不到页面”的错误。
有趣的是,如果我用http://example.org/node/1,并参观了http://example.org/node/1/nextpage,我没有得到我上面discribed的问题,但该网址是描述性较差。
为了解决这个问题,我相信我必须扩展hook_menu但我不知道如何解释导致实际节点标题的任何数量的分类术语。所以,我无法预测,我会多少%节点标题我/下一页前,然后需要。但是,我想要仍然有它的父页面的查看和编辑选项卡。
这是我所有的处女地,所以我希望我已经解释的不够好,它是有道理的足够任何输入/帮助...这可以理解。
感谢
UPDATE:
我发现下面的函数返回做整个节点的路径完成分类的一个伟大的工作:
$path = current_path();
$path_alias = drupal_lookup_path('alias',$path);
什么我不知道是如何利用这hook_menu动态创建/下一页我的节点。
请记住,我真的不希望/下一页是完全独立于原始的和实际的Drupal节点。当打开/下一页我希望能够访问该视图时,编辑该节点的其他选项卡。
所以,/下一页有效地只是一个drupal节点页面的扩展。
感谢您的输入
我会检查node_menu()函数来得到它是如何实现的一些参考。
不确定您的分类要求,所以这可能是不够的,但我会去我的理解。
但是从我的头顶,我会去这样的事情:
function mymodule_menu() {
$items['node/%node/nextpage'] = array(
'title' => 'Next page',
'type' => MENU_LOCAL_TASK, // Makes it a tab on node/%node-pages
'page callback' => 'mymodule_node_page_view', // Your page display function
'page arguments' => array(1), // First will be a node object, second will be whatever value is passed in the url
// You should rip access callback and access arguments from node_menu()
);
return $items;
}
这应该这样做你所要求的。
这也可以,更容易和明确推荐使用面板/页面(另请参阅混沌工具)或可以说是视图这样做,因为它们完全有能力处理所有这些,而且通常是一种更好的方式来处理Drupal的优势,而不是自定义代码。
更新
为了澄清我已经简化了菜单钩,你应该能够使用下面的页面浏览功能。我仍然相信你会使用面板和覆盖node_view等来制定更好的解决方案。
菜单钩子中的MENU_LOCAL_TASK部分应该将其与View和Edit一起变成另一个选项卡。
function mymodule_node_page_view($node) {
die("It works: ".$node->title);
}
希望这会更有帮助。
有一个快速的方法来做到这一点。使用views module。
在字段部分选择您想要查看的字段。并在参数中添加nid
。
然后将链接添加到您已创建的节点视图。
最终结果http://mysite/views-page/[nid]
希望这有助于...*。
第二页的内容来自哪里?它是一个节点/字段/别的东西吗? –
第二页的内容可能来自“cck”字段,或者它可以是网络表格节点的一部分 – sisko