在使用Dedecms CMS构建美女图片站时,许多用户可能会遇到一个问题:图集模型中的 `{dede:productimagelist}` 标签无法调用图片的缩略图。然而,跟版网希望能够实现每张图片缩略图的调用,这该如何解决呢?
经过研究发现,Dedecms CMS本身具备为每个图片生成缩略图的功能,只需在发布图集时选择“多行多列”的显示方式即可。
以下是具体的操作步骤:
打开 `dedealbum_add.php` 文件,查看以下代码的关键部分:

/*-------------------*/
function _getformupload()
通过swfupload正常上传的图片
-------------------*/
if(is_array($_SESSION['bigfile_info']))
{
foreach($_SESSION['bigfile_info'] as $k=>$v)
{
$truefile = $cfg_basedir.$v;
if(strlen($v) 2 ? GetImageMapDD($v, $cfg_ddimg_width) : '';
if(!$hasone && $ddisfirst==1 && $litpic=='')
{
$litpic = empty($litpicname) ? GetImageMapDD($v, $cfg_ddimg_width) : $litpicname;
$hasone = TRUE;
}
$imginfo = !empty(${ 'picinfook'.$k}) ? ${ 'picinfook'.$k} : '';
$imgurls .= "{dede:img ddimg='$v' text='$imginfo'} $v {/dede:img}rn";
}
}
在这里,`$pagestyle` 是指发布图集时选择的样式类型,包括单页多图、幻灯片和多缩略图三种样式。如果选择了第三个选项(多缩略图样式),则可以自动生成缩略图。对于自定义模板,无需关注行数和列数,只需将缩略图宽度调整到合适的数值即可。
如果你在发布时未选择多缩略图样式,但仍然希望生成缩略图,可以通过修改已发布的图集,选中多缩略图样式来实现。
接下来,我们需要解决如何调用这些缩略图的问题。首先查看数据库中存储的图片信息,并结合上述代码中的 `$ddimg` 判断部分,可以确定 `$ddimg` 即为缩略图。
然后,打开 `/include/taglib/productimagelist.lib.php` 文件,找到处理标签的地方,添加一个新的读取属性。以下是需要添加的代码:

if($ctag->GetName()=="img")
{
$row = array();
$row['imgsrc'] = trim($ctag->GetInnerText());
$row['text'] = $ctag->GetAtt('text');
$row['litpic'] = $ctag->GetAtt('ddimg');
$images[] = $row;
}
完成上述操作后,`[field:litpic/]` 就可以成功显示出每张图片所对应的缩略图了。
总结来说,通过选择正确的显示样式并修改相关文件,我们可以轻松实现 Dedecms 图集中缩略图的调用功能。这对于构建高质量的图片站点非常有帮助。希望这篇文章能够帮助到正在使用 Dedecms 的开发者们!