经过研究发现,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";
}
}
如果你在发布时未选择多缩略图样式,但仍然希望生成缩略图,可以通过修改已发布的图集,选中多缩略图样式来实现。
接下来,我们需要解决如何调用这些缩略图的问题。首先查看数据库中存储的图片信息,并结合上述代码中的 `$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;
}
总结来说,通过选择正确的显示样式并修改相关文件,我们可以轻松实现 Dedecms 图集中缩略图的调用功能。这对于构建高质量的图片站点非常有帮助。希望这篇文章能够帮助到正在使用 Dedecms 的开发者们!