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节点页面的扩展。

感谢您的输入

+0

第二页的内容来自哪里?它是一个节点/字段/别的东西吗? –

+0

第二页的内容可能来自“cck”字段,或者它可以是网络表格节点的一部分 – sisko

我会检查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); 
} 

希望这会更有帮助。

+0

谢谢您的回应。我添加到我的原始文章 - 我发现了一个drupal函数,它返回完整的分类法的完整节点路径。请介意根据我更新的帖子修改您的代码吗? – sisko

+0

更新我的帖子,希望澄清它如何与您的需求。 我不是100%确定它是如何与路径别名交互的,这是您的额外问题。试试看看会是我的建议。 – jbn

+0

作为一个礼貌的更新你的广泛答案,我发现我的计划将分类法等纳入到我的“下一页”解决方案中并没有奏效。我最终决定在编辑,开发等选项卡中没有使用完整的分类标准和内容标题网址,而只是使用节点/编辑类型解决方案:-) – sisko

有一个快速的方法来做到这一点。使用views module

在字段部分选择您想要查看的字段。并在参数中添加nid

然后将链接添加到您已创建的节点视图。

最终结果http://mysite/views-page/[nid]

希望这有助于...*。