7 * LICENSE: This source file is licensed under the terms of the GNU General Public License.
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
16 class photo_shopCommonDef
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コマースオブジェクト
38 const DEFAULT_PRODUCT_IMAGE_TYPE = 'c.jpg'; // 商品画像ファイルのタイプ
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'; // ダウンロード商品販売
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; // サムネール画像サイズ
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'; // 在庫なし時コンテンツ
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'; // ショップ電話番号
94 const SK_AGREE_MEMBER = 'agree_member'; // 会員規約に同意したかどうか
95 // const SK_INIT_ORDER = 'init_order'; // 注文処理初期化したかどうか
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; // 登録時のステータス(入金済み)
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'; // パスワード送信用フォーム
109 * @param string $photoId 画像ID
110 * @return string 画像パス
112 static function getThumbnailPath($photoId)
116 return $gEnvManager->getResourcePath() . self::THUMBNAIL_DIR . '/' . $photoId . '_' . self::DEFAULT_THUMBNAIL_SIZE . '.' . self::DEFAULT_IMAGE_EXT;
121 * @param string $photoId 画像ID
122 * @return string 画像パス
124 static function getThumbnailUrl($photoId)
128 return $gEnvManager->getResourceUrl() . self::THUMBNAIL_DIR . '/' . $photoId . '_' . self::DEFAULT_THUMBNAIL_SIZE . '.' . self::DEFAULT_IMAGE_EXT;
133 * @param string $photoId 画像ID
134 * @return string 画像パス
136 static function getPublicImagePath($photoId)
140 return $gEnvManager->getResourcePath() . self::THUMBNAIL_DIR . '/' . $photoId . '.' . self::DEFAULT_IMAGE_EXT;
145 * @param string $photoId 画像ID
146 * @return string 画像パス
148 static function getPublicImageUrl($photoId)
152 return $gEnvManager->getResourceUrl() . self::THUMBNAIL_DIR . '/' . $photoId . '.' . self::DEFAULT_IMAGE_EXT;
157 * @param string $photoId 画像ID
158 * @param object $db DBオブジェクト
161 static function getImage($photoId, $db)
164 global $gPageManager;
167 $gPageManager->abortPage();
169 $ret = $db->getPhotoInfo($photoId, $gEnvManager->getCurrentLanguage(), $row);
171 header('Content-type: ' . $row['ht_mime_type']);// 画像タイプ
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');
178 $imagePath = $gEnvManager->getIncludePath() . self::PHOTO_DIR . $row['ht_dir'] . DIRECTORY_SEPARATOR . $row['ht_public_id'];
179 readfile($imagePath);
183 $gPageManager->exitSystem();
188 * @param int $width 画像横幅
189 * @param int $height 画像高さ
190 * @param int $maxSize 最大サイズ
193 static function adjustImageSize(&$width, &$height, $maxSize)
196 if ($width > $height){
197 $height = ($height / $width) * $maxSize;
200 $width = ($width / $height) * $maxSize;
207 * @param object $db DBオブジェクト
208 * @return array 取得データ
210 static function loadConfig($db)
215 $ret = $db->getAllConfig($rows);
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;
230 * @param string $account アカウント
231 * @param string $password パスワード
234 static function createLoginUrl($account, $password)
237 global $gPageManager;
239 $url = $gPageManager->getDefaultPageUrlByWidget($gEnvManager->getCurrentWidgetId(), sprintf(self::EMAIL_LOGIN_URL, urlencode($account), urlencode($password))); // ログイン用URL