0

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

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

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

但这里有一个问题。虽然带有相册的主要 9x9 视图显示得很好,但当我通过单击特定相册节点的图片向下钻取时,它会在垂直行中显示上传的节点图像,我无法控制它的格式。

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

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

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

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

4

2 回答 2

1

我刚刚录制了一个截屏视频,概述了一种方法。在评论线程中有很多关于替代方法的讨论;如果您想更好地控制画廊本身的展示,我绝对建议您使用Views Attach 。

于 2009-06-23T02:23:14.297 回答
0

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

你是对的,也是错的。

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

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

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

于 2009-06-23T09:22:05.150 回答