OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / ec_main / include / container / ec_mainCommonDef.php
1 <?php
2 /**
3  * 共通定義クラス
4  *
5  * PHP versions 5
6  *
7  * LICENSE: This source file is licensed under the terms of the GNU General Public License.
8  *
9  * @package    Magic3 Framework
10  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11  * @copyright  Copyright 2006-2013 Magic3 Project.
12  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
13  * @version    SVN: $Id: ec_mainCommonDef.php 5560 2013-01-16 22:49:43Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 class photo_shopCommonDef
17 {
18         const THUMBNAIL_DIR = '/widgets/photo/image';           // 画像格納ディレクトリ
19         const PHOTO_DIR = '/etc/photo';         // マスター画像格納ディレクトリ
20         const DEFAULT_THUMBNAIL_SIZE = 128;             // サムネール画像サイズ
21         const DEFAULT_IMAGE_EXT = 'jpg';                        // 画像ファイルのデフォルト拡張子
22         const DEFAULT_PUBLIC_IMAGE_SIZE = 450;          // 一般表示用画像(ウォータマーク入り画像)の縦または横の最大サイズ
23         const BUTTON_ICON_SIZE = 16;                            // ボタン用アイコンサイズ
24         const REF_CONTENT_TYPE = 'pt';          // 参照数カウント用
25         const DEFAULT_CATEGORY_COUNT = 2;               // デフォルトの画像カテゴリー数
26         const DEFAULT_PHOTO_LIST_VIEW_COUNT = 24;               // デフォルトの画像カテゴリー数
27         const DEFAULT_PHOTO_TITLE_SHORT_LENGTH = 10;    // デフォルトの画像タイトル文字数
28         const DEFAULT_COMMENT_COUNT = 30;               // コメント数
29         const DEFAULT_SEARCH_AREA_TMPL = 'default_search.tmpl.html';            // デフォルトの検索エリアテンプレート
30         const SEARCH_TEXT_ID = 'photo_main_text';
31         const SEARCH_BUTTON_ID = 'photo_main_button';
32         const SEARCH_RESET_ID = 'photo_main_reset';
33         const SEARCH_SORT_ID = 'photo_main_sort';
34         const SEARCH_FORM_ID = 'photo_main_form';
35         const USER_OPTION = ';photo_main=author;';              // ログインユーザのユーザオプション
36         const EC_LIB_OBJ_ID = 'eclib';          // Eコマースオブジェクト
37         // 商品
38         const DEFAULT_PRODUCT_IMAGE_TYPE = 'c.jpg';                     // 商品画像ファイルのタイプ
39                 
40         // DB定義値
41         const CF_THUMBNAIL_BG_COLOR                     = 'thumbnail_bg_color';         // サムネール背景色
42         const CF_IMAGE_CATEGORY_COUNT           = 'image_category_count';                       // 画像カテゴリー数
43         const CF_PHOTO_LIST_ITEM_COUNT          = 'photo_list_item_count';                      // 画像一覧表示項目数
44         const CF_PHOTO_LIST_ORDER                       = 'photo_list_order';                   // 画像一覧並び順
45         const CF_PHOTO_TITLE_SHORT_LENGTH       = 'photo_title_short_length';// 略式写真タイトルの長さ
46         const CF_IMAGE_PROTECT_COPYRIGHT        = 'image_protect_copyright';            // 画像著作権保護
47         const CF_ONLINE_SHOP                            = 'online_shop';                        // オンラインショップ機能
48         const CF_AUTO_REGIST_MEMBER                     = 'auto_regist_member';         // 自動会員登録
49         const CF_SELL_PRODUCT_PHOTO                     = 'sell_product_photo';         // フォト商品販売
50         const CF_SELL_PRODUCT_DOWNLOAD          = 'sell_product_download';      // ダウンロード商品販売
51
52         // Eコマース機能追加分
53         const MEMBER_INFO_OPTION        = false;                // 会員の追加情報を使用するかどうか
54         const DEFAULT_COUNTRY_ID        = 'JPN';        // デフォルト国ID
55         const PRODUCT_CLASS_DEFAULT     = '';           // 商品クラス
56         const PRODUCT_CLASS_PHOTO       = 'photo';              // 商品クラス
57         const STANDARD_PRICE            = 'selling';            // 通常価格
58         const PRODUCT_TYPE_DOWNLOAD = 'download';               // 商品タイプ
59         const PRODUCT_IMAGE_SMALL = 'small-product';            // 小サイズ商品画像ID
60         const TAX_TYPE                          = 'sales';                                              // 課税タイプ(外税)
61         const DEFAULT_CURRENCY          = 'JPY';                        // デフォルト通貨
62         const AGREE_MEMBER_TEXT_KEY = 'agreement';                              // 会員規約のコンテンツデータキー
63         const PRODUCT_NAME_FORMAT       = '%s(%s)';             // 商品名表示フォーマット
64         const PRODUCT_CODE_FORMAT       = '%s-%s';              // 商品コード表示フォーマット
65         const IWIDGET_METHOD_CALC_ORDER = 'calcorder';                  // 注文計算用インナーウィジェットメソッド
66         const EMAIL_LOGIN_URL           = '&task=emaillogin&photo_account=%s&pwd=%s';           // Eメールからのログイン用URL
67         const CART_ICON_SIZE = 64;                      // サムネール画像サイズ
68 //      const THUMBNAIL_DIR = '/widgets/photo/image';           // 画像格納ディレクトリ
69 //      const DEFAULT_IMAGE_EXT = 'jpg';                        // 画像ファイルのデフォルト拡張子
70 //      const DEFAULT_THUMBNAIL_SIZE = 128;             // サムネール画像サイズ
71         // DB定義値
72         // フォトギャラリー設定マスター
73         const CF_ACCEPT_ORDER                   = 'accept_order';                       // 注文の受付
74         const CF_AUTO_STOCK                             = 'auto_stock';                         // 在庫自動処理
75         const CF_PERMIT_NON_MEMBER_ORDER = 'permit_non_member_order';                   // 非会員の購入許可
76         const CF_USE_EMAIL                              = 'use_email';                          // メール送信機能の使用
77         const CF_SHOP_EMAIL                             = 'shop_email';                         // ショップ宛てメールアドレス
78         const CF_AUTO_EMAIL_SENDER              = 'auto_email_sender';          // 自動送信メール送信元アドレス
79         const CF_USE_MEMBER_ADDRESS             = 'use_member_address';         // 会員登録の住所使用
80         const CF_MEMBER_NOTICE                  = 'member_notice';                      // 会員向けお知らせ
81         const CF_EMAIL_TO_ORDER_PRODUCT = 'email_to_order_product';             // 商品受注時送信先メールアドレス
82 //      const CF_CONTENT_NO_STOCK               = 'content_no_stock';           // 在庫なし時コンテンツ
83         // Eコマース設定マスター
84         const CF_E_CATEGORY_SELECT_COUNT        = 'category_select_count';      // 商品カテゴリー選択可能数
85         const CF_E_HIERARCHICAL_CATEGORY        = 'hierarchical_category';      // 階層化商品カテゴリー
86         const CF_E_SHOP_SIGNATURE               = 'shop_signature';             // ショップメール署名
87         const CF_E_SHOP_NAME                    = 'shop_name';          // ショップ名
88         const CF_E_SHOP_OWNER                   = 'shop_owner';         // ショップオーナー
89         const CF_E_SHOP_ZIPCODE                 = 'shop_zipcode';       // ショップ郵便番号
90         const CF_E_SHOP_ADDRESS                 = 'shop_address';       // ショップ住所
91         const CF_E_SHOP_PHONE                   = 'shop_phone';         // ショップ電話番号
92         
93         // セッションキー
94         const SK_AGREE_MEMBER           = 'agree_member';               // 会員規約に同意したかどうか
95 //      const SK_INIT_ORDER = 'init_order';                     // 注文処理初期化したかどうか
96         // 注文状態
97         const ORDER_STATUS_REGIST       = 200;                  // 登録時のステータス(受注受付)
98         const ORDER_STATUS_CLOSE        = 900;                  // 登録時のステータス(終了)
99         const ORDER_STATUS_CANCEL       = 901;                  // 登録時のステータス(キャンセル)
100         const ORDER_STATUS_PAYMENT_COMPLETED = 301;     // 登録時のステータス(入金済み)
101         // メールフォーマット
102         const MAIL_FORM_ORDER_PRODUCT_TO_SHOP_MANAGER   = 'order_product_to_shop_manager';              // 商品受注時ショップ管理者向けメール
103         const MAIL_FORM_ORDER_PRODUCT_TO_CUSTOMER               = 'order_product_to_customer';          // 商品受注時ショップ購入者向けメール
104         const MAIL_FORM_SEND_PASSWORD                                   = 'send_password';              // パスワード送信用フォーム
105         
106         /**
107          * サムネール画像のパスを取得
108          *
109          * @param string $photoId               画像ID
110          * @return string                               画像パス
111          */
112         static function getThumbnailPath($photoId)
113         {
114                 global $gEnvManager;
115                 
116                 return $gEnvManager->getResourcePath() . self::THUMBNAIL_DIR . '/' . $photoId . '_' . self::DEFAULT_THUMBNAIL_SIZE . '.' . self::DEFAULT_IMAGE_EXT;
117         }
118         /**
119          * サムネール画像のURLを取得
120          *
121          * @param string $photoId               画像ID
122          * @return string                               画像パス
123          */
124         static function getThumbnailUrl($photoId)
125         {
126                 global $gEnvManager;
127                 
128                 return $gEnvManager->getResourceUrl() . self::THUMBNAIL_DIR . '/' . $photoId . '_' . self::DEFAULT_THUMBNAIL_SIZE . '.' . self::DEFAULT_IMAGE_EXT;
129         }
130         /**
131          * 公開画像のパスを取得
132          *
133          * @param string $photoId               画像ID
134          * @return string                               画像パス
135          */
136         static function getPublicImagePath($photoId)
137         {
138                 global $gEnvManager;
139                 
140                 return $gEnvManager->getResourcePath() . self::THUMBNAIL_DIR . '/' . $photoId . '.' . self::DEFAULT_IMAGE_EXT;
141         }
142         /**
143          * 公開画像のURLを取得
144          *
145          * @param string $photoId               画像ID
146          * @return string                               画像パス
147          */
148         static function getPublicImageUrl($photoId)
149         {
150                 global $gEnvManager;
151                 
152                 return $gEnvManager->getResourceUrl() . self::THUMBNAIL_DIR . '/' . $photoId . '.' . self::DEFAULT_IMAGE_EXT;
153         }
154         /**
155          * 画像取得
156          *
157          * @param string $photoId               画像ID
158          * @param object $db                    DBオブジェクト
159          * @return                                              なし
160          */
161         static function getImage($photoId, $db)
162         {
163                 global $gEnvManager;
164                 global $gPageManager;
165                 
166                 // ページ作成処理中断
167                 $gPageManager->abortPage();
168
169                 $ret = $db->getPhotoInfo($photoId, $gEnvManager->getCurrentLanguage(), $row);
170                 if ($ret){
171                         header('Content-type: ' . $row['ht_mime_type']);// 画像タイプ
172                         // キャッシュの設定
173                         header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');// 過去の日付
174                         header('Cache-Control: no-store, no-cache, must-revalidate');// HTTP/1.1
175                         header('Cache-Control: post-check=0, pre-check=0');
176                         header('Pragma: no-cache');
177
178                         $imagePath = $gEnvManager->getIncludePath() . self::PHOTO_DIR . $row['ht_dir'] . DIRECTORY_SEPARATOR . $row['ht_public_id'];
179                         readfile($imagePath);
180                 }
181         
182                 // システム強制終了
183                 $gPageManager->exitSystem();
184         }
185         /**
186          * 画像サイズ調整
187          *
188          * @param int $width            画像横幅
189          * @param int $height           画像高さ
190          * @param int $maxSize          最大サイズ
191          * @return                                      なし
192          */
193         static function adjustImageSize(&$width, &$height, $maxSize)
194         {
195                 // 画像サイズ
196                 if ($width > $height){
197                         $height = ($height / $width) * $maxSize;
198                         $width = $maxSize;
199                 } else {
200                         $width = ($width / $height) * $maxSize;
201                         $height = $maxSize;
202                 }
203         }
204         /**
205          * フォトギャラリー定義値をDBから取得
206          *
207          * @param object $db    DBオブジェクト
208          * @return array                取得データ
209          */
210         static function loadConfig($db)
211         {
212                 $retVal = array();
213
214                 // フォトギャラリー定義を読み込み
215                 $ret = $db->getAllConfig($rows);
216                 if ($ret){
217                         // 取得データを連想配列にする
218                         $configCount = count($rows);
219                         for ($i = 0; $i < $configCount; $i++){
220                                 $key = $rows[$i]['hg_id'];
221                                 $value = $rows[$i]['hg_value'];
222                                 $retVal[$key] = $value;
223                         }
224                 }
225                 return $retVal;
226         }
227         /**
228          * ログイン用のURL作成
229          *
230          * @param string $account               アカウント
231          * @param string $password              パスワード
232          * @return string                               URL
233          */
234         static function createLoginUrl($account, $password)
235         {
236                 global $gEnvManager;
237                 global $gPageManager;
238                 
239                 $url = $gPageManager->getDefaultPageUrlByWidget($gEnvManager->getCurrentWidgetId(), sprintf(self::EMAIL_LOGIN_URL, urlencode($account), urlencode($password)));         // ログイン用URL
240                 return $url;
241         }
242 }
243 ?>