欢迎来到虫虫下载站 | 资源下载 资源专辑 关于我们
虫虫下载站

image.php

this the oscommerce 3.0 aplha 4
PHP
字号:
<?php/*  $Id: $  osCommerce, Open Source E-Commerce Solutions  http://www.oscommerce.com  Copyright (c) 2006 osCommerce  This program is free software; you can redistribute it and/or modify  it under the terms of the GNU General Public License v2 (1991)  as published by the Free Software Foundation.*/  require('../includes/classes/image.php');  class osC_Image_Admin extends osC_Image {// Private variables    var $_title, $_header, $_data = array();    var $_has_parameters = false;// Class constructor    function osC_Image_Admin() {      parent::osC_Image();    }// Public methods    function &getGroups() {      return $this->_groups;    }    function resize($image, $group_id) {      if (osc_empty(CFG_APP_IMAGEMAGICK_CONVERT) || !file_exists(CFG_APP_IMAGEMAGICK_CONVERT)) {        return $this->resizeWithGD($image, $group_id);      }      if (!file_exists(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'])) {        mkdir(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code']);        @chmod(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'], 0777);      }      exec(escapeshellarg(CFG_APP_IMAGEMAGICK_CONVERT) . ' -resize ' . (int)$this->_groups[$group_id]['size_width'] . 'x' . (int)$this->_groups[$group_id]['size_height'] . (($this->_groups[$group_id]['force_size']) == '1' ? '!' : '') . ' ' . escapeshellarg(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[1]['code'] . '/' . $image) . ' ' . escapeshellarg(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'] . '/' . $image));      @chmod(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'] . '/' . $image, 0777);    }    function hasGDSupport() {      if ( imagetypes() & ( IMG_JPG || IMG_GIF || IMG_PNG ) ) {        return true;      }      return false;    }    function resizeWithGD($image, $group_id) {      $img_type = false;      switch (substr($image, (strrpos($image, '.')+1))) {        case 'jpg':        case 'jpeg':          if (imagetypes() & IMG_JPG) {            $img_type = 'jpg';          }          break;        case 'gif':          if (imagetypes() & IMG_GIF) {            $img_type = 'gif';          }          break;        case 'png':          if (imagetypes() & IMG_PNG) {            $img_type = 'png';          }          break;      }      if ($img_type !== false) {        if (!file_exists(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'])) {          mkdir(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'], 0777);        }        list($orig_width, $orig_height) = getimagesize(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[1]['code'] . '/' . $image);        $height = $this->_groups[$group_id]['size_height'];        if ($this->_groups[$group_id]['force_size'] == '1') {          $width = $this->_groups[$group_id]['size_width'];        } else {          $width = round($orig_width * $height / $orig_height);        }        $im_p = imagecreatetruecolor($width, $height);        $x = 0;        if ($this->_groups[$group_id]['force_size'] == '1') {          $bgcolour = imagecolorallocate($im_p, 255, 255, 255); // white          imagefill($im_p, 0, 0, $bgcolour);          $width = round($orig_width * $height / $orig_height);          if ($width < $this->_groups[$group_id]['size_width']) {            $x = floor(($this->_groups[$group_id]['size_width'] - $width) / 2);          }        }        switch ($img_type) {          case 'jpg':            $im = imagecreatefromjpeg(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[1]['code'] . '/' . $image);            break;          case 'gif':            $im = imagecreatefromgif(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[1]['code'] . '/' . $image);            break;          case 'png':            $im = imagecreatefrompng(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[1]['code'] . '/' . $image);            break;        }        imagecopyresampled($im_p, $im, $x, 0, 0, 0, $width, $height, $orig_width, $orig_height);        switch ($img_type) {          case 'jpg':            imagejpeg($im_p, DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'] . '/' . $image);            break;          case 'gif':            imagegif($im_p, DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'] . '/' . $image);            break;          case 'png':            imagepng($im_p, DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'] . '/' . $image);            break;        }        imagedestroy($im_p);        imagedestroy($im);        chmod(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'] . '/' . $image, 0777);      } else {        return false;      }    }    function getModuleCode() {      return $this->_code;    }    function &getTitle() {      return $this->_title;    }    function &getHeader() {      return $this->_header;    }    function &getData() {      return $this->_data;    }    function activate() {      $this->_setHeader();      $this->_setData();    }    function hasParameters() {      return $this->_has_parameters;    }    function existsInGroup($id, $group_id) {      global $osC_Database;      $Qimage = $osC_Database->query('select image from :table_products_images where id = :id');      $Qimage->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES);      $Qimage->bindInt(':id', $id);      $Qimage->execute();      return file_exists(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $this->_groups[$group_id]['code'] . '/' . $Qimage->value('image'));    }    function delete($id) {      global $osC_Database;      $Qimage = $osC_Database->query('select image from :table_products_images where id = :id');      $Qimage->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES);      $Qimage->bindInt(':id', $id);      $Qimage->execute();      foreach ($this->_groups as $group) {        @unlink(DIR_FS_CATALOG . DIR_WS_IMAGES . 'products/' . $group['code'] . '/' . $Qimage->value('image'));      }      $Qdel = $osC_Database->query('delete from :table_products_images where id = :id');      $Qdel->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES);      $Qdel->bindInt(':id', $id);      $Qdel->execute();      return ($Qdel->affectedRows() === 1);    }    function setAsDefault($id) {      global $osC_Database;      $Qimage = $osC_Database->query('select products_id from :table_products_images where id = :id');      $Qimage->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES);      $Qimage->bindInt(':id', $id);      $Qimage->execute();      if ($Qimage->numberOfRows() === 1) {        $Qupdate = $osC_Database->query('update :table_products_images set default_flag = :default_flag where products_id = :products_id and default_flag = :default_flag');        $Qupdate->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES);        $Qupdate->bindInt(':default_flag', 0);        $Qupdate->bindInt(':products_id', $Qimage->valueInt('products_id'));        $Qupdate->bindInt(':default_flag', 1);        $Qupdate->execute();        $Qupdate = $osC_Database->query('update :table_products_images set default_flag = :default_flag where id = :id');        $Qupdate->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES);        $Qupdate->bindInt(':default_flag', 1);        $Qupdate->bindInt(':id', $id);        $Qupdate->execute();        return ($Qupdate->affectedRows() === 1);      }    }    function reorderImages($images_array) {      global $osC_Database;      $counter = 0;      foreach ($images_array as $id) {        $counter++;        $Qupdate = $osC_Database->query('update :table_products_images set sort_order = :sort_order where id = :id');        $Qupdate->bindTable(':table_products_images', TABLE_PRODUCTS_IMAGES);        $Qupdate->bindInt(':sort_order', $counter);        $Qupdate->bindInt(':id', $id);        $Qupdate->execute();      }      return ($counter > 0);    }    function show($image, $title, $parameters = '', $group = '') {      if (empty($group) || !$this->exists($group)) {        $group = $this->getCode(DEFAULT_IMAGE_GROUP_ID);      }      $group_id = $this->getID($group);      $width = $height = '';      if ( ($this->_groups[$group_id]['force_size'] == '1') || empty($image) ) {        $width = $this->_groups[$group_id]['size_width'];        $height = $this->_groups[$group_id]['size_height'];      }      if (empty($image)) {        $image = 'pixel_trans.gif';      } else {        $image = 'products/' . $this->_groups[$group_id]['code'] . '/' . $image;      }      return osc_image('../' . DIR_WS_IMAGES . $image, $title, $width, $height, $parameters);    }  }?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -