2010-08-10 54 views
2

我正在开发一个模块来显示视频。我为用户创建了一个所谓的导航视图,从列表中选择一个视频。什么是向节点添加内容/视图的最佳方式

现在我想将此导航添加到type ='video'的每个节点。我不知道我是否应该为它创建一个模板(然后我必须将模板文件放在不太好的主题文件夹中)或使用某种钩子(我还没有弄清楚要使用哪一个)?

我试图安装http://drupal.org/project/views_attach,但是这个视图只出现在内容(标题后面),这不是我真正想要的内容。我希望它在标题之上。

请帮忙。我正在使用drupal 6 在此先感谢。

回答

0

我终于找到了如何实现视图为块(简单地选择块作为内容视图)和我使用下面的代码来显示某个节点类型的块

<?php 
    $match = FALSE; 
    $types = array('video'=>1); 

    if ((arg(0) == 'node') && is_numeric(arg(1))) { 
    $node = node_load(arg(1)); 
    $match = isset($types[$node->type]); 
    } 
    return $match 
} 
?> 
0

听起来就像你刚刚创建导航块的任何方式,并告诉块只显示在显示规则中使用php的视频节点类型。也许menu_block模块可以在这里帮助你。

+0

你的意思是hook_block? – w00d 2010-08-10 15:40:49

+0

不,有一个称为菜单块的模块,可让您轻松添加导航。 http://drupal.org/project/menu_block – Kevin 2010-08-10 16:56:57

0

您可以使用views_embed_view在节点模板中的任意位置渲染视图。

创建一个特定于您的视频节点类型的模板:node-video.tpl.php并在您想要的位置插入视图。

+0

我以前见过这个建议,对于简单的看法,它运作良好。如果您的视图拉入额外的css或js文件(如jcarousel视图插件),则tpl文件中的views_embed_view在页面生成链中发生得太晚,无法支持将文件添加到页面标记中。 – 2010-08-10 20:48:33

+0

@googletop我之前遇到过这个,但正如我所提到的,我不想将该文件放在主题文件夹中。我写了一个模块,所以我希望它是可以安装的。如果我使用模板,我怎样才能将它安装在其他网站? – w00d 2010-08-11 00:57:10

0

如果您不想通过模板文件进行操作,可以使用面板模块为每个节点类型设置不同的布局。一旦你安装了它,在node_view面板下创建一个变体,并限制为'video'类型的节点选择变体

相关问题