在当今互联网时代,网站已成为企业、个人展示形象、传播信息的平台。DedeCMS作为一款功能强大的内容管理系统,其首页调用图片功能更是备受关注。本文将围绕DedeCMS首页调用图片这一主题,从图片选择、调用方式、优化技巧等方面进行详细介绍,帮助您更好地利用DedeCMS打造美观、高效的网站。
一、图片选择
1. 图片类型:首页调用图片一般分为图片新闻、图片轮播、图片导航等类型。在选择图片时,需根据页面布局和内容特点进行挑选。
2. 图片尺寸:图片尺寸应与页面布局相匹配,避免过大或过小。以下是一些建议尺寸:
| 图片类型 | 尺寸建议 |
| :——: | :——: |
| 图片新闻 | 600×300 |
| 图片轮播 | 1200×600 |
| 图片导航 | 200×200 |
3. 图片质量:图片质量应保证清晰、美观,避免模糊或像素化。过大质量的图片会占用过多服务器资源,影响网站加载速度。
4. 图片版权:确保图片版权合法,避免侵犯他人权益。
二、调用方式
DedeCMS首页调用图片主要有以下几种方式:
1. 数据库调用:将图片存储在数据库中,通过SQL语句查询并显示。这种方式适用于图片数量较多的情况。
2. 文件调用:将图片存储在服务器目录中,通过文件路径调用。这种方式简单易用,适用于图片数量较少的情况。
3. 标签调用:使用DedeCMS提供的标签功能,直接在模板中调用图片。这种方式方便快捷,适合各种场景。
以下是一个简单的数据库调用示例:
“`php
// 连接数据库
$db = new DedecmsDb();
// 查询图片信息
$result = $db->query(“
dedecms列表调用内容多张图片
普通文章列表调用内容多张图片不能用图集模型的办法,需要自己写一个函数,在include/extend.func.php增加函数
functionGetpic($body)
{
$getpic='';
preg_match_all(“/(src)=[\”|'|]{0,}([^>]*\.(gif|jpg|bmp|png))/isU”,$body,$img_array);
$img_array=array_unique($img_array[2]);
if(count($img_array)>0)
{
foreach($img_arrayas$key=>$value)
{
$picname=preg_replace(“/[\”|'|]{1,}/”,'',$value);
$getpic.=”<p><imgsrc='”.$picname.”'border=0/></p>”;
}
}
else
{
$getpic=”<p>没有图片</p>”;
}
return$getpic;
}
列表页模版使用标签
{dede:listpagesize='10'addfields='body'}
<li><ahref='[field:arcurl/]'target='_blank'>
<spanclass=”title”>[field:title/]</span>
[field:bodyfunction='Getpic(@me)'/]
</a></li>
{/dede:list}
同时到网站后台-内容模型管理,修改普通文章模型附加列表字段增加body
保存后,就可以更新列表了,这样就能在列表页显示文章正文内所有图片
dedecms图片问题:前台调用后台图片,实现后台控制前台图片
这个简单,织梦后台有上传文件功能,你只需要吧所有图片都按顺序命名,比如:banner1.jpg、banner2.jpg、banner3.jpg等等,然后把图片传到指定的文件夹。
然后在后台的基本参数增加新变量,变量名为:cfg_banner,如下图
接着我们拿images文件夹为例子,模板中这样写:
<img src=”/images/banner{dede:global.cfg_banner/}.jpg”>
这样你只需在后台修改数字1、2、3、4就可以改变相应图片了
dedecms5.7调用图片出现严重失真,缩略图显示严重变形
首先在网站后台系统中设置网站缩略图尺寸大小和模板中调用图片最大尺寸相同.
再打开文件include/helpers/extend.helpes.php在最下面加上以下代码
if(! function_exists('thumb'))
{
function thumb($imgurl,$width,$height,$bg= true)
{
global$cfg_mainsite,$cfg_multi_site;
$thumb= eregi(“http://”,$imgurl)?str_replace($cfg_mainsite,'',$imgurl):$imgurl;
list($thumbname,$extname)= explode('.',$thumb);
$newthumb=$thumbname.'_'.$width.'_'.$height.'.'.$extname;
if(!$thumbname||!$extname||!file_exists(DEDEROOT.$thumb)) return$imgurl;
if(!file_exists(DEDEROOT.$newthumb))
{
include_once DEDEINC.'/image.func.php';
if($bg==true)
{
ImageResizeNew(DEDEROOT.$thumb,$width,$height, DEDEROOT.$newthumb);
}
else
{
ImageResize(DEDEROOT.$thumb,$width,$height, DEDEROOT.$newthumb);
}
}
return$cfg_multi_site=='Y'?$cfg_mainsite.$newthumb:$newthumb;
}
}
调用方法:
标签: [field:picname function='thumb(@me,$width,$height,$bg)'/]
参数说明:
$width:缩略图宽度(整数)
$height:缩略图高度(整数)
$bg:是否用空白填补,默认自动填补,背景填充颜色在系统-附件设置里(true/false)
举例:
调用长宽为100像素的缩略图:[field:picname function='thumb(@me,100,100)'/]
保留原有比例,不自动填充(不建议):[field:picname function='thumb(@me,100,100,false)'/]
再到 include/helpers/image.helpes.php中写入以下代码
/**
*缩图片自动生成函数,来源支持bmp、gif、jpg、png
*但生成的小图只用jpg或png格式
*@access public
*@param string$srcFile图片路径
*@param string$toW转换到的宽度
*@param string$toH转换到的高度
*@param string$toFile输出文件到
*@return string
*/
if(! function_exists('ImageResize'))
{
function ImageResize($srcFile,$toW,$toH,$toFile=””)
{
global$cfg_photo_type;
if($toFile==””)
{
$toFile=$srcFile;
}
$info=””;
$srcInfo= GetImageSize($srcFile,$info);
switch($srcInfo[2])
{
case 1:
if(!$cfg_photo_type['gif'])
{
return false;
}
$im= imagecreatefromgif($srcFile);
break;
case 2:
if(!$cfg_photo_type['jpeg'])
{
return false;
}
$im= imagecreatefromjpeg($srcFile);
break;
case 3:
if(!$cfg_photo_type['png'])
{
return false;
}
$im= imagecreatefrompng($srcFile);
break;
case 6:
if(!$cfg_photo_type['bmp'])
{
return false;
}
$im= imagecreatefromwbmp($srcFile);
break;
}
$srcW=ImageSX($im);
$srcH=ImageSY($im);
if($srcW<=$toW&&$srcH<=$toH)
{
return true;
}
//缩略生成并裁剪
$newW=$toH*$srcW/$srcH;
$newH=$toW*$srcH/$srcW;
if($newH>=$toH)
{
$ftoW=$toW;
$ftoH=$newH;
}
else
{
$ftoW=$newW;
$ftoH=$toH;
}
if($srcW>$toW||$srcH>$toH)
{
if(function_exists(“imagecreatetruecolor”))
{
@$ni= imagecreatetruecolor($ftoW,$ftoH);
if($ni)
{
imagecopyresampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
}
else
{
$ni=imagecreate($ftoW,$ftoH);
imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
}
}
else
{
$ni=imagecreate($ftoW,$ftoH);
imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
}
//裁剪图片成标准缩略图
$new_imgx= imagecreatetruecolor($toW,$toH);
if($newH>=$toH)
{
imagecopyresampled($new_imgx,$ni,0,0,0,($newH-$toH)/2,$toW,$toH,$toW,$toH);
}
else
{
imagecopyresampled($new_imgx,$ni,0,0,($newW-$toW)/2,0,$toW,$toH,$toW,$toH);
}
switch($srcInfo[2])
{
case 1:
imagegif($new_imgx,$toFile);
break;
case 2:
imagejpeg($new_imgx,$toFile,85);
break;
case 3:
imagepng($new_imgx,$toFile);
break;
case 6:
imagebmp($new_imgx,$toFile);
break;
default:
return false;
}
imagedestroy($new_imgx);
imagedestroy($ni);
}
imagedestroy($im);
return true;
}
}
即可
QQ:51461981