某些瀑布流的代码要求图片必须带有高度属性,而Dedecms CMS默认的缩略图仅存储了图片路径,无法直接输出图片的高度。为了解决这个问题,我们可以利用PHP中的getimagesize函数来动态获取图片的高度。
不过,在实际应用中可能会遇到一个问题:
$GLOBALS['cfg_basehost']中如果包含www,则可能导致无法正常获取图片尺寸。例如,http://www.xxx.com无法正常工作,而http://xxx.com则可以正常获取。这种情况的具体原因尚不明确,但可以通过调整URL结构来规避此问题。
需要注意的是,这种方法虽然简单易行,但会消耗较多服务器资源,尤其是在处理大量图片时。
include\\helpers\\extend.helper.php 最后添加
if ( ! function_exists('getheight'))
{
function getheight($litpic){
$litpicc = $GLOBALS['cfg_basehost'].$litpic;
$arr = getimagesize($litpicc);
$resault = $arr[1]; // 此为高度
//$resault = $arr[0]; //此为宽度
return $resault;
}
}
在模板中可以直接使用 [field:litpic function="getheight(@me)"/] 来输出图片的高度。
第二种办法(推荐):
在/dede/article_add.php 插入数据库前添加以下代码:
// 获取缩略图宽度及高度
$litpicc = $GLOBALS['cfg_basehost'].$litpic;
$arr = getimagesize($litpicc);
$arr[0]代表宽度,$arr[1]代表高度。将这两个值插入数据库即可(请确保已添加相应字段)。
通过数据库调用图片高度和宽度的方式可以显著减少系统资源的消耗,从而提高网站性能。
以上两种方法各有优劣,第一种方法实现简单,但资源消耗较大;第二种方法虽然前期设置稍显复杂,但长期来看更加高效。根据您的具体需求和项目规模选择合适的方法吧!