使用Views和CCK在Drupal中自定义库布局

时间:2009-06-22 17:17:51

标签: drupal-6 drupal-views cck

我正在Drupal 6中创建一个画廊/专辑网站。 也许描述会有点详细,但仍然出于某种原因,以简单的方式在Drupal中创建一个库是一个问题。

至于现在我使用的是CCK + Views + FileField + ImageCache + Lightbox2组合。

这让我可以 - 创建可以容纳多个图像的Album CCK节点类型 - 创建一个以9x9方式显示相册的视图(使用寻呼机和每行项目)

但这是一个问题。虽然带有相册的主要9x9视图显示效果很好,但当我通过单击其图片深入查看特定的相册节点时,以垂直行显示上传的节点图像,我无法控制其格式化。 / p>

显然,我有两个选择 a)以某种方式控制我的CCK字段的html输出及其文件(分成行) b)或创建另一个视图以显示来自一个专辑的图片

至于现在,我不确定这两种方式中哪一种是最好的,具体我需要做什么。

a)我可以创建node-album.tpl文件 - 但是它的所有内容都已经在一个$ content变量中,我不能连续分成3个项目。我错了吗?

b)如果我决定创建一个视图来显示单个Album节点中的项目,我不确定我是如何从父Albums视图中引用它的。问题是在视图的字段部分我能够覆盖链接,但它只提供2个替换模式以传递给潜在的“子”视图,它们是[title]和[field_images_fid] - 足以创建一个孩子查看来自特定相册的图像?

2 个答案:

答案 0 :(得分:1)

我只是recorded a screencast outlining one approach。关于替代方法的评论主题中有相当多的讨论;如果您想要更多地控制图库本身的演示文稿,我肯定建议使用Views Attach

答案 1 :(得分:0)

  

我可以创建node-album.tpl文件 - 但是它的所有内容都已经在一个$ content变量中,我不能连续分成3个项目。我错了吗?

你是对是错。

在你的template.php文件中你可以将其他变量传递到你的node-album.tpl中,你可以传递$ node变量并以非常自定义的方式显示,虽然这会在以后消除灵活性,就好像你使用另一个向$ content添加内容的模块,您必须编辑tpl文件才能访问新变量。

要执行此操作,请使用template.php文件中的preprocess_page挂钩。您可以将变量添加到$ vars数组,并在node-album.tpl文件中使用它们。我认为已经在tpl文件中定义了$ node,这可能会让你的生活更轻松。你可以完全忽略内容。

如果这对您不起作用,您还可以创建自定义模块并使用hook_nodeapi和hook_theme以任何方式使用主题内容,同时仍然使用$ content。然而,这可能对你的需求有点太多的工作(如果你想这样做,回复,我会写一个单独的答案)。