Changeset 11729 for branches/comu/data/lib/slib.php
- Timestamp:
- 2007/03/10 21:35:02 (20 years ago)
- File:
-
- 1 edited
-
branches/comu/data/lib/slib.php (modified) (179 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/comu/data/lib/slib.php
r15 r11729 6 6 */ 7 7 8 //--- ¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ò»ØÄê8 //---このファイルのパスを指定 9 9 $INC_PATH = realpath( dirname( __FILE__) ); 10 10 require_once( $INC_PATH ."/../conf/conf.php" ); … … 14 14 require_once( $INC_PATH ."/../include/session.inc" ); 15 15 16 // Á´¥Ú¡¼¥¸¶¦ÄÌ¥¨¥é¡¼16 // 全ページ共通エラー 17 17 $GLOBAL_ERR = ""; 18 18 19 // ¥¤¥ó¥¹¥È¡¼¥ë½é´ü½èÍý19 // インストール初期処理 20 20 sfInitInstall(); 21 21 22 /* ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ð¡¼¥¸¥ç¥ó½êÆÀ*/22 /* データベースのバージョン所得 */ 23 23 function sfGetDBVersion($dsn = "") { 24 24 if($dsn == "") { … … 44 44 } 45 45 46 /* ¥Æ¡¼¥Ö¥ë¤Î¸ºß¥Á¥§¥Ã¥¯*/46 /* テーブルの存在チェック */ 47 47 function sfTabaleExists($table_name, $dsn = "") { 48 48 if($dsn == "") { … … 55 55 56 56 $objQuery = new SC_Query($dsn, true, true); 57 // Àµ¾ï¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç57 // 正常に接続されている場合 58 58 if(!$objQuery->isError()) { 59 59 list($db_type) = split(":", $dsn); 60 // postgresql ¤Èmysql¤È¤Ç½èÍý¤òʬ¤±¤ë60 // postgresqlとmysqlとで処理を分ける 61 61 if ($db_type == "pgsql") { 62 62 $sql = "SELECT … … 84 84 } 85 85 86 // ¥«¥é¥à¤Î¸ºß¥Á¥§¥Ã¥¯86 // カラムの存在チェック 87 87 function sfColumnExists($table_name, $col_name, $col_type = "", $dsn = "", $add = false) { 88 88 if($dsn == "") { … … 94 94 } 95 95 96 // ¥Æ¡¼¥Ö¥ë¤¬Ìµ¤±¤ì¤Ð¥¨¥é¡¼96 // テーブルが無ければエラー 97 97 if(!sfTabaleExists($table_name, $dsn)) return false; 98 98 99 99 $objQuery = new SC_Query($dsn, true, true); 100 // Àµ¾ï¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç100 // 正常に接続されている場合 101 101 if(!$objQuery->isError()) { 102 102 list($db_type) = split(":", $dsn); 103 103 104 // ¥«¥é¥à¥ê¥¹¥È¤ò¼èÆÀ104 // カラムリストを取得 105 105 $arrRet = sfGetColumnList($table_name, $objQuery, $db_type); 106 106 if(count($arrRet) > 0) { … … 111 111 } 112 112 113 // ¥«¥é¥à¤òÄɲ乤ë113 // カラムを追加する 114 114 if($add){ 115 115 $objQuery->query("ALTER TABLE $table_name ADD $col_name $col_type "); … … 120 120 } 121 121 122 // ¥Ç¡¼¥¿¤Î¸ºß¥Á¥§¥Ã¥¯122 // データの存在チェック 123 123 function sfDataExists($table_name, $where, $arrval, $dsn = "", $sql = "", $add = false) { 124 124 if($dsn == "") { … … 137 137 $ret = false; 138 138 } 139 // ¥Ç¡¼¥¿¤òÄɲ乤ë139 // データを追加する 140 140 if(!$ret && $add) { 141 141 $objQuery->exec($sql); … … 145 145 } 146 146 147 // ¥Æ¡¼¥Ö¥ë¤Î¥«¥é¥à°ìÍ÷¤ò¼èÆÀ¤¹¤ë147 // テーブルのカラム一覧を取得する 148 148 function sfGetColumnList($table_name, $objQuery = "", $db_type = DB_TYPE){ 149 149 if($objQuery == "") $objQuery = new SC_Query(); 150 150 $arrRet = array(); 151 151 152 // postgresql ¤Èmysql¤È¤Ç½èÍý¤òʬ¤±¤ë152 // postgresqlとmysqlとで処理を分ける 153 153 if ($db_type == "pgsql") { 154 154 $sql = "SELECT a.attname FROM pg_class c, pg_attribute a WHERE c.relname=? AND c.oid=a.attrelid AND a.attnum > 0 ORDER BY a.attnum"; … … 165 165 } 166 166 167 // ¥¤¥ó¥¹¥È¡¼¥ë½é´ü½èÍý167 // インストール初期処理 168 168 function sfInitInstall() { 169 // ¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£169 // インストール済みが定義されていない。 170 170 if(!defined('ECCUBE_INSTALL')) { 171 171 if(!ereg("/install/", $_SERVER['PHP_SELF'])) { … … 175 175 $path = HTML_PATH . "install/index.php"; 176 176 if(file_exists($path)) { 177 sfErrorHeader(">> /install/index.php ¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë´°Î»¸å¤Ë¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£");178 } 179 180 // µì¥Ð¡¼¥¸¥ç¥ó¤Îinstall.inc¤Î¥Á¥§¥Ã¥¯177 sfErrorHeader(">> /install/index.phpは、インストール完了後にファイルを削除してください。"); 178 } 179 180 // 旧バージョンのinstall.incのチェック 181 181 $path = HTML_PATH . "install.inc"; 182 182 if(file_exists($path)) { 183 sfErrorHeader(">> /install.inc ¤Ï¥»¥¥å¥ê¥Æ¥£¡¼¥Û¡¼¥ë¤È¤Ê¤ê¤Þ¤¹¡£ºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£");183 sfErrorHeader(">> /install.incはセキュリティーホールとなります。削除してください。"); 184 184 } 185 185 } 186 186 } 187 187 188 // ¥¢¥Ã¥×¥Ç¡¼¥È¤ÇÀ¸À®¤µ¤ì¤¿PHP¤òÆÉ¤ß½Ð¤·188 // アップデートで生成されたPHPを読み出し 189 189 function sfLoadUpdateModule() { 190 // URL ÀßÄê¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü190 // URL設定ディレクトリを削除 191 191 $main_php = ereg_replace(URL_DIR, "", $_SERVER['PHP_SELF']); 192 192 $extern_php = UPDATE_PATH . $main_php; … … 197 197 198 198 function sf_getBasisData() { 199 //DB ¤«¤éÀßÄê¾ðÊó¤ò¼èÆÀ199 //DBから設定情報を取得 200 200 $objConn = new SC_DbConn(DEFAULT_DSN); 201 201 $result = $objConn->getAll("SELECT * FROM dtb_baseinfo"); … … 208 208 } 209 209 210 // Áõ¾þÉÕ¤¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨210 // 装飾付きエラーメッセージの表示 211 211 function sfErrorHeader($mess, $print = false) { 212 212 global $GLOBAL_ERR; … … 227 227 } 228 228 229 /* ¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨*/229 /* エラーページの表示 */ 230 230 function sfDispError($type) { 231 231 … … 233 233 function LC_ErrorPage() { 234 234 $this->tpl_mainpage = 'login_error.tpl'; 235 $this->tpl_title = ' ¥¨¥é¡¼';235 $this->tpl_title = 'エラー'; 236 236 } 237 237 } … … 242 242 switch ($type) { 243 243 case LOGIN_ERROR: 244 $objPage->tpl_error=" £É£Ä¤Þ¤¿¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£";244 $objPage->tpl_error="IDまたはパスワードが正しくありません。<br />もう一度ご確認のうえ、再度入力してください。"; 245 245 break; 246 246 case ACCESS_ERROR: 247 $objPage->tpl_error=" ¥í¥°¥¤¥óǧ¾Ú¤Î͸ú´ü¸ÂÀÚ¤ì¤Î²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙ¥í¥°¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£";247 $objPage->tpl_error="ログイン認証の有効期限切れの可能性があります。<br />もう一度ご確認のうえ、再度ログインしてください。"; 248 248 break; 249 249 case AUTH_ERROR: 250 $objPage->tpl_error=" ¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥¢¥¯¥»¥¹¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙ¥í¥°¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£";250 $objPage->tpl_error="このファイルにはアクセス権限がありません。<br />もう一度ご確認のうえ、再度ログインしてください。"; 251 251 break; 252 252 case PAGE_ERROR: 253 $objPage->tpl_error=" ÉÔÀµ¤Ê¥Ú¡¼¥¸°Üư¤Ç¤¹¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£";253 $objPage->tpl_error="不正なページ移動です。<br />もう一度ご確認のうえ、再度入力してください。"; 254 254 break; 255 255 default: 256 $objPage->tpl_error=" ¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙ¥í¥°¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£";256 $objPage->tpl_error="エラーが発生しました。<br />もう一度ご確認のうえ、再度ログインしてください。"; 257 257 break; 258 258 } … … 264 264 } 265 265 266 /* ¥µ¥¤¥È¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨*/266 /* サイトエラーページの表示 */ 267 267 function sfDispSiteError($type, $objSiteSess = "", $return_top = false, $err_msg = "") { 268 268 global $objCampaignSess; … … 276 276 $this->tpl_mainpage = 'error.tpl'; 277 277 $this->tpl_css = URL_DIR.'css/layout/error.css'; 278 $this->tpl_title = ' ¥¨¥é¡¼';278 $this->tpl_title = 'エラー'; 279 279 } 280 280 } … … 285 285 switch ($type) { 286 286 case PRODUCT_NOT_FOUND: 287 $objPage->tpl_error=" ¤´»ØÄê¤Î¥Ú¡¼¥¸¤Ï¤´¤¶¤¤¤Þ¤»¤ó¡£";287 $objPage->tpl_error="ご指定のページはございません。"; 288 288 break; 289 289 case PAGE_ERROR: 290 $objPage->tpl_error=" ÉÔÀµ¤Ê¥Ú¡¼¥¸°Üư¤Ç¤¹¡£";290 $objPage->tpl_error="不正なページ移動です。"; 291 291 break; 292 292 case CART_EMPTY: 293 $objPage->tpl_error=" ¥«¡¼¥È¤Ë¾¦Éʤ¬¤¬¤¢¤ê¤Þ¤»¤ó¡£";293 $objPage->tpl_error="カートに商品ががありません。"; 294 294 break; 295 295 case CART_ADD_ERROR: 296 $objPage->tpl_error=" ¹ØÆþ½èÍýÃæ¤Ï¡¢¥«¡¼¥È¤Ë¾¦ÉʤòÄɲ乤뤳¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£";296 $objPage->tpl_error="購入処理中は、カートに商品を追加することはできません。"; 297 297 break; 298 298 case CANCEL_PURCHASE: 299 $objPage->tpl_error=" ¤³¤Î¼ê³¤¤Ï̵¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£°Ê²¼¤ÎÍ×°ø¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£<br />¡¦¥»¥Ã¥·¥ç¥ó¾ðÊó¤Î͸ú´ü¸Â¤¬ÀÚ¤ì¤Æ¤ë¾ì¹ç<br />¡¦¹ØÆþ¼ê³¤Ãæ¤Ë¿·¤·¤¤¹ØÆþ¼ê³¤¤ò¼Â¹Ô¤·¤¿¾ì¹ç<br />¡¦¤¹¤Ç¤Ë¹ØÆþ¼ê³¤¤ò´°Î»¤·¤Æ¤¤¤ë¾ì¹ç";299 $objPage->tpl_error="この手続きは無効となりました。以下の要因が考えられます。<br />・セッション情報の有効期限が切れてる場合<br />・購入手続き中に新しい購入手続きを実行した場合<br />・すでに購入手続きを完了している場合"; 300 300 break; 301 301 case CATEGORY_NOT_FOUND: 302 $objPage->tpl_error=" ¤´»ØÄê¤Î¥«¥Æ¥´¥ê¤Ï¸ºß¤·¤Þ¤»¤ó¡£";302 $objPage->tpl_error="ご指定のカテゴリは存在しません。"; 303 303 break; 304 304 case SITE_LOGIN_ERROR: 305 $objPage->tpl_error=" ¥á¡¼¥ë¥¢¥É¥ì¥¹¤â¤·¤¯¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£";305 $objPage->tpl_error="メールアドレスもしくはパスワードが正しくありません。"; 306 306 break; 307 307 case TEMP_LOGIN_ERROR: 308 $objPage->tpl_error=" ¥á¡¼¥ë¥¢¥É¥ì¥¹¤â¤·¤¯¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£<br />ËÜÅÐÏ¿¤¬¤ªºÑ¤ß¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢²¾ÅÐÏ¿¥á¡¼¥ë¤ËµºÜ¤µ¤ì¤Æ¤¤¤ë<br />URL¤è¤êËÜÅÐÏ¿¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£";308 $objPage->tpl_error="メールアドレスもしくはパスワードが正しくありません。<br />本登録がお済みでない場合は、仮登録メールに記載されている<br />URLより本登録を行ってください。"; 309 309 break; 310 310 case CUSTOMER_ERROR: 311 $objPage->tpl_error=" ÉÔÀµ¤Ê¥¢¥¯¥»¥¹¤Ç¤¹¡£";311 $objPage->tpl_error="不正なアクセスです。"; 312 312 break; 313 313 case SOLD_OUT: 314 $objPage->tpl_error=" ¿½¤·Ìõ¤´¤¶¤¤¤Þ¤»¤ó¤¬¡¢¤´¹ØÆþ¤ÎľÁ°¤ÇÇä¤êÀڤ줿¾¦Éʤ¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¼ê³¤¤Ï̵¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£";314 $objPage->tpl_error="申し訳ございませんが、ご購入の直前で売り切れた商品があります。この手続きは無効となりました。"; 315 315 break; 316 316 case CART_NOT_FOUND: 317 $objPage->tpl_error=" ¿½¤·Ìõ¤´¤¶¤¤¤Þ¤»¤ó¤¬¡¢¥«¡¼¥ÈÆâ¤Î¾¦ÉʾðÊó¤Î¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£¤³¤Î¼ê³¤¤Ï̵¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£";317 $objPage->tpl_error="申し訳ございませんが、カート内の商品情報の取得に失敗しました。この手続きは無効となりました。"; 318 318 break; 319 319 case LACK_POINT: 320 $objPage->tpl_error=" ¿½¤·Ìõ¤´¤¶¤¤¤Þ¤»¤ó¤¬¡¢¥Ý¥¤¥ó¥È¤¬ÉÔ¤·¤Æ¤ª¤ê¤Þ¤¹¡£¤³¤Î¼ê³¤¤Ï̵¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£";320 $objPage->tpl_error="申し訳ございませんが、ポイントが不足しております。この手続きは無効となりました。"; 321 321 break; 322 322 case FAVORITE_ERROR: 323 $objPage->tpl_error=" ´û¤Ë¤ªµ¤¤ËÆþ¤ê¤ËÄɲäµ¤ì¤Æ¤¤¤ë¾¦ÉʤǤ¹¡£";323 $objPage->tpl_error="既にお気に入りに追加されている商品です。"; 324 324 break; 325 325 case EXTRACT_ERROR: 326 $objPage->tpl_error=" ¥Õ¥¡¥¤¥ë¤Î²òÅà¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n»ØÄê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë½ñ¤¹þ¤ß¸¢¸Â¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£";326 $objPage->tpl_error="ファイルの解凍に失敗しました。\n指定のディレクトリに書き込み権限が与えられていない可能性があります。"; 327 327 break; 328 328 case FTP_DOWNLOAD_ERROR: 329 $objPage->tpl_error=" ¥Õ¥¡¥¤¥ë¤ÎFTP¥À¥¦¥ó¥í¡¼¥É¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";329 $objPage->tpl_error="ファイルのFTPダウンロードに失敗しました。"; 330 330 break; 331 331 case FTP_LOGIN_ERROR: 332 $objPage->tpl_error="FTP ¥í¥°¥¤¥ó¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";332 $objPage->tpl_error="FTPログインに失敗しました。"; 333 333 break; 334 334 case FTP_CONNECT_ERROR: 335 $objPage->tpl_error="FTP ¥í¥°¥¤¥ó¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";335 $objPage->tpl_error="FTPログインに失敗しました。"; 336 336 break; 337 337 case CREATE_DB_ERROR: 338 $objPage->tpl_error="DB ¤ÎºîÀ®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n»ØÄê¤Î¥æ¡¼¥¶¡¼¤Ë¤Ï¡¢DBºîÀ®¤Î¸¢¸Â¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£";338 $objPage->tpl_error="DBの作成に失敗しました。\n指定のユーザーには、DB作成の権限が与えられていない可能性があります。"; 339 339 break; 340 340 case DB_IMPORT_ERROR: 341 $objPage->tpl_error=" ¥Ç¡¼¥¿¥Ù¡¼¥¹¹½Â¤¤Î¥¤¥ó¥Ý¡¼¥È¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\nsql¥Õ¥¡¥¤¥ë¤¬²õ¤ì¤Æ¤¤¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£";341 $objPage->tpl_error="データベース構造のインポートに失敗しました。\nsqlファイルが壊れている可能性があります。"; 342 342 break; 343 343 case FILE_NOT_FOUND: 344 $objPage->tpl_error=" »ØÄê¤Î¥Ñ¥¹¤Ë¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£";344 $objPage->tpl_error="指定のパスに、設定ファイルが存在しません。"; 345 345 break; 346 346 case WRITE_FILE_ERROR: 347 $objPage->tpl_error=" ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¹þ¤á¤Þ¤»¤ó¡£\nÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤¹þ¤ß¸¢¸Â¤òÍ¿¤¨¤Æ¤¯¤À¤µ¤¤¡£";347 $objPage->tpl_error="設定ファイルに書き込めません。\n設定ファイルに書き込み権限を与えてください。"; 348 348 break; 349 349 case FREE_ERROR_MSG: … … 351 351 break; 352 352 default: 353 $objPage->tpl_error=" ¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£";353 $objPage->tpl_error="エラーが発生しました。"; 354 354 break; 355 355 } … … 360 360 361 361 if(is_object($objCampaignSess)) { 362 // ¥Õ¥ì¡¼¥à¤òÁªÂò(¥¥ã¥ó¥Ú¡¼¥ó¥Ú¡¼¥¸¤«¤éÁ«°Ü¤Ê¤éÊѹ¹)362 // フレームを選択(キャンペーンページから遷移なら変更) 363 363 $objCampaignSess->pageView($objView); 364 364 } else { … … 368 368 } 369 369 370 /* ǧ¾Ú¤Î²ÄÈÝȽÄê*/370 /* 認証の可否判定 */ 371 371 function sfIsSuccess($objSess, $disp_error = true) { 372 372 $ret = $objSess->IsSuccess(); 373 373 if($ret != SUCCESS) { 374 374 if($disp_error) { 375 // ¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨375 // エラーページの表示 376 376 sfDispError($ret); 377 377 } … … 381 381 } 382 382 383 /* Á°¤Î¥Ú¡¼¥¸¤ÇÀµ¤·¤¯ÅÐÏ¿¤¬¹Ô¤ï¤ì¤¿¤«È½Äê*/383 /* 前のページで正しく登録が行われたか判定 */ 384 384 function sfIsPrePage($objSiteSess) { 385 385 $ret = $objSiteSess->isPrePage(); 386 386 if($ret != true) { 387 // ¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨387 // エラーページの表示 388 388 sfDispSiteError(PAGE_ERROR, $objSiteSess); 389 389 } … … 391 391 392 392 function sfCheckNormalAccess($objSiteSess, $objCartSess) { 393 // ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ393 // ユーザユニークIDの取得 394 394 $uniqid = $objSiteSess->getUniqId(); 395 // ¹ØÆþ¥Ü¥¿¥ó¤ò²¡¤·¤¿»þ¤Î¥«¡¼¥ÈÆâÍÆ¤¬¥³¥Ô¡¼¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¤ß¥³¥Ô¡¼¤¹¤ë¡£395 // 購入ボタンを押した時のカート内容がコピーされていない場合のみコピーする。 396 396 $objCartSess->saveCurrentCart($uniqid); 397 // POST ¤Î¥æ¥Ë¡¼¥¯ID¤È¥»¥Ã¥·¥ç¥ó¤Î¥æ¥Ë¡¼¥¯ID¤òÈæ³Ó(¥æ¥Ë¡¼¥¯ID¤¬POST¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¥¹¥ë¡¼)397 // POSTのユニークIDとセッションのユニークIDを比較(ユニークIDがPOSTされていない場合はスルー) 398 398 $ret = $objSiteSess->checkUniqId(); 399 399 if($ret != true) { 400 // ¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨400 // エラーページの表示 401 401 sfDispSiteError(CANCEL_PURCHASE, $objSiteSess); 402 402 } 403 403 404 // ¥«¡¼¥ÈÆâ¤¬¶õ¤Ç¤Ê¤¤¤« || ¹ØÆþ¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤«¤éÊѲ½¤¬¤Ê¤¤¤«404 // カート内が空でないか || 購入ボタンを押してから変化がないか 405 405 $quantity = $objCartSess->getTotalQuantity(); 406 406 $ret = $objCartSess->checkChangeCart(); 407 407 if($ret == true || !($quantity > 0)) { 408 // ¥«¡¼¥È¾ðÊóɽ¼¨¤Ë¶¯À©°Üư¤¹¤ë408 // カート情報表示に強制移動する 409 409 header("Location: ".URL_CART_TOP); 410 410 exit; … … 413 413 } 414 414 415 /* DB ÍÑÆüÉÕʸ»úÎó¼èÆÀ*/415 /* DB用日付文字列取得 */ 416 416 function sfGetTimestamp($year, $month, $day, $last = false) { 417 417 if($year != "" && $month != "" && $day != "") { … … 428 428 } 429 429 430 // INT ·¿¤Î¿ôÃÍ¥Á¥§¥Ã¥¯430 // INT型の数値チェック 431 431 function sfIsInt($value) { 432 432 if($value != "" && strlen($value) <= INT_LEN && is_numeric($value)) { … … 445 445 } 446 446 447 /* HTTP ¥Ø¥Ã¥À¤Î½ÐÎÏ*/447 /* HTTPヘッダの出力 */ 448 448 Header("Content-disposition: attachment; filename=${file_name}"); 449 449 Header("Content-type: application/octet-stream; name=${file_name}"); … … 451 451 Header("Pragma: "); 452 452 453 /* i18n ¢· ¤À¤ÈÀµ¾ï¤Ëưºî¤·¤Ê¤¤¤¿¤á¡¢mb¢· ¤ËÊѹ¹453 /* i18n~ だと正常に動作しないため、mb~ に変更 454 454 if (i18n_discover_encoding($data) == CHAR_CODE){ 455 455 $data = i18n_convert($data,'SJIS',CHAR_CODE); … … 460 460 } 461 461 462 /* ¥Ç¡¼¥¿¤ò½ÐÎÏ*/462 /* データを出力 */ 463 463 echo $data; 464 464 } 465 465 466 /* 1 ³¬Áؾå¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤ò¼èÆÀ¤¹¤ë*/466 /* 1階層上のディレクトリ名を取得する */ 467 467 function sfUpDirName() { 468 468 $path = $_SERVER['PHP_SELF']; … … 472 472 } 473 473 474 // ¸½ºß¤Î¥µ¥¤¥È¤ò¹¹¿·¡Ê¤¿¤À¤·¥Ý¥¹¥È¤Ï¹Ô¤ï¤Ê¤¤¡Ë474 // 現在のサイトを更新(ただしポストは行わない) 475 475 function sfReload($get = "") { 476 476 if ($_SERVER["SERVER_PORT"] == "443" ){ … … 488 488 } 489 489 490 // ¥é¥ó¥¥ó¥°¤ò¾å¤²¤ë¡£490 // ランキングを上げる。 491 491 function sfRankUp($table, $colname, $id, $andwhere = "") { 492 492 $objQuery = new SC_Query(); … … 496 496 $where.= " AND $andwhere"; 497 497 } 498 // ÂоݹàÌܤΥé¥ó¥¯¤ò¼èÆÀ498 // 対象項目のランクを取得 499 499 $rank = $objQuery->get($table, "rank", $where, array($id)); 500 // ¥é¥ó¥¯¤ÎºÇÂçÃͤò¼èÆÀ500 // ランクの最大値を取得 501 501 $maxrank = $objQuery->max($table, "rank", $andwhere); 502 // ¥é¥ó¥¯¤¬ºÇÂçÃͤè¤ê¤â¾®¤µ¤¤¾ì¹ç¤Ë¼Â¹Ô¤¹¤ë¡£502 // ランクが最大値よりも小さい場合に実行する。 503 503 if($rank < $maxrank) { 504 // ¥é¥ó¥¯¤¬°ì¤Ä¾å¤ÎID¤ò¼èÆÀ¤¹¤ë¡£504 // ランクが一つ上のIDを取得する。 505 505 $where = "rank = ?"; 506 506 if($andwhere != "") { … … 509 509 $uprank = $rank + 1; 510 510 $up_id = $objQuery->get($table, $colname, $where, array($uprank)); 511 // ¥é¥ó¥¯Æþ¤ìÂØ¤¨¤Î¼Â¹Ô511 // ランク入れ替えの実行 512 512 $sqlup = "UPDATE $table SET rank = ?, update_date = Now() WHERE $colname = ?"; 513 513 $objQuery->exec($sqlup, array($rank + 1, $id)); … … 517 517 } 518 518 519 // ¥é¥ó¥¥ó¥°¤ò²¼¤²¤ë¡£519 // ランキングを下げる。 520 520 function sfRankDown($table, $colname, $id, $andwhere = "") { 521 521 $objQuery = new SC_Query(); … … 525 525 $where.= " AND $andwhere"; 526 526 } 527 // ÂоݹàÌܤΥé¥ó¥¯¤ò¼èÆÀ527 // 対象項目のランクを取得 528 528 $rank = $objQuery->get($table, "rank", $where, array($id)); 529 529 530 // ¥é¥ó¥¯¤¬1(ºÇ¾®ÃÍ)¤è¤ê¤âÂ礤¤¾ì¹ç¤Ë¼Â¹Ô¤¹¤ë¡£530 // ランクが1(最小値)よりも大きい場合に実行する。 531 531 if($rank > 1) { 532 // ¥é¥ó¥¯¤¬°ì¤Ä²¼¤ÎID¤ò¼èÆÀ¤¹¤ë¡£532 // ランクが一つ下のIDを取得する。 533 533 $where = "rank = ?"; 534 534 if($andwhere != "") { … … 537 537 $downrank = $rank - 1; 538 538 $down_id = $objQuery->get($table, $colname, $where, array($downrank)); 539 // ¥é¥ó¥¯Æþ¤ìÂØ¤¨¤Î¼Â¹Ô539 // ランク入れ替えの実行 540 540 $sqlup = "UPDATE $table SET rank = ?, update_date = Now() WHERE $colname = ?"; 541 541 $objQuery->exec($sqlup, array($rank - 1, $id)); … … 545 545 } 546 546 547 //---- ¡¡»ØÄê½ç°Ì¤Ø°Üư547 //---- 指定順位へ移動 548 548 function sfMoveRank($tableName, $keyIdColumn, $keyId, $pos, $where = "") { 549 549 $objQuery = new SC_Query(); 550 550 $objQuery->begin(); 551 551 552 // ¼«¿È¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë552 // 自身のランクを取得する 553 553 $rank = $objQuery->get($tableName, "rank", "$keyIdColumn = ?", array($keyId)); 554 554 $max = $objQuery->max($tableName, "rank", $where); 555 555 556 // ÃͤÎÄ´À°¡ÊµÕ½ç¡Ë556 // 値の調整(逆順) 557 557 if($pos > $max) { 558 558 $position = 1; … … 563 563 } 564 564 565 if( $position > $rank ) $term = "rank - 1"; // Æþ¤ìÂØ¤¨Àè¤Î½ç°Ì¤¬Æþ¤ì´¹¤¨¸µ¤Î½ç°Ì¤è¤êÂ礤¤¾ì¹ç566 if( $position < $rank ) $term = "rank + 1"; // Æþ¤ìÂØ¤¨Àè¤Î½ç°Ì¤¬Æþ¤ì´¹¤¨¸µ¤Î½ç°Ì¤è¤ê¾®¤µ¤¤¾ì¹ç567 568 //-- ¡¡»ØÄꤷ¤¿½ç°Ì¤Î¾¦Éʤ«¤é°Üư¤µ¤»¤ë¾¦ÉʤޤǤÎrank¤ò£±¤Ä¤º¤é¤¹565 if( $position > $rank ) $term = "rank - 1"; //入れ替え先の順位が入れ換え元の順位より大きい場合 566 if( $position < $rank ) $term = "rank + 1"; //入れ替え先の順位が入れ換え元の順位より小さい場合 567 568 //-- 指定した順位の商品から移動させる商品までのrankを1つずらす 569 569 $sql = "UPDATE $tableName SET rank = $term, update_date = NOW() WHERE rank BETWEEN ? AND ? AND del_flg = 0"; 570 570 if($where != "") { … … 575 575 if( $position < $rank ) $objQuery->exec( $sql, array( $position, $rank - 1 )); 576 576 577 //-- »ØÄꤷ¤¿½ç°Ì¤Ørank¤ò½ñ¤´¹¤¨¤ë¡£577 //-- 指定した順位へrankを書き換える。 578 578 $sql = "UPDATE $tableName SET rank = ?, update_date = NOW() WHERE $keyIdColumn = ? AND del_flg = 0 "; 579 579 if($where != "") { … … 585 585 } 586 586 587 // ¥é¥ó¥¯¤ò´Þ¤à¥ì¥³¡¼¥É¤Îºï½ü588 // ¥ì¥³¡¼¥É¤´¤Èºï½ü¤¹¤ë¾ì¹ç¤Ï¡¢$delete¤òtrue¤Ë¤¹¤ë¡£587 // ランクを含むレコードの削除 588 // レコードごと削除する場合は、$deleteをtrueにする。 589 589 function sfDeleteRankRecord($table, $colname, $id, $andwhere = "", $delete = false) { 590 590 $objQuery = new SC_Query(); 591 591 $objQuery->begin(); 592 // ºï½ü¥ì¥³¡¼¥É¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë¡£592 // 削除レコードのランクを取得する。 593 593 $where = "$colname = ?"; 594 594 if($andwhere != "") { … … 598 598 599 599 if(!$delete) { 600 // ¥é¥ó¥¯¤òºÇ²¼°Ì¤Ë¤¹¤ë¡¢DEL¥Õ¥é¥°ON600 // ランクを最下位にする、DELフラグON 601 601 $sqlup = "UPDATE $table SET rank = 0, del_flg = 1, update_date = Now() "; 602 602 $sqlup.= "WHERE $colname = ?"; 603 // UPDATE ¤Î¼Â¹Ô603 // UPDATEの実行 604 604 $objQuery->exec($sqlup, array($id)); 605 605 } else { … … 607 607 } 608 608 609 // Äɲå쥳¡¼¥É¤Î¥é¥ó¥¯¤è¤ê¾å¤Î¥ì¥³¡¼¥É¤ò°ì¤Ä¤º¤é¤¹¡£609 // 追加レコードのランクより上のレコードを一つずらす。 610 610 $where = "rank > ?"; 611 611 if($andwhere != "") { … … 617 617 } 618 618 619 // ¥ì¥³¡¼¥É¤Î¸ºß¥Á¥§¥Ã¥¯619 // レコードの存在チェック 620 620 function sfIsRecord($table, $col, $arrval, $addwhere = "") { 621 621 $objQuery = new SC_Query(); … … 645 645 } 646 646 647 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤ÎÃͤò¥Þ¡¼¥¸647 // チェックボックスの値をマージ 648 648 function sfMergeCBValue($keyname, $max) { 649 649 $conv = ""; … … 659 659 } 660 660 661 // html_checkboxes ¤ÎÃͤò¥Þ¡¼¥¸¤·¤Æ2¿Ê¿ô·Á¼°¤ËÊѹ¹¤¹¤ë¡£661 // html_checkboxesの値をマージして2進数形式に変更する。 662 662 function sfMergeCheckBoxes($array, $max) { 663 663 $ret = ""; … … 678 678 679 679 680 // html_checkboxes ¤ÎÃͤò¥Þ¡¼¥¸¤·¤Æ¡Ö-¡×¤Ç¤Ä¤Ê¤²¤ë¡£680 // html_checkboxesの値をマージして「-」でつなげる。 681 681 function sfMergeParamCheckBoxes($array) { 682 682 if(is_array($array)) { … … 694 694 } 695 695 696 // html_checkboxes ¤ÎÃͤò¥Þ¡¼¥¸¤·¤ÆSQL¸¡º÷ÍѤËÊѹ¹¤¹¤ë¡£696 // html_checkboxesの値をマージしてSQL検索用に変更する。 697 697 function sfSearchCheckBoxes($array) { 698 698 $max = 0; … … 718 718 } 719 719 720 // 2 ¿Ê¿ô·Á¼°¤ÎÃͤòhtml_checkboxesÂбþ¤ÎÃͤËÀÚ¤êÂØ¤¨¤ë720 // 2進数形式の値をhtml_checkboxes対応の値に切り替える 721 721 function sfSplitCheckBoxes($val) { 722 722 $len = strlen($val); … … 729 729 } 730 730 731 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤ÎÃͤò¥Þ¡¼¥¸731 // チェックボックスの値をマージ 732 732 function sfMergeCBSearchValue($keyname, $max) { 733 733 $conv = ""; … … 743 743 } 744 744 745 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤ÎÃͤòʬ²ò745 // チェックボックスの値を分解 746 746 function sfSplitCBValue($val, $keyname = "") { 747 747 $len = strlen($val); … … 758 758 } 759 759 760 // ¥¡¼¤ÈÃͤò¥»¥Ã¥È¤·¤¿ÇÛÎó¤ò¼èÆÀ760 // キーと値をセットした配列を取得 761 761 function sfArrKeyValue($arrList, $keyname, $valname, $len_max = "", $keysize = "") { 762 762 … … 783 783 } 784 784 785 // ¥¡¼¤ÈÃͤò¥»¥Ã¥È¤·¤¿ÇÛÎó¤ò¼èÆÀ(Ãͤ¬Ê£¿ô¤Î¾ì¹ç)785 // キーと値をセットした配列を取得(値が複数の場合) 786 786 function sfArrKeyValues($arrList, $keyname, $valname, $len_max = "", $keysize = "", $connect = "") { 787 787 … … 809 809 } 810 810 811 // ÇÛÎó¤ÎÃͤò¥«¥ó¥Þ¶èÀÚ¤ê¤ÇÊÖ¤¹¡£811 // 配列の値をカンマ区切りで返す。 812 812 function sfGetCommaList($array, $space=true) { 813 813 if (count($array) > 0) { … … 831 831 } 832 832 833 /* ÇÛÎó¤ÎÍ×ÁǤòCSV¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ÐÎϤ¹¤ë¡£*/833 /* 配列の要素をCSVフォーマットで出力する。*/ 834 834 function sfGetCSVList($array) { 835 835 if (count($array) > 0) { … … 845 845 } 846 846 847 /* ÇÛÎó¤ÎÍ×ÁǤòPDF¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ÐÎϤ¹¤ë¡£*/847 /* 配列の要素をPDFフォーマットで出力する。*/ 848 848 function sfGetPDFList($array) { 849 849 foreach($array as $key => $val) { … … 858 858 /*-----------------------------------------------------------------*/ 859 859 /* check_set_term 860 /* ǯ·îÆü¤ËÊ̤줿2¤Ä¤Î´ü´Ö¤ÎÂÅÅöÀ¤ò¥Á¥§¥Ã¥¯¤·¡¢À°¹çÀ¤È´ü´Ö¤òÊÖ¤¹861 /* ¡¡°ú¿ô (³«»Ïǯ,³«»Ï·î,³«»ÏÆü,½ªÎ»Ç¯,½ªÎ»·î,½ªÎ»Æü)862 /* ¡¡ÌáÃÍ array(£±¡¤£²¡¤£³¡Ë863 /* £±¡¥³«»Ïǯ·îÆü(YYYY/MM/DD 000000)864 /* £²¡¥½ªÎ»Ç¯·îÆü(YYYY/MM/DD 235959)865 /* £³¡¥¥¨¥é¡¼( 0 = OK, 1 = NG )860 /* 年月日に別れた2つの期間の妥当性をチェックし、整合性と期間を返す 861 /* 引数 (開始年,開始月,開始日,終了年,終了月,終了日) 862 /* 戻値 array(1,2,3) 863 /* 1.開始年月日 (YYYY/MM/DD 000000) 864 /* 2.終了年月日 (YYYY/MM/DD 235959) 865 /* 3.エラー ( 0 = OK, 1 = NG ) 866 866 /*-----------------------------------------------------------------*/ 867 867 function sfCheckSetTerm ( $start_year, $start_month, $start_day, $end_year, $end_month, $end_day ) { 868 868 869 // ´ü´Ö»ØÄê869 // 期間指定 870 870 $error = 0; 871 871 if ( $start_month || $start_day || $start_year){ … … 887 887 } 888 888 889 // ¥¨¥é¡¼²Õ½ê¤ÎÇØ·Ê¿§¤òÊѹ¹¤¹¤ë¤¿¤á¤Îfunction SC_View¤ÇÆÉ¤ß¹þ¤à889 // エラー箇所の背景色を変更するためのfunction SC_Viewで読み込む 890 890 function sfSetErrorStyle(){ 891 891 return 'style="background-color:'.ERR_COLOR.'"'; 892 892 } 893 893 894 /* DB ¤ËÅϤ¹¿ôÃͤΥÁ¥§¥Ã¥¯895 * 10 ·å°Ê¾å¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥¨¥é¡¼¤òµ¯¤³¤¹¤Î¤Ç¡£894 /* DBに渡す数値のチェック 895 * 10桁以上はオーバーフローエラーを起こすので。 896 896 */ 897 897 function sfCheckNumLength( $value ){ … … 907 907 } 908 908 909 // °ìÃפ·¤¿ÃͤΥ¡¼Ì¾¤ò¼èÆÀ909 // 一致した値のキー名を取得 910 910 function sfSearchKey($array, $word, $default) { 911 911 foreach($array as $key => $val) { … … 917 917 } 918 918 919 // ¥«¥Æ¥´¥ê¥Ä¥ê¡¼¤Î¼èÆÀ($products_check:true¾¦ÉÊÅÐÏ¿ºÑ¤ß¤Î¤â¤Î¤À¤±¼èÆÀ)919 // カテゴリツリーの取得($products_check:true商品登録済みのものだけ取得) 920 920 function sfGetCategoryList($addwhere = "", $products_check = false, $head = CATEGORY_HEAD) { 921 921 $objQuery = new SC_Query(); … … 946 946 /* 947 947 for($n = 1; $n < $arrRet[$cnt]['level']; $n++) { 948 $arrList[$id].= " ¡¡";948 $arrList[$id].= " "; 949 949 } 950 950 */ … … 957 957 } 958 958 959 // ¥«¥Æ¥´¥ê¥Ä¥ê¡¼¤Î¼èÆÀ¡Ê¿Æ¥«¥Æ¥´¥ê¤ÎValue:0)959 // カテゴリツリーの取得(親カテゴリのValue:0) 960 960 function sfGetLevelCatList($parent_zero = true) { 961 961 $objQuery = new SC_Query(); … … 980 980 /* 981 981 for($n = 1; $n < $arrRet[$cnt]['level']; $n++) { 982 $arrOutput[$cnt].= " ¡¡";982 $arrOutput[$cnt].= " "; 983 983 } 984 984 */ … … 1013 1013 } 1014 1014 1015 // SELECT ¥Ü¥Ã¥¯¥¹Íѥꥹ¥È¤ÎºîÀ®1015 // SELECTボックス用リストの作成 1016 1016 function sfGetIDValueList($table, $keyname, $valname) { 1017 1017 $objQuery = new SC_Query(); … … 1030 1030 1031 1031 function sfTrim($str) { 1032 $ret = ereg_replace("^[ ¡¡\n\r]*", "", $str);1033 $ret = ereg_replace("[ ¡¡\n\r]*$", "", $ret);1032 $ret = ereg_replace("^[ \n\r]*", "", $str); 1033 $ret = ereg_replace("[ \n\r]*$", "", $ret); 1034 1034 return $ret; 1035 1035 } 1036 1036 1037 /* ½ê°¤¹¤ë¤¹¤Ù¤Æ¤Î³¬ÁؤοÆID¤òÇÛÎó¤ÇÊÖ¤¹*/1037 /* 所属するすべての階層の親IDを配列で返す */ 1038 1038 function sfGetParents($objQuery, $table, $pid_name, $id_name, $id) { 1039 1039 $arrRet = sfGetParentsArray($table, $pid_name, $id_name, $id); 1040 // ÇÛÎó¤ÎÀèÆ¬1¤Ä¤òºï½ü¤¹¤ë¡£1040 // 配列の先頭1つを削除する。 1041 1041 array_shift($arrRet); 1042 1042 return $arrRet; … … 1044 1044 1045 1045 1046 /* ¿ÆID¤ÎÇÛÎó¤ò¸µ¤ËÆÃÄê¤Î¥«¥é¥à¤ò¼èÆÀ¤¹¤ë¡£*/1046 /* 親IDの配列を元に特定のカラムを取得する。*/ 1047 1047 function sfGetParentsCol($objQuery, $table, $id_name, $col_name, $arrId ) { 1048 1048 $col = $col_name; … … 1063 1063 } 1064 1064 1065 /* »ÒID¤ÎÇÛÎó¤òÊÖ¤¹*/1065 /* 子IDの配列を返す */ 1066 1066 function sfGetChildsID($table, $pid_name, $id_name, $id) { 1067 1067 $arrRet = sfGetChildrenArray($table, $pid_name, $id_name, $id); … … 1069 1069 } 1070 1070 1071 /* ¥«¥Æ¥´¥êÊѹ¹»þ¤Î°Üư½èÍý*/1071 /* カテゴリ変更時の移動処理 */ 1072 1072 function sfMoveCatRank($objQuery, $table, $id_name, $cat_name, $old_catid, $new_catid, $id) { 1073 1073 if ($old_catid == $new_catid) { 1074 1074 return; 1075 1075 } 1076 // µì¥«¥Æ¥´¥ê¤Ç¤Î¥é¥ó¥¯ºï½ü½èÍý1077 // °Üư¥ì¥³¡¼¥É¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë¡£1076 // 旧カテゴリでのランク削除処理 1077 // 移動レコードのランクを取得する。 1078 1078 $where = "$id_name = ?"; 1079 1079 $rank = $objQuery->get($table, "rank", $where, array($id)); 1080 // ºï½ü¥ì¥³¡¼¥É¤Î¥é¥ó¥¯¤è¤ê¾å¤Î¥ì¥³¡¼¥É¤ò°ì¤Ä²¼¤Ë¤º¤é¤¹¡£1080 // 削除レコードのランクより上のレコードを一つ下にずらす。 1081 1081 $where = "rank > ? AND $cat_name = ?"; 1082 1082 $sqlup = "UPDATE $table SET rank = (rank - 1) WHERE $where"; 1083 1083 $objQuery->exec($sqlup, array($rank, $old_catid)); 1084 // ¿·¥«¥Æ¥´¥ê¤Ç¤ÎÅÐÏ¿½èÍý1085 // ¿·¥«¥Æ¥´¥ê¤ÎºÇÂç¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë¡£1084 // 新カテゴリでの登録処理 1085 // 新カテゴリの最大ランクを取得する。 1086 1086 $max_rank = $objQuery->max($table, "rank", "$cat_name = ?", array($new_catid)) + 1; 1087 1087 $where = "$id_name = ?"; … … 1090 1090 } 1091 1091 1092 /* ÀǶâ·×»»*/1092 /* 税金計算 */ 1093 1093 function sfTax($price, $tax, $tax_rule) { 1094 1094 $real_tax = $tax / 100; 1095 1095 $ret = $price * $real_tax; 1096 1096 switch($tax_rule) { 1097 // »Í¼Î¸ÞÆþ1097 // 四捨五入 1098 1098 case 1: 1099 1099 $ret = round($ret); 1100 1100 break; 1101 // ÀÚ¤ê¼Î¤Æ1101 // 切り捨て 1102 1102 case 2: 1103 1103 $ret = floor($ret); 1104 1104 break; 1105 // ÀÚ¤ê¾å¤²1105 // 切り上げ 1106 1106 case 3: 1107 1107 $ret = ceil($ret); 1108 1108 break; 1109 // ¥Ç¥Õ¥©¥ë¥È:ÀÚ¤ê¾å¤²1109 // デフォルト:切り上げ 1110 1110 default: 1111 1111 $ret = ceil($ret); … … 1115 1115 } 1116 1116 1117 /* ÀǶâÉÕÍ¿*/1117 /* 税金付与 */ 1118 1118 function sfPreTax($price, $tax, $tax_rule) { 1119 1119 $real_tax = $tax / 100; … … 1121 1121 1122 1122 switch($tax_rule) { 1123 // »Í¼Î¸ÞÆþ1123 // 四捨五入 1124 1124 case 1: 1125 1125 $ret = round($ret); 1126 1126 break; 1127 // ÀÚ¤ê¼Î¤Æ1127 // 切り捨て 1128 1128 case 2: 1129 1129 $ret = floor($ret); 1130 1130 break; 1131 // ÀÚ¤ê¾å¤²1131 // 切り上げ 1132 1132 case 3: 1133 1133 $ret = ceil($ret); 1134 1134 break; 1135 // ¥Ç¥Õ¥©¥ë¥È:ÀÚ¤ê¾å¤²1135 // デフォルト:切り上げ 1136 1136 default: 1137 1137 $ret = ceil($ret); … … 1141 1141 } 1142 1142 1143 // ·å¿ô¤ò»ØÄꤷ¤Æ»Í¼Î¸ÞÆþ1143 // 桁数を指定して四捨五入 1144 1144 function sfRound($value, $pow = 0){ 1145 1145 $adjust = pow(10 ,$pow-1); 1146 1146 1147 // À°¿ô³î¤Ä0½Ð¤Ê¤±¤ì¤Ð·å¿ô»ØÄê¤ò¹Ô¤¦1147 // 整数且つ0出なければ桁数指定を行う 1148 1148 if(sfIsInt($adjust) and $pow > 1){ 1149 1149 $ret = (round($value * $adjust)/$adjust); … … 1155 1155 } 1156 1156 1157 /* ¥Ý¥¤¥ó¥ÈÉÕÍ¿*/1157 /* ポイント付与 */ 1158 1158 function sfPrePoint($price, $point_rate, $rule = POINT_RULE, $product_id = "") { 1159 1159 if(sfIsInt($product_id)) { … … 1163 1163 1164 1164 $where .= "del_flg = 0 AND campaign_id IN (SELECT campaign_id FROM dtb_campaign_detail where product_id = ? )"; 1165 // ÅÐÏ¿(¹¹¿·)ÆüÉÕ½ç1165 //登録(更新)日付順 1166 1166 $objQuery->setorder('update_date DESC'); 1167 // ¥¥ã¥ó¥Ú¡¼¥ó¥Ý¥¤¥ó¥È¤Î¼èÆÀ1167 //キャンペーンポイントの取得 1168 1168 $arrRet = $objQuery->select("campaign_name, campaign_point_rate", "dtb_campaign", $where, array($product_id)); 1169 1169 } 1170 // Ê£¿ô¤Î¥¥ã¥ó¥Ú¡¼¥ó¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¾¦Éʤϡ¢ºÇ¿·¤Î¥¥ã¥ó¥Ú¡¼¥ó¤«¤é¥Ý¥¤¥ó¥È¤ò¼èÆÀ1170 //複数のキャンペーンに登録されている商品は、最新のキャンペーンからポイントを取得 1171 1171 if($arrRet[0]['campaign_point_rate'] != "") { 1172 1172 $campaign_point_rate = $arrRet[0]['campaign_point_rate']; … … 1177 1177 $ret = $price * $real_point; 1178 1178 switch($rule) { 1179 // »Í¼Î¸ÞÆþ1179 // 四捨五入 1180 1180 case 1: 1181 1181 $ret = round($ret); 1182 1182 break; 1183 // ÀÚ¤ê¼Î¤Æ1183 // 切り捨て 1184 1184 case 2: 1185 1185 $ret = floor($ret); 1186 1186 break; 1187 // ÀÚ¤ê¾å¤²1187 // 切り上げ 1188 1188 case 3: 1189 1189 $ret = ceil($ret); 1190 1190 break; 1191 // ¥Ç¥Õ¥©¥ë¥È:ÀÚ¤ê¾å¤²1191 // デフォルト:切り上げ 1192 1192 default: 1193 1193 $ret = ceil($ret); 1194 1194 break; 1195 1195 } 1196 // ¥¥ã¥ó¥Ú¡¼¥ó¾¦Éʤξì¹ç1196 //キャンペーン商品の場合 1197 1197 if($campaign_point_rate != "") { 1198 $ret = "(".$arrRet[0]['campaign_name']." ¥Ý¥¤¥ó¥ÈΨ".$campaign_point_rate."%)".$ret;1198 $ret = "(".$arrRet[0]['campaign_name']."ポイント率".$campaign_point_rate."%)".$ret; 1199 1199 } 1200 1200 return $ret; 1201 1201 } 1202 1202 1203 /* µ¬³ÊʬÎà¤Î·ï¿ô¼èÆÀ*/1203 /* 規格分類の件数取得 */ 1204 1204 function sfGetClassCatCount() { 1205 1205 $sql = "select count(dtb_class.class_id) as count, dtb_class.class_id "; … … 1209 1209 $objQuery = new SC_Query(); 1210 1210 $arrList = $objQuery->getall($sql); 1211 // ¥¡¼¤ÈÃͤò¥»¥Ã¥È¤·¤¿ÇÛÎó¤ò¼èÆÀ1211 // キーと値をセットした配列を取得 1212 1212 $arrRet = sfArrKeyValue($arrList, 'class_id', 'count'); 1213 1213 … … 1215 1215 } 1216 1216 1217 /* µ¬³Ê¤ÎÅÐÏ¿*/1217 /* 規格の登録 */ 1218 1218 function sfInsertProductClass($objQuery, $arrList, $product_id) { 1219 // ¤¹¤Ç¤Ëµ¬³ÊÅÐÏ¿¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£1219 // すでに規格登録があるかどうかをチェックする。 1220 1220 $where = "product_id = ? AND classcategory_id1 <> 0 AND classcategory_id1 <> 0"; 1221 1221 $count = $objQuery->count("dtb_products_class", $where, array($product_id)); 1222 1222 1223 // ¤¹¤Ç¤Ëµ¬³ÊÅÐÏ¿¤¬¤Ê¤¤¾ì¹ç1223 // すでに規格登録がない場合 1224 1224 if($count == 0) { 1225 // ´û¸µ¬³Ê¤Îºï½ü1225 // 既存規格の削除 1226 1226 $where = "product_id = ?"; 1227 1227 $objQuery->delete("dtb_products_class", $where, array($product_id)); … … 1241 1241 } 1242 1242 1243 // INSERT ¤Î¼Â¹Ô1243 // INSERTの実行 1244 1244 $objQuery->insert("dtb_products_class", $sqlval); 1245 1245 } … … 1253 1253 } 1254 1254 1255 /* ʸËö¤Î¡Ö/¡×¤ò¤Ê¤¯¤¹*/1255 /* 文末の「/」をなくす */ 1256 1256 function sfTrimURL($url) { 1257 1257 $ret = ereg_replace("[/]+$", "", $url); … … 1259 1259 } 1260 1260 1261 /* ¾¦Éʵ¬³Ê¾ðÊó¤Î¼èÆÀ*/1261 /* 商品規格情報の取得 */ 1262 1262 function sfGetProductsClass($arrID) { 1263 1263 list($product_id, $classcategory_id1, $classcategory_id2) = $arrID; … … 1270 1270 } 1271 1271 1272 // ¾¦Éʵ¬³Ê¼èÆÀ1272 // 商品規格取得 1273 1273 $objQuery = new SC_Query(); 1274 1274 $col = "product_id, deliv_fee, name, product_code, main_list_image, main_image, price01, price02, point_rate, product_class_id, classcategory_id1, classcategory_id2, class_id1, class_id2, stock, stock_unlimited, sale_limit, sale_unlimited"; … … 1280 1280 } 1281 1281 1282 /* ½¸·×¾ðÊó¤ò¸µ¤ËºÇ½ª·×»»*/1282 /* 集計情報を元に最終計算 */ 1283 1283 function sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo, $objCustomer = "") { 1284 // ¾¦Éʤιç·×¸Ä¿ô1284 // 商品の合計個数 1285 1285 $total_quantity = $objCartSess->getTotalQuantity(true); 1286 1286 1287 // ÀǶâ¤Î¼èÆÀ1287 // 税金の取得 1288 1288 $arrData['tax'] = $objPage->tpl_total_tax; 1289 // ¾®·×¤Î¼èÆÀ1289 // 小計の取得 1290 1290 $arrData['subtotal'] = $objPage->tpl_total_pretax; 1291 1291 1292 // ¹ç·×Á÷ÎÁ¤Î¼èÆÀ1292 // 合計送料の取得 1293 1293 $arrData['deliv_fee'] = 0; 1294 1294 1295 // ¾¦Éʤ´¤È¤ÎÁ÷ÎÁ¤¬Í¸ú¤Î¾ì¹ç1295 // 商品ごとの送料が有効の場合 1296 1296 if (OPTION_PRODUCT_DELIV_FEE == 1) { 1297 1297 $arrData['deliv_fee']+= $objCartSess->getAllProductsDelivFee(); 1298 1298 } 1299 1299 1300 // ÇÛÁ÷¶È¼Ô¤ÎÁ÷ÎÁ¤¬Í¸ú¤Î¾ì¹ç1300 // 配送業者の送料が有効の場合 1301 1301 if (OPTION_DELIV_FEE == 1) { 1302 // Á÷ÎÁ¤Î¹ç·×¤ò·×»»¤¹¤ë1302 // 送料の合計を計算する 1303 1303 $arrData['deliv_fee']+= sfGetDelivFee($arrData['deliv_pref'], $arrData['payment_id']); 1304 1304 } 1305 1305 1306 // Á÷ÎÁ̵ÎÁ¤Î¹ØÆþ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç1306 // 送料無料の購入数が設定されている場合 1307 1307 if(DELIV_FREE_AMOUNT > 0) { 1308 1308 if($total_quantity >= DELIV_FREE_AMOUNT) { … … 1311 1311 } 1312 1312 1313 // Á÷ÎÁ̵ÎÁ¾ò·ï¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç1313 // 送料無料条件が設定されている場合 1314 1314 if($arrInfo['free_rule'] > 0) { 1315 // ¾®·×¤¬ÌµÎÁ¾ò·ï¤òͤ¨¤Æ¤¤¤ë¾ì¹ç1315 // 小計が無料条件を超えている場合 1316 1316 if($arrData['subtotal'] >= $arrInfo['free_rule']) { 1317 1317 $arrData['deliv_fee'] = 0; … … 1319 1319 } 1320 1320 1321 // ¹ç·×¤Î·×»»1322 $arrData['total'] = $objPage->tpl_total_pretax; // ¾¦Éʹç·×1323 $arrData['total']+= $arrData['deliv_fee']; // Á÷ÎÁ1324 $arrData['total']+= $arrData['charge']; // ¼ê¿ôÎÁ1325 // ¤ª»Ùʧ¤¤¹ç·×1321 // 合計の計算 1322 $arrData['total'] = $objPage->tpl_total_pretax; // 商品合計 1323 $arrData['total']+= $arrData['deliv_fee']; // 送料 1324 $arrData['total']+= $arrData['charge']; // 手数料 1325 // お支払い合計 1326 1326 $arrData['payment_total'] = $arrData['total'] - ($arrData['use_point'] * POINT_VALUE); 1327 // ²Ã»»¥Ý¥¤¥ó¥È¤Î·×»»1327 // 加算ポイントの計算 1328 1328 $arrData['add_point'] = sfGetAddPoint($objPage->tpl_total_point, $arrData['use_point'], $arrInfo); 1329 1329 1330 1330 if($objCustomer != "") { 1331 // ÃÂÀ¸Æü·î¤Ç¤¢¤Ã¤¿¾ì¹ç1331 // 誕生日月であった場合 1332 1332 if($objCustomer->isBirthMonth()) { 1333 1333 $arrData['birth_point'] = BIRTH_MONTH_POINT; … … 1343 1343 } 1344 1344 1345 /* ¥«¡¼¥ÈÆâ¾¦Éʤν¸·×½èÍý*/1345 /* カート内商品の集計処理 */ 1346 1346 function sfTotalCart($objPage, $objCartSess, $arrInfo) { 1347 // µ¬³Ê̾°ìÍ÷1347 // 規格名一覧 1348 1348 $arrClassName = sfGetIDValueList("dtb_class", "class_id", "name"); 1349 // µ¬³ÊʬÎà̾°ìÍ÷1349 // 規格分類名一覧 1350 1350 $arrClassCatName = sfGetIDValueList("dtb_classcategory", "classcategory_id", "name"); 1351 1351 1352 $objPage->tpl_total_pretax = 0; // ÈñÍѹç·×(Àǹþ¤ß)1353 $objPage->tpl_total_tax = 0; // ¾ÃÈñÀǹç·×1354 $objPage->tpl_total_point = 0; // ¥Ý¥¤¥ó¥È¹ç·×1355 1356 // ¥«¡¼¥ÈÆâ¾ðÊó¤Î¼èÆÀ1352 $objPage->tpl_total_pretax = 0; // 費用合計(税込み) 1353 $objPage->tpl_total_tax = 0; // 消費税合計 1354 $objPage->tpl_total_point = 0; // ポイント合計 1355 1356 // カート内情報の取得 1357 1357 $arrCart = $objCartSess->getCartList(); 1358 1358 $max = count($arrCart); … … 1360 1360 1361 1361 for ($i = 0; $i < $max; $i++) { 1362 // ¾¦Éʵ¬³Ê¾ðÊó¤Î¼èÆÀ1362 // 商品規格情報の取得 1363 1363 $arrData = sfGetProductsClass($arrCart[$i]['id']); 1364 1364 $limit = ""; 1365 // DB ¤Ë¸ºß¤¹¤ë¾¦ÉÊ1365 // DBに存在する商品 1366 1366 if (count($arrData) > 0) { 1367 1367 1368 // ¹ØÆþÀ©¸Â¿ô¤òµá¤á¤ë¡£1368 // 購入制限数を求める。 1369 1369 if ($arrData['stock_unlimited'] != '1' && $arrData['sale_unlimited'] != '1') { 1370 1370 if($arrData['sale_limit'] < $arrData['stock']) { … … 1383 1383 1384 1384 if($limit != "" && $limit < $arrCart[$i]['quantity']) { 1385 // ¥«¡¼¥ÈÆâ¾¦ÉÊ¿ô¤òÀ©¸Â¤Ë¹ç¤ï¤»¤ë1385 // カート内商品数を制限に合わせる 1386 1386 $objCartSess->setProductValue($arrCart[$i]['id'], 'quantity', $limit); 1387 1387 $quantity = $limit; 1388 $objPage->tpl_message = " ¢¨¡Ö" . $arrData['name'] . "¡×¤ÏÈÎÇäÀ©¸Â¤·¤Æ¤ª¤ê¤Þ¤¹¡¢°ìÅ٤ˤ³¤ì°Ê¾å¤Î¹ØÆþ¤Ï¤Ç¤¤Þ¤»¤ó¡£";1388 $objPage->tpl_message = "※「" . $arrData['name'] . "」は販売制限しております、一度にこれ以上の購入はできません。"; 1389 1389 } else { 1390 1390 $quantity = $arrCart[$i]['quantity']; … … 1399 1399 $objPage->arrProductsClass[$cnt]['classcategory_name2'] = $arrClassCatName[$arrData['classcategory_id2']]; 1400 1400 1401 // ²èÁü¥µ¥¤¥º1401 // 画像サイズ 1402 1402 list($image_width, $image_height) = getimagesize(IMAGE_SAVE_DIR . basename($objPage->arrProductsClass[$cnt]["main_image"])); 1403 1403 $objPage->arrProductsClass[$cnt]["tpl_image_width"] = $image_width + 60; 1404 1404 $objPage->arrProductsClass[$cnt]["tpl_image_height"] = $image_height + 80; 1405 1405 1406 // ²Á³Ê¤ÎÅÐÏ¿1406 // 価格の登録 1407 1407 if ($arrData['price02'] != "") { 1408 1408 $objCartSess->setProductValue($arrCart[$i]['id'], 'price', $arrData['price02']); … … 1412 1412 $objPage->arrProductsClass[$cnt]['uniq_price'] = $arrData['price01']; 1413 1413 } 1414 // ¥Ý¥¤¥ó¥ÈÉÕͿΨ¤ÎÅÐÏ¿1414 // ポイント付与率の登録 1415 1415 $objCartSess->setProductValue($arrCart[$i]['id'], 'point_rate', $arrData['point_rate']); 1416 // ¾¦Éʤ´¤È¤Î¹ç·×¶â³Û1416 // 商品ごとの合計金額 1417 1417 $objPage->arrProductsClass[$cnt]['total_pretax'] = $objCartSess->getProductTotal($arrInfo, $arrCart[$i]['id']); 1418 // Á÷ÎÁ¤Î¹ç·×¤ò·×»»¤¹¤ë1418 // 送料の合計を計算する 1419 1419 $objPage->tpl_total_deliv_fee+= ($arrData['deliv_fee'] * $arrCart[$i]['quantity']); 1420 1420 $cnt++; 1421 1421 } else { 1422 // DB ¤Ë¾¦Éʤ¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¥«¡¼¥È¾¦Éʤκï½ü1422 // DBに商品が見つからない場合はカート商品の削除 1423 1423 $objCartSess->delProductKey('id', $arrCart[$i]['id']); 1424 1424 } 1425 1425 } 1426 1426 1427 // Á´¾¦Éʹç·×¶â³Û(Àǹþ¤ß)1427 // 全商品合計金額(税込み) 1428 1428 $objPage->tpl_total_pretax = $objCartSess->getAllProductsTotal($arrInfo); 1429 // Á´¾¦Éʹç·×¾ÃÈñÀÇ1429 // 全商品合計消費税 1430 1430 $objPage->tpl_total_tax = $objCartSess->getAllProductsTax($arrInfo); 1431 // Á´¾¦Éʹç·×¥Ý¥¤¥ó¥È1431 // 全商品合計ポイント 1432 1432 $objPage->tpl_total_point = $objCartSess->getAllProductsPoint(); 1433 1433 … … 1435 1435 } 1436 1436 1437 /* DB ¤«¤é¼è¤ê½Ð¤·¤¿ÆüÉÕ¤Îʸ»úÎó¤òÄ´À°¤¹¤ë¡£*/1437 /* DBから取り出した日付の文字列を調整する。*/ 1438 1438 function sfDispDBDate($dbdate, $time = true) { 1439 1439 list($y, $m, $d, $H, $M) = split("[- :]", $dbdate); … … 1472 1472 1473 1473 1474 // ÅÔÆ»Éܸ©¡¢»Ùʧ¤¤ÊýË¡¤«¤éÇÛÁ÷ÎÁ¶â¤ò¼èÆÀ¤¹¤ë1474 // 都道府県、支払い方法から配送料金を取得する 1475 1475 function sfGetDelivFee($pref, $payment_id = "") { 1476 1476 $objQuery = new SC_Query(); … … 1478 1478 $deliv_id = ""; 1479 1479 1480 // »Ùʧ¤¤ÊýË¡¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢Âбþ¤·¤¿ÇÛÁ÷¶È¼Ô¤ò¼èÆÀ¤¹¤ë1480 // 支払い方法が指定されている場合は、対応した配送業者を取得する 1481 1481 if($payment_id != "") { 1482 1482 $where = "del_flg = 0 AND payment_id = ?"; 1483 1483 $arrRet = $objQuery->select("deliv_id", "dtb_payment", $where, array($payment_id)); 1484 1484 $deliv_id = $arrRet[0]['deliv_id']; 1485 // »Ùʧ¤¤ÊýË¡¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ÀèÆ¬¤ÎÇÛÁ÷¶È¼Ô¤ò¼èÆÀ¤¹¤ë1485 // 支払い方法が指定されていない場合は、先頭の配送業者を取得する 1486 1486 } else { 1487 1487 $where = "del_flg = 0"; … … 1492 1492 } 1493 1493 1494 // ÇÛÁ÷¶È¼Ô¤«¤éÇÛÁ÷ÎÁ¤ò¼èÆÀ1494 // 配送業者から配送料を取得 1495 1495 if($deliv_id != "") { 1496 1496 1497 // ÅÔÆ»Éܸ©¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ÅìµþÅÔ¤ÎÈÖ¹æ¤ò»ØÄꤷ¤Æ¤ª¤¯1497 // 都道府県が指定されていない場合は、東京都の番号を指定しておく 1498 1498 if($pref == "") { 1499 1499 $pref = 13; … … 1507 1507 } 1508 1508 1509 /* »Ùʧ¤¤ÊýË¡¤Î¼èÆÀ*/1509 /* 支払い方法の取得 */ 1510 1510 function sfGetPayment() { 1511 1511 $objQuery = new SC_Query(); 1512 // ¹ØÆþ¶â³Û¤¬¾ò·ï³Û°Ê²¼¤Î¹àÌܤò¼èÆÀ1512 // 購入金額が条件額以下の項目を取得 1513 1513 $where = "del_flg = 0"; 1514 1514 $objQuery->setorder("fix, rank DESC"); … … 1517 1517 } 1518 1518 1519 /* ÇÛÎó¤ò¥¡¼Ì¾¤´¤È¤ÎÇÛÎó¤ËÊѹ¹¤¹¤ë*/1519 /* 配列をキー名ごとの配列に変更する */ 1520 1520 function sfSwapArray($array) { 1521 1521 $max = count($array); … … 1528 1528 } 1529 1529 1530 /* ¤«¤±»»¤ò¤¹¤ë¡ÊSmartyÍÑ) */1530 /* かけ算をする(Smarty用) */ 1531 1531 function sfMultiply($num1, $num2) { 1532 1532 return ($num1 * $num2); 1533 1533 } 1534 1534 1535 /* DB ¤ËÅÐÏ¿¤µ¤ì¤¿¥Æ¥ó¥×¥ì¡¼¥È¥á¡¼¥ë¤ÎÁ÷¿®*/1535 /* DBに登録されたテンプレートメールの送信 */ 1536 1536 function sfSendTemplateMail($to, $to_name, $template_id, $objPage) { 1537 1537 global $arrMAILTPLPATH; 1538 1538 $objQuery = new SC_Query(); 1539 // ¥á¡¼¥ë¥Æ¥ó¥×¥ì¡¼¥È¾ðÊó¤Î¼èÆÀ1539 // メールテンプレート情報の取得 1540 1540 $where = "template_id = ?"; 1541 1541 $arrRet = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array($template_id)); … … 1548 1548 1549 1549 $objMailView = new SC_SiteView(); 1550 // ¥á¡¼¥ëËÜʸ¤Î¼èÆÀ1550 // メール本文の取得 1551 1551 $objMailView->assignobj($objPage); 1552 1552 $body = $objMailView->fetch($arrMAILTPLPATH[$template_id]); 1553 1553 1554 // ¥á¡¼¥ëÁ÷¿®½èÍý1554 // メール送信処理 1555 1555 $objSendMail = new GC_SendMail(); 1556 1556 $from = $arrInfo['email03']; … … 1559 1559 $objSendMail->setItem('', $tosubject, $body, $from, $arrInfo['shop_name'], $from, $error, $error); 1560 1560 $objSendMail->setTo($to, $to_name); 1561 $objSendMail->sendMail(); // ¥á¡¼¥ëÁ÷¿®1562 } 1563 1564 /* ¼õÃí´°Î»¥á¡¼¥ëÁ÷¿®*/1561 $objSendMail->sendMail(); // メール送信 1562 } 1563 1564 /* 受注完了メール送信 */ 1565 1565 function sfSendOrderMail($order_id, $template_id, $subject = "", $header = "", $footer = "", $send = true) { 1566 1566 global $arrMAILTPLPATH; … … 1574 1574 1575 1575 if($subject == "" && $header == "" && $footer == "") { 1576 // ¥á¡¼¥ë¥Æ¥ó¥×¥ì¡¼¥È¾ðÊó¤Î¼èÆÀ1576 // メールテンプレート情報の取得 1577 1577 $where = "template_id = ?"; 1578 1578 $arrRet = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array('1')); … … 1586 1586 } 1587 1587 1588 // ¼õÃí¾ðÊó¤Î¼èÆÀ1588 // 受注情報の取得 1589 1589 $where = "order_id = ?"; 1590 1590 $arrRet = $objQuery->select("*", "dtb_order", $where, array($order_id)); … … 1594 1594 $objPage->Message_tmp = $arrOrder['message']; 1595 1595 1596 // ¸ÜµÒ¾ðÊó¤Î¼èÆÀ1596 // 顧客情報の取得 1597 1597 $customer_id = $arrOrder['customer_id']; 1598 1598 $arrRet = $objQuery->select("point", "dtb_customer", "customer_id = ?", array($customer_id)); … … 1602 1602 $objPage->arrOrder = $arrOrder; 1603 1603 1604 // ¤½¤Î¾·èºÑ¾ðÊó1604 //その他決済情報 1605 1605 if($arrOrder['memo02'] != "") { 1606 1606 $arrOther = unserialize($arrOrder['memo02']); … … 1615 1615 } 1616 1616 1617 // ÅÔÆ»Éܸ©ÊÑ´¹1617 // 都道府県変換 1618 1618 global $arrPref; 1619 1619 $objPage->arrOrder['deliv_pref'] = $arrPref[$objPage->arrOrder['deliv_pref']]; … … 1625 1625 1626 1626 $objMailView = new SC_SiteView(); 1627 // ¥á¡¼¥ëËÜʸ¤Î¼èÆÀ1627 // メール本文の取得 1628 1628 $objMailView->assignobj($objPage); 1629 1629 $body = $objMailView->fetch($arrMAILTPLPATH[$template_id]); 1630 1630 1631 // ¥á¡¼¥ëÁ÷¿®½èÍý1631 // メール送信処理 1632 1632 $objSendMail = new GC_SendMail(); 1633 1633 $bcc = $arrInfo['email01']; … … 1638 1638 1639 1639 $objSendMail->setItem('', $tosubject, $body, $from, $arrInfo['shop_name'], $from, $error, $error, $bcc); 1640 $objSendMail->setTo($arrOrder["order_email"], $arrOrder["order_name01"] . " ". $arrOrder["order_name02"] ." ÍÍ");1641 1642 1643 // Á÷¿®¥Õ¥é¥°:true¤Î¾ì¹ç¤Ï¡¢Á÷¿®¤¹¤ë¡£1640 $objSendMail->setTo($arrOrder["order_email"], $arrOrder["order_name01"] . " ". $arrOrder["order_name02"] ." 様"); 1641 1642 1643 // 送信フラグ:trueの場合は、送信する。 1644 1644 if($send) { 1645 1645 if ($objSendMail->sendMail()) { … … 1651 1651 } 1652 1652 1653 // ¥Æ¥ó¥×¥ì¡¼¥È¤ò»ÈÍѤ·¤¿¥á¡¼¥ë¤ÎÁ÷¿®1653 // テンプレートを使用したメールの送信 1654 1654 function sfSendTplMail($to, $subject, $tplpath, $objPage) { 1655 1655 $objMailView = new SC_SiteView(); 1656 1656 $objSiteInfo = new SC_SiteInfo(); 1657 1657 $arrInfo = $objSiteInfo->data; 1658 // ¥á¡¼¥ëËÜʸ¤Î¼èÆÀ1658 // メール本文の取得 1659 1659 $objPage->tpl_shopname=$arrInfo['shop_name']; 1660 1660 $objPage->tpl_infoemail = $arrInfo['email02']; 1661 1661 $objMailView->assignobj($objPage); 1662 1662 $body = $objMailView->fetch($tplpath); 1663 // ¥á¡¼¥ëÁ÷¿®½èÍý1663 // メール送信処理 1664 1664 $objSendMail = new GC_SendMail(); 1665 1665 $to = mb_encode_mimeheader($to); … … 1671 1671 } 1672 1672 1673 // Ä̾ï¤Î¥á¡¼¥ëÁ÷¿®1673 // 通常のメール送信 1674 1674 function sfSendMail($to, $subject, $body) { 1675 1675 $objSiteInfo = new SC_SiteInfo(); 1676 1676 $arrInfo = $objSiteInfo->data; 1677 // ¥á¡¼¥ëÁ÷¿®½èÍý1677 // メール送信処理 1678 1678 $objSendMail = new GC_SendMail(); 1679 1679 $bcc = $arrInfo['email01']; … … 1684 1684 } 1685 1685 1686 // ·ï̾¤Ë¥Æ¥ó¥×¥ì¡¼¥È¤òÍѤ¤¤ë1686 //件名にテンプレートを用いる 1687 1687 function sfMakeSubject($subject){ 1688 1688 … … 1701 1701 } 1702 1702 1703 // ¥á¡¼¥ëÇÛ¿®ÍúÎò¤Ø¤ÎÅÐÏ¿1703 // メール配信履歴への登録 1704 1704 function sfSaveMailHistory($order_id, $template_id, $subject, $body) { 1705 1705 $sqlval['subject'] = $subject; … … 1718 1718 } 1719 1719 1720 /* ²ñ°÷¾ðÊó¤ò°ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤Ø*/1720 /* 会員情報を一時受注テーブルへ */ 1721 1721 function sfGetCustomerSqlVal($uniqid, $sqlval) { 1722 1722 $objCustomer = new SC_Customer(); 1723 // ²ñ°÷¾ðÊóÅÐÏ¿½èÍý1723 // 会員情報登録処理 1724 1724 if ($objCustomer->isLoginSuccess()) { 1725 // ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ®1725 // 登録データの作成 1726 1726 $sqlval['order_temp_id'] = $uniqid; 1727 1727 $sqlval['update_date'] = 'Now()'; … … 1747 1747 } 1748 1748 1749 // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ø¤Î½ñ¤¹þ¤ß½èÍý1749 // 受注一時テーブルへの書き込み処理 1750 1750 function sfRegistTempOrder($uniqid, $sqlval) { 1751 1751 if($uniqid != "") { 1752 // ´û¸¥Ç¡¼¥¿¤Î¥Á¥§¥Ã¥¯1752 // 既存データのチェック 1753 1753 $objQuery = new SC_Query(); 1754 1754 $where = "order_temp_id = ?"; 1755 1755 $cnt = $objQuery->count("dtb_order_temp", $where, array($uniqid)); 1756 // ´û¸¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç1756 // 既存データがない場合 1757 1757 if ($cnt == 0) { 1758 // ½é²ó½ñ¤¹þ¤ß»þ¤Ë²ñ°÷¤ÎÅÐÏ¿ºÑ¤ß¾ðÊó¤ò¼è¤ê¹þ¤à1758 // 初回書き込み時に会員の登録済み情報を取り込む 1759 1759 $sqlval = sfGetCustomerSqlVal($uniqid, $sqlval); 1760 1760 $sqlval['create_date'] = "now()"; … … 1766 1766 } 1767 1767 1768 /* ²ñ°÷¤Î¥á¥ë¥Þ¥¬ÅÐÏ¿¤¬¤¢¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯(²¾²ñ°÷¤ò´Þ¤Þ¤Ê¤¤) */1768 /* 会員のメルマガ登録があるかどうかのチェック(仮会員を含まない) */ 1769 1769 function sfCheckCustomerMailMaga($email) { 1770 1770 $col = "T1.email, T1.mail_flag, T2.customer_id"; … … 1773 1773 $objQuery = new SC_Query(); 1774 1774 $arrRet = $objQuery->select($col, $from, $where, array($email)); 1775 // ²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë1775 // 会員のメールアドレスが登録されている 1776 1776 if($arrRet[0]['customer_id'] != "") { 1777 1777 return true; … … 1780 1780 } 1781 1781 1782 // ¥«¡¼¥É¤Î½èÍý·ë²Ì¤òÊÖ¤¹1782 // カードの処理結果を返す 1783 1783 function sfGetAuthonlyResult($dir, $file_name, $name01, $name02, $card_no, $card_exp, $amount, $order_id, $jpo_info = "10"){ 1784 1784 1785 $path = $dir .$file_name; // cgi ¥Õ¥¡¥¤¥ë¤Î¥Õ¥ë¥Ñ¥¹À¸À®1786 $now_dir = getcwd(); // require ¤¬¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤Î¤Ç¡¢cgi¼Â¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Üư¤¹¤ë1785 $path = $dir .$file_name; // cgiファイルのフルパス生成 1786 $now_dir = getcwd(); // requireがうまくいかないので、cgi実行ディレクトリに移動する 1787 1787 chdir($dir); 1788 1788 1789 // ¥Ñ¥¤¥×ÅϤ·¤Ç¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤écgiµ¯Æ°1789 // パイプ渡しでコマンドラインからcgi起動 1790 1790 $cmd = "$path card_no=$card_no name01=$name01 name02=$name02 card_exp=$card_exp amount=$amount order_id=$order_id jpo_info=$jpo_info"; 1791 1791 1792 1792 $tmpResult = popen($cmd, "r"); 1793 1793 1794 // ·ë²Ì¼èÆÀ1794 // 結果取得 1795 1795 while( ! FEOF ( $tmpResult ) ) { 1796 1796 $result .= FGETS($tmpResult); 1797 1797 } 1798 pclose($tmpResult); // ¥Ñ¥¤¥×¤òÊĤ¸¤ë1799 chdir($now_dir); // ¡¡¸µ¤Ë¤¤¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ëµ¢¤ë1800 1801 // ·ë²Ì¤òÏ¢ÁÛÇÛÎ󤨳ÊǼ1798 pclose($tmpResult); // パイプを閉じる 1799 chdir($now_dir); // 元にいたディレクトリに帰る 1800 1801 // 結果を連想配列へ格納 1802 1802 $result = ereg_replace("&$", "", $result); 1803 1803 foreach (explode("&",$result) as $data) { … … 1809 1809 } 1810 1810 1811 // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤«¤é¾ðÊó¤ò¼èÆÀ¤¹¤ë1811 // 受注一時テーブルから情報を取得する 1812 1812 function sfGetOrderTemp($order_temp_id) { 1813 1813 $objQuery = new SC_Query(); … … 1817 1817 } 1818 1818 1819 // ¥«¥Æ¥´¥êID¼èÆÀȽÄêÍѤΥ°¥í¡¼¥Ð¥ëÊÑ¿ô(°ìÅÙ¼èÆÀ¤µ¤ì¤Æ¤¤¤¿¤éºÆ¼èÆÀ¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë)1819 // カテゴリID取得判定用のグローバル変数(一度取得されていたら再取得しないようにする) 1820 1820 $g_category_on = false; 1821 1821 $g_category_id = ""; 1822 1822 1823 /* ÁªÂòÃæ¤Î¥«¥Æ¥´¥ê¤ò¼èÆÀ¤¹¤ë*/1823 /* 選択中のカテゴリを取得する */ 1824 1824 function sfGetCategoryId($product_id, $category_id) { 1825 1825 global $g_category_on; … … 1835 1835 $g_category_id = $category_id; 1836 1836 } else { 1837 // ÉÔÀµ¤Ê¾ì¹ç¤Ï¡¢0¤òÊÖ¤¹¡£1837 // 不正な場合は、0を返す。 1838 1838 $g_category_id = 0; 1839 1839 } … … 1842 1842 } 1843 1843 1844 // ROOTID ¼èÆÀȽÄêÍѤΥ°¥í¡¼¥Ð¥ëÊÑ¿ô(°ìÅÙ¼èÆÀ¤µ¤ì¤Æ¤¤¤¿¤éºÆ¼èÆÀ¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë)1844 // ROOTID取得判定用のグローバル変数(一度取得されていたら再取得しないようにする) 1845 1845 $g_root_on = false; 1846 1846 $g_root_id = ""; 1847 1847 1848 /* ÁªÂòÃæ¤Î¥¢¥¤¥Æ¥à¤Î¥ë¡¼¥È¥«¥Æ¥´¥êID¤ò¼èÆÀ¤¹¤ë*/1848 /* 選択中のアイテムのルートカテゴリIDを取得する */ 1849 1849 function sfGetRootId() { 1850 1850 global $g_root_on; … … 1854 1854 $objQuery = new SC_Query(); 1855 1855 if($_GET['product_id'] != "" || $_GET['category_id'] != "") { 1856 // ÁªÂòÃæ¤Î¥«¥Æ¥´¥êID¤òȽÄꤹ¤ë1856 // 選択中のカテゴリIDを判定する 1857 1857 $category_id = sfGetCategoryId($_GET['product_id'], $_GET['category_id']); 1858 // ROOT ¥«¥Æ¥´¥êID¤Î¼èÆÀ1858 // ROOTカテゴリIDの取得 1859 1859 $arrRet = sfGetParents($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $category_id); 1860 1860 $root_id = $arrRet[0]; 1861 1861 } else { 1862 // ROOT ¥«¥Æ¥´¥êID¤ò¤Ê¤·¤ËÀßÄꤹ¤ë1862 // ROOTカテゴリIDをなしに設定する 1863 1863 $root_id = ""; 1864 1864 } … … 1868 1868 } 1869 1869 1870 /* ¥«¥Æ¥´¥ê¤«¤é¾¦Éʤò¸¡º÷¤¹¤ë¾ì¹ç¤ÎWHEREʸ¤ÈÃͤòÊÖ¤¹*/1870 /* カテゴリから商品を検索する場合のWHERE文と値を返す */ 1871 1871 function sfGetCatWhere($category_id) { 1872 // »Ò¥«¥Æ¥´¥êID¤Î¼èÆÀ1872 // 子カテゴリIDの取得 1873 1873 $arrRet = sfGetChildsID("dtb_category", "parent_category_id", "category_id", $category_id); 1874 1874 $tmp_where = ""; … … 1885 1885 } 1886 1886 1887 /* ²Ã»»¥Ý¥¤¥ó¥È¤Î·×»»¼°*/1887 /* 加算ポイントの計算式 */ 1888 1888 function sfGetAddPoint($totalpoint, $use_point, $arrInfo) { 1889 // ¹ØÆþ¾¦Éʤιç·×¥Ý¥¤¥ó¥È¤«¤éÍøÍѤ·¤¿¥Ý¥¤¥ó¥È¤Î¥Ý¥¤¥ó¥È´¹»»²ÁÃͤò°ú¤¯Êý¼°1889 // 購入商品の合計ポイントから利用したポイントのポイント換算価値を引く方式 1890 1890 $add_point = $totalpoint - intval($use_point * ($arrInfo['point_rate'] / 100)); 1891 1891 … … 1896 1896 } 1897 1897 1898 /* °ì°Õ¤«¤Äͽ¬¤µ¤ì¤Ë¤¯¤¤ID */1898 /* 一意かつ予測されにくいID */ 1899 1899 function sfGetUniqRandomId($head = "") { 1900 // ͽ¬¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥àʸ»úÎó¤òÉÕÍ¿¤¹¤ë¡£1900 // 予測されないようにランダム文字列を付与する。 1901 1901 $random = gfMakePassword(8); 1902 // Ʊ°ì¥Û¥¹¥ÈÆâ¤Ç°ì°Õ¤ÊID¤òÀ¸À®1902 // 同一ホスト内で一意なIDを生成 1903 1903 $id = uniqid($head); 1904 1904 return ($id . $random); 1905 1905 } 1906 1906 1907 // ¥«¥Æ¥´¥êÊÌ¥ª¥¹¥¹¥áÉʤμèÆÀ1907 // カテゴリ別オススメ品の取得 1908 1908 function sfGetBestProducts( $conn, $category_id = 0){ 1909 // ´û¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ëÆâÍÆ¤ò¼èÆÀ¤¹¤ë1909 // 既に登録されている内容を取得する 1910 1910 $sql = "SELECT name, main_image, main_list_image, price01_min, price01_max, price02_min, price02_max, point_rate, 1911 1911 A.product_id, A.comment FROM dtb_best_products as A LEFT JOIN vw_products_allclass AS allcls … … 1916 1916 } 1917 1917 1918 // ÆÃ¼ìÀ©¸æÊ¸»ú¤Î¼êư¥¨¥¹¥±¡¼¥×1918 // 特殊制御文字の手動エスケープ 1919 1919 function sfManualEscape($data) { 1920 // ÇÛÎó¤Ç¤Ê¤¤¾ì¹ç1920 // 配列でない場合 1921 1921 if(!is_array($data)) { 1922 1922 if (DB_TYPE == "pgsql") { … … 1930 1930 } 1931 1931 1932 // ÇÛÎó¤Î¾ì¹ç1932 // 配列の場合 1933 1933 foreach($data as $val) { 1934 1934 if (DB_TYPE == "pgsql") { … … 1946 1946 } 1947 1947 1948 // ¼õÃíÈÖ¹æ¡¢ÍøÍѥݥ¤¥ó¥È¡¢²Ã»»¥Ý¥¤¥ó¥È¤«¤éºÇ½ª¥Ý¥¤¥ó¥È¤ò¼èÆÀ1948 // 受注番号、利用ポイント、加算ポイントから最終ポイントを取得 1949 1949 function sfGetCustomerPoint($order_id, $use_point, $add_point) { 1950 1950 $objQuery = new SC_Query(); … … 1962 1962 } 1963 1963 1964 /* ¥É¥á¥¤¥ó´Ö¤Ç͸ú¤Ê¥»¥Ã¥·¥ç¥ó¤Î¥¹¥¿¡¼¥È*/1964 /* ドメイン間で有効なセッションのスタート */ 1965 1965 function sfDomainSessionStart() { 1966 1966 $ret = session_id(); 1967 1967 /* 1968 ¥Ø¥Ã¥À¡¼¤òÁ÷¿®¤·¤Æ¤¤¤Æ¤âsession_start()¤¬É¬Íפʥڡ¼¥¸¤¬¤¢¤ë¤Î¤Ç1969 ¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤ª¤¯1968 ヘッダーを送信していてもsession_start()が必要なページがあるので 1969 コメントアウトしておく 1970 1970 if($ret == "" && !headers_sent()) { 1971 1971 */ 1972 1972 if($ret == "") { 1973 /* ¥»¥Ã¥·¥ç¥ó¥Ñ¥é¥á¡¼¥¿¤Î»ØÄê1974 ¡¦¥Ö¥é¥¦¥¶¤òÊĤ¸¤ë¤Þ¤Ç͸ú1975 ¡¦¤¹¤Ù¤Æ¤Î¥Ñ¥¹¤Ç͸ú1976 ¡¦Æ±¤¸¥É¥á¥¤¥ó´Ö¤Ç¶¦Í*/1973 /* セッションパラメータの指定 1974 ・ブラウザを閉じるまで有効 1975 ・すべてのパスで有効 1976 ・同じドメイン間で共有 */ 1977 1977 session_set_cookie_params (0, "/", DOMAIN_NAME); 1978 1978 1979 1979 if(!ini_get("session.auto_start")){ 1980 // ¥»¥Ã¥·¥ç¥ó³«»Ï1980 // セッション開始 1981 1981 session_start(); 1982 1982 } … … 1984 1984 } 1985 1985 1986 /* ʸ»úÎó¤Ë¶¯À©Åª¤Ë²þ¹Ô¤òÆþ¤ì¤ë*/1986 /* 文字列に強制的に改行を入れる */ 1987 1987 function sfPutBR($str, $size) { 1988 1988 $i = 0; … … 2006 2006 } 2007 2007 2008 // Æó²ó°Ê¾å·«¤êÊÖ¤µ¤ì¤Æ¤¤¤ë¥¹¥é¥Ã¥·¥å[/]¤ò°ì¤Ä¤ËÊÑ´¹¤¹¤ë¡£2008 // 二回以上繰り返されているスラッシュ[/]を一つに変換する。 2009 2009 function sfRmDupSlash($istr){ 2010 2010 if(ereg("^http://", $istr)) { … … 2064 2064 } 2065 2065 2066 // ǯ¡¢·î¡¢Äù¤áÆü¤«¤é¡¢Àè·î¤ÎÄù¤áÆü+1¡¢º£·î¤ÎÄù¤áÆü¤òµá¤á¤ë¡£2066 // 年、月、締め日から、先月の締め日+1、今月の締め日を求める。 2067 2067 function sfTermMonth($year, $month, $close_day) { 2068 2068 $end_year = $year; 2069 2069 $end_month = $month; 2070 2070 2071 // ³«»Ï·î¤¬½ªÎ»·î¤ÈƱ¤¸¤«Èݤ«2071 // 開始月が終了月と同じか否か 2072 2072 $same_month = false; 2073 2073 2074 // ³ºÅö·î¤ÎËöÆü¤òµá¤á¤ë¡£2074 // 該当月の末日を求める。 2075 2075 $end_last_day = date("d", mktime(0, 0, 0, $month + 1, 0, $year)); 2076 2076 2077 // ·î¤ÎËöÆü¤¬Äù¤áÆü¤è¤ê¾¯¤Ê¤¤¾ì¹ç2077 // 月の末日が締め日より少ない場合 2078 2078 if($end_last_day < $close_day) { 2079 // Äù¤áÆü¤ò·îËöÆü¤Ë¹ç¤ï¤»¤ë2079 // 締め日を月末日に合わせる 2080 2080 $end_day = $end_last_day; 2081 2081 } else { … … 2083 2083 } 2084 2084 2085 // Á°·î¤Î¼èÆÀ2085 // 前月の取得 2086 2086 $tmp_year = date("Y", mktime(0, 0, 0, $month, 0, $year)); 2087 2087 $tmp_month = date("m", mktime(0, 0, 0, $month, 0, $year)); 2088 // Á°·î¤ÎËöÆü¤òµá¤á¤ë¡£2088 // 前月の末日を求める。 2089 2089 $start_last_day = date("d", mktime(0, 0, 0, $month, 0, $year)); 2090 2090 2091 // Á°·î¤ÎËöÆü¤¬Äù¤áÆü¤è¤ê¾¯¤Ê¤¤¾ì¹ç2091 // 前月の末日が締め日より少ない場合 2092 2092 if ($start_last_day < $close_day) { 2093 // ·îËöÆü¤Ë¹ç¤ï¤»¤ë2093 // 月末日に合わせる 2094 2094 $tmp_day = $start_last_day; 2095 2095 } else { … … 2097 2097 } 2098 2098 2099 // Àè·î¤ÎËöÆü¤ÎÍâÆü¤ò¼èÆÀ¤¹¤ë2099 // 先月の末日の翌日を取得する 2100 2100 $start_year = date("Y", mktime(0, 0, 0, $tmp_month, $tmp_day + 1, $tmp_year)); 2101 2101 $start_month = date("m", mktime(0, 0, 0, $tmp_month, $tmp_day + 1, $tmp_year)); 2102 2102 $start_day = date("d", mktime(0, 0, 0, $tmp_month, $tmp_day + 1, $tmp_year)); 2103 2103 2104 // ÆüÉդκîÀ®2104 // 日付の作成 2105 2105 $start_date = sprintf("%d/%d/%d 00:00:00", $start_year, $start_month, $start_day); 2106 2106 $end_date = sprintf("%d/%d/%d 23:59:59", $end_year, $end_month, $end_day); … … 2109 2109 } 2110 2110 2111 // PDF ÍѤÎRGB¥«¥é¡¼¤òÊÖ¤¹2111 // PDF用のRGBカラーを返す 2112 2112 function sfGetPdfRgb($hexrgb) { 2113 2113 $hex = substr($hexrgb, 0, 2); … … 2123 2123 } 2124 2124 2125 // ¥á¥ë¥Þ¥¬²¾ÅÐÏ¿¤È¥á¡¼¥ëÇÛ¿®2125 //メルマガ仮登録とメール配信 2126 2126 function sfRegistTmpMailData($mail_flag, $email){ 2127 2127 $objQuery = new SC_Query(); … … 2136 2136 $arrRegistMailMagazine["update_date"] = 'now()'; 2137 2137 2138 // ¥á¥ë¥Þ¥¬²¾ÅÐÏ¿Íѥե饰2138 //メルマガ仮登録用フラグ 2139 2139 $flag = $objQuery->count("dtb_customer_mail_temp", "email=?", array($email)); 2140 2140 $objConn->query("BEGIN"); … … 2149 2149 } 2150 2150 $objConn->query("COMMIT"); 2151 $subject = sfMakeSubject(' ¥á¥ë¥Þ¥¬²¾ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£');2151 $subject = sfMakeSubject('メルマガ仮登録が完了しました。'); 2152 2152 $objPage->tpl_url = SSL_URL."mailmagazine/regist.php?temp_id=".$arrRegistMailMagazine['temp_id']; 2153 2153 switch ($mail_flag){ 2154 2154 case '1': 2155 $objPage->tpl_name = " ÅÐÏ¿";2155 $objPage->tpl_name = "登録"; 2156 2156 $objPage->tpl_kindname = "HTML"; 2157 2157 break; 2158 2158 2159 2159 case '2': 2160 $objPage->tpl_name = " ÅÐÏ¿";2161 $objPage->tpl_kindname = " ¥Æ¥¥¹¥È";2160 $objPage->tpl_name = "登録"; 2161 $objPage->tpl_kindname = "テキスト"; 2162 2162 break; 2163 2163 2164 2164 case '3': 2165 $objPage->tpl_name = " ²ò½ü";2165 $objPage->tpl_name = "解除"; 2166 2166 break; 2167 2167 } … … 2170 2170 } 2171 2171 2172 // ºÆµ¢Åª¤Ë¿ÃÊÇÛÎó¤ò¸¡º÷¤·¤Æ°ì¼¡¸µÇÛÎó(Hidden°úÅϤ·ÍÑÇÛÎó)¤ËÊÑ´¹¤¹¤ë¡£2172 // 再帰的に多段配列を検索して一次元配列(Hidden引渡し用配列)に変換する。 2173 2173 function sfMakeHiddenArray($arrSrc, $arrDst = array(), $parent_key = "") { 2174 2174 if(is_array($arrSrc)) { … … 2189 2189 } 2190 2190 2191 // DB ¼èÆÀÆü»þ¤ò¥¿¥¤¥à¤ËÊÑ´¹2191 // DB取得日時をタイムに変換 2192 2192 function sfDBDatetoTime($db_date) { 2193 2193 $date = ereg_replace("\..*$","",$db_date); … … 2196 2196 } 2197 2197 2198 // ½ÐÎϤκݤ˥ƥó¥×¥ì¡¼¥È¤òÀÚ¤êÂØ¤¨¤é¤ì¤ë2198 // 出力の際にテンプレートを切り替えられる 2199 2199 /* 2200 2200 index.php?tpl=test.tpl … … 2230 2230 } 2231 2231 2232 // ²ñ°÷ÊÔ½¸ÅÐÏ¿½èÍý2232 //会員編集登録処理 2233 2233 function sfEditCustomerData($array, $arrRegistColumn) { 2234 2234 $objQuery = new SC_Query(); … … 2249 2249 } 2250 2250 2251 //-- ¥Ñ¥¹¥ï¡¼¥É¤Î¹¹¿·¤¬¤¢¤ë¾ì¹ç¤Ï°Å¹æ²½¡£¡Ê¹¹¿·¤¬¤Ê¤¤¾ì¹ç¤ÏUPDATEʸ¤ò¹½À®¤·¤Ê¤¤¡Ë2251 //-- パスワードの更新がある場合は暗号化。(更新がない場合はUPDATE文を構成しない) 2252 2252 if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); 2253 2253 $arrRegist["update_date"] = "NOW()"; … … 2257 2257 $sqlval['email'] = $array['email']; 2258 2258 $sqlval['mail_flag'] = $array['mail_flag']; 2259 //-- ÊÔ½¸ÅÐÏ¿¼Â¹Ô2259 //-- 編集登録実行 2260 2260 $objQuery->begin(); 2261 2261 $objQuery->update("dtb_customer", $arrRegist, "customer_id = ? ", array($array['customer_id'])); … … 2265 2265 } 2266 2266 2267 // PHP ¤Îmb_convert_encoding´Ø¿ô¤òSmarty¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë2267 // PHPのmb_convert_encoding関数をSmartyでも使えるようにする 2268 2268 function sf_mb_convert_encoding($str, $encode = 'CHAR_CODE') { 2269 2269 return mb_convert_encoding($str, $encode); 2270 2270 } 2271 2271 2272 // PHP ¤Îmktime´Ø¿ô¤òSmarty¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë2272 // PHPのmktime関数をSmartyでも使えるようにする 2273 2273 function sf_mktime($format, $hour=0, $minute=0, $second=0, $month=1, $day=1, $year=1999) { 2274 2274 return date($format,mktime($hour, $minute, $second, $month, $day, $year)); 2275 2275 } 2276 2276 2277 // PHP ¤Îdate´Ø¿ô¤òSmarty¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë2277 // PHPのdate関数をSmartyでも使えるようにする 2278 2278 function sf_date($format, $timestamp = '') { 2279 2279 return date( $format, $timestamp); 2280 2280 } 2281 2281 2282 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤Î·¿¤òÊÑ´¹¤¹¤ë2282 // チェックボックスの型を変換する 2283 2283 function sfChangeCheckBox($data , $tpl = false){ 2284 2284 if ($tpl) { … … 2300 2300 $sql = ""; 2301 2301 2302 // ¥Æ¡¼¥Ö¥ëÆâÍÆ¤Îºï½ü2302 //テーブル内容の削除 2303 2303 $objQuery->query("DELETE FROM dtb_category_count"); 2304 2304 $objQuery->query("DELETE FROM dtb_category_total_count"); 2305 2305 2306 // ³Æ¥«¥Æ¥´¥êÆâ¤Î¾¦ÉÊ¿ô¤ò¿ô¤¨¤Æ³ÊǼ2306 //各カテゴリ内の商品数を数えて格納 2307 2307 $sql = " INSERT INTO dtb_category_count(category_id, product_count, create_date) "; 2308 2308 $sql .= " SELECT T1.category_id, count(T2.category_id), now() FROM dtb_category AS T1 LEFT JOIN dtb_products AS T2 "; … … 2312 2312 $objQuery->query($sql); 2313 2313 2314 // »Ò¥«¥Æ¥´¥êÆâ¤Î¾¦ÉÊ¿ô¤ò½¸·×¤¹¤ë2314 //子カテゴリ内の商品数を集計する 2315 2315 $arrCat = $objQuery->getAll("SELECT * FROM dtb_category"); 2316 2316 … … 2318 2318 foreach($arrCat as $key => $val){ 2319 2319 2320 // »ÒID°ìÍ÷¤ò¼èÆÀ2320 // 子ID一覧を取得 2321 2321 $arrRet = sfGetChildrenArray('dtb_category', 'parent_category_id', 'category_id', $val['category_id']); 2322 2322 $line = sfGetCommaList($arrRet); … … 2330 2330 } 2331 2331 2332 // 2 ¤Ä¤ÎÇÛÎó¤òÍѤ¤¤ÆÏ¢ÁÛÇÛÎó¤òºîÀ®¤¹¤ë2332 // 2つの配列を用いて連想配列を作成する 2333 2333 function sfarrCombine($arrKeys, $arrValues) { 2334 2334 … … 2348 2348 } 2349 2349 2350 /* ³¬Áع½Â¤¤Î¥Æ¡¼¥Ö¥ë¤«¤é»ÒIDÇÛÎó¤ò¼èÆÀ¤¹¤ë*/2350 /* 階層構造のテーブルから子ID配列を取得する */ 2351 2351 function sfGetChildrenArray($table, $pid_name, $id_name, $id) { 2352 2352 $objQuery = new SC_Query(); … … 2369 2369 } 2370 2370 2371 /* ¿ÆIDľ²¼¤Î»ÒID¤ò¤¹¤Ù¤Æ¼èÆÀ¤¹¤ë*/2371 /* 親ID直下の子IDをすべて取得する */ 2372 2372 function sfGetChildrenArraySub($arrData, $pid_name, $id_name, $arrPID) { 2373 2373 $arrChildren = array(); … … 2385 2385 2386 2386 2387 /* ³¬Áع½Â¤¤Î¥Æ¡¼¥Ö¥ë¤«¤é¿ÆIDÇÛÎó¤ò¼èÆÀ¤¹¤ë*/2387 /* 階層構造のテーブルから親ID配列を取得する */ 2388 2388 function sfGetParentsArray($table, $pid_name, $id_name, $id) { 2389 2389 $objQuery = new SC_Query(); … … 2407 2407 } 2408 2408 2409 /* »ÒID½ê°¤¹¤ë¿ÆID¤ò¼èÆÀ¤¹¤ë*/2409 /* 子ID所属する親IDを取得する */ 2410 2410 function sfGetParentsArraySub($arrData, $pid_name, $id_name, $child) { 2411 2411 $max = count($arrData); … … 2420 2420 } 2421 2421 2422 /* ³¬Áع½Â¤¤Î¥Æ¡¼¥Ö¥ë¤«¤éÍ¿¤¨¤é¤ì¤¿ID¤Î·»Äï¤ò¼èÆÀ¤¹¤ë*/2422 /* 階層構造のテーブルから与えられたIDの兄弟を取得する */ 2423 2423 function sfGetBrothersArray($arrData, $pid_name, $id_name, $arrPID) { 2424 2424 $max = count($arrData); … … 2426 2426 $arrBrothers = array(); 2427 2427 foreach($arrPID as $id) { 2428 // ¿ÆID¤ò¸¡º÷¤¹¤ë2428 // 親IDを検索する 2429 2429 for($i = 0; $i < $max; $i++) { 2430 2430 if($arrData[$i][$id_name] == $id) { … … 2433 2433 } 2434 2434 } 2435 // ·»ÄïID¤ò¸¡º÷¤¹¤ë2435 // 兄弟IDを検索する 2436 2436 for($i = 0; $i < $max; $i++) { 2437 2437 if($arrData[$i][$pid_name] == $parent) { … … 2443 2443 } 2444 2444 2445 /* ³¬Áع½Â¤¤Î¥Æ¡¼¥Ö¥ë¤«¤éÍ¿¤¨¤é¤ì¤¿ID¤Îľ°¤Î»Ò¤ò¼èÆÀ¤¹¤ë*/2445 /* 階層構造のテーブルから与えられたIDの直属の子を取得する */ 2446 2446 function sfGetUnderChildrenArray($arrData, $pid_name, $id_name, $parent) { 2447 2447 $max = count($arrData); 2448 2448 2449 2449 $arrChildren = array(); 2450 // »ÒID¤ò¸¡º÷¤¹¤ë2450 // 子IDを検索する 2451 2451 for($i = 0; $i < $max; $i++) { 2452 2452 if($arrData[$i][$pid_name] == $parent) { … … 2458 2458 2459 2459 2460 // ¥«¥Æ¥´¥ê¥Ä¥ê¡¼¤Î¼èÆÀ2460 // カテゴリツリーの取得 2461 2461 function sfGetCatTree($parent_category_id, $count_check = false) { 2462 2462 $objQuery = new SC_Query(); … … 2473 2473 $col .= " ttl.product_count"; 2474 2474 $from = "dtb_category as cat left join dtb_category_total_count as ttl on ttl.category_id = cat.category_id"; 2475 // ÅÐÏ¿¾¦ÉÊ¿ô¤Î¥Á¥§¥Ã¥¯2475 // 登録商品数のチェック 2476 2476 if($count_check) { 2477 2477 $where = "del_flg = 0 AND product_count > 0"; … … 2496 2496 } 2497 2497 2498 // ¿Æ¥«¥Æ¥´¥ê¡¼¤òÏ¢·ë¤·¤¿Ê¸»úÎó¤ò¼èÆÀ¤¹¤ë2498 // 親カテゴリーを連結した文字列を取得する 2499 2499 function sfGetCatCombName($category_id){ 2500 // ¾¦Éʤ¬Â°¤¹¤ë¥«¥Æ¥´¥êID¤ò½Ä¤Ë¼èÆÀ2500 // 商品が属するカテゴリIDを縦に取得 2501 2501 $objQuery = new SC_Query(); 2502 2502 $arrCatID = sfGetParents($objQuery, "dtb_category", "parent_category_id", "category_id", $category_id); 2503 2503 $ConbName = ""; 2504 2504 2505 // ¥«¥Æ¥´¥ê¡¼Ì¾¾Î¤ò¼èÆÀ¤¹¤ë2505 // カテゴリー名称を取得する 2506 2506 foreach($arrCatID as $key => $val){ 2507 2507 $sql = "SELECT category_name FROM dtb_category WHERE category_id = ?"; … … 2510 2510 $ConbName .= $CatName . ' | '; 2511 2511 } 2512 // ºÇ¸å¤Î ¡Ã ¤ò¥«¥Ã¥È¤¹¤ë2512 // 最後の | をカットする 2513 2513 $ConbName = substr_replace($ConbName, "", strlen($ConbName) - 2, 2); 2514 2514 … … 2516 2516 } 2517 2517 2518 // »ØÄꤷ¤¿¥«¥Æ¥´¥ê¡¼ID¤ÎÂ祫¥Æ¥´¥ê¡¼¤ò¼èÆÀ¤¹¤ë2518 // 指定したカテゴリーIDの大カテゴリーを取得する 2519 2519 function GetFirstCat($category_id){ 2520 // ¾¦Éʤ¬Â°¤¹¤ë¥«¥Æ¥´¥êID¤ò½Ä¤Ë¼èÆÀ2520 // 商品が属するカテゴリIDを縦に取得 2521 2521 $objQuery = new SC_Query(); 2522 2522 $arrRet = array(); … … 2524 2524 $arrRet['id'] = $arrCatID[0]; 2525 2525 2526 // ¥«¥Æ¥´¥ê¡¼Ì¾¾Î¤ò¼èÆÀ¤¹¤ë2526 // カテゴリー名称を取得する 2527 2527 $sql = "SELECT category_name FROM dtb_category WHERE category_id = ?"; 2528 2528 $arrVal = array($arrRet['id']); … … 2532 2532 } 2533 2533 2534 //MySQL ÍѤÎSQLʸ¤ËÊѹ¹¤¹¤ë2534 //MySQL用のSQL文に変更する 2535 2535 function sfChangeMySQL($sql){ 2536 // ²þ¹Ô¡¢¥¿¥Ö¤ò1¥¹¥Ú¡¼¥¹¤ËÊÑ´¹2536 // 改行、タブを1スペースに変換 2537 2537 $sql = preg_replace("/[\r\n\t]/"," ",$sql); 2538 2538 2539 $sql = sfChangeView($sql); // view ɽ¤ò¥¤¥ó¥é¥¤¥ó¥Ó¥å¡¼¤ËÊÑ´¹¤¹¤ë2540 $sql = sfChangeILIKE($sql); // ILIKE ¸¡º÷¤òLIKE¸¡º÷¤ËÊÑ´¹¤¹¤ë2541 $sql = sfChangeRANDOM($sql); // RANDOM() ¤òRAND()¤ËÊÑ´¹¤¹¤ë2539 $sql = sfChangeView($sql); // view表をインラインビューに変換する 2540 $sql = sfChangeILIKE($sql); // ILIKE検索をLIKE検索に変換する 2541 $sql = sfChangeRANDOM($sql); // RANDOM()をRAND()に変換する 2542 2542 2543 2543 return $sql; 2544 2544 } 2545 2545 2546 // SQL ¤ÎÃæ¤Ëview¤¬Â¸ºß¤·¤Æ¤¤¤ë¤«¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¡£2546 // SQLの中にviewが存在しているかチェックを行う。 2547 2547 function sfInArray($sql){ 2548 2548 global $arrView; … … 2557 2557 } 2558 2558 2559 // SQL ¥·¥ó¥°¥ë¥¯¥©¡¼¥ÈÂбþ2559 // SQLシングルクォート対応 2560 2560 function sfQuoteSmart($in){ 2561 2561 … … 2571 2571 } 2572 2572 2573 // view ɽ¤ò¥¤¥ó¥é¥¤¥ó¥Ó¥å¡¼¤ËÊÑ´¹¤¹¤ë2573 // view表をインラインビューに変換する 2574 2574 function sfChangeView($sql){ 2575 2575 global $arrView; … … 2578 2578 $arrViewTmp = $arrView; 2579 2579 2580 // view ¤Îwhere¤òÊÑ´¹2580 // viewのwhereを変換 2581 2581 foreach($arrViewTmp as $key => $val){ 2582 2582 $arrViewTmp[$key] = strtr($arrViewTmp[$key], $arrViewWhere); 2583 2583 } 2584 2584 2585 // view ¤òÊÑ´¹2585 // viewを変換 2586 2586 $changesql = strtr($sql, $arrViewTmp); 2587 2587 … … 2589 2589 } 2590 2590 2591 // ILIKE ¸¡º÷¤òLIKE¸¡º÷¤ËÊÑ´¹¤¹¤ë2591 // ILIKE検索をLIKE検索に変換する 2592 2592 function sfChangeILIKE($sql){ 2593 2593 $changesql = eregi_replace("(ILIKE )", "LIKE BINARY ", $sql); … … 2595 2595 } 2596 2596 2597 // RANDOM() ¤òRAND()¤ËÊÑ´¹¤¹¤ë2597 // RANDOM()をRAND()に変換する 2598 2598 function sfChangeRANDOM($sql){ 2599 2599 $changesql = eregi_replace("( RANDOM)", " RAND", $sql); … … 2601 2601 } 2602 2602 2603 // view ¤Îwhere¤òÃÖ´¹¤¹¤ë2603 // viewのwhereを置換する 2604 2604 function sfViewWhere($target, $where = "", $arrval = array(), $option = ""){ 2605 2605 global $arrViewWhere; … … 2612 2612 } 2613 2613 2614 // ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òºÆµ¢Åª¤Ë¥³¥Ô¡¼2614 // ディレクトリ以下のファイルを再帰的にコピー 2615 2615 function sfCopyDir($src, $des, $mess, $override = false){ 2616 2616 if(!is_dir($src)){ … … 2621 2621 $mod= stat($src); 2622 2622 2623 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë2623 // ディレクトリがなければ作成する 2624 2624 if(!file_exists($des)) { 2625 2625 if(!mkdir($des, $mod[2])) { … … 2630 2630 $fileArray=glob( $src."*" ); 2631 2631 foreach( $fileArray as $key => $data_ ){ 2632 // CVS ´ÉÍý¥Õ¥¡¥¤¥ë¤Ï¥³¥Ô¡¼¤·¤Ê¤¤2632 // CVS管理ファイルはコピーしない 2633 2633 if(ereg("/CVS/Entries", $data_)) { 2634 2634 break; … … 2647 2647 }else{ 2648 2648 if(!$override && file_exists($des.$data)) { 2649 $mess.= $des.$data . " ¡§¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤¹\n";2649 $mess.= $des.$data . ":ファイルが存在します\n"; 2650 2650 } else { 2651 2651 if(@copy( $data_, $des.$data)) { 2652 $mess.= $des.$data . " ¡§¥³¥Ô¡¼À®¸ù\n";2652 $mess.= $des.$data . ":コピー成功\n"; 2653 2653 } else { 2654 $mess.= $des.$data . " ¡§¥³¥Ô¡¼¼ºÇÔ\n";2654 $mess.= $des.$data . ":コピー失敗\n"; 2655 2655 } 2656 2656 } … … 2662 2662 } 2663 2663 2664 // »ØÄꤷ¤¿¥Õ¥©¥ë¥ÀÆâ¤Î¥Õ¥¡¥¤¥ë¤òÁ´¤Æºï½ü¤¹¤ë2664 // 指定したフォルダ内のファイルを全て削除する 2665 2665 function sfDelFile($dir){ 2666 2666 $dh = opendir($dir); 2667 // ¥Õ¥©¥ë¥ÀÆâ¤Î¥Õ¥¡¥¤¥ë¤òºï½ü2667 // フォルダ内のファイルを削除 2668 2668 while($file = readdir($dh)){ 2669 2669 if ($file == "." or $file == "..") continue; … … 2679 2679 } 2680 2680 } 2681 // ¥Õ¥©¥ë¥À¤òºï½ü2681 // フォルダを削除 2682 2682 return rmdir($dir); 2683 2683 … … 2685 2685 2686 2686 /* 2687 * ´Ø¿ô̾¡§sfWriteFile2688 * °ú¿ô1 ¡§½ñ¤¹þ¤à¥Ç¡¼¥¿2689 * °ú¿ô2 ¡§¥Õ¥¡¥¤¥ë¥Ñ¥¹2690 * °ú¿ô3 ¡§½ñ¤¹þ¤ß¥¿¥¤¥×2691 * °ú¿ô4 ¡§¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó2692 * Ìá¤êÃÍ¡§·ë²Ì¥Õ¥é¥° À®¸ù¤Ê¤é true ¼ºÇԤʤéfalse2693 * ÀâÌÀ¡¡¡§¥Õ¥¡¥¤¥ë½ñ¤½Ð¤·2687 * 関数名:sfWriteFile 2688 * 引数1 :書き込むデータ 2689 * 引数2 :ファイルパス 2690 * 引数3 :書き込みタイプ 2691 * 引数4 :パーミッション 2692 * 戻り値:結果フラグ 成功なら true 失敗なら false 2693 * 説明 :ファイル書き出し 2694 2694 */ 2695 2695 function sfWriteFile($str, $path, $type, $permission = "") { 2696 // ¥Õ¥¡¥¤¥ë¤ò³«¤¯2696 //ファイルを開く 2697 2697 if (!($file = fopen ($path, $type))) { 2698 2698 return false; 2699 2699 } 2700 2700 2701 // ¥Õ¥¡¥¤¥ë¥í¥Ã¥¯2701 //ファイルロック 2702 2702 flock ($file, LOCK_EX); 2703 // ¥Õ¥¡¥¤¥ë¤Î½ñ¤¹þ¤ß2703 //ファイルの書き込み 2704 2704 fputs ($file, $str); 2705 // ¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤Î²ò½ü2705 //ファイルロックの解除 2706 2706 flock ($file, LOCK_UN); 2707 // ¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ë2707 //ファイルを閉じる 2708 2708 fclose ($file); 2709 // ¸¢¸Â¤ò»ØÄê2709 // 権限を指定 2710 2710 if($permission != "") { 2711 2711 chmod($path, $permission); … … 2716 2716 2717 2717 function sfFlush($output = " ", $sleep = 0){ 2718 // ¼Â¹Ô»þ´Ö¤òÀ©¸Â¤·¤Ê¤¤2718 // 実行時間を制限しない 2719 2719 set_time_limit(0); 2720 // ½ÐÎϤò¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤·¤Ê¤¤(==ÆüËܸ켫ưÊÑ´¹¤â¤·¤Ê¤¤)2720 // 出力をバッファリングしない(==日本語自動変換もしない) 2721 2721 ob_end_clean(); 2722 2722 2723 // IE ¤Î¤¿¤á¤Ë256¥Ð¥¤¥È¶õʸ»ú½ÐÎÏ2723 // IEのために256バイト空文字出力 2724 2724 echo str_pad('',256); 2725 2725 2726 // ½ÐÎϤϥ֥é¥ó¥¯¤À¤±¤Ç¤â¤¤¤¤¤È»×¤¦2726 // 出力はブランクだけでもいいと思う 2727 2727 echo $output; 2728 // ½ÐÎϤò¥Õ¥é¥Ã¥·¥å¤¹¤ë2728 // 出力をフラッシュする 2729 2729 flush(); 2730 2730 … … 2732 2732 ob_start(); 2733 2733 2734 // »þ´Ö¤Î¤«¤«¤ë½èÍý2734 // 時間のかかる処理 2735 2735 sleep($sleep); 2736 2736 } 2737 2737 2738 // @version ¤ÎµºÜ¤¬¤¢¤ë¥Õ¥¡¥¤¥ë¤«¤é¥Ð¡¼¥¸¥ç¥ó¤ò¼èÆÀ¤¹¤ë¡£2738 // @versionの記載があるファイルからバージョンを取得する。 2739 2739 function sfGetFileVersion($path) { 2740 2740 if(file_exists($path)) { … … 2754 2754 } 2755 2755 2756 // »ØÄꤷ¤¿URL¤ËÂФ·¤ÆPOST¤Ç¥Ç¡¼¥¿¤òÁ÷¿®¤¹¤ë2756 // 指定したURLに対してPOSTでデータを送信する 2757 2757 function sfSendPostData($url, $arrData, $arrOkCode = array()){ 2758 2758 require_once(DATA_PATH . "module/Request.php"); 2759 2759 2760 // Á÷¿®¥¤¥ó¥¹¥¿¥ó¥¹À¸À®2760 // 送信インスタンス生成 2761 2761 $req = new HTTP_Request($url); 2762 2762 2763 $req->addHeader('User-Agent', 'DoCoMo/2.0 ¡¡P2101V(c100)');2763 $req->addHeader('User-Agent', 'DoCoMo/2.0 P2101V(c100)'); 2764 2764 $req->setMethod(HTTP_REQUEST_METHOD_POST); 2765 2765 2766 // POST ¥Ç¡¼¥¿Á÷¿®2766 // POSTデータ送信 2767 2767 $req->addPostDataArray($arrData); 2768 2768 2769 // ¥¨¥é¡¼¤¬Ìµ¤±¤ì¤Ð¡¢±þÅú¾ðÊó¤ò¼èÆÀ¤¹¤ë2769 // エラーが無ければ、応答情報を取得する 2770 2770 if (!PEAR::isError($req->sendRequest())) { 2771 2771 2772 // ¥ì¥¹¥Ý¥ó¥¹¥³¡¼¥É¤¬¥¨¥é¡¼È½Äê¤Ê¤é¡¢¶õ¤òÊÖ¤¹2772 // レスポンスコードがエラー判定なら、空を返す 2773 2773 $res_code = $req->getResponseCode(); 2774 2774 … … 2783 2783 } 2784 2784 2785 // POST ¥Ç¡¼¥¿¥¯¥ê¥¢2785 // POSTデータクリア 2786 2786 $req->clearPostData(); 2787 2787 … … 2789 2789 } 2790 2790 2791 /* ¥Ç¥Ð¥Ã¥°ÍÑ------------------------------------------------------------------------------------------------*/2791 /* デバッグ用 ------------------------------------------------------------------------------------------------*/ 2792 2792 function sfPrintR($obj) { 2793 2793 print("<div style='font-size: 12px;color: #00FF00;'>\n"); 2794 print("<strong>** ¥Ç¥Ð¥Ã¥°Ãæ**</strong><br />\n");2794 print("<strong>**デバッグ中**</strong><br />\n"); 2795 2795 print("<pre>\n"); 2796 2796 print_r($obj); 2797 2797 print("</pre>\n"); 2798 print("<strong>** ¥Ç¥Ð¥Ã¥°Ãæ**</strong></div>\n");2798 print("<strong>**デバッグ中**</strong></div>\n"); 2799 2799 } 2800 2800
Note: See TracChangeset
for help on using the changeset viewer.
