Ignore:
Timestamp:
2007/03/10 21:35:02 (20 years ago)
Author:
nanasess
Message:

UTF-8 へ変換

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/comu/data/lib/slib.php

    r15 r11729  
    66 */ 
    77 
    8 //---¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ò»ØÄê 
     8//---このファイルのパスを指定 
    99$INC_PATH = realpath( dirname( __FILE__) ); 
    1010require_once( $INC_PATH ."/../conf/conf.php" ); 
    … …  
    1414require_once( $INC_PATH ."/../include/session.inc" ); 
    1515 
    16 // Á´¥Ú¡¼¥¸¶¦ÄÌ¥¨¥é¡¼ 
     16// 全ページ共通エラー 
    1717$GLOBAL_ERR = ""; 
    1818 
    19 // ¥¤¥ó¥¹¥È¡¼¥ë½é´ü½èÍý 
     19// インストール初期処理 
    2020sfInitInstall(); 
    2121 
    22 /* ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ð¡¼¥¸¥ç¥ó½êÆÀ */ 
     22/* データベースのバージョン所得 */ 
    2323function sfGetDBVersion($dsn = "") { 
    2424    if($dsn == "") { 
    … …  
    4444} 
    4545 
    46 /* ¥Æ¡¼¥Ö¥ë¤Î¸ºß¥Á¥§¥Ã¥¯ */ 
     46/* テーブルの存在チェック */ 
    4747function sfTabaleExists($table_name, $dsn = "") { 
    4848    if($dsn == "") { 
    … …  
    5555     
    5656    $objQuery = new SC_Query($dsn, true, true); 
    57     // Àµ¾ï¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç 
     57    // 正常に接続されている場合 
    5858    if(!$objQuery->isError()) { 
    5959        list($db_type) = split(":", $dsn); 
    60         // postgresql¤Èmysql¤È¤Ç½èÍý¤òʬ¤±¤ë 
     60        // postgresqlとmysqlとで処理を分ける 
    6161        if ($db_type == "pgsql") { 
    6262            $sql = "SELECT 
    … …  
    8484} 
    8585 
    86 // ¥«¥é¥à¤Î¸ºß¥Á¥§¥Ã¥¯ 
     86// カラムの存在チェック 
    8787function sfColumnExists($table_name, $col_name, $col_type = "", $dsn = "", $add = false) { 
    8888    if($dsn == "") { 
    … …  
    9494    } 
    9595 
    96     // ¥Æ¡¼¥Ö¥ë¤¬Ìµ¤±¤ì¤Ð¥¨¥é¡¼ 
     96    // テーブルが無ければエラー 
    9797    if(!sfTabaleExists($table_name, $dsn)) return false; 
    9898     
    9999    $objQuery = new SC_Query($dsn, true, true); 
    100     // Àµ¾ï¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç 
     100    // 正常に接続されている場合 
    101101    if(!$objQuery->isError()) { 
    102102        list($db_type) = split(":", $dsn); 
    103103         
    104         // ¥«¥é¥à¥ê¥¹¥È¤ò¼èÆÀ 
     104        // カラムリストを取得 
    105105        $arrRet = sfGetColumnList($table_name, $objQuery, $db_type); 
    106106        if(count($arrRet) > 0) { 
    … …  
    111111    } 
    112112     
    113     // ¥«¥é¥à¤òÄɲ乤ë 
     113    // カラムを追加する 
    114114    if($add){ 
    115115        $objQuery->query("ALTER TABLE $table_name ADD $col_name $col_type "); 
    … …  
    120120} 
    121121 
    122 // ¥Ç¡¼¥¿¤Î¸ºß¥Á¥§¥Ã¥¯ 
     122// データの存在チェック 
    123123function sfDataExists($table_name, $where, $arrval, $dsn = "", $sql = "", $add = false) { 
    124124    if($dsn == "") { 
    … …  
    137137        $ret = false; 
    138138    } 
    139     // ¥Ç¡¼¥¿¤òÄɲ乤ë 
     139    // データを追加する 
    140140    if(!$ret && $add) { 
    141141        $objQuery->exec($sql); 
    … …  
    145145} 
    146146 
    147 // ¥Æ¡¼¥Ö¥ë¤Î¥«¥é¥à°ìÍ÷¤ò¼èÆÀ¤¹¤ë 
     147// テーブルのカラム一覧を取得する 
    148148function sfGetColumnList($table_name, $objQuery = "", $db_type = DB_TYPE){ 
    149149    if($objQuery == "") $objQuery = new SC_Query(); 
    150150    $arrRet = array(); 
    151151     
    152     // postgresql¤Èmysql¤È¤Ç½èÍý¤òʬ¤±¤ë 
     152    // postgresqlとmysqlとで処理を分ける 
    153153    if ($db_type == "pgsql") { 
    154154        $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"; 
    … …  
    165165} 
    166166 
    167 // ¥¤¥ó¥¹¥È¡¼¥ë½é´ü½èÍý 
     167// インストール初期処理 
    168168function sfInitInstall() { 
    169     // ¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ 
     169    // インストール済みが定義されていない。 
    170170    if(!defined('ECCUBE_INSTALL')) { 
    171171        if(!ereg("/install/", $_SERVER['PHP_SELF'])) { 
    … …  
    175175        $path = HTML_PATH . "install/index.php"; 
    176176        if(file_exists($path)) { 
    177             sfErrorHeader(">> /install/index.php¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë´°Î»¸å¤Ë¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£"); 
    178         } 
    179          
    180         // µì¥Ð¡¼¥¸¥ç¥ó¤Îinstall.inc¤Î¥Á¥§¥Ã¥¯ 
     177            sfErrorHeader(">> /install/index.phpは、インストール完了後にファイルを削除してください。"); 
     178        } 
     179         
     180        // 旧バージョンのinstall.incのチェック 
    181181        $path = HTML_PATH . "install.inc"; 
    182182        if(file_exists($path)) { 
    183             sfErrorHeader(">> /install.inc¤Ï¥»¥­¥å¥ê¥Æ¥£¡¼¥Û¡¼¥ë¤È¤Ê¤ê¤Þ¤¹¡£ºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£"); 
     183            sfErrorHeader(">> /install.incはセキュリティーホールとなります。削除してください。"); 
    184184        }        
    185185    } 
    186186} 
    187187 
    188 // ¥¢¥Ã¥×¥Ç¡¼¥È¤ÇÀ¸À®¤µ¤ì¤¿PHP¤òÆÉ¤ß½Ð¤· 
     188// アップデートで生成されたPHPを読み出し 
    189189function sfLoadUpdateModule() { 
    190     // URLÀßÄê¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü 
     190    // URL設定ディレクトリを削除 
    191191    $main_php = ereg_replace(URL_DIR, "", $_SERVER['PHP_SELF']); 
    192192    $extern_php = UPDATE_PATH . $main_php; 
    … …  
    197197 
    198198function sf_getBasisData() { 
    199     //DB¤«¤éÀßÄê¾ðÊó¤ò¼èÆÀ 
     199    //DBから設定情報を取得 
    200200    $objConn = new SC_DbConn(DEFAULT_DSN); 
    201201    $result = $objConn->getAll("SELECT * FROM dtb_baseinfo"); 
    … …  
    208208} 
    209209 
    210 // Áõ¾þÉÕ¤­¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨ 
     210// 装飾付きエラーメッセージの表示 
    211211function sfErrorHeader($mess, $print = false) { 
    212212    global $GLOBAL_ERR; 
    … …  
    227227} 
    228228 
    229 /* ¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨ */ 
     229/* エラーページの表示 */ 
    230230function sfDispError($type) { 
    231231     
    … …  
    233233        function LC_ErrorPage() { 
    234234            $this->tpl_mainpage = 'login_error.tpl'; 
    235             $this->tpl_title = '¥¨¥é¡¼'; 
     235            $this->tpl_title = 'エラー'; 
    236236        } 
    237237    } 
    … …  
    242242    switch ($type) { 
    243243        case LOGIN_ERROR: 
    244             $objPage->tpl_error="£É£Ä¤Þ¤¿¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£"; 
     244            $objPage->tpl_error="IDまたはパスワードが正しくありません。<br />もう一度ご確認のうえ、再度入力してください。"; 
    245245            break; 
    246246        case ACCESS_ERROR: 
    247             $objPage->tpl_error="¥í¥°¥¤¥óǧ¾Ú¤ÎÍ­¸ú´ü¸ÂÀÚ¤ì¤Î²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙ¥í¥°¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£"; 
     247            $objPage->tpl_error="ログイン認証の有効期限切れの可能性があります。<br />もう一度ご確認のうえ、再度ログインしてください。"; 
    248248            break; 
    249249        case AUTH_ERROR: 
    250             $objPage->tpl_error="¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥¢¥¯¥»¥¹¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙ¥í¥°¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£"; 
     250            $objPage->tpl_error="このファイルにはアクセス権限がありません。<br />もう一度ご確認のうえ、再度ログインしてください。"; 
    251251            break; 
    252252        case PAGE_ERROR: 
    253             $objPage->tpl_error="ÉÔÀµ¤Ê¥Ú¡¼¥¸°Üư¤Ç¤¹¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£"; 
     253            $objPage->tpl_error="不正なページ移動です。<br />もう一度ご確認のうえ、再度入力してください。"; 
    254254            break; 
    255255        default: 
    256             $objPage->tpl_error="¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£<br />¤â¤¦°ìÅÙ¤´³Îǧ¤Î¤¦¤¨¡¢ºÆÅÙ¥í¥°¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£"; 
     256            $objPage->tpl_error="エラーが発生しました。<br />もう一度ご確認のうえ、再度ログインしてください。"; 
    257257            break; 
    258258    } 
    … …  
    264264} 
    265265 
    266 /* ¥µ¥¤¥È¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨ */ 
     266/* サイトエラーページの表示 */ 
    267267function sfDispSiteError($type, $objSiteSess = "", $return_top = false, $err_msg = "") { 
    268268    global $objCampaignSess; 
    … …  
    276276            $this->tpl_mainpage = 'error.tpl'; 
    277277            $this->tpl_css = URL_DIR.'css/layout/error.css'; 
    278             $this->tpl_title = '¥¨¥é¡¼'; 
     278            $this->tpl_title = 'エラー'; 
    279279        } 
    280280    } 
    … …  
    285285    switch ($type) { 
    286286        case PRODUCT_NOT_FOUND: 
    287             $objPage->tpl_error="¤´»ØÄê¤Î¥Ú¡¼¥¸¤Ï¤´¤¶¤¤¤Þ¤»¤ó¡£"; 
     287            $objPage->tpl_error="ご指定のページはございません。"; 
    288288            break; 
    289289        case PAGE_ERROR: 
    290             $objPage->tpl_error="ÉÔÀµ¤Ê¥Ú¡¼¥¸°Üư¤Ç¤¹¡£"; 
     290            $objPage->tpl_error="不正なページ移動です。"; 
    291291            break; 
    292292        case CART_EMPTY: 
    293             $objPage->tpl_error="¥«¡¼¥È¤Ë¾¦Éʤ¬¤¬¤¢¤ê¤Þ¤»¤ó¡£"; 
     293            $objPage->tpl_error="カートに商品ががありません。"; 
    294294            break; 
    295295        case CART_ADD_ERROR: 
    296             $objPage->tpl_error="¹ØÆþ½èÍýÃæ¤Ï¡¢¥«¡¼¥È¤Ë¾¦ÉʤòÄɲ乤뤳¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£"; 
     296            $objPage->tpl_error="購入処理中は、カートに商品を追加することはできません。"; 
    297297            break; 
    298298        case CANCEL_PURCHASE: 
    299             $objPage->tpl_error="¤³¤Î¼ê³¤­¤Ï̵¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£°Ê²¼¤ÎÍ×°ø¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£<br />¡¦¥»¥Ã¥·¥ç¥ó¾ðÊó¤ÎÍ­¸ú´ü¸Â¤¬ÀÚ¤ì¤Æ¤ë¾ì¹ç<br />¡¦¹ØÆþ¼ê³¤­Ãæ¤Ë¿·¤·¤¤¹ØÆþ¼ê³¤­¤ò¼Â¹Ô¤·¤¿¾ì¹ç<br />¡¦¤¹¤Ç¤Ë¹ØÆþ¼ê³¤­¤ò´°Î»¤·¤Æ¤¤¤ë¾ì¹ç"; 
     299            $objPage->tpl_error="この手続きは無効となりました。以下の要因が考えられます。<br />・セッション情報の有効期限が切れてる場合<br />・購入手続き中に新しい購入手続きを実行した場合<br />・すでに購入手続きを完了している場合"; 
    300300            break; 
    301301        case CATEGORY_NOT_FOUND: 
    302             $objPage->tpl_error="¤´»ØÄê¤Î¥«¥Æ¥´¥ê¤Ï¸ºß¤·¤Þ¤»¤ó¡£"; 
     302            $objPage->tpl_error="ご指定のカテゴリは存在しません。"; 
    303303            break; 
    304304        case SITE_LOGIN_ERROR: 
    305             $objPage->tpl_error="¥á¡¼¥ë¥¢¥É¥ì¥¹¤â¤·¤¯¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£"; 
     305            $objPage->tpl_error="メールアドレスもしくはパスワードが正しくありません。"; 
    306306            break; 
    307307        case TEMP_LOGIN_ERROR: 
    308             $objPage->tpl_error="¥á¡¼¥ë¥¢¥É¥ì¥¹¤â¤·¤¯¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£<br />ËÜÅÐÏ¿¤¬¤ªºÑ¤ß¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢²¾ÅÐÏ¿¥á¡¼¥ë¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë<br />URL¤è¤êËÜÅÐÏ¿¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£"; 
     308            $objPage->tpl_error="メールアドレスもしくはパスワードが正しくありません。<br />本登録がお済みでない場合は、仮登録メールに記載されている<br />URLより本登録を行ってください。"; 
    309309            break; 
    310310        case CUSTOMER_ERROR: 
    311             $objPage->tpl_error="ÉÔÀµ¤Ê¥¢¥¯¥»¥¹¤Ç¤¹¡£"; 
     311            $objPage->tpl_error="不正なアクセスです。"; 
    312312            break; 
    313313        case SOLD_OUT: 
    314             $objPage->tpl_error="¿½¤·Ìõ¤´¤¶¤¤¤Þ¤»¤ó¤¬¡¢¤´¹ØÆþ¤ÎľÁ°¤ÇÇä¤êÀڤ줿¾¦Éʤ¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¼ê³¤­¤Ï̵¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£"; 
     314            $objPage->tpl_error="申し訳ございませんが、ご購入の直前で売り切れた商品があります。この手続きは無効となりました。"; 
    315315            break; 
    316316        case CART_NOT_FOUND: 
    317             $objPage->tpl_error="¿½¤·Ìõ¤´¤¶¤¤¤Þ¤»¤ó¤¬¡¢¥«¡¼¥ÈÆâ¤Î¾¦ÉʾðÊó¤Î¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£¤³¤Î¼ê³¤­¤Ï̵¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£"; 
     317            $objPage->tpl_error="申し訳ございませんが、カート内の商品情報の取得に失敗しました。この手続きは無効となりました。"; 
    318318            break; 
    319319        case LACK_POINT: 
    320             $objPage->tpl_error="¿½¤·Ìõ¤´¤¶¤¤¤Þ¤»¤ó¤¬¡¢¥Ý¥¤¥ó¥È¤¬ÉÔ­¤·¤Æ¤ª¤ê¤Þ¤¹¡£¤³¤Î¼ê³¤­¤Ï̵¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£"; 
     320            $objPage->tpl_error="申し訳ございませんが、ポイントが不足しております。この手続きは無効となりました。"; 
    321321            break; 
    322322        case FAVORITE_ERROR: 
    323             $objPage->tpl_error="´û¤Ë¤ªµ¤¤ËÆþ¤ê¤ËÄɲäµ¤ì¤Æ¤¤¤ë¾¦ÉʤǤ¹¡£"; 
     323            $objPage->tpl_error="既にお気に入りに追加されている商品です。"; 
    324324            break; 
    325325        case EXTRACT_ERROR: 
    326             $objPage->tpl_error="¥Õ¥¡¥¤¥ë¤Î²òÅà¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n»ØÄê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë½ñ¤­¹þ¤ß¸¢¸Â¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£"; 
     326            $objPage->tpl_error="ファイルの解凍に失敗しました。\n指定のディレクトリに書き込み権限が与えられていない可能性があります。"; 
    327327            break; 
    328328        case FTP_DOWNLOAD_ERROR: 
    329             $objPage->tpl_error="¥Õ¥¡¥¤¥ë¤ÎFTP¥À¥¦¥ó¥í¡¼¥É¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"; 
     329            $objPage->tpl_error="ファイルのFTPダウンロードに失敗しました。"; 
    330330            break; 
    331331        case FTP_LOGIN_ERROR: 
    332             $objPage->tpl_error="FTP¥í¥°¥¤¥ó¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"; 
     332            $objPage->tpl_error="FTPログインに失敗しました。"; 
    333333            break; 
    334334        case FTP_CONNECT_ERROR: 
    335             $objPage->tpl_error="FTP¥í¥°¥¤¥ó¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"; 
     335            $objPage->tpl_error="FTPログインに失敗しました。"; 
    336336            break; 
    337337        case CREATE_DB_ERROR: 
    338             $objPage->tpl_error="DB¤ÎºîÀ®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n»ØÄê¤Î¥æ¡¼¥¶¡¼¤Ë¤Ï¡¢DBºîÀ®¤Î¸¢¸Â¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£"; 
     338            $objPage->tpl_error="DBの作成に失敗しました。\n指定のユーザーには、DB作成の権限が与えられていない可能性があります。"; 
    339339            break; 
    340340        case DB_IMPORT_ERROR: 
    341             $objPage->tpl_error="¥Ç¡¼¥¿¥Ù¡¼¥¹¹½Â¤¤Î¥¤¥ó¥Ý¡¼¥È¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\nsql¥Õ¥¡¥¤¥ë¤¬²õ¤ì¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£"; 
     341            $objPage->tpl_error="データベース構造のインポートに失敗しました。\nsqlファイルが壊れている可能性があります。"; 
    342342            break; 
    343343        case FILE_NOT_FOUND: 
    344             $objPage->tpl_error="»ØÄê¤Î¥Ñ¥¹¤Ë¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£"; 
     344            $objPage->tpl_error="指定のパスに、設定ファイルが存在しません。"; 
    345345            break; 
    346346        case WRITE_FILE_ERROR: 
    347             $objPage->tpl_error="ÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤á¤Þ¤»¤ó¡£\nÀßÄê¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¸¢¸Â¤òÍ¿¤¨¤Æ¤¯¤À¤µ¤¤¡£"; 
     347            $objPage->tpl_error="設定ファイルに書き込めません。\n設定ファイルに書き込み権限を与えてください。"; 
    348348            break; 
    349349        case FREE_ERROR_MSG: 
    … …  
    351351            break; 
    352352        default: 
    353             $objPage->tpl_error="¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"; 
     353            $objPage->tpl_error="エラーが発生しました。"; 
    354354            break; 
    355355    } 
    … …  
    360360     
    361361    if(is_object($objCampaignSess)) { 
    362         // ¥Õ¥ì¡¼¥à¤òÁªÂò(¥­¥ã¥ó¥Ú¡¼¥ó¥Ú¡¼¥¸¤«¤éÁ«°Ü¤Ê¤éÊѹ¹) 
     362        // フレームを選択(キャンペーンページから遷移なら変更) 
    363363        $objCampaignSess->pageView($objView); 
    364364    } else { 
    … …  
    368368} 
    369369 
    370 /* ǧ¾Ú¤Î²ÄÈÝȽÄê */ 
     370/* 認証の可否判定 */ 
    371371function sfIsSuccess($objSess, $disp_error = true) {  
    372372    $ret = $objSess->IsSuccess(); 
    373373    if($ret != SUCCESS) { 
    374374        if($disp_error) { 
    375             // ¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨ 
     375            // エラーページの表示 
    376376            sfDispError($ret); 
    377377        } 
    … …  
    381381} 
    382382 
    383 /* Á°¤Î¥Ú¡¼¥¸¤ÇÀµ¤·¤¯ÅÐÏ¿¤¬¹Ô¤ï¤ì¤¿¤«È½Äê */ 
     383/* 前のページで正しく登録が行われたか判定 */ 
    384384function sfIsPrePage($objSiteSess) { 
    385385    $ret = $objSiteSess->isPrePage(); 
    386386    if($ret != true) { 
    387         // ¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨ 
     387        // エラーページの表示 
    388388        sfDispSiteError(PAGE_ERROR, $objSiteSess); 
    389389    } 
    … …  
    391391 
    392392function sfCheckNormalAccess($objSiteSess, $objCartSess) { 
    393     // ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ 
     393    // ユーザユニークIDの取得 
    394394    $uniqid = $objSiteSess->getUniqId(); 
    395     // ¹ØÆþ¥Ü¥¿¥ó¤ò²¡¤·¤¿»þ¤Î¥«¡¼¥ÈÆâÍÆ¤¬¥³¥Ô¡¼¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¤ß¥³¥Ô¡¼¤¹¤ë¡£ 
     395    // 購入ボタンを押した時のカート内容がコピーされていない場合のみコピーする。 
    396396    $objCartSess->saveCurrentCart($uniqid); 
    397     // POST¤Î¥æ¥Ë¡¼¥¯ID¤È¥»¥Ã¥·¥ç¥ó¤Î¥æ¥Ë¡¼¥¯ID¤òÈæ³Ó(¥æ¥Ë¡¼¥¯ID¤¬POST¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¥¹¥ë¡¼) 
     397    // POSTのユニークIDとセッションのユニークIDを比較(ユニークIDがPOSTされていない場合はスルー) 
    398398    $ret = $objSiteSess->checkUniqId(); 
    399399    if($ret != true) { 
    400         // ¥¨¥é¡¼¥Ú¡¼¥¸¤Îɽ¼¨ 
     400        // エラーページの表示 
    401401        sfDispSiteError(CANCEL_PURCHASE, $objSiteSess); 
    402402    } 
    403403     
    404     // ¥«¡¼¥ÈÆâ¤¬¶õ¤Ç¤Ê¤¤¤« || ¹ØÆþ¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤«¤éÊѲ½¤¬¤Ê¤¤¤« 
     404    // カート内が空でないか || 購入ボタンを押してから変化がないか 
    405405    $quantity = $objCartSess->getTotalQuantity(); 
    406406    $ret = $objCartSess->checkChangeCart(); 
    407407    if($ret == true || !($quantity > 0)) { 
    408         // ¥«¡¼¥È¾ðÊóɽ¼¨¤Ë¶¯À©°Üư¤¹¤ë 
     408        // カート情報表示に強制移動する 
    409409        header("Location: ".URL_CART_TOP); 
    410410        exit; 
    … …  
    413413} 
    414414 
    415 /* DBÍÑÆüÉÕʸ»úÎó¼èÆÀ */ 
     415/* DB用日付文字列取得 */ 
    416416function sfGetTimestamp($year, $month, $day, $last = false) { 
    417417    if($year != "" && $month != "" && $day != "") {  
    … …  
    428428} 
    429429 
    430 // INT·¿¤Î¿ôÃÍ¥Á¥§¥Ã¥¯ 
     430// INT型の数値チェック 
    431431function sfIsInt($value) { 
    432432    if($value != "" && strlen($value) <= INT_LEN && is_numeric($value)) { 
    … …  
    445445    } 
    446446     
    447     /* HTTP¥Ø¥Ã¥À¤Î½ÐÎÏ */ 
     447    /* HTTPヘッダの出力 */ 
    448448    Header("Content-disposition: attachment; filename=${file_name}"); 
    449449    Header("Content-type: application/octet-stream; name=${file_name}"); 
    … …  
    451451    Header("Pragma: "); 
    452452     
    453     /* i18n¢· ¤À¤ÈÀµ¾ï¤Ëưºî¤·¤Ê¤¤¤¿¤á¡¢mb¢· ¤ËÊѹ¹ 
     453    /* i18n~ だと正常に動作しないため、mb~ に変更 
    454454    if (i18n_discover_encoding($data) == CHAR_CODE){ 
    455455        $data = i18n_convert($data,'SJIS',CHAR_CODE); 
    … …  
    460460    } 
    461461     
    462     /* ¥Ç¡¼¥¿¤ò½ÐÎÏ */ 
     462    /* データを出力 */ 
    463463    echo $data; 
    464464} 
    465465 
    466 /* 1³¬Áؾå¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤ò¼èÆÀ¤¹¤ë */ 
     466/* 1階層上のディレクトリ名を取得する */ 
    467467function sfUpDirName() { 
    468468    $path = $_SERVER['PHP_SELF']; 
    … …  
    472472} 
    473473 
    474 // ¸½ºß¤Î¥µ¥¤¥È¤ò¹¹¿·¡Ê¤¿¤À¤·¥Ý¥¹¥È¤Ï¹Ô¤ï¤Ê¤¤¡Ë 
     474// 現在のサイトを更新(ただしポストは行わない) 
    475475function sfReload($get = "") { 
    476476    if ($_SERVER["SERVER_PORT"] == "443" ){ 
    … …  
    488488} 
    489489 
    490 // ¥é¥ó¥­¥ó¥°¤ò¾å¤²¤ë¡£ 
     490// ランキングを上げる。 
    491491function sfRankUp($table, $colname, $id, $andwhere = "") { 
    492492    $objQuery = new SC_Query(); 
    … …  
    496496        $where.= " AND $andwhere"; 
    497497    } 
    498     // ÂоݹàÌܤΥé¥ó¥¯¤ò¼èÆÀ 
     498    // 対象項目のランクを取得 
    499499    $rank = $objQuery->get($table, "rank", $where, array($id)); 
    500     // ¥é¥ó¥¯¤ÎºÇÂçÃͤò¼èÆÀ 
     500    // ランクの最大値を取得 
    501501    $maxrank = $objQuery->max($table, "rank", $andwhere); 
    502     // ¥é¥ó¥¯¤¬ºÇÂçÃͤè¤ê¤â¾®¤µ¤¤¾ì¹ç¤Ë¼Â¹Ô¤¹¤ë¡£ 
     502    // ランクが最大値よりも小さい場合に実行する。 
    503503    if($rank < $maxrank) { 
    504         // ¥é¥ó¥¯¤¬°ì¤Ä¾å¤ÎID¤ò¼èÆÀ¤¹¤ë¡£ 
     504        // ランクが一つ上のIDを取得する。 
    505505        $where = "rank = ?"; 
    506506        if($andwhere != "") { 
    … …  
    509509        $uprank = $rank + 1; 
    510510        $up_id = $objQuery->get($table, $colname, $where, array($uprank)); 
    511         // ¥é¥ó¥¯Æþ¤ìÂØ¤¨¤Î¼Â¹Ô 
     511        // ランク入れ替えの実行 
    512512        $sqlup = "UPDATE $table SET rank = ?, update_date = Now() WHERE $colname = ?"; 
    513513        $objQuery->exec($sqlup, array($rank + 1, $id)); 
    … …  
    517517} 
    518518 
    519 // ¥é¥ó¥­¥ó¥°¤ò²¼¤²¤ë¡£ 
     519// ランキングを下げる。 
    520520function sfRankDown($table, $colname, $id, $andwhere = "") { 
    521521    $objQuery = new SC_Query(); 
    … …  
    525525        $where.= " AND $andwhere"; 
    526526    } 
    527     // ÂоݹàÌܤΥé¥ó¥¯¤ò¼èÆÀ 
     527    // 対象項目のランクを取得 
    528528    $rank = $objQuery->get($table, "rank", $where, array($id)); 
    529529         
    530     // ¥é¥ó¥¯¤¬1(ºÇ¾®ÃÍ)¤è¤ê¤âÂ礭¤¤¾ì¹ç¤Ë¼Â¹Ô¤¹¤ë¡£ 
     530    // ランクが1(最小値)よりも大きい場合に実行する。 
    531531    if($rank > 1) { 
    532         // ¥é¥ó¥¯¤¬°ì¤Ä²¼¤ÎID¤ò¼èÆÀ¤¹¤ë¡£ 
     532        // ランクが一つ下のIDを取得する。 
    533533        $where = "rank = ?"; 
    534534        if($andwhere != "") { 
    … …  
    537537        $downrank = $rank - 1; 
    538538        $down_id = $objQuery->get($table, $colname, $where, array($downrank)); 
    539         // ¥é¥ó¥¯Æþ¤ìÂØ¤¨¤Î¼Â¹Ô 
     539        // ランク入れ替えの実行 
    540540        $sqlup = "UPDATE $table SET rank = ?, update_date = Now() WHERE $colname = ?"; 
    541541        $objQuery->exec($sqlup, array($rank - 1, $id)); 
    … …  
    545545} 
    546546 
    547 //----¡¡»ØÄê½ç°Ì¤Ø°Üư 
     547//---- 指定順位へ移動 
    548548function sfMoveRank($tableName, $keyIdColumn, $keyId, $pos, $where = "") { 
    549549    $objQuery = new SC_Query(); 
    550550    $objQuery->begin(); 
    551551         
    552     // ¼«¿È¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë 
     552    // 自身のランクを取得する 
    553553    $rank = $objQuery->get($tableName, "rank", "$keyIdColumn = ?", array($keyId));   
    554554    $max = $objQuery->max($tableName, "rank", $where); 
    555555         
    556     // ÃͤÎÄ´À°¡ÊµÕ½ç¡Ë 
     556    // 値の調整(逆順) 
    557557    if($pos > $max) { 
    558558        $position = 1; 
    … …  
    563563    } 
    564564     
    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つずらす 
    569569    $sql = "UPDATE $tableName SET rank = $term, update_date = NOW() WHERE rank BETWEEN ? AND ? AND del_flg = 0"; 
    570570    if($where != "") { 
    … …  
    575575    if( $position < $rank ) $objQuery->exec( $sql, array( $position, $rank - 1 )); 
    576576 
    577     //-- »ØÄꤷ¤¿½ç°Ì¤Ørank¤ò½ñ¤­´¹¤¨¤ë¡£ 
     577    //-- 指定した順位へrankを書き換える。 
    578578    $sql  = "UPDATE $tableName SET rank = ?, update_date = NOW() WHERE $keyIdColumn = ? AND del_flg = 0 "; 
    579579    if($where != "") { 
    … …  
    585585} 
    586586 
    587 // ¥é¥ó¥¯¤ò´Þ¤à¥ì¥³¡¼¥É¤Îºï½ü 
    588 // ¥ì¥³¡¼¥É¤´¤Èºï½ü¤¹¤ë¾ì¹ç¤Ï¡¢$delete¤òtrue¤Ë¤¹¤ë¡£ 
     587// ランクを含むレコードの削除 
     588// レコードごと削除する場合は、$deleteをtrueにする。 
    589589function sfDeleteRankRecord($table, $colname, $id, $andwhere = "", $delete = false) { 
    590590    $objQuery = new SC_Query(); 
    591591    $objQuery->begin(); 
    592     // ºï½ü¥ì¥³¡¼¥É¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë¡£      
     592    // 削除レコードのランクを取得する。      
    593593    $where = "$colname = ?"; 
    594594    if($andwhere != "") { 
    … …  
    598598 
    599599    if(!$delete) { 
    600         // ¥é¥ó¥¯¤òºÇ²¼°Ì¤Ë¤¹¤ë¡¢DEL¥Õ¥é¥°ON 
     600        // ランクを最下位にする、DELフラグON 
    601601        $sqlup = "UPDATE $table SET rank = 0, del_flg = 1, update_date = Now() "; 
    602602        $sqlup.= "WHERE $colname = ?"; 
    603         // UPDATE¤Î¼Â¹Ô 
     603        // UPDATEの実行 
    604604        $objQuery->exec($sqlup, array($id)); 
    605605    } else { 
    … …  
    607607    } 
    608608     
    609     // Äɲå쥳¡¼¥É¤Î¥é¥ó¥¯¤è¤ê¾å¤Î¥ì¥³¡¼¥É¤ò°ì¤Ä¤º¤é¤¹¡£ 
     609    // 追加レコードのランクより上のレコードを一つずらす。 
    610610    $where = "rank > ?"; 
    611611    if($andwhere != "") { 
    … …  
    617617} 
    618618 
    619 // ¥ì¥³¡¼¥É¤Î¸ºß¥Á¥§¥Ã¥¯ 
     619// レコードの存在チェック 
    620620function sfIsRecord($table, $col, $arrval, $addwhere = "") { 
    621621    $objQuery = new SC_Query(); 
    … …  
    645645} 
    646646 
    647 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤ÎÃͤò¥Þ¡¼¥¸ 
     647// チェックボックスの値をマージ 
    648648function sfMergeCBValue($keyname, $max) { 
    649649    $conv = ""; 
    … …  
    659659} 
    660660 
    661 // html_checkboxes¤ÎÃͤò¥Þ¡¼¥¸¤·¤Æ2¿Ê¿ô·Á¼°¤ËÊѹ¹¤¹¤ë¡£ 
     661// html_checkboxesの値をマージして2進数形式に変更する。 
    662662function sfMergeCheckBoxes($array, $max) { 
    663663    $ret = ""; 
    … …  
    678678 
    679679 
    680 // html_checkboxes¤ÎÃͤò¥Þ¡¼¥¸¤·¤Æ¡Ö-¡×¤Ç¤Ä¤Ê¤²¤ë¡£ 
     680// html_checkboxesの値をマージして「-」でつなげる。 
    681681function sfMergeParamCheckBoxes($array) { 
    682682    if(is_array($array)) { 
    … …  
    694694} 
    695695 
    696 // html_checkboxes¤ÎÃͤò¥Þ¡¼¥¸¤·¤ÆSQL¸¡º÷ÍѤËÊѹ¹¤¹¤ë¡£ 
     696// html_checkboxesの値をマージしてSQL検索用に変更する。 
    697697function sfSearchCheckBoxes($array) { 
    698698    $max = 0; 
    … …  
    718718} 
    719719 
    720 // 2¿Ê¿ô·Á¼°¤ÎÃͤòhtml_checkboxesÂбþ¤ÎÃͤËÀÚ¤êÂØ¤¨¤ë 
     720// 2進数形式の値をhtml_checkboxes対応の値に切り替える 
    721721function sfSplitCheckBoxes($val) { 
    722722    $len = strlen($val); 
    … …  
    729729} 
    730730 
    731 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤ÎÃͤò¥Þ¡¼¥¸ 
     731// チェックボックスの値をマージ 
    732732function sfMergeCBSearchValue($keyname, $max) { 
    733733    $conv = ""; 
    … …  
    743743} 
    744744 
    745 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤ÎÃͤòʬ²ò 
     745// チェックボックスの値を分解 
    746746function sfSplitCBValue($val, $keyname = "") { 
    747747    $len = strlen($val); 
    … …  
    758758} 
    759759 
    760 // ¥­¡¼¤ÈÃͤò¥»¥Ã¥È¤·¤¿ÇÛÎó¤ò¼èÆÀ 
     760// キーと値をセットした配列を取得 
    761761function sfArrKeyValue($arrList, $keyname, $valname, $len_max = "", $keysize = "") { 
    762762     
    … …  
    783783} 
    784784 
    785 // ¥­¡¼¤ÈÃͤò¥»¥Ã¥È¤·¤¿ÇÛÎó¤ò¼èÆÀ(Ãͤ¬Ê£¿ô¤Î¾ì¹ç) 
     785// キーと値をセットした配列を取得(値が複数の場合) 
    786786function sfArrKeyValues($arrList, $keyname, $valname, $len_max = "", $keysize = "", $connect = "") { 
    787787     
    … …  
    809809} 
    810810 
    811 // ÇÛÎó¤ÎÃͤò¥«¥ó¥Þ¶èÀÚ¤ê¤ÇÊÖ¤¹¡£ 
     811// 配列の値をカンマ区切りで返す。 
    812812function sfGetCommaList($array, $space=true) { 
    813813    if (count($array) > 0) { 
    … …  
    831831} 
    832832 
    833 /* ÇÛÎó¤ÎÍ×ÁǤòCSV¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ÐÎϤ¹¤ë¡£*/ 
     833/* 配列の要素をCSVフォーマットで出力する。*/ 
    834834function sfGetCSVList($array) { 
    835835    if (count($array) > 0) { 
    … …  
    845845} 
    846846 
    847 /* ÇÛÎó¤ÎÍ×ÁǤòPDF¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ÐÎϤ¹¤ë¡£*/ 
     847/* 配列の要素をPDFフォーマットで出力する。*/ 
    848848function sfGetPDFList($array) { 
    849849    foreach($array as $key => $val) { 
    … …  
    858858/*-----------------------------------------------------------------*/ 
    859859/*  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 ) 
    866866/*-----------------------------------------------------------------*/ 
    867867function sfCheckSetTerm ( $start_year, $start_month, $start_day, $end_year, $end_month, $end_day ) { 
    868868 
    869     // ´ü´Ö»ØÄê 
     869    // 期間指定 
    870870    $error = 0; 
    871871    if ( $start_month || $start_day || $start_year){ 
    … …  
    887887} 
    888888 
    889 // ¥¨¥é¡¼²Õ½ê¤ÎÇØ·Ê¿§¤òÊѹ¹¤¹¤ë¤¿¤á¤Îfunction SC_View¤ÇÆÉ¤ß¹þ¤à 
     889// エラー箇所の背景色を変更するためのfunction SC_Viewで読み込む 
    890890function sfSetErrorStyle(){ 
    891891    return 'style="background-color:'.ERR_COLOR.'"'; 
    892892} 
    893893 
    894 /* DB¤ËÅϤ¹¿ôÃͤΥÁ¥§¥Ã¥¯ 
    895  * 10·å°Ê¾å¤Ï¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¥¨¥é¡¼¤òµ¯¤³¤¹¤Î¤Ç¡£ 
     894/* DBに渡す数値のチェック 
     895 * 10桁以上はオーバーフローエラーを起こすので。 
    896896 */ 
    897897function sfCheckNumLength( $value ){ 
    … …  
    907907} 
    908908 
    909 // °ìÃפ·¤¿ÃͤΥ­¡¼Ì¾¤ò¼èÆÀ 
     909// 一致した値のキー名を取得 
    910910function sfSearchKey($array, $word, $default) { 
    911911    foreach($array as $key => $val) { 
    … …  
    917917} 
    918918 
    919 // ¥«¥Æ¥´¥ê¥Ä¥ê¡¼¤Î¼èÆÀ($products_check:true¾¦ÉÊÅÐÏ¿ºÑ¤ß¤Î¤â¤Î¤À¤±¼èÆÀ) 
     919// カテゴリツリーの取得($products_check:true商品登録済みのものだけ取得) 
    920920function sfGetCategoryList($addwhere = "", $products_check = false, $head = CATEGORY_HEAD) { 
    921921    $objQuery = new SC_Query(); 
    … …  
    946946        /* 
    947947        for($n = 1; $n < $arrRet[$cnt]['level']; $n++) { 
    948             $arrList[$id].= "¡¡"; 
     948            $arrList[$id].= " "; 
    949949        } 
    950950        */ 
    … …  
    957957} 
    958958 
    959 // ¥«¥Æ¥´¥ê¥Ä¥ê¡¼¤Î¼èÆÀ¡Ê¿Æ¥«¥Æ¥´¥ê¤ÎValue:0) 
     959// カテゴリツリーの取得(親カテゴリのValue:0) 
    960960function sfGetLevelCatList($parent_zero = true) { 
    961961    $objQuery = new SC_Query(); 
    … …  
    980980        /*           
    981981        for($n = 1; $n < $arrRet[$cnt]['level']; $n++) { 
    982             $arrOutput[$cnt].= "¡¡"; 
     982            $arrOutput[$cnt].= " "; 
    983983        } 
    984984        */ 
    … …  
    10131013} 
    10141014 
    1015 // SELECT¥Ü¥Ã¥¯¥¹Íѥꥹ¥È¤ÎºîÀ® 
     1015// SELECTボックス用リストの作成 
    10161016function sfGetIDValueList($table, $keyname, $valname) { 
    10171017    $objQuery = new SC_Query(); 
    … …  
    10301030 
    10311031function 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); 
    10341034    return $ret; 
    10351035} 
    10361036 
    1037 /* ½ê°¤¹¤ë¤¹¤Ù¤Æ¤Î³¬ÁؤοÆID¤òÇÛÎó¤ÇÊÖ¤¹ */ 
     1037/* 所属するすべての階層の親IDを配列で返す */ 
    10381038function sfGetParents($objQuery, $table, $pid_name, $id_name, $id) { 
    10391039    $arrRet = sfGetParentsArray($table, $pid_name, $id_name, $id); 
    1040     // ÇÛÎó¤ÎÀèÆ¬1¤Ä¤òºï½ü¤¹¤ë¡£ 
     1040    // 配列の先頭1つを削除する。 
    10411041    array_shift($arrRet); 
    10421042    return $arrRet; 
    … …  
    10441044 
    10451045 
    1046 /* ¿ÆID¤ÎÇÛÎó¤ò¸µ¤ËÆÃÄê¤Î¥«¥é¥à¤ò¼èÆÀ¤¹¤ë¡£*/ 
     1046/* 親IDの配列を元に特定のカラムを取得する。*/ 
    10471047function sfGetParentsCol($objQuery, $table, $id_name, $col_name, $arrId ) { 
    10481048    $col = $col_name; 
    … …  
    10631063} 
    10641064 
    1065 /* »ÒID¤ÎÇÛÎó¤òÊÖ¤¹ */ 
     1065/* 子IDの配列を返す */ 
    10661066function sfGetChildsID($table, $pid_name, $id_name, $id) { 
    10671067    $arrRet = sfGetChildrenArray($table, $pid_name, $id_name, $id); 
    … …  
    10691069} 
    10701070 
    1071 /* ¥«¥Æ¥´¥êÊѹ¹»þ¤Î°Üư½èÍý */ 
     1071/* カテゴリ変更時の移動処理 */ 
    10721072function sfMoveCatRank($objQuery, $table, $id_name, $cat_name, $old_catid, $new_catid, $id) { 
    10731073    if ($old_catid == $new_catid) { 
    10741074        return; 
    10751075    } 
    1076     // µì¥«¥Æ¥´¥ê¤Ç¤Î¥é¥ó¥¯ºï½ü½èÍý 
    1077     // °Üư¥ì¥³¡¼¥É¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë¡£      
     1076    // 旧カテゴリでのランク削除処理 
     1077    // 移動レコードのランクを取得する。      
    10781078    $where = "$id_name = ?"; 
    10791079    $rank = $objQuery->get($table, "rank", $where, array($id)); 
    1080     // ºï½ü¥ì¥³¡¼¥É¤Î¥é¥ó¥¯¤è¤ê¾å¤Î¥ì¥³¡¼¥É¤ò°ì¤Ä²¼¤Ë¤º¤é¤¹¡£ 
     1080    // 削除レコードのランクより上のレコードを一つ下にずらす。 
    10811081    $where = "rank > ? AND $cat_name = ?"; 
    10821082    $sqlup = "UPDATE $table SET rank = (rank - 1) WHERE $where"; 
    10831083    $objQuery->exec($sqlup, array($rank, $old_catid)); 
    1084     // ¿·¥«¥Æ¥´¥ê¤Ç¤ÎÅÐÏ¿½èÍý 
    1085     // ¿·¥«¥Æ¥´¥ê¤ÎºÇÂç¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë¡£ 
     1084    // 新カテゴリでの登録処理 
     1085    // 新カテゴリの最大ランクを取得する。 
    10861086    $max_rank = $objQuery->max($table, "rank", "$cat_name = ?", array($new_catid)) + 1; 
    10871087    $where = "$id_name = ?"; 
    … …  
    10901090} 
    10911091 
    1092 /* ÀǶâ·×»» */ 
     1092/* 税金計算 */ 
    10931093function sfTax($price, $tax, $tax_rule) { 
    10941094    $real_tax = $tax / 100; 
    10951095    $ret = $price * $real_tax; 
    10961096    switch($tax_rule) { 
    1097     // »Í¼Î¸ÞÆþ 
     1097    // 四捨五入 
    10981098    case 1: 
    10991099        $ret = round($ret); 
    11001100        break; 
    1101     // ÀÚ¤ê¼Î¤Æ 
     1101    // 切り捨て 
    11021102    case 2: 
    11031103        $ret = floor($ret); 
    11041104        break; 
    1105     // ÀÚ¤ê¾å¤² 
     1105    // 切り上げ 
    11061106    case 3: 
    11071107        $ret = ceil($ret); 
    11081108        break; 
    1109     // ¥Ç¥Õ¥©¥ë¥È:ÀÚ¤ê¾å¤² 
     1109    // デフォルト:切り上げ 
    11101110    default: 
    11111111        $ret = ceil($ret); 
    … …  
    11151115} 
    11161116 
    1117 /* ÀǶâÉÕÍ¿ */ 
     1117/* 税金付与 */ 
    11181118function sfPreTax($price, $tax, $tax_rule) { 
    11191119    $real_tax = $tax / 100; 
    … …  
    11211121     
    11221122    switch($tax_rule) { 
    1123     // »Í¼Î¸ÞÆþ 
     1123    // 四捨五入 
    11241124    case 1: 
    11251125        $ret = round($ret); 
    11261126        break; 
    1127     // ÀÚ¤ê¼Î¤Æ 
     1127    // 切り捨て 
    11281128    case 2: 
    11291129        $ret = floor($ret); 
    11301130        break; 
    1131     // ÀÚ¤ê¾å¤² 
     1131    // 切り上げ 
    11321132    case 3: 
    11331133        $ret = ceil($ret); 
    11341134        break; 
    1135     // ¥Ç¥Õ¥©¥ë¥È:ÀÚ¤ê¾å¤² 
     1135    // デフォルト:切り上げ 
    11361136    default: 
    11371137        $ret = ceil($ret); 
    … …  
    11411141} 
    11421142 
    1143 // ·å¿ô¤ò»ØÄꤷ¤Æ»Í¼Î¸ÞÆþ 
     1143// 桁数を指定して四捨五入 
    11441144function sfRound($value, $pow = 0){ 
    11451145    $adjust = pow(10 ,$pow-1); 
    11461146 
    1147     // À°¿ô³î¤Ä0½Ð¤Ê¤±¤ì¤Ð·å¿ô»ØÄê¤ò¹Ô¤¦ 
     1147    // 整数且つ0出なければ桁数指定を行う 
    11481148    if(sfIsInt($adjust) and $pow > 1){ 
    11491149        $ret = (round($value * $adjust)/$adjust); 
    … …  
    11551155} 
    11561156 
    1157 /* ¥Ý¥¤¥ó¥ÈÉÕÍ¿ */ 
     1157/* ポイント付与 */ 
    11581158function sfPrePoint($price, $point_rate, $rule = POINT_RULE, $product_id = "") { 
    11591159    if(sfIsInt($product_id)) { 
    … …  
    11631163         
    11641164        $where .= "del_flg = 0 AND campaign_id IN (SELECT campaign_id FROM dtb_campaign_detail where product_id = ? )"; 
    1165         //ÅÐÏ¿(¹¹¿·)ÆüÉÕ½ç 
     1165        //登録(更新)日付順 
    11661166        $objQuery->setorder('update_date DESC'); 
    1167         //¥­¥ã¥ó¥Ú¡¼¥ó¥Ý¥¤¥ó¥È¤Î¼èÆÀ 
     1167        //キャンペーンポイントの取得 
    11681168        $arrRet = $objQuery->select("campaign_name, campaign_point_rate", "dtb_campaign", $where, array($product_id)); 
    11691169    } 
    1170     //Ê£¿ô¤Î¥­¥ã¥ó¥Ú¡¼¥ó¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¾¦Éʤϡ¢ºÇ¿·¤Î¥­¥ã¥ó¥Ú¡¼¥ó¤«¤é¥Ý¥¤¥ó¥È¤ò¼èÆÀ 
     1170    //複数のキャンペーンに登録されている商品は、最新のキャンペーンからポイントを取得 
    11711171    if($arrRet[0]['campaign_point_rate'] != "") { 
    11721172        $campaign_point_rate = $arrRet[0]['campaign_point_rate']; 
    … …  
    11771177    $ret = $price * $real_point; 
    11781178    switch($rule) { 
    1179     // »Í¼Î¸ÞÆþ 
     1179    // 四捨五入 
    11801180    case 1: 
    11811181        $ret = round($ret); 
    11821182        break; 
    1183     // ÀÚ¤ê¼Î¤Æ 
     1183    // 切り捨て 
    11841184    case 2: 
    11851185        $ret = floor($ret); 
    11861186        break; 
    1187     // ÀÚ¤ê¾å¤² 
     1187    // 切り上げ 
    11881188    case 3: 
    11891189        $ret = ceil($ret); 
    11901190        break; 
    1191     // ¥Ç¥Õ¥©¥ë¥È:ÀÚ¤ê¾å¤² 
     1191    // デフォルト:切り上げ 
    11921192    default: 
    11931193        $ret = ceil($ret); 
    11941194        break; 
    11951195    } 
    1196     //¥­¥ã¥ó¥Ú¡¼¥ó¾¦Éʤξì¹ç 
     1196    //キャンペーン商品の場合 
    11971197    if($campaign_point_rate != "") { 
    1198         $ret = "(".$arrRet[0]['campaign_name']."¥Ý¥¤¥ó¥ÈΨ".$campaign_point_rate."%)".$ret; 
     1198        $ret = "(".$arrRet[0]['campaign_name']."ポイント率".$campaign_point_rate."%)".$ret; 
    11991199    } 
    12001200    return $ret; 
    12011201} 
    12021202 
    1203 /* µ¬³ÊʬÎà¤Î·ï¿ô¼èÆÀ */ 
     1203/* 規格分類の件数取得 */ 
    12041204function sfGetClassCatCount() { 
    12051205    $sql = "select count(dtb_class.class_id) as count, dtb_class.class_id "; 
    … …  
    12091209    $objQuery = new SC_Query(); 
    12101210    $arrList = $objQuery->getall($sql); 
    1211     // ¥­¡¼¤ÈÃͤò¥»¥Ã¥È¤·¤¿ÇÛÎó¤ò¼èÆÀ 
     1211    // キーと値をセットした配列を取得 
    12121212    $arrRet = sfArrKeyValue($arrList, 'class_id', 'count'); 
    12131213     
    … …  
    12151215} 
    12161216 
    1217 /* µ¬³Ê¤ÎÅÐÏ¿ */ 
     1217/* 規格の登録 */ 
    12181218function sfInsertProductClass($objQuery, $arrList, $product_id) { 
    1219     // ¤¹¤Ç¤Ëµ¬³ÊÅÐÏ¿¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ 
     1219    // すでに規格登録があるかどうかをチェックする。 
    12201220    $where = "product_id = ? AND classcategory_id1 <> 0 AND classcategory_id1 <> 0"; 
    12211221    $count = $objQuery->count("dtb_products_class", $where,  array($product_id)); 
    12221222     
    1223     // ¤¹¤Ç¤Ëµ¬³ÊÅÐÏ¿¤¬¤Ê¤¤¾ì¹ç 
     1223    // すでに規格登録がない場合 
    12241224    if($count == 0) { 
    1225         // ´û¸µ¬³Ê¤Îºï½ü 
     1225        // 既存規格の削除 
    12261226        $where = "product_id = ?"; 
    12271227        $objQuery->delete("dtb_products_class", $where, array($product_id)); 
    … …  
    12411241        } 
    12421242         
    1243         // INSERT¤Î¼Â¹Ô 
     1243        // INSERTの実行 
    12441244        $objQuery->insert("dtb_products_class", $sqlval); 
    12451245    } 
    … …  
    12531253} 
    12541254 
    1255 /* ʸËö¤Î¡Ö/¡×¤ò¤Ê¤¯¤¹ */ 
     1255/* 文末の「/」をなくす */ 
    12561256function sfTrimURL($url) { 
    12571257    $ret = ereg_replace("[/]+$", "", $url); 
    … …  
    12591259} 
    12601260 
    1261 /* ¾¦Éʵ¬³Ê¾ðÊó¤Î¼èÆÀ */ 
     1261/* 商品規格情報の取得 */ 
    12621262function sfGetProductsClass($arrID) { 
    12631263    list($product_id, $classcategory_id1, $classcategory_id2) = $arrID;  
    … …  
    12701270    } 
    12711271         
    1272     // ¾¦Éʵ¬³Ê¼èÆÀ 
     1272    // 商品規格取得 
    12731273    $objQuery = new SC_Query(); 
    12741274    $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"; 
    … …  
    12801280} 
    12811281 
    1282 /* ½¸·×¾ðÊó¤ò¸µ¤ËºÇ½ª·×»» */ 
     1282/* 集計情報を元に最終計算 */ 
    12831283function sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo, $objCustomer = "") { 
    1284     // ¾¦Éʤιç·×¸Ä¿ô 
     1284    // 商品の合計個数 
    12851285    $total_quantity = $objCartSess->getTotalQuantity(true); 
    12861286     
    1287     // ÀǶâ¤Î¼èÆÀ 
     1287    // 税金の取得 
    12881288    $arrData['tax'] = $objPage->tpl_total_tax; 
    1289     // ¾®·×¤Î¼èÆÀ 
     1289    // 小計の取得 
    12901290    $arrData['subtotal'] = $objPage->tpl_total_pretax;   
    12911291     
    1292     // ¹ç·×Á÷ÎÁ¤Î¼èÆÀ 
     1292    // 合計送料の取得 
    12931293    $arrData['deliv_fee'] = 0; 
    12941294         
    1295     // ¾¦Éʤ´¤È¤ÎÁ÷ÎÁ¤¬Í­¸ú¤Î¾ì¹ç 
     1295    // 商品ごとの送料が有効の場合 
    12961296    if (OPTION_PRODUCT_DELIV_FEE == 1) { 
    12971297        $arrData['deliv_fee']+= $objCartSess->getAllProductsDelivFee(); 
    12981298    } 
    12991299     
    1300     // ÇÛÁ÷¶È¼Ô¤ÎÁ÷ÎÁ¤¬Í­¸ú¤Î¾ì¹ç 
     1300    // 配送業者の送料が有効の場合 
    13011301    if (OPTION_DELIV_FEE == 1) { 
    1302         // Á÷ÎÁ¤Î¹ç·×¤ò·×»»¤¹¤ë 
     1302        // 送料の合計を計算する 
    13031303        $arrData['deliv_fee']+= sfGetDelivFee($arrData['deliv_pref'], $arrData['payment_id']); 
    13041304    } 
    13051305     
    1306     // Á÷ÎÁ̵ÎÁ¤Î¹ØÆþ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç 
     1306    // 送料無料の購入数が設定されている場合 
    13071307    if(DELIV_FREE_AMOUNT > 0) { 
    13081308        if($total_quantity >= DELIV_FREE_AMOUNT) { 
    … …  
    13111311    } 
    13121312         
    1313     // Á÷ÎÁ̵ÎÁ¾ò·ï¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç 
     1313    // 送料無料条件が設定されている場合 
    13141314    if($arrInfo['free_rule'] > 0) { 
    1315         // ¾®·×¤¬ÌµÎÁ¾ò·ï¤òͤ¨¤Æ¤¤¤ë¾ì¹ç 
     1315        // 小計が無料条件を超えている場合 
    13161316        if($arrData['subtotal'] >= $arrInfo['free_rule']) { 
    13171317            $arrData['deliv_fee'] = 0; 
    … …  
    13191319    } 
    13201320 
    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    // お支払い合計 
    13261326    $arrData['payment_total'] = $arrData['total'] - ($arrData['use_point'] * POINT_VALUE); 
    1327     // ²Ã»»¥Ý¥¤¥ó¥È¤Î·×»» 
     1327    // 加算ポイントの計算 
    13281328    $arrData['add_point'] = sfGetAddPoint($objPage->tpl_total_point, $arrData['use_point'], $arrInfo); 
    13291329     
    13301330    if($objCustomer != "") { 
    1331         // ÃÂÀ¸Æü·î¤Ç¤¢¤Ã¤¿¾ì¹ç 
     1331        // 誕生日月であった場合 
    13321332        if($objCustomer->isBirthMonth()) { 
    13331333            $arrData['birth_point'] = BIRTH_MONTH_POINT; 
    … …  
    13431343} 
    13441344 
    1345 /* ¥«¡¼¥ÈÆâ¾¦Éʤν¸·×½èÍý */ 
     1345/* カート内商品の集計処理 */ 
    13461346function sfTotalCart($objPage, $objCartSess, $arrInfo) { 
    1347     // µ¬³Ê̾°ìÍ÷ 
     1347    // 規格名一覧 
    13481348    $arrClassName = sfGetIDValueList("dtb_class", "class_id", "name"); 
    1349     // µ¬³ÊʬÎà̾°ìÍ÷ 
     1349    // 規格分類名一覧 
    13501350    $arrClassCatName = sfGetIDValueList("dtb_classcategory", "classcategory_id", "name"); 
    13511351     
    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    // カート内情報の取得 
    13571357    $arrCart = $objCartSess->getCartList(); 
    13581358    $max = count($arrCart); 
    … …  
    13601360 
    13611361    for ($i = 0; $i < $max; $i++) { 
    1362         // ¾¦Éʵ¬³Ê¾ðÊó¤Î¼èÆÀ    
     1362        // 商品規格情報の取得     
    13631363        $arrData = sfGetProductsClass($arrCart[$i]['id']); 
    13641364        $limit = ""; 
    1365         // DB¤Ë¸ºß¤¹¤ë¾¦ÉÊ 
     1365        // DBに存在する商品 
    13661366        if (count($arrData) > 0) { 
    13671367             
    1368             // ¹ØÆþÀ©¸Â¿ô¤òµá¤á¤ë¡£          
     1368            // 購入制限数を求める。            
    13691369            if ($arrData['stock_unlimited'] != '1' && $arrData['sale_unlimited'] != '1') { 
    13701370                if($arrData['sale_limit'] < $arrData['stock']) { 
    … …  
    13831383                         
    13841384            if($limit != "" && $limit < $arrCart[$i]['quantity']) { 
    1385                 // ¥«¡¼¥ÈÆâ¾¦ÉÊ¿ô¤òÀ©¸Â¤Ë¹ç¤ï¤»¤ë 
     1385                // カート内商品数を制限に合わせる 
    13861386                $objCartSess->setProductValue($arrCart[$i]['id'], 'quantity', $limit); 
    13871387                $quantity = $limit; 
    1388                 $objPage->tpl_message = "¢¨¡Ö" . $arrData['name'] . "¡×¤ÏÈÎÇäÀ©¸Â¤·¤Æ¤ª¤ê¤Þ¤¹¡¢°ìÅ٤ˤ³¤ì°Ê¾å¤Î¹ØÆþ¤Ï¤Ç¤­¤Þ¤»¤ó¡£"; 
     1388                $objPage->tpl_message = "※「" . $arrData['name'] . "」は販売制限しております、一度にこれ以上の購入はできません。"; 
    13891389            } else { 
    13901390                $quantity = $arrCart[$i]['quantity']; 
    … …  
    13991399            $objPage->arrProductsClass[$cnt]['classcategory_name2'] = $arrClassCatName[$arrData['classcategory_id2']]; 
    14001400             
    1401             // ²èÁü¥µ¥¤¥º 
     1401            // 画像サイズ 
    14021402            list($image_width, $image_height) = getimagesize(IMAGE_SAVE_DIR . basename($objPage->arrProductsClass[$cnt]["main_image"])); 
    14031403            $objPage->arrProductsClass[$cnt]["tpl_image_width"] = $image_width + 60; 
    14041404            $objPage->arrProductsClass[$cnt]["tpl_image_height"] = $image_height + 80; 
    14051405             
    1406             // ²Á³Ê¤ÎÅÐÏ¿ 
     1406            // 価格の登録 
    14071407            if ($arrData['price02'] != "") { 
    14081408                $objCartSess->setProductValue($arrCart[$i]['id'], 'price', $arrData['price02']); 
    … …  
    14121412                $objPage->arrProductsClass[$cnt]['uniq_price'] = $arrData['price01']; 
    14131413            } 
    1414             // ¥Ý¥¤¥ó¥ÈÉÕͿΨ¤ÎÅÐÏ¿ 
     1414            // ポイント付与率の登録 
    14151415            $objCartSess->setProductValue($arrCart[$i]['id'], 'point_rate', $arrData['point_rate']); 
    1416             // ¾¦Éʤ´¤È¤Î¹ç·×¶â³Û 
     1416            // 商品ごとの合計金額 
    14171417            $objPage->arrProductsClass[$cnt]['total_pretax'] = $objCartSess->getProductTotal($arrInfo, $arrCart[$i]['id']); 
    1418             // Á÷ÎÁ¤Î¹ç·×¤ò·×»»¤¹¤ë 
     1418            // 送料の合計を計算する 
    14191419            $objPage->tpl_total_deliv_fee+= ($arrData['deliv_fee'] * $arrCart[$i]['quantity']); 
    14201420            $cnt++; 
    14211421        } else { 
    1422             // DB¤Ë¾¦Éʤ¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¥«¡¼¥È¾¦Éʤκï½ü 
     1422            // DBに商品が見つからない場合はカート商品の削除 
    14231423            $objCartSess->delProductKey('id', $arrCart[$i]['id']); 
    14241424        } 
    14251425    } 
    14261426     
    1427     // Á´¾¦Éʹç·×¶â³Û(Àǹþ¤ß) 
     1427    // 全商品合計金額(税込み) 
    14281428    $objPage->tpl_total_pretax = $objCartSess->getAllProductsTotal($arrInfo); 
    1429     // Á´¾¦Éʹç·×¾ÃÈñÀÇ 
     1429    // 全商品合計消費税 
    14301430    $objPage->tpl_total_tax = $objCartSess->getAllProductsTax($arrInfo); 
    1431     // Á´¾¦Éʹç·×¥Ý¥¤¥ó¥È 
     1431    // 全商品合計ポイント 
    14321432    $objPage->tpl_total_point = $objCartSess->getAllProductsPoint(); 
    14331433     
    … …  
    14351435} 
    14361436 
    1437 /* DB¤«¤é¼è¤ê½Ð¤·¤¿ÆüÉÕ¤Îʸ»úÎó¤òÄ´À°¤¹¤ë¡£*/ 
     1437/* DBから取り出した日付の文字列を調整する。*/ 
    14381438function sfDispDBDate($dbdate, $time = true) { 
    14391439    list($y, $m, $d, $H, $M) = split("[- :]", $dbdate); 
    … …  
    14721472 
    14731473 
    1474 // ÅÔÆ»Éܸ©¡¢»Ùʧ¤¤ÊýË¡¤«¤éÇÛÁ÷ÎÁ¶â¤ò¼èÆÀ¤¹¤ë 
     1474// 都道府県、支払い方法から配送料金を取得する 
    14751475function sfGetDelivFee($pref, $payment_id = "") { 
    14761476    $objQuery = new SC_Query(); 
    … …  
    14781478    $deliv_id = ""; 
    14791479     
    1480     // »Ùʧ¤¤ÊýË¡¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢Âбþ¤·¤¿ÇÛÁ÷¶È¼Ô¤ò¼èÆÀ¤¹¤ë 
     1480    // 支払い方法が指定されている場合は、対応した配送業者を取得する 
    14811481    if($payment_id != "") { 
    14821482        $where = "del_flg = 0 AND payment_id = ?"; 
    14831483        $arrRet = $objQuery->select("deliv_id", "dtb_payment", $where, array($payment_id)); 
    14841484        $deliv_id = $arrRet[0]['deliv_id']; 
    1485     // »Ùʧ¤¤ÊýË¡¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ÀèÆ¬¤ÎÇÛÁ÷¶È¼Ô¤ò¼èÆÀ¤¹¤ë 
     1485    // 支払い方法が指定されていない場合は、先頭の配送業者を取得する 
    14861486    } else { 
    14871487        $where = "del_flg = 0"; 
    … …  
    14921492    } 
    14931493     
    1494     // ÇÛÁ÷¶È¼Ô¤«¤éÇÛÁ÷ÎÁ¤ò¼èÆÀ 
     1494    // 配送業者から配送料を取得 
    14951495    if($deliv_id != "") { 
    14961496         
    1497         // ÅÔÆ»Éܸ©¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ÅìµþÅÔ¤ÎÈÖ¹æ¤ò»ØÄꤷ¤Æ¤ª¤¯ 
     1497        // 都道府県が指定されていない場合は、東京都の番号を指定しておく 
    14981498        if($pref == "") { 
    14991499            $pref = 13; 
    … …  
    15071507} 
    15081508 
    1509 /* »Ùʧ¤¤ÊýË¡¤Î¼èÆÀ */ 
     1509/* 支払い方法の取得 */ 
    15101510function sfGetPayment() { 
    15111511    $objQuery = new SC_Query(); 
    1512     // ¹ØÆþ¶â³Û¤¬¾ò·ï³Û°Ê²¼¤Î¹àÌܤò¼èÆÀ 
     1512    // 購入金額が条件額以下の項目を取得 
    15131513    $where = "del_flg = 0"; 
    15141514    $objQuery->setorder("fix, rank DESC"); 
    … …  
    15171517} 
    15181518 
    1519 /* ÇÛÎó¤ò¥­¡¼Ì¾¤´¤È¤ÎÇÛÎó¤ËÊѹ¹¤¹¤ë */ 
     1519/* 配列をキー名ごとの配列に変更する */ 
    15201520function sfSwapArray($array) { 
    15211521    $max = count($array); 
    … …  
    15281528} 
    15291529 
    1530 /* ¤«¤±»»¤ò¤¹¤ë¡ÊSmartyÍÑ) */ 
     1530/* かけ算をする(Smarty用) */ 
    15311531function sfMultiply($num1, $num2) { 
    15321532    return ($num1 * $num2); 
    15331533} 
    15341534 
    1535 /* DB¤ËÅÐÏ¿¤µ¤ì¤¿¥Æ¥ó¥×¥ì¡¼¥È¥á¡¼¥ë¤ÎÁ÷¿® */ 
     1535/* DBに登録されたテンプレートメールの送信 */ 
    15361536function sfSendTemplateMail($to, $to_name, $template_id, $objPage) { 
    15371537    global $arrMAILTPLPATH; 
    15381538    $objQuery = new SC_Query(); 
    1539     // ¥á¡¼¥ë¥Æ¥ó¥×¥ì¡¼¥È¾ðÊó¤Î¼èÆÀ 
     1539    // メールテンプレート情報の取得 
    15401540    $where = "template_id = ?"; 
    15411541    $arrRet = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array($template_id)); 
    … …  
    15481548     
    15491549    $objMailView = new SC_SiteView(); 
    1550     // ¥á¡¼¥ëËÜʸ¤Î¼èÆÀ 
     1550    // メール本文の取得 
    15511551    $objMailView->assignobj($objPage); 
    15521552    $body = $objMailView->fetch($arrMAILTPLPATH[$template_id]); 
    15531553     
    1554     // ¥á¡¼¥ëÁ÷¿®½èÍý 
     1554    // メール送信処理 
    15551555    $objSendMail = new GC_SendMail(); 
    15561556    $from = $arrInfo['email03']; 
    … …  
    15591559    $objSendMail->setItem('', $tosubject, $body, $from, $arrInfo['shop_name'], $from, $error, $error); 
    15601560    $objSendMail->setTo($to, $to_name); 
    1561     $objSendMail->sendMail();   // ¥á¡¼¥ëÁ÷¿® 
    1562 } 
    1563  
    1564 /* ¼õÃí´°Î»¥á¡¼¥ëÁ÷¿® */ 
     1561    $objSendMail->sendMail();   // メール送信 
     1562} 
     1563 
     1564/* 受注完了メール送信 */ 
    15651565function sfSendOrderMail($order_id, $template_id, $subject = "", $header = "", $footer = "", $send = true) { 
    15661566    global $arrMAILTPLPATH; 
    … …  
    15741574         
    15751575    if($subject == "" && $header == "" && $footer == "") { 
    1576         // ¥á¡¼¥ë¥Æ¥ó¥×¥ì¡¼¥È¾ðÊó¤Î¼èÆÀ 
     1576        // メールテンプレート情報の取得 
    15771577        $where = "template_id = ?"; 
    15781578        $arrRet = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array('1')); 
    … …  
    15861586    } 
    15871587     
    1588     // ¼õÃí¾ðÊó¤Î¼èÆÀ 
     1588    // 受注情報の取得 
    15891589    $where = "order_id = ?"; 
    15901590    $arrRet = $objQuery->select("*", "dtb_order", $where, array($order_id)); 
    … …  
    15941594    $objPage->Message_tmp = $arrOrder['message']; 
    15951595         
    1596     // ¸ÜµÒ¾ðÊó¤Î¼èÆÀ 
     1596    // 顧客情報の取得 
    15971597    $customer_id = $arrOrder['customer_id']; 
    15981598    $arrRet = $objQuery->select("point", "dtb_customer", "customer_id = ?", array($customer_id)); 
    … …  
    16021602    $objPage->arrOrder = $arrOrder; 
    16031603 
    1604     //¤½¤Î¾·èºÑ¾ðÊó 
     1604    //その他決済情報 
    16051605    if($arrOrder['memo02'] != "") { 
    16061606        $arrOther = unserialize($arrOrder['memo02']); 
    … …  
    16151615    } 
    16161616 
    1617     // ÅÔÆ»Éܸ©ÊÑ´¹ 
     1617    // 都道府県変換 
    16181618    global $arrPref; 
    16191619    $objPage->arrOrder['deliv_pref'] = $arrPref[$objPage->arrOrder['deliv_pref']]; 
    … …  
    16251625     
    16261626    $objMailView = new SC_SiteView(); 
    1627     // ¥á¡¼¥ëËÜʸ¤Î¼èÆÀ 
     1627    // メール本文の取得 
    16281628    $objMailView->assignobj($objPage); 
    16291629    $body = $objMailView->fetch($arrMAILTPLPATH[$template_id]); 
    16301630     
    1631     // ¥á¡¼¥ëÁ÷¿®½èÍý 
     1631    // メール送信処理 
    16321632    $objSendMail = new GC_SendMail(); 
    16331633    $bcc = $arrInfo['email01']; 
    … …  
    16381638     
    16391639    $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の場合は、送信する。 
    16441644    if($send) { 
    16451645        if ($objSendMail->sendMail()) { 
    … …  
    16511651} 
    16521652 
    1653 // ¥Æ¥ó¥×¥ì¡¼¥È¤ò»ÈÍѤ·¤¿¥á¡¼¥ë¤ÎÁ÷¿® 
     1653// テンプレートを使用したメールの送信 
    16541654function sfSendTplMail($to, $subject, $tplpath, $objPage) { 
    16551655    $objMailView = new SC_SiteView(); 
    16561656    $objSiteInfo = new SC_SiteInfo(); 
    16571657    $arrInfo = $objSiteInfo->data; 
    1658     // ¥á¡¼¥ëËÜʸ¤Î¼èÆÀ 
     1658    // メール本文の取得 
    16591659    $objPage->tpl_shopname=$arrInfo['shop_name']; 
    16601660    $objPage->tpl_infoemail = $arrInfo['email02']; 
    16611661    $objMailView->assignobj($objPage); 
    16621662    $body = $objMailView->fetch($tplpath); 
    1663     // ¥á¡¼¥ëÁ÷¿®½èÍý 
     1663    // メール送信処理 
    16641664    $objSendMail = new GC_SendMail(); 
    16651665    $to = mb_encode_mimeheader($to); 
    … …  
    16711671} 
    16721672 
    1673 // Ä̾ï¤Î¥á¡¼¥ëÁ÷¿® 
     1673// 通常のメール送信 
    16741674function sfSendMail($to, $subject, $body) { 
    16751675    $objSiteInfo = new SC_SiteInfo(); 
    16761676    $arrInfo = $objSiteInfo->data; 
    1677     // ¥á¡¼¥ëÁ÷¿®½èÍý 
     1677    // メール送信処理 
    16781678    $objSendMail = new GC_SendMail(); 
    16791679    $bcc = $arrInfo['email01']; 
    … …  
    16841684} 
    16851685 
    1686 //·ï̾¤Ë¥Æ¥ó¥×¥ì¡¼¥È¤òÍѤ¤¤ë 
     1686//件名にテンプレートを用いる 
    16871687function sfMakeSubject($subject){ 
    16881688     
    … …  
    17011701} 
    17021702 
    1703 // ¥á¡¼¥ëÇÛ¿®ÍúÎò¤Ø¤ÎÅÐÏ¿ 
     1703// メール配信履歴への登録 
    17041704function sfSaveMailHistory($order_id, $template_id, $subject, $body) { 
    17051705    $sqlval['subject'] = $subject; 
    … …  
    17181718} 
    17191719 
    1720 /* ²ñ°÷¾ðÊó¤ò°ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤Ø */ 
     1720/* 会員情報を一時受注テーブルへ */ 
    17211721function sfGetCustomerSqlVal($uniqid, $sqlval) { 
    17221722    $objCustomer = new SC_Customer(); 
    1723     // ²ñ°÷¾ðÊóÅÐÏ¿½èÍý 
     1723    // 会員情報登録処理 
    17241724    if ($objCustomer->isLoginSuccess()) { 
    1725         // ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ® 
     1725        // 登録データの作成 
    17261726        $sqlval['order_temp_id'] = $uniqid; 
    17271727        $sqlval['update_date'] = 'Now()'; 
    … …  
    17471747} 
    17481748 
    1749 // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ø¤Î½ñ¤­¹þ¤ß½èÍý 
     1749// 受注一時テーブルへの書き込み処理 
    17501750function sfRegistTempOrder($uniqid, $sqlval) { 
    17511751    if($uniqid != "") { 
    1752         // ´û¸¥Ç¡¼¥¿¤Î¥Á¥§¥Ã¥¯ 
     1752        // 既存データのチェック 
    17531753        $objQuery = new SC_Query(); 
    17541754        $where = "order_temp_id = ?"; 
    17551755        $cnt = $objQuery->count("dtb_order_temp", $where, array($uniqid)); 
    1756         // ´û¸¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç 
     1756        // 既存データがない場合 
    17571757        if ($cnt == 0) { 
    1758             // ½é²ó½ñ¤­¹þ¤ß»þ¤Ë²ñ°÷¤ÎÅÐÏ¿ºÑ¤ß¾ðÊó¤ò¼è¤ê¹þ¤à 
     1758            // 初回書き込み時に会員の登録済み情報を取り込む 
    17591759            $sqlval = sfGetCustomerSqlVal($uniqid, $sqlval); 
    17601760            $sqlval['create_date'] = "now()"; 
    … …  
    17661766} 
    17671767 
    1768 /* ²ñ°÷¤Î¥á¥ë¥Þ¥¬ÅÐÏ¿¤¬¤¢¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯(²¾²ñ°÷¤ò´Þ¤Þ¤Ê¤¤) */ 
     1768/* 会員のメルマガ登録があるかどうかのチェック(仮会員を含まない) */ 
    17691769function sfCheckCustomerMailMaga($email) { 
    17701770    $col = "T1.email, T1.mail_flag, T2.customer_id"; 
    … …  
    17731773    $objQuery = new SC_Query(); 
    17741774    $arrRet = $objQuery->select($col, $from, $where, array($email)); 
    1775     // ²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë 
     1775    // 会員のメールアドレスが登録されている 
    17761776    if($arrRet[0]['customer_id'] != "") { 
    17771777        return true; 
    … …  
    17801780} 
    17811781 
    1782 // ¥«¡¼¥É¤Î½èÍý·ë²Ì¤òÊÖ¤¹ 
     1782// カードの処理結果を返す 
    17831783function sfGetAuthonlyResult($dir, $file_name, $name01, $name02, $card_no, $card_exp, $amount, $order_id, $jpo_info = "10"){ 
    17841784 
    1785     $path = $dir .$file_name;       // cgi¥Õ¥¡¥¤¥ë¤Î¥Õ¥ë¥Ñ¥¹À¸À® 
    1786     $now_dir = getcwd();            // require¤¬¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤Î¤Ç¡¢cgi¼Â¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Üư¤¹¤ë 
     1785    $path = $dir .$file_name;       // cgiファイルのフルパス生成 
     1786    $now_dir = getcwd();            // requireがうまくいかないので、cgi実行ディレクトリに移動する 
    17871787    chdir($dir); 
    17881788     
    1789     // ¥Ñ¥¤¥×ÅϤ·¤Ç¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤écgiµ¯Æ° 
     1789    // パイプ渡しでコマンドラインからcgi起動 
    17901790    $cmd = "$path card_no=$card_no name01=$name01 name02=$name02 card_exp=$card_exp amount=$amount order_id=$order_id jpo_info=$jpo_info"; 
    17911791 
    17921792    $tmpResult = popen($cmd, "r"); 
    17931793     
    1794     // ·ë²Ì¼èÆÀ 
     1794    // 結果取得 
    17951795    while( ! FEOF ( $tmpResult ) ) { 
    17961796        $result .= FGETS($tmpResult); 
    17971797    } 
    1798     pclose($tmpResult);             //  ¥Ñ¥¤¥×¤òÊĤ¸¤ë 
    1799     chdir($now_dir);                //¡¡¸µ¤Ë¤¤¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ëµ¢¤ë 
    1800      
    1801     // ·ë²Ì¤òÏ¢ÁÛÇÛÎ󤨳ÊǼ 
     1798    pclose($tmpResult);             //  パイプを閉じる 
     1799    chdir($now_dir);                // 元にいたディレクトリに帰る 
     1800     
     1801    // 結果を連想配列へ格納 
    18021802    $result = ereg_replace("&$", "", $result); 
    18031803    foreach (explode("&",$result) as $data) { 
    … …  
    18091809} 
    18101810 
    1811 // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤«¤é¾ðÊó¤ò¼èÆÀ¤¹¤ë 
     1811// 受注一時テーブルから情報を取得する 
    18121812function sfGetOrderTemp($order_temp_id) { 
    18131813    $objQuery = new SC_Query(); 
    … …  
    18171817} 
    18181818 
    1819 // ¥«¥Æ¥´¥êID¼èÆÀȽÄêÍѤΥ°¥í¡¼¥Ð¥ëÊÑ¿ô(°ìÅÙ¼èÆÀ¤µ¤ì¤Æ¤¤¤¿¤éºÆ¼èÆÀ¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë) 
     1819// カテゴリID取得判定用のグローバル変数(一度取得されていたら再取得しないようにする) 
    18201820$g_category_on = false; 
    18211821$g_category_id = ""; 
    18221822 
    1823 /* ÁªÂòÃæ¤Î¥«¥Æ¥´¥ê¤ò¼èÆÀ¤¹¤ë */ 
     1823/* 選択中のカテゴリを取得する */ 
    18241824function sfGetCategoryId($product_id, $category_id) { 
    18251825    global $g_category_on; 
    … …  
    18351835            $g_category_id = $category_id; 
    18361836        } else { 
    1837             // ÉÔÀµ¤Ê¾ì¹ç¤Ï¡¢0¤òÊÖ¤¹¡£ 
     1837            // 不正な場合は、0を返す。 
    18381838            $g_category_id = 0; 
    18391839        } 
    … …  
    18421842} 
    18431843 
    1844 // ROOTID¼èÆÀȽÄêÍѤΥ°¥í¡¼¥Ð¥ëÊÑ¿ô(°ìÅÙ¼èÆÀ¤µ¤ì¤Æ¤¤¤¿¤éºÆ¼èÆÀ¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë) 
     1844// ROOTID取得判定用のグローバル変数(一度取得されていたら再取得しないようにする) 
    18451845$g_root_on = false; 
    18461846$g_root_id = ""; 
    18471847 
    1848 /* ÁªÂòÃæ¤Î¥¢¥¤¥Æ¥à¤Î¥ë¡¼¥È¥«¥Æ¥´¥êID¤ò¼èÆÀ¤¹¤ë */ 
     1848/* 選択中のアイテムのルートカテゴリIDを取得する */ 
    18491849function sfGetRootId() { 
    18501850    global $g_root_on; 
    … …  
    18541854        $objQuery = new SC_Query(); 
    18551855        if($_GET['product_id'] != "" || $_GET['category_id'] != "") { 
    1856             // ÁªÂòÃæ¤Î¥«¥Æ¥´¥êID¤òȽÄꤹ¤ë 
     1856            // 選択中のカテゴリIDを判定する 
    18571857            $category_id = sfGetCategoryId($_GET['product_id'], $_GET['category_id']); 
    1858             // ROOT¥«¥Æ¥´¥êID¤Î¼èÆÀ 
     1858            // ROOTカテゴリIDの取得 
    18591859             $arrRet = sfGetParents($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $category_id); 
    18601860             $root_id = $arrRet[0]; 
    18611861        } else { 
    1862             // ROOT¥«¥Æ¥´¥êID¤ò¤Ê¤·¤ËÀßÄꤹ¤ë 
     1862            // ROOTカテゴリIDをなしに設定する 
    18631863            $root_id = ""; 
    18641864        } 
    … …  
    18681868} 
    18691869 
    1870 /* ¥«¥Æ¥´¥ê¤«¤é¾¦Éʤò¸¡º÷¤¹¤ë¾ì¹ç¤ÎWHEREʸ¤ÈÃͤòÊÖ¤¹ */ 
     1870/* カテゴリから商品を検索する場合のWHERE文と値を返す */ 
    18711871function sfGetCatWhere($category_id) { 
    1872     // »Ò¥«¥Æ¥´¥êID¤Î¼èÆÀ 
     1872    // 子カテゴリIDの取得 
    18731873    $arrRet = sfGetChildsID("dtb_category", "parent_category_id", "category_id", $category_id); 
    18741874    $tmp_where = ""; 
    … …  
    18851885} 
    18861886 
    1887 /* ²Ã»»¥Ý¥¤¥ó¥È¤Î·×»»¼° */ 
     1887/* 加算ポイントの計算式 */ 
    18881888function sfGetAddPoint($totalpoint, $use_point, $arrInfo) { 
    1889     // ¹ØÆþ¾¦Éʤιç·×¥Ý¥¤¥ó¥È¤«¤éÍøÍѤ·¤¿¥Ý¥¤¥ó¥È¤Î¥Ý¥¤¥ó¥È´¹»»²ÁÃͤò°ú¤¯Êý¼° 
     1889    // 購入商品の合計ポイントから利用したポイントのポイント換算価値を引く方式 
    18901890    $add_point = $totalpoint - intval($use_point * ($arrInfo['point_rate'] / 100)); 
    18911891     
    … …  
    18961896} 
    18971897 
    1898 /* °ì°Õ¤«¤Äͽ¬¤µ¤ì¤Ë¤¯¤¤ID */ 
     1898/* 一意かつ予測されにくいID */ 
    18991899function sfGetUniqRandomId($head = "") { 
    1900     // ͽ¬¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¥é¥ó¥À¥àʸ»úÎó¤òÉÕÍ¿¤¹¤ë¡£ 
     1900    // 予測されないようにランダム文字列を付与する。 
    19011901    $random = gfMakePassword(8); 
    1902     // Ʊ°ì¥Û¥¹¥ÈÆâ¤Ç°ì°Õ¤ÊID¤òÀ¸À® 
     1902    // 同一ホスト内で一意なIDを生成 
    19031903    $id = uniqid($head); 
    19041904    return ($id . $random); 
    19051905} 
    19061906 
    1907 // ¥«¥Æ¥´¥êÊÌ¥ª¥¹¥¹¥áÉʤμèÆÀ 
     1907// カテゴリ別オススメ品の取得 
    19081908function sfGetBestProducts( $conn, $category_id = 0){ 
    1909     // ´û¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ëÆâÍÆ¤ò¼èÆÀ¤¹¤ë 
     1909    // 既に登録されている内容を取得する 
    19101910    $sql = "SELECT name, main_image, main_list_image, price01_min, price01_max, price02_min, price02_max, point_rate, 
    19111911             A.product_id, A.comment FROM dtb_best_products as A LEFT JOIN vw_products_allclass AS allcls  
    … …  
    19161916} 
    19171917 
    1918 // ÆÃ¼ìÀ©¸æÊ¸»ú¤Î¼êư¥¨¥¹¥±¡¼¥× 
     1918// 特殊制御文字の手動エスケープ 
    19191919function sfManualEscape($data) { 
    1920     // ÇÛÎó¤Ç¤Ê¤¤¾ì¹ç 
     1920    // 配列でない場合 
    19211921    if(!is_array($data)) { 
    19221922        if (DB_TYPE == "pgsql") { 
    … …  
    19301930    } 
    19311931     
    1932     // ÇÛÎó¤Î¾ì¹ç 
     1932    // 配列の場合 
    19331933    foreach($data as $val) { 
    19341934        if (DB_TYPE == "pgsql") { 
    … …  
    19461946} 
    19471947 
    1948 // ¼õÃíÈÖ¹æ¡¢ÍøÍѥݥ¤¥ó¥È¡¢²Ã»»¥Ý¥¤¥ó¥È¤«¤éºÇ½ª¥Ý¥¤¥ó¥È¤ò¼èÆÀ 
     1948// 受注番号、利用ポイント、加算ポイントから最終ポイントを取得 
    19491949function sfGetCustomerPoint($order_id, $use_point, $add_point) { 
    19501950    $objQuery = new SC_Query(); 
    … …  
    19621962} 
    19631963 
    1964 /* ¥É¥á¥¤¥ó´Ö¤ÇÍ­¸ú¤Ê¥»¥Ã¥·¥ç¥ó¤Î¥¹¥¿¡¼¥È */ 
     1964/* ドメイン間で有効なセッションのスタート */ 
    19651965function sfDomainSessionStart() { 
    19661966    $ret = session_id(); 
    19671967/* 
    1968     ¥Ø¥Ã¥À¡¼¤òÁ÷¿®¤·¤Æ¤¤¤Æ¤âsession_start()¤¬É¬Íפʥڡ¼¥¸¤¬¤¢¤ë¤Î¤Ç 
    1969     ¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤ª¤¯ 
     1968    ヘッダーを送信していてもsession_start()が必要なページがあるので 
     1969    コメントアウトしておく 
    19701970    if($ret == "" && !headers_sent()) { 
    19711971*/ 
    19721972    if($ret == "") { 
    1973         /* ¥»¥Ã¥·¥ç¥ó¥Ñ¥é¥á¡¼¥¿¤Î»ØÄê 
    1974          ¡¦¥Ö¥é¥¦¥¶¤òÊĤ¸¤ë¤Þ¤ÇÍ­¸ú 
    1975          ¡¦¤¹¤Ù¤Æ¤Î¥Ñ¥¹¤ÇÍ­¸ú 
    1976          ¡¦Æ±¤¸¥É¥á¥¤¥ó´Ö¤Ç¶¦Í­ */ 
     1973        /* セッションパラメータの指定 
     1974         ・ブラウザを閉じるまで有効 
     1975         ・すべてのパスで有効 
     1976         ・同じドメイン間で共有 */ 
    19771977        session_set_cookie_params (0, "/", DOMAIN_NAME); 
    19781978 
    19791979        if(!ini_get("session.auto_start")){ 
    1980             // ¥»¥Ã¥·¥ç¥ó³«»Ï 
     1980            // セッション開始 
    19811981            session_start(); 
    19821982        } 
    … …  
    19841984} 
    19851985 
    1986 /* ʸ»úÎó¤Ë¶¯À©Åª¤Ë²þ¹Ô¤òÆþ¤ì¤ë */ 
     1986/* 文字列に強制的に改行を入れる */ 
    19871987function sfPutBR($str, $size) { 
    19881988    $i = 0; 
    … …  
    20062006} 
    20072007 
    2008 // Æó²ó°Ê¾å·«¤êÊÖ¤µ¤ì¤Æ¤¤¤ë¥¹¥é¥Ã¥·¥å[/]¤ò°ì¤Ä¤ËÊÑ´¹¤¹¤ë¡£ 
     2008// 二回以上繰り返されているスラッシュ[/]を一つに変換する。 
    20092009function sfRmDupSlash($istr){ 
    20102010    if(ereg("^http://", $istr)) { 
    … …  
    20642064} 
    20652065 
    2066 // ǯ¡¢·î¡¢Äù¤áÆü¤«¤é¡¢Àè·î¤ÎÄù¤áÆü+1¡¢º£·î¤ÎÄù¤áÆü¤òµá¤á¤ë¡£ 
     2066// 年、月、締め日から、先月の締め日+1、今月の締め日を求める。 
    20672067function sfTermMonth($year, $month, $close_day) { 
    20682068    $end_year = $year; 
    20692069    $end_month = $month; 
    20702070     
    2071     // ³«»Ï·î¤¬½ªÎ»·î¤ÈƱ¤¸¤«Èݤ« 
     2071    // 開始月が終了月と同じか否か 
    20722072    $same_month = false; 
    20732073     
    2074     // ³ºÅö·î¤ÎËöÆü¤òµá¤á¤ë¡£ 
     2074    // 該当月の末日を求める。 
    20752075    $end_last_day = date("d", mktime(0, 0, 0, $month + 1, 0, $year)); 
    20762076     
    2077     // ·î¤ÎËöÆü¤¬Äù¤áÆü¤è¤ê¾¯¤Ê¤¤¾ì¹ç 
     2077    // 月の末日が締め日より少ない場合 
    20782078    if($end_last_day < $close_day) { 
    2079         // Äù¤áÆü¤ò·îËöÆü¤Ë¹ç¤ï¤»¤ë 
     2079        // 締め日を月末日に合わせる 
    20802080        $end_day = $end_last_day; 
    20812081    } else { 
    … …  
    20832083    } 
    20842084     
    2085     // Á°·î¤Î¼èÆÀ 
     2085    // 前月の取得 
    20862086    $tmp_year = date("Y", mktime(0, 0, 0, $month, 0, $year)); 
    20872087    $tmp_month = date("m", mktime(0, 0, 0, $month, 0, $year)); 
    2088     // Á°·î¤ÎËöÆü¤òµá¤á¤ë¡£ 
     2088    // 前月の末日を求める。 
    20892089    $start_last_day = date("d", mktime(0, 0, 0, $month, 0, $year)); 
    20902090     
    2091     // Á°·î¤ÎËöÆü¤¬Äù¤áÆü¤è¤ê¾¯¤Ê¤¤¾ì¹ç 
     2091    // 前月の末日が締め日より少ない場合 
    20922092    if ($start_last_day < $close_day) { 
    2093         // ·îËöÆü¤Ë¹ç¤ï¤»¤ë 
     2093        // 月末日に合わせる 
    20942094        $tmp_day = $start_last_day; 
    20952095    } else { 
    … …  
    20972097    } 
    20982098     
    2099     // Àè·î¤ÎËöÆü¤ÎÍâÆü¤ò¼èÆÀ¤¹¤ë 
     2099    // 先月の末日の翌日を取得する 
    21002100    $start_year = date("Y", mktime(0, 0, 0, $tmp_month, $tmp_day + 1, $tmp_year)); 
    21012101    $start_month = date("m", mktime(0, 0, 0, $tmp_month, $tmp_day + 1, $tmp_year)); 
    21022102    $start_day = date("d", mktime(0, 0, 0, $tmp_month, $tmp_day + 1, $tmp_year)); 
    21032103     
    2104     // ÆüÉդκîÀ® 
     2104    // 日付の作成 
    21052105    $start_date = sprintf("%d/%d/%d 00:00:00", $start_year, $start_month, $start_day); 
    21062106    $end_date = sprintf("%d/%d/%d 23:59:59", $end_year, $end_month, $end_day); 
    … …  
    21092109} 
    21102110 
    2111 // PDFÍѤÎRGB¥«¥é¡¼¤òÊÖ¤¹ 
     2111// PDF用のRGBカラーを返す 
    21122112function sfGetPdfRgb($hexrgb) { 
    21132113    $hex = substr($hexrgb, 0, 2); 
    … …  
    21232123} 
    21242124 
    2125 //¥á¥ë¥Þ¥¬²¾ÅÐÏ¿¤È¥á¡¼¥ëÇÛ¿® 
     2125//メルマガ仮登録とメール配信 
    21262126function sfRegistTmpMailData($mail_flag, $email){ 
    21272127    $objQuery = new SC_Query(); 
    … …  
    21362136    $arrRegistMailMagazine["update_date"] = 'now()'; 
    21372137     
    2138     //¥á¥ë¥Þ¥¬²¾ÅÐÏ¿Íѥե饰 
     2138    //メルマガ仮登録用フラグ 
    21392139    $flag = $objQuery->count("dtb_customer_mail_temp", "email=?", array($email)); 
    21402140    $objConn->query("BEGIN"); 
    … …  
    21492149    } 
    21502150    $objConn->query("COMMIT"); 
    2151     $subject = sfMakeSubject('¥á¥ë¥Þ¥¬²¾ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£'); 
     2151    $subject = sfMakeSubject('メルマガ仮登録が完了しました。'); 
    21522152    $objPage->tpl_url = SSL_URL."mailmagazine/regist.php?temp_id=".$arrRegistMailMagazine['temp_id']; 
    21532153    switch ($mail_flag){ 
    21542154        case '1': 
    2155         $objPage->tpl_name = "ÅÐÏ¿"; 
     2155        $objPage->tpl_name = "登録"; 
    21562156        $objPage->tpl_kindname = "HTML"; 
    21572157        break; 
    21582158         
    21592159        case '2': 
    2160         $objPage->tpl_name = "ÅÐÏ¿"; 
    2161         $objPage->tpl_kindname = "¥Æ¥­¥¹¥È"; 
     2160        $objPage->tpl_name = "登録"; 
     2161        $objPage->tpl_kindname = "テキスト"; 
    21622162        break; 
    21632163         
    21642164        case '3': 
    2165         $objPage->tpl_name = "²ò½ü"; 
     2165        $objPage->tpl_name = "解除"; 
    21662166        break; 
    21672167    } 
    … …  
    21702170} 
    21712171 
    2172 // ºÆµ¢Åª¤Ë¿ÃÊÇÛÎó¤ò¸¡º÷¤·¤Æ°ì¼¡¸µÇÛÎó(Hidden°úÅϤ·ÍÑÇÛÎó)¤ËÊÑ´¹¤¹¤ë¡£ 
     2172// 再帰的に多段配列を検索して一次元配列(Hidden引渡し用配列)に変換する。 
    21732173function sfMakeHiddenArray($arrSrc, $arrDst = array(), $parent_key = "") { 
    21742174    if(is_array($arrSrc)) { 
    … …  
    21892189} 
    21902190 
    2191 // DB¼èÆÀÆü»þ¤ò¥¿¥¤¥à¤ËÊÑ´¹ 
     2191// DB取得日時をタイムに変換 
    21922192function sfDBDatetoTime($db_date) { 
    21932193    $date = ereg_replace("\..*$","",$db_date); 
    … …  
    21962196} 
    21972197 
    2198 // ½ÐÎϤκݤ˥ƥó¥×¥ì¡¼¥È¤òÀÚ¤êÂØ¤¨¤é¤ì¤ë 
     2198// 出力の際にテンプレートを切り替えられる 
    21992199/* 
    22002200    index.php?tpl=test.tpl 
    … …  
    22302230} 
    22312231 
    2232 //²ñ°÷ÊÔ½¸ÅÐÏ¿½èÍý 
     2232//会員編集登録処理 
    22332233function sfEditCustomerData($array, $arrRegistColumn) { 
    22342234    $objQuery = new SC_Query(); 
    … …  
    22492249    } 
    22502250 
    2251     //-- ¥Ñ¥¹¥ï¡¼¥É¤Î¹¹¿·¤¬¤¢¤ë¾ì¹ç¤Ï°Å¹æ²½¡£¡Ê¹¹¿·¤¬¤Ê¤¤¾ì¹ç¤ÏUPDATEʸ¤ò¹½À®¤·¤Ê¤¤¡Ë 
     2251    //-- パスワードの更新がある場合は暗号化。(更新がない場合はUPDATE文を構成しない) 
    22522252    if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC);  
    22532253    $arrRegist["update_date"] = "NOW()"; 
    … …  
    22572257    $sqlval['email'] = $array['email']; 
    22582258    $sqlval['mail_flag'] = $array['mail_flag']; 
    2259     //-- ÊÔ½¸ÅÐÏ¿¼Â¹Ô 
     2259    //-- 編集登録実行 
    22602260    $objQuery->begin(); 
    22612261    $objQuery->update("dtb_customer", $arrRegist, "customer_id = ? ", array($array['customer_id'])); 
    … …  
    22652265} 
    22662266 
    2267 // PHP¤Îmb_convert_encoding´Ø¿ô¤òSmarty¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë 
     2267// PHPのmb_convert_encoding関数をSmartyでも使えるようにする 
    22682268function sf_mb_convert_encoding($str, $encode = 'CHAR_CODE') { 
    22692269    return  mb_convert_encoding($str, $encode); 
    22702270}    
    22712271 
    2272 // PHP¤Îmktime´Ø¿ô¤òSmarty¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë 
     2272// PHPのmktime関数をSmartyでも使えるようにする 
    22732273function sf_mktime($format, $hour=0, $minute=0, $second=0, $month=1, $day=1, $year=1999) { 
    22742274    return  date($format,mktime($hour, $minute, $second, $month, $day, $year)); 
    22752275}    
    22762276 
    2277 // PHP¤Îdate´Ø¿ô¤òSmarty¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë 
     2277// PHPのdate関数をSmartyでも使えるようにする 
    22782278function sf_date($format, $timestamp = '') { 
    22792279    return  date( $format, $timestamp); 
    22802280} 
    22812281 
    2282 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤Î·¿¤òÊÑ´¹¤¹¤ë 
     2282// チェックボックスの型を変換する 
    22832283function sfChangeCheckBox($data , $tpl = false){ 
    22842284    if ($tpl) { 
    … …  
    23002300    $sql = ""; 
    23012301     
    2302     //¥Æ¡¼¥Ö¥ëÆâÍÆ¤Îºï½ü 
     2302    //テーブル内容の削除 
    23032303    $objQuery->query("DELETE FROM dtb_category_count"); 
    23042304    $objQuery->query("DELETE FROM dtb_category_total_count"); 
    23052305     
    2306     //³Æ¥«¥Æ¥´¥êÆâ¤Î¾¦ÉÊ¿ô¤ò¿ô¤¨¤Æ³ÊǼ 
     2306    //各カテゴリ内の商品数を数えて格納 
    23072307    $sql = " INSERT INTO dtb_category_count(category_id, product_count, create_date) "; 
    23082308    $sql .= " SELECT T1.category_id, count(T2.category_id), now() FROM dtb_category AS T1 LEFT JOIN dtb_products AS T2 "; 
    … …  
    23122312    $objQuery->query($sql); 
    23132313     
    2314     //»Ò¥«¥Æ¥´¥êÆâ¤Î¾¦ÉÊ¿ô¤ò½¸·×¤¹¤ë 
     2314    //子カテゴリ内の商品数を集計する 
    23152315    $arrCat = $objQuery->getAll("SELECT * FROM dtb_category"); 
    23162316     
    … …  
    23182318    foreach($arrCat as $key => $val){ 
    23192319         
    2320         // »ÒID°ìÍ÷¤ò¼èÆÀ 
     2320        // 子ID一覧を取得 
    23212321        $arrRet = sfGetChildrenArray('dtb_category', 'parent_category_id', 'category_id', $val['category_id']);  
    23222322        $line = sfGetCommaList($arrRet); 
    … …  
    23302330} 
    23312331 
    2332 // 2¤Ä¤ÎÇÛÎó¤òÍѤ¤¤ÆÏ¢ÁÛÇÛÎó¤òºîÀ®¤¹¤ë 
     2332// 2つの配列を用いて連想配列を作成する 
    23332333function sfarrCombine($arrKeys, $arrValues) { 
    23342334 
    … …  
    23482348} 
    23492349 
    2350 /* ³¬Áع½Â¤¤Î¥Æ¡¼¥Ö¥ë¤«¤é»ÒIDÇÛÎó¤ò¼èÆÀ¤¹¤ë */ 
     2350/* 階層構造のテーブルから子ID配列を取得する */ 
    23512351function sfGetChildrenArray($table, $pid_name, $id_name, $id) { 
    23522352    $objQuery = new SC_Query(); 
    … …  
    23692369} 
    23702370 
    2371 /* ¿ÆIDľ²¼¤Î»ÒID¤ò¤¹¤Ù¤Æ¼èÆÀ¤¹¤ë */ 
     2371/* 親ID直下の子IDをすべて取得する */ 
    23722372function sfGetChildrenArraySub($arrData, $pid_name, $id_name, $arrPID) { 
    23732373    $arrChildren = array(); 
    … …  
    23852385 
    23862386 
    2387 /* ³¬Áع½Â¤¤Î¥Æ¡¼¥Ö¥ë¤«¤é¿ÆIDÇÛÎó¤ò¼èÆÀ¤¹¤ë */ 
     2387/* 階層構造のテーブルから親ID配列を取得する */ 
    23882388function sfGetParentsArray($table, $pid_name, $id_name, $id) { 
    23892389    $objQuery = new SC_Query(); 
    … …  
    24072407} 
    24082408 
    2409 /* »ÒID½ê°¤¹¤ë¿ÆID¤ò¼èÆÀ¤¹¤ë */ 
     2409/* 子ID所属する親IDを取得する */ 
    24102410function sfGetParentsArraySub($arrData, $pid_name, $id_name, $child) { 
    24112411    $max = count($arrData); 
    … …  
    24202420} 
    24212421 
    2422 /* ³¬Áع½Â¤¤Î¥Æ¡¼¥Ö¥ë¤«¤éÍ¿¤¨¤é¤ì¤¿ID¤Î·»Äï¤ò¼èÆÀ¤¹¤ë */ 
     2422/* 階層構造のテーブルから与えられたIDの兄弟を取得する */ 
    24232423function sfGetBrothersArray($arrData, $pid_name, $id_name, $arrPID) { 
    24242424    $max = count($arrData); 
    … …  
    24262426    $arrBrothers = array(); 
    24272427    foreach($arrPID as $id) { 
    2428         // ¿ÆID¤ò¸¡º÷¤¹¤ë 
     2428        // 親IDを検索する 
    24292429        for($i = 0; $i < $max; $i++) { 
    24302430            if($arrData[$i][$id_name] == $id) { 
    … …  
    24332433            } 
    24342434        } 
    2435         // ·»ÄïID¤ò¸¡º÷¤¹¤ë 
     2435        // 兄弟IDを検索する 
    24362436        for($i = 0; $i < $max; $i++) { 
    24372437            if($arrData[$i][$pid_name] == $parent) { 
    … …  
    24432443} 
    24442444 
    2445 /* ³¬Áع½Â¤¤Î¥Æ¡¼¥Ö¥ë¤«¤éÍ¿¤¨¤é¤ì¤¿ID¤Îľ°¤Î»Ò¤ò¼èÆÀ¤¹¤ë */ 
     2445/* 階層構造のテーブルから与えられたIDの直属の子を取得する */ 
    24462446function sfGetUnderChildrenArray($arrData, $pid_name, $id_name, $parent) { 
    24472447    $max = count($arrData); 
    24482448     
    24492449    $arrChildren = array(); 
    2450     // »ÒID¤ò¸¡º÷¤¹¤ë 
     2450    // 子IDを検索する 
    24512451    for($i = 0; $i < $max; $i++) { 
    24522452        if($arrData[$i][$pid_name] == $parent) { 
    … …  
    24582458 
    24592459 
    2460 // ¥«¥Æ¥´¥ê¥Ä¥ê¡¼¤Î¼èÆÀ 
     2460// カテゴリツリーの取得 
    24612461function sfGetCatTree($parent_category_id, $count_check = false) { 
    24622462    $objQuery = new SC_Query(); 
    … …  
    24732473    $col .= " ttl.product_count";    
    24742474    $from = "dtb_category as cat left join dtb_category_total_count as ttl on ttl.category_id = cat.category_id"; 
    2475     // ÅÐÏ¿¾¦ÉÊ¿ô¤Î¥Á¥§¥Ã¥¯ 
     2475    // 登録商品数のチェック 
    24762476    if($count_check) { 
    24772477        $where = "del_flg = 0 AND product_count > 0"; 
    … …  
    24962496} 
    24972497 
    2498 // ¿Æ¥«¥Æ¥´¥ê¡¼¤òÏ¢·ë¤·¤¿Ê¸»úÎó¤ò¼èÆÀ¤¹¤ë 
     2498// 親カテゴリーを連結した文字列を取得する 
    24992499function sfGetCatCombName($category_id){ 
    2500     // ¾¦Éʤ¬Â°¤¹¤ë¥«¥Æ¥´¥êID¤ò½Ä¤Ë¼èÆÀ 
     2500    // 商品が属するカテゴリIDを縦に取得 
    25012501    $objQuery = new SC_Query(); 
    25022502    $arrCatID = sfGetParents($objQuery, "dtb_category", "parent_category_id", "category_id", $category_id);  
    25032503    $ConbName = ""; 
    25042504     
    2505     // ¥«¥Æ¥´¥ê¡¼Ì¾¾Î¤ò¼èÆÀ¤¹¤ë 
     2505    // カテゴリー名称を取得する 
    25062506    foreach($arrCatID as $key => $val){ 
    25072507        $sql = "SELECT category_name FROM dtb_category WHERE category_id = ?"; 
    … …  
    25102510        $ConbName .= $CatName . ' | '; 
    25112511    } 
    2512     // ºÇ¸å¤Î ¡Ã ¤ò¥«¥Ã¥È¤¹¤ë 
     2512    // 最後の | をカットする 
    25132513    $ConbName = substr_replace($ConbName, "", strlen($ConbName) - 2, 2); 
    25142514     
    … …  
    25162516} 
    25172517 
    2518 // »ØÄꤷ¤¿¥«¥Æ¥´¥ê¡¼ID¤ÎÂ祫¥Æ¥´¥ê¡¼¤ò¼èÆÀ¤¹¤ë 
     2518// 指定したカテゴリーIDの大カテゴリーを取得する 
    25192519function GetFirstCat($category_id){ 
    2520     // ¾¦Éʤ¬Â°¤¹¤ë¥«¥Æ¥´¥êID¤ò½Ä¤Ë¼èÆÀ 
     2520    // 商品が属するカテゴリIDを縦に取得 
    25212521    $objQuery = new SC_Query(); 
    25222522    $arrRet = array(); 
    … …  
    25242524    $arrRet['id'] = $arrCatID[0]; 
    25252525     
    2526     // ¥«¥Æ¥´¥ê¡¼Ì¾¾Î¤ò¼èÆÀ¤¹¤ë 
     2526    // カテゴリー名称を取得する 
    25272527    $sql = "SELECT category_name FROM dtb_category WHERE category_id = ?"; 
    25282528    $arrVal = array($arrRet['id']); 
    … …  
    25322532} 
    25332533 
    2534 //MySQLÍѤÎSQLʸ¤ËÊѹ¹¤¹¤ë 
     2534//MySQL用のSQL文に変更する 
    25352535function sfChangeMySQL($sql){ 
    2536     // ²þ¹Ô¡¢¥¿¥Ö¤ò1¥¹¥Ú¡¼¥¹¤ËÊÑ´¹ 
     2536    // 改行、タブを1スペースに変換 
    25372537    $sql = preg_replace("/[\r\n\t]/"," ",$sql); 
    25382538     
    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()に変換する 
    25422542 
    25432543    return $sql; 
    25442544} 
    25452545 
    2546 // SQL¤ÎÃæ¤Ëview¤¬Â¸ºß¤·¤Æ¤¤¤ë¤«¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¡£ 
     2546// SQLの中にviewが存在しているかチェックを行う。 
    25472547function sfInArray($sql){ 
    25482548    global $arrView; 
    … …  
    25572557} 
    25582558 
    2559 // SQL¥·¥ó¥°¥ë¥¯¥©¡¼¥ÈÂбþ 
     2559// SQLシングルクォート対応 
    25602560function sfQuoteSmart($in){ 
    25612561     
    … …  
    25712571} 
    25722572     
    2573 // viewɽ¤ò¥¤¥ó¥é¥¤¥ó¥Ó¥å¡¼¤ËÊÑ´¹¤¹¤ë 
     2573// view表をインラインビューに変換する 
    25742574function sfChangeView($sql){ 
    25752575    global $arrView; 
    … …  
    25782578    $arrViewTmp = $arrView; 
    25792579 
    2580     // view¤Îwhere¤òÊÑ´¹ 
     2580    // viewのwhereを変換 
    25812581    foreach($arrViewTmp as $key => $val){ 
    25822582        $arrViewTmp[$key] = strtr($arrViewTmp[$key], $arrViewWhere); 
    25832583    } 
    25842584     
    2585     // view¤òÊÑ´¹ 
     2585    // viewを変換 
    25862586    $changesql = strtr($sql, $arrViewTmp); 
    25872587 
    … …  
    25892589} 
    25902590 
    2591 // ILIKE¸¡º÷¤òLIKE¸¡º÷¤ËÊÑ´¹¤¹¤ë 
     2591// ILIKE検索をLIKE検索に変換する 
    25922592function sfChangeILIKE($sql){ 
    25932593    $changesql = eregi_replace("(ILIKE )", "LIKE BINARY ", $sql); 
    … …  
    25952595} 
    25962596 
    2597 // RANDOM()¤òRAND()¤ËÊÑ´¹¤¹¤ë 
     2597// RANDOM()をRAND()に変換する 
    25982598function sfChangeRANDOM($sql){ 
    25992599    $changesql = eregi_replace("( RANDOM)", " RAND", $sql); 
    … …  
    26012601} 
    26022602 
    2603 // view¤Îwhere¤òÃÖ´¹¤¹¤ë 
     2603// viewのwhereを置換する 
    26042604function sfViewWhere($target, $where = "", $arrval = array(), $option = ""){ 
    26052605    global $arrViewWhere; 
    … …  
    26122612} 
    26132613 
    2614 // ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òºÆµ¢Åª¤Ë¥³¥Ô¡¼ 
     2614// ディレクトリ以下のファイルを再帰的にコピー 
    26152615function sfCopyDir($src, $des, $mess, $override = false){ 
    26162616    if(!is_dir($src)){ 
    … …  
    26212621    $mod= stat($src); 
    26222622     
    2623     // ¥Ç¥£¥ì¥¯¥È¥ê¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë 
     2623    // ディレクトリがなければ作成する 
    26242624    if(!file_exists($des)) { 
    26252625        if(!mkdir($des, $mod[2])) { 
    … …  
    26302630    $fileArray=glob( $src."*" ); 
    26312631    foreach( $fileArray as $key => $data_ ){ 
    2632         // CVS´ÉÍý¥Õ¥¡¥¤¥ë¤Ï¥³¥Ô¡¼¤·¤Ê¤¤ 
     2632        // CVS管理ファイルはコピーしない 
    26332633        if(ereg("/CVS/Entries", $data_)) { 
    26342634            break; 
    … …  
    26472647        }else{ 
    26482648            if(!$override && file_exists($des.$data)) { 
    2649                 $mess.= $des.$data . "¡§¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤¹\n"; 
     2649                $mess.= $des.$data . ":ファイルが存在します\n"; 
    26502650            } else { 
    26512651                if(@copy( $data_, $des.$data)) { 
    2652                     $mess.= $des.$data . "¡§¥³¥Ô¡¼À®¸ù\n"; 
     2652                    $mess.= $des.$data . ":コピー成功\n"; 
    26532653                } else { 
    2654                     $mess.= $des.$data . "¡§¥³¥Ô¡¼¼ºÇÔ\n"; 
     2654                    $mess.= $des.$data . ":コピー失敗\n"; 
    26552655                } 
    26562656            } 
    … …  
    26622662} 
    26632663 
    2664 // »ØÄꤷ¤¿¥Õ¥©¥ë¥ÀÆâ¤Î¥Õ¥¡¥¤¥ë¤òÁ´¤Æºï½ü¤¹¤ë 
     2664// 指定したフォルダ内のファイルを全て削除する 
    26652665function sfDelFile($dir){ 
    26662666    $dh = opendir($dir); 
    2667     // ¥Õ¥©¥ë¥ÀÆâ¤Î¥Õ¥¡¥¤¥ë¤òºï½ü 
     2667    // フォルダ内のファイルを削除 
    26682668    while($file = readdir($dh)){ 
    26692669        if ($file == "." or $file == "..") continue; 
    … …  
    26792679        } 
    26802680    } 
    2681     // ¥Õ¥©¥ë¥À¤òºï½ü 
     2681    // フォルダを削除 
    26822682    return rmdir($dir); 
    26832683     
    … …  
    26852685 
    26862686/*  
    2687  * ´Ø¿ô̾¡§sfWriteFile 
    2688  * °ú¿ô1 ¡§½ñ¤­¹þ¤à¥Ç¡¼¥¿ 
    2689  * °ú¿ô2 ¡§¥Õ¥¡¥¤¥ë¥Ñ¥¹ 
    2690  * °ú¿ô3 ¡§½ñ¤­¹þ¤ß¥¿¥¤¥× 
    2691  * °ú¿ô4 ¡§¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó 
    2692  * Ìá¤êÃÍ¡§·ë²Ì¥Õ¥é¥° À®¸ù¤Ê¤é true ¼ºÇԤʤé false 
    2693  * ÀâÌÀ¡¡¡§¥Õ¥¡¥¤¥ë½ñ¤­½Ð¤· 
     2687 * 関数名:sfWriteFile 
     2688 * 引数1 :書き込むデータ 
     2689 * 引数2 :ファイルパス 
     2690 * 引数3 :書き込みタイプ 
     2691 * 引数4 :パーミッション 
     2692 * 戻り値:結果フラグ 成功なら true 失敗なら false 
     2693 * 説明 :ファイル書き出し 
    26942694 */ 
    26952695function sfWriteFile($str, $path, $type, $permission = "") { 
    2696     //¥Õ¥¡¥¤¥ë¤ò³«¤¯ 
     2696    //ファイルを開く 
    26972697    if (!($file = fopen ($path, $type))) { 
    26982698        return false; 
    26992699    } 
    27002700 
    2701     //¥Õ¥¡¥¤¥ë¥í¥Ã¥¯ 
     2701    //ファイルロック 
    27022702    flock ($file, LOCK_EX); 
    2703     //¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß 
     2703    //ファイルの書き込み 
    27042704    fputs ($file, $str); 
    2705     //¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤Î²ò½ü 
     2705    //ファイルロックの解除 
    27062706    flock ($file, LOCK_UN); 
    2707     //¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ë 
     2707    //ファイルを閉じる 
    27082708    fclose ($file); 
    2709     // ¸¢¸Â¤ò»ØÄê 
     2709    // 権限を指定 
    27102710    if($permission != "") { 
    27112711        chmod($path, $permission); 
    … …  
    27162716     
    27172717function sfFlush($output = " ", $sleep = 0){ 
    2718     // ¼Â¹Ô»þ´Ö¤òÀ©¸Â¤·¤Ê¤¤ 
     2718    // 実行時間を制限しない 
    27192719    set_time_limit(0); 
    2720     // ½ÐÎϤò¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤·¤Ê¤¤(==ÆüËܸ켫ưÊÑ´¹¤â¤·¤Ê¤¤) 
     2720    // 出力をバッファリングしない(==日本語自動変換もしない) 
    27212721    ob_end_clean(); 
    27222722     
    2723     // IE¤Î¤¿¤á¤Ë256¥Ð¥¤¥È¶õʸ»ú½ÐÎÏ 
     2723    // IEのために256バイト空文字出力 
    27242724    echo str_pad('',256); 
    27252725     
    2726     // ½ÐÎϤϥ֥é¥ó¥¯¤À¤±¤Ç¤â¤¤¤¤¤È»×¤¦ 
     2726    // 出力はブランクだけでもいいと思う 
    27272727    echo $output; 
    2728     // ½ÐÎϤò¥Õ¥é¥Ã¥·¥å¤¹¤ë 
     2728    // 出力をフラッシュする 
    27292729    flush(); 
    27302730     
    … …  
    27322732    ob_start();  
    27332733     
    2734     // »þ´Ö¤Î¤«¤«¤ë½èÍý 
     2734    // 時間のかかる処理 
    27352735    sleep($sleep); 
    27362736} 
    27372737 
    2738 // @version¤Îµ­ºÜ¤¬¤¢¤ë¥Õ¥¡¥¤¥ë¤«¤é¥Ð¡¼¥¸¥ç¥ó¤ò¼èÆÀ¤¹¤ë¡£ 
     2738// @versionの記載があるファイルからバージョンを取得する。 
    27392739function sfGetFileVersion($path) { 
    27402740    if(file_exists($path)) { 
    … …  
    27542754} 
    27552755 
    2756 // »ØÄꤷ¤¿URL¤ËÂФ·¤ÆPOST¤Ç¥Ç¡¼¥¿¤òÁ÷¿®¤¹¤ë 
     2756// 指定したURLに対してPOSTでデータを送信する 
    27572757function sfSendPostData($url, $arrData, $arrOkCode = array()){ 
    27582758    require_once(DATA_PATH . "module/Request.php"); 
    27592759     
    2760     // Á÷¿®¥¤¥ó¥¹¥¿¥ó¥¹À¸À® 
     2760    // 送信インスタンス生成 
    27612761    $req = new HTTP_Request($url); 
    27622762     
    2763     $req->addHeader('User-Agent', 'DoCoMo/2.0¡¡P2101V(c100)'); 
     2763    $req->addHeader('User-Agent', 'DoCoMo/2.0 P2101V(c100)'); 
    27642764    $req->setMethod(HTTP_REQUEST_METHOD_POST); 
    27652765     
    2766     // POST¥Ç¡¼¥¿Á÷¿® 
     2766    // POSTデータ送信 
    27672767    $req->addPostDataArray($arrData); 
    27682768     
    2769     // ¥¨¥é¡¼¤¬Ìµ¤±¤ì¤Ð¡¢±þÅú¾ðÊó¤ò¼èÆÀ¤¹¤ë 
     2769    // エラーが無ければ、応答情報を取得する 
    27702770    if (!PEAR::isError($req->sendRequest())) { 
    27712771         
    2772         // ¥ì¥¹¥Ý¥ó¥¹¥³¡¼¥É¤¬¥¨¥é¡¼È½Äê¤Ê¤é¡¢¶õ¤òÊÖ¤¹ 
     2772        // レスポンスコードがエラー判定なら、空を返す 
    27732773        $res_code = $req->getResponseCode(); 
    27742774         
    … …  
    27832783    } 
    27842784     
    2785     // POST¥Ç¡¼¥¿¥¯¥ê¥¢ 
     2785    // POSTデータクリア 
    27862786    $req->clearPostData();   
    27872787     
    … …  
    27892789} 
    27902790 
    2791 /* ¥Ç¥Ð¥Ã¥°ÍÑ ------------------------------------------------------------------------------------------------*/ 
     2791/* デバッグ用 ------------------------------------------------------------------------------------------------*/ 
    27922792function sfPrintR($obj) { 
    27932793    print("<div style='font-size: 12px;color: #00FF00;'>\n"); 
    2794     print("<strong>**¥Ç¥Ð¥Ã¥°Ãæ**</strong><br />\n"); 
     2794    print("<strong>**デバッグ中**</strong><br />\n"); 
    27952795    print("<pre>\n"); 
    27962796    print_r($obj); 
    27972797    print("</pre>\n"); 
    2798     print("<strong>**¥Ç¥Ð¥Ã¥°Ãæ**</strong></div>\n"); 
     2798    print("<strong>**デバッグ中**</strong></div>\n"); 
    27992799} 
    28002800 
Note: See TracChangeset for help on using the changeset viewer.