ZenCart图片输出函数:zen_image()分析
2012-04-26 10:51
501 查看
zen_image() 函数位于 /includes/functions/html_output.php 文件中(大约160行),主要用于图片的输出。zen_image()它一共有5个参数。
参数介绍
代码分析
定义全局变量模板路径,zen_clean_html()字面上就可以看出,除去html格式的。后期介绍。
作用当数据库中图片字段为空,$src仅显示images时,前台会显示一张默认的图片。
DIR_WS_IMAGES常量 /includes/configure.php 文件中找到,PRODUCTS_IMAGE_NO_IMAGE在后台Configuration –> Images –>Product Image – No Image picture中定义
$src为空,IMAGE_REQUIRED图片调试为false时,返回false
当图片不存在时,如会将路径转换为默认模板路径尝试。
Image Handler中用到。zencart默认没集成这个模块。
$width和$height部位空时,转换为一个整数。
组合图片的src路径,和alt属性
$alt不为空时,title属性和alt属性值一致
getimagesize()可以获取图片参数,函数不需要 GD 图像库,返回数组4个值,宽度,高度,图片格式,imageinfo
作用:保护图片缩放后不变形, $ratio定义size和实际size比。
实例
输出logo,参数$width 和$height为空,$alt为HEADER_ALT_TEXT,其中HEADER_ALT_TEXT和HEADER_LOGO_IMAGE常量在languages\english\header.php中
子分类图片,图片路径$categories->fields['categories_image'],alt属性$categories->fields['categories_name'],宽高SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT后台设置。
参数介绍
参数 | 作用 |
---|---|
$src | 图片地址 |
$alt | 输出图片alt和title属性 |
$width | 图片宽度 |
$height | 图片高度 |
$parameters | 额外参数,可以用于增加id,class属性 |
global $template_dir; // soft clean the alt tag $alt = zen_clean_html($alt);
定义全局变量模板路径,zen_clean_html()字面上就可以看出,除去html格式的。后期介绍。
//auto replace with defined missing image if ($src == DIR_WS_IMAGES and PRODUCTS_IMAGE_NO_IMAGE_STATUS == '1') { $src = DIR_WS_IMAGES . PRODUCTS_IMAGE_NO_IMAGE; }
作用当数据库中图片字段为空,$src仅显示images时,前台会显示一张默认的图片。
DIR_WS_IMAGES常量 /includes/configure.php 文件中找到,PRODUCTS_IMAGE_NO_IMAGE在后台Configuration –> Images –>Product Image – No Image picture中定义
if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) { return false; }
$src为空,IMAGE_REQUIRED图片调试为false时,返回false
if (!file_exists($src)) { $src = str_replace(DIR_WS_TEMPLATES . $template_dir, DIR_WS_TEMPLATES . 'template_default', $src); }
当图片不存在时,如会将路径转换为默认模板路径尝试。
if (function_exists('handle_image')) { $newimg = handle_image($src, $alt, $width, $height, $parameters); list($src, $alt, $width, $height, $parameters) = $newimg; }
Image Handler中用到。zencart默认没集成这个模块。
$width = empty($width) ? $width : intval($width); $height = empty($height) ? $height : intval($height);
$width和$height部位空时,转换为一个整数。
$image = '<img src="' . zen_output_string($src) . '" alt="' . zen_output_string($alt) . '"';
组合图片的src路径,和alt属性
if (zen_not_null($alt)) { $image .= ' title=" ' . zen_output_string($alt) . ' "'; }
$alt不为空时,title属性和alt属性值一致
$image_size = @getimagesize($src);
getimagesize()可以获取图片参数,函数不需要 GD 图像库,返回数组4个值,宽度,高度,图片格式,imageinfo
$ratio = ($image_size[0] != 0 ? $width / $image_size[0] : 1); if ($image_size[1]*$ratio > $height) { $ratio = $height / $image_size[1]; $width = $image_size[0] * $ratio; } else { $height = $image_size[1] * $ratio; }
作用:保护图片缩放后不变形, $ratio定义size和实际size比。
实例
zen_image($template->get_template_dir(HEADER_LOGO_IMAGE, DIR_WS_TEMPLATE, $current_page_base,'images'). '/' . HEADER_LOGO_IMAGE, HEADER_ALT_TEXT)
输出logo,参数$width 和$height为空,$alt为HEADER_ALT_TEXT,其中HEADER_ALT_TEXT和HEADER_LOGO_IMAGE常量在languages\english\header.php中
zen_image(DIR_WS_IMAGES . $categories->fields['categories_image'], $categories->fields['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT)
子分类图片,图片路径$categories->fields['categories_image'],alt属性$categories->fields['categories_name'],宽高SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT后台设置。
相关文章推荐
- Zencart Zen_Href_Link这个输出连接函数的分析
- PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
- Zencart Zen_Href_Link这个输出连接函数的分析
- PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
- 102-资源打包,内存分配,内存泄漏,私有API,硬件信息的获取,使用imageName加载图片和使用imageWithContentsOfFile加载图片的场合优缺点及内存分析
- 从源代码分析Android-Universal-Image-Loader图片下载技巧
- Android图片异步加载框架Universal Image Loader的源码分析
- Python-----PIL Image模块 show函数不能正常显示图片
- android里图片下载工具类AsyncImageLoader分析
- Android 开源框架Universal-Image-Loader完全解析(五)- 从代码分析Android-Universal-Image-Loader的图片加载、显示流程
- php getimagesize()函数获取图片宽度高度
- zen-cart图片放大效果图插件、zencart放大镜:JQZoom IH2 JQLightBox AJAX
- java中ImageIO.write(bufferedImage输出图片时,图片的改变问题
- 用mask掩码处理图片,Mat::copyTo函数第一个用于输出的传入参数不能是原图片
- GID+ DrawImage 函数绘制使图片变大的问题
- Android ImageView图片浏览器(ImageView加载sd卡图片资源)的内存溢出问题分析
- 从源代码分析Android-Universal-Image-Loader图片下载技巧
- iOS image.size大小实际输出的值跟图片像素的关系
- 从代码分析Android-Universal-Image-Loader的图片加载、显示流程
- 使用Flex中Image组件图片无法呈现问题分析