You are here

仅仅使用CCK和Views模块创建一个相册(1)

由于Drupal社区正在越来越多的使用CCK和Views,所以我想尝试着使用CCK和Views来创建一个相册,而不是使用Image模块(它内置了相册功能)。我也想使用Imagecache,它能够对上传的图片自动的调整尺寸和进行裁剪(而Image模块做不到这一点)。
[对于那些不了解的朋友,这里解释一下,Imagecache存储了你上传的原图片,接着根据你的Imagecache的预设置(presets)来创建和存储调整后的图片。在以后,你可以修改这些预设置(presets),并重新生成你想要的调整后的图片,而不是将它们再重新上传一边。非常酷。]
下面是我使用的drupal模块:
• Drupal 5.x
• CCK 5.x-1.3 (这个模块的为叫做“内容构建工具包”('Content Construction Kit'),而不是CCK)
• Imagefield 5.x-1.x-dev (2007-Feb-23)
• Imagecache 5.x-1.1
• Views 5.x-1.5
• Views Bonus Pack 5.x-1.0
• Custom Pagers 5.x-1.7
• Thickbox 5.x-1.x-dev (2007-May-05)
[注意:我没有安装Image模块。它可能很重要——但不一定,我在这里就没有使用它。]
步骤:
1,安装和启用上面所有的Drupal模块。
2,导航到Imagecache的管理界面(admin/settings/imagecache)并创建你的图片预设置。我创建了两个:
(译者注:最新的Imagecache的管理界面已经改为admin/build/imagecache。)
a, 'Square Thumbnail'(正方形缩图)-- scale(尺寸)设为150 x 150,而crop(裁剪后的)设为75 x 75。

b, 'Display'(“展示”)-- scale(尺寸)设为650 x 650。
在上面的两个中,在尺寸部分的调整尺寸('Scale to fit')选项中我选择了内部尺寸('Inside dimensions')。
正方形缩图将在相册中使用,而展示图则在浏览图片节点时使用。
3,导航到节点类型管理界面(admin/content/types),为图片创建一个节点类型。我这里命名为'Image'(不要与Image模块创建的Image节点类型混淆了),并使用小写的'image'作为节点类型(机器识别的名字)。
[注意:我觉得为这个节点类型取什么名称并不重要。不过我这里还是将其命名为了'image'(机器识别的名字)。如果有其它的模块用到了’image’节点类型(我不知道是否这样),那么如果你不把它叫做'image'的话,可能就不会正常工作。仅仅猜测这可能是一个问题。]
为你的'Image'节点类型添加一个图片字段。我也将该字段命名为了'Image'。[这个字段叫什么并不重要]。当你创建这个字段时,你可以选择为节点的teaser和body使用Imagecache的预设置。访问'Display fields'(展示所有字段)页面,将标签改为隐藏,这样就不会在每个图片上显示标签“Image”了。
5,现在创建一个视图View(admin/build/views)。我这里叫做“相册”('Image Gallery')。你仅需要一个页面,而不是一个区块。选择'gallery'作为页面的URL(或者其它任何你想要的都可以)。
a, 在页面设置中,选择'Bonus: Grid View'作为视图类型。我这里每个页面展示24个节点--- 1排6个,共4派(最多)。
b, 在字段部分,添加字段标题('Title')和图片('Image')(在前面我们创建了CCK图片字段)。
c, 在图片字段,为'Handler'(处理器)选择'Do not group multiple values'(不对多值分组),并在'Option'(选项)部分为你的相册图片选择Imagecache的预设置尺寸。如果你安装了Thickbox模块,你应该能够看到一个名为'Thickbox: Square_Thumbnail'的选项(其中'Square_Thumbnail'使你在前面的Imagecache预设置中创建的).选择这一个.
d, 在过滤器部分选择
Node Published = Yes
Node Type 'is one of' Image (其中'Image'是你的CCK创建的图片节点类型).
e, 'Bonus: Grid View' 默认为4栏。如果你想修改它,那么在'views_bonus'模块找到下面的代码:

function theme_views_bonus_view_grid($view, $nodes, $type) {
drupal_add_css(drupal_get_path('module', 'views_bonus') .'/views_bonus.css');
$fields = _views_get_fields();
$content = 'name . '">';
$count = 0;

….. 更多代码 ……

}
$content .= '';
if ($content) {
return $content;
}

}
将整个函数拷贝到你主题下的template.php文件中,重命名,将'theme_views_bonus_view_grid'改为'yourthemename_views_bonus_view_grid'。我使用的是Zen主题,所以函数名改为了'zen_views_bonus_view_grid'。
你可以在两处看到这一代码
$count % 4 == 0
仅仅将4(两处都要改)改为任何你想要的栏数。我这里改为了6,这样一行就有6个格。
到此,如果你创建了一些CCK图片节点的话,访问[yourdomain] /?q=gallery你就可以看到这些图片的相册了(如果你使用'gallery'作为你的相册视图页面的URL的话)。