Ignore:
Timestamp:
2007/10/29 12:06:29 (17 years ago)
Author:
nanasess
Message:

ライセンス表記変更

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/SC_MobileImage.php

    r16329 r16582  
    11<?php 
    2 /** 
    3  *  
     2/* 
     3 * This file is part of EC-CUBE 
     4 * 
    45 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. 
    56 * 
    67 * http://www.lockon.co.jp/ 
    7  *  
    88 * 
     9 * This program is free software; you can redistribute it and/or 
     10 * modify it under the terms of the GNU General Public License 
     11 * as published by the Free Software Foundation; either version 2 
     12 * of the License, or (at your option) any later version. 
     13 * 
     14 * This program is distributed in the hope that it will be useful, 
     15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
     16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
     17 * GNU General Public License for more details. 
     18 * 
     19 * You should have received a copy of the GNU General Public License 
     20 * along with this program; if not, write to the Free Software 
     21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    922 * 
    1023 * 端末の画面解像度にあわせて画像を変換する 
     
    1831 */ 
    1932class SC_MobileImage { 
    20     /** 
    21     * 画像を端末の解像度に合わせて変換する 
    22     * output buffering 用コールバック関数 
    23     * 
    24     * @param string 入力 
    25     * @return string 出力 
    26     */ 
    27     function handler($buffer) { 
     33    /** 
     34    * 画像を端末の解像度に合わせて変換する 
     35    * output buffering 用コールバック関数 
     36    * 
     37    * @param string 入力 
     38    * @return string 出力 
     39    */ 
     40    function handler($buffer) { 
    2841 
    29         // 端末情報を取得する 
    30         $carrier = SC_MobileUserAgent::getCarrier(); 
    31         $model   = SC_MobileUserAgent::getModel(); 
     42        // 端末情報を取得する 
     43        $carrier = SC_MobileUserAgent::getCarrier(); 
     44        $model   = SC_MobileUserAgent::getModel(); 
    3245 
    33         // 携帯電話の場合のみ処理を行う 
    34         if ($carrier !== FALSE) { 
     46        // 携帯電話の場合のみ処理を行う 
     47        if ($carrier !== FALSE) { 
    3548 
    36             // HTML中のIMGタグを取得する 
    37             $pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i'; 
    38             $result = preg_match_all($pattern, $buffer, $images); 
     49            // HTML中のIMGタグを取得する 
     50            $pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i'; 
     51            $result = preg_match_all($pattern, $buffer, $images); 
    3952 
    40             // 端末の情報を取得する 
    41             $fp = fopen(MOBILE_IMAGE_INC_PATH . "/mobile_image_map_$carrier.csv", "r"); 
    42             while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) { 
    43                 if ($data[1] == $model || $data[1] == '*') { 
    44                     $cacheSize     = $data[2]; 
    45                     $imageFileSize = $data[7]; 
    46                     $imageType     = $data[6]; 
    47                     $imageWidth    = $data[5]; 
    48                     break; 
    49                 } 
    50             } 
    51             fclose($fp); 
     53            // 端末の情報を取得する 
     54            $fp = fopen(MOBILE_IMAGE_INC_PATH . "/mobile_image_map_$carrier.csv", "r"); 
     55            while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) { 
     56                if ($data[1] == $model || $data[1] == '*') { 
     57                    $cacheSize     = $data[2]; 
     58                    $imageFileSize = $data[7]; 
     59                    $imageType     = $data[6]; 
     60                    $imageWidth    = $data[5]; 
     61                    break; 
     62                } 
     63            } 
     64            fclose($fp); 
    5265 
    53             // docomoとsoftbankの場合は画像ファイル一つに利用可能なサイズの上限を計算する 
    54             // auはHTMLのbyte数上限に画像ファイルサイズが含まれないのでimageFileSizeのまま。 
    55             if ($carrier == "docomo" or $carrier == "softbank") { 
    56                 // 計算式:(利用端末で表示可能なcacheサイズ - HTMLのバイト数 - 変換後の画像名のバイト数(目安値) ) / HTML中の画像数 
    57                 $temp_imagefilesize = ($cacheSize - strlen($buffer) - (140 * $result) ) / $result; 
    58                 // 計算結果が端末の表示可能ファイルサイズ上限より小さい場合は計算結果の値を有効にする 
    59                 if ($temp_imagefilesize < $imageFileSize) { 
    60                     $imageFileSize = $temp_imagefilesize; 
    61                 } 
    62             } 
     66            // docomoとsoftbankの場合は画像ファイル一つに利用可能なサイズの上限を計算する 
     67            // auはHTMLのbyte数上限に画像ファイルサイズが含まれないのでimageFileSizeのまま。 
     68            if ($carrier == "docomo" or $carrier == "softbank") { 
     69                // 計算式:(利用端末で表示可能なcacheサイズ - HTMLのバイト数 - 変換後の画像名のバイト数(目安値) ) / HTML中の画像数 
     70                $temp_imagefilesize = ($cacheSize - strlen($buffer) - (140 * $result) ) / $result; 
     71                // 計算結果が端末の表示可能ファイルサイズ上限より小さい場合は計算結果の値を有効にする 
     72                if ($temp_imagefilesize < $imageFileSize) { 
     73                    $imageFileSize = $temp_imagefilesize; 
     74                } 
     75            } 
    6376 
    64             // 画像変換の情報をセットする 
    65             $imageConverter = New ImageConverter(); 
    66             $imageConverter->setOutputDir(MOBILE_IMAGE_DIR); 
    67             $imageConverter->setImageType($imageType); 
    68             $imageConverter->setImageWidth($imageWidth); 
    69             $imageConverter->setFileSize($imageFileSize); 
     77            // 画像変換の情報をセットする 
     78            $imageConverter = New ImageConverter(); 
     79            $imageConverter->setOutputDir(MOBILE_IMAGE_DIR); 
     80            $imageConverter->setImageType($imageType); 
     81            $imageConverter->setImageWidth($imageWidth); 
     82            $imageConverter->setFileSize($imageFileSize); 
    7083 
    71             // HTML中のIMGタグを変換後のファイルパスに置換する 
    72             foreach ($images[1] as $key => $value) { 
    73                 $converted = $imageConverter->execute(preg_replace('|^' . URL_DIR . '|', HTML_PATH, $value)); 
    74                 if (isset($converted['outputImageName'])) { 
    75                     $buffer = str_replace($value, MOBILE_IMAGE_URL . '/' . $converted['outputImageName'], $buffer); 
    76                 } else { 
    77                     $buffer = str_replace($images[0][$key], '<!--No image-->', $buffer); 
    78                 } 
    79             } 
    80         } 
    81         return $buffer; 
    82     } 
     84            // HTML中のIMGタグを変換後のファイルパスに置換する 
     85            foreach ($images[1] as $key => $value) { 
     86                $converted = $imageConverter->execute(preg_replace('|^' . URL_DIR . '|', HTML_PATH, $value)); 
     87                if (isset($converted['outputImageName'])) { 
     88                    $buffer = str_replace($value, MOBILE_IMAGE_URL . '/' . $converted['outputImageName'], $buffer); 
     89                } else { 
     90                    $buffer = str_replace($images[0][$key], '<!--No image-->', $buffer); 
     91                } 
     92            } 
     93        } 
     94        return $buffer; 
     95    } 
    8396} 
    8497?> 
Note: See TracChangeset for help on using the changeset viewer.