Ignore:
Timestamp:
2007/07/20 15:58:59 (19 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Location:
branches/feature-module-update
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update

    • Property svn:ignore set to
      .cache

      .settings

      .projectOptions
  • branches/feature-module-update/html/admin/contents/csv_sql.php

    r12157 r15078  
    1818        $this->tpl_subno_csv = 'csv_sql'; 
    1919        $this->tpl_mainno = "contents"; 
    20         $this->tpl_subtitle = 'CSV½ÐÎÏÀßÄê'; 
     20        $this->tpl_subtitle = 'CSV出力設定'; 
    2121    } 
    2222} 
     
    2828$objPage->arrSubnaviName = $arrSubnaviName; 
    2929 
    30 // ǧ¾Ú²ÄÈݤÎȽÄê 
     30// 認証可否の判定 
    3131$objSess = new SC_Session(); 
    3232sfIsSuccess($objSess); 
    3333 
    34 // SQL_ID¤Î¼èÆÀ 
     34// SQL_IDの取得 
    3535if ($_POST['sql_id'] != "") { 
    3636    $sql_id = $_POST['sql_id']; 
     
    4444 
    4545switch($_POST['mode']) { 
    46     // ¥Ç¡¼¥¿¤ÎÅÐÏ¿ 
     46    // データの登録 
    4747    case "confirm": 
    48         // ¥¨¥é¡¼¥Á¥§¥Ã¥¯ 
     48        // エラーチェック 
    4949        $objPage->arrErr = lfCheckError($_POST); 
    5050         
    5151        if (count($objPage->arrErr) <= 0){ 
    52             // ¥Ç¡¼¥¿¤Î¹¹¿· 
     52            // データの更新 
    5353            $sql_id = lfUpdData($sql_id, $_POST); 
    54             // ´°Î»¥á¥Ã¥»¡¼¥¸É½¼¨ 
    55             $objPage->tpl_onload = "alert('ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£');"; 
    56         } 
    57         break; 
    58      
    59     // ³Îǧ²èÌÌ 
     54            // 完了メッセージ表示 
     55            $objPage->tpl_onload = "alert('登録が完了しました。');"; 
     56        } 
     57        break; 
     58     
     59    // 確認画面 
    6060    case "preview": 
    61         // SQLʸɽ¼¨ 
     61        // SQL文表示 
    6262        $sql = "SELECT \n" . $_POST['csv_sql']; 
    6363        $objPage->sql = $sql; 
    6464         
    65         // ¥¨¥é¡¼É½¼¨ 
     65        // エラー表示 
    6666        $objErrMsg = lfCheckSQL($_POST); 
    6767        if ($objErrMsg != "") { 
     
    7373        $objPage->objView = $objView; 
    7474         
    75         // ²èÌ̤Îɽ¼¨ 
     75        // 画面の表示 
    7676        $objView->assignobj($objPage); 
    7777        $objView->display('contents/csv_sql_view.tpl'); 
     
    7979        break; 
    8080 
    81     // ¿·µ¬ºîÀ® 
     81    // 新規作成 
    8282    case "new_page": 
    8383        header("location: ./csv_sql.php"); 
    8484        break; 
    8585         
    86     // ¥Ç¡¼¥¿ºï½ü 
     86    // データ削除 
    8787    case "delete": 
    8888        lfDelData($sql_id); 
     
    9191         
    9292    case "csv_output": 
    93         // CSV½ÐÎϥǡ¼¥¿¼èÆÀ 
     93        // CSV出力データ取得 
    9494        $arrCsvData = lfGetSqlList(" WHERE sql_id = ?", array($_POST['csv_output_id'])); 
    9595         
     
    109109 
    110110            $data = lfGetCSVData($arrCsvOutputData, $arrKey); 
    111             // CSV½ÐÎÏ 
     111            // CSV出力 
    112112            sfCSVDownload($header.$data); 
    113113            exit; 
    114114        break; 
    115115        }else{ 
    116             $objPage->tpl_onload = "alert('½ÐÎϥǡ¼¥¿¤¬¤¢¤ê¤Þ¤»¤ó¡£');"; 
     116            $objPage->tpl_onload = "alert('出力データがありません。');"; 
    117117            $sql_id = ""; 
    118118            $_POST=""; 
     
    121121} 
    122122 
    123 // mode ¤¬ confirm °Ê³°¤Î¤È¤­¤Ï´°Î»¥á¥Ã¥»¡¼¥¸¤Ï½ÐÎϤ·¤Ê¤¤ 
     123// mode が confirm 以外のときは完了メッセージは出力しない 
    124124if ($mode != "confirm" and $mode != "csv_output") { 
    125125    $objPage->tpl_onload = ""; 
    126126} 
    127127 
    128 // ÅÐÏ¿ºÑ¤ßSQL°ìÍ÷¼èÆÀ 
     128// 登録済みSQL一覧取得 
    129129$arrSqlList = lfGetSqlList(); 
    130130 
    131 // ÊÔ½¸ÍÑSQL¥Ç¡¼¥¿¤Î¼èÆÀ 
     131// 編集用SQLデータの取得 
    132132if ($sql_id != "") { 
    133133    $arrSqlData = lfGetSqlList(" WHERE sql_id = ?", array($sql_id)); 
    134134} 
    135135 
    136 // ¥Æ¡¼¥Ö¥ë°ìÍ÷¤ò¼èÆÀ¤¹¤ë 
     136// テーブル一覧を取得する 
    137137$arrTableList = lfGetTableList(); 
    138138$arrTableList = sfSwapArray($arrTableList); 
    139139 
    140 // ¸½ºßÁªÂò¤µ¤ì¤Æ¤¤¤ë¥Æ¡¼¥Ö¥ë¤ò¼èÆÀ¤¹¤ë 
     140// 現在選択されているテーブルを取得する 
    141141if ($_POST['selectTable'] == ""){ 
    142142    $selectTable = $arrTableList['table_name'][0]; 
     
    145145} 
    146146 
    147 // ¥«¥é¥à°ìÍ÷¤ò¼èÆÀ¤¹¤ë 
     147// カラム一覧を取得する 
    148148$arrColList = lfGetColumnList($selectTable); 
    149149$arrColList =  sfSwapArray($arrColList); 
    150150 
    151 // ɽ¼¨¤µ¤»¤ëÆâÍÆ¤òÊÔ½¸ 
     151// 表示させる内容を編集 
    152152foreach ($arrTableList['description'] as $key => $val) { 
    153     $arrTableList['description'][$key] = $arrTableList['table_name'][$key] . "¡§" . $arrTableList['description'][$key]; 
     153    $arrTableList['description'][$key] = $arrTableList['table_name'][$key] . "" . $arrTableList['description'][$key]; 
    154154} 
    155155foreach ($arrColList['description'] as $key => $val) { 
    156     $arrColList['description'][$key] = $arrColList['column_name'][$key] . "¡§" . $arrColList['description'][$key]; 
     156    $arrColList['description'][$key] = $arrColList['column_name'][$key] . "" . $arrColList['description'][$key]; 
    157157} 
    158158 
     
    162162$arrColList["description"] = array_merge($arrColList["description"], $arrDiff); 
    163163 
    164 // ¥Æ¥ó¥×¥ì¡¼¥È¤Ë½ÐÎϤ¹¤ë¥Ç¡¼¥¿¤ò¥»¥Ã¥È 
    165 $objPage->arrSqlList = $arrSqlList;                                                             // SQL°ìÍ÷ 
    166 $objPage->arrTableList = sfarrCombine($arrTableList['table_name'], $arrTableList['description']);   // ¥Æ¡¼¥Ö¥ë°ìÍ÷ 
    167 $objPage->arrColList = sfarrCombine($arrColList['column_name'],$arrColList['description']);         // ¥«¥é¥à°ìÍ÷ 
    168 $objPage->selectTable = $selectTable;                                                           // ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥Æ¡¼¥Ö¥ë 
    169 $objPage->sql_id = $sql_id;                                                                     // ÁªÂò¤µ¤ì¤Æ¤¤¤ëSQL 
    170  
    171 // POST¤µ¤ì¤¿¥Ç¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë 
     164// テンプレートに出力するデータをセット 
     165$objPage->arrSqlList = $arrSqlList;                                                             // SQL一覧 
     166$objPage->arrTableList = sfarrCombine($arrTableList['table_name'], $arrTableList['description']);   // テーブル一覧 
     167$objPage->arrColList = sfarrCombine($arrColList['column_name'],$arrColList['description']);         // カラム一覧 
     168$objPage->selectTable = $selectTable;                                                           // 選択されているテーブル 
     169$objPage->sql_id = $sql_id;                                                                     // 選択されているSQL 
     170 
     171// POSTされたデータをセットする 
    172172if (count($_POST) > 0) { 
    173173    $arrSqlData[0]['sql_name'] = $_POST['sql_name']; 
    174174    $arrSqlData[0]['csv_sql'] = $_POST['csv_sql']; 
    175175} 
    176 $objPage->arrSqlData = $arrSqlData[0];                                                          // ÁªÂò¤µ¤ì¤Æ¤¤¤ëSQL¥Ç¡¼¥¿ 
    177  
    178 // ²èÌ̤Îɽ¼¨ 
     176$objPage->arrSqlData = $arrSqlData[0];                                                          // 選択されているSQLデータ 
     177 
     178// 画面の表示 
    179179$objView->assignobj($objPage); 
    180180$objView->display(MAIN_FRAME); 
     
    182182//--------------------------------------------------------------------------------------------------------------------------------------------------------- 
    183183/************************************************************************************************************** 
    184  * ´Ø¿ô̾   ¡§lfGetTableList 
    185  * ½èÍýÆâÍÆ ¡§¥Æ¡¼¥Ö¥ë°ìÍ÷¤ò¼èÆÀ¤¹¤ë 
    186  * °ú¿ô     ¡§¤Ê¤· 
    187  * Ìá¤êÃÍ ¡¡¡§¼èÆÀ·ë²Ì 
     184 * 関数名  :lfGetTableList 
     185 * 処理内容 :テーブル一覧を取得する 
     186 * 引数       :なし 
     187 * 戻り値  :取得結果 
    188188 **************************************************************************************************************/ 
    189189function lfGetTableList(){ 
    190190    $objQuery = new SC_Query(); 
    191     $arrRet = array();      // ·ë²Ì¼èÆÀÍÑ 
     191    $arrRet = array();      // 結果取得用 
    192192 
    193193    $sql = ""; 
     
    201201 
    202202/************************************************************************************************************** 
    203  * ´Ø¿ô̾   ¡§lfGetColunmList 
    204  * ½èÍýÆâÍÆ ¡§¥Æ¡¼¥Ö¥ë¤Î¥«¥é¥à°ìÍ÷¤ò¼èÆÀ¤¹¤ë 
    205  * °ú¿ô     ¡§$selectTable¡§¥Æ¡¼¥Ö¥ë̾¾Î 
    206  * Ìá¤êÃÍ ¡¡¡§¼èÆÀ·ë²Ì 
     203 * 関数名  :lfGetColunmList 
     204 * 処理内容 :テーブルのカラム一覧を取得する 
     205 * 引数       :$selectTable:テーブル名称 
     206 * 戻り値  :取得結果 
    207207 **************************************************************************************************************/ 
    208208function lfGetColumnList($selectTable){ 
    209209    $objQuery = new SC_Query(); 
    210     $arrRet = array();      // ·ë²Ì¼èÆÀÍÑ 
     210    $arrRet = array();      // 結果取得用 
    211211    $sql = ""; 
    212212    $sql .= " SELECT column_name, description FROM dtb_table_comment WHERE table_name = ? AND column_name IS NOT NULL"; 
     
    218218 
    219219/************************************************************************************************************** 
    220  * ´Ø¿ô̾   ¡§lfGetSqlList 
    221  * ½èÍýÆâÍÆ ¡§ÅÐÏ¿ºÑ¤ßSQL°ìÍ÷¤ò¼èÆÀ¤¹¤ë 
    222  * °ú¿ô1    ¡§$where¡§Where¶ç 
    223  * °ú¿ô2    ¡§$arrData¡§¹Ê¤ê¹þ¤ß¥Ç¡¼¥¿ 
    224  * Ìá¤êÃÍ ¡¡¡§¼èÆÀ·ë²Ì 
     220 * 関数名  :lfGetSqlList 
     221 * 処理内容 :登録済みSQL一覧を取得する 
     222 * 引数1  :$where:Where句 
     223 * 引数2  :$arrData:絞り込みデータ 
     224 * 戻り値  :取得結果 
    225225 **************************************************************************************************************/ 
    226226function lfGetSqlList($where = "" , $arrData = array()){ 
    227227    $objQuery = new SC_Query(); 
    228     $arrRet = array();      // ·ë²Ì¼èÆÀÍÑ 
     228    $arrRet = array();      // 結果取得用 
    229229     
    230230    $sql = ""; 
     
    238238    $sql .= "     dtb_csv_sql"; 
    239239     
    240     // Where¶ç¤Î»ØÄ꤬¤¢¤ì¤Ð·ë¹ç¤¹¤ë 
     240    // Where句の指定があれば結合する 
    241241    if ($where != "") { 
    242242        $sql .= " $where "; 
     
    246246    $sql .= " "; 
    247247 
    248     // ¥Ç¡¼¥¿¤ò°ú¿ô¤ÇÅϤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥»¥Ã¥È¤¹¤ë 
     248    // データを引数で渡されている場合にはセットする 
    249249    if (count($arrData) > 0) { 
    250250        $arrRet = $objQuery->getall($sql, $arrData); 
     
    258258 
    259259/************************************************************************************************************** 
    260  * ´Ø¿ô̾   ¡§lfUpdCsvOutput 
    261  * ½èÍýÆâÍÆ ¡§ÆþÎϹàÌܤΥ¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ 
    262  * °ú¿ô     ¡§POST¥Ç¡¼¥¿ 
    263  * ÌáÃÍ     ¡§¥¨¥é¡¼ÆâÍÆ 
     260 * 関数名  :lfUpdCsvOutput 
     261 * 処理内容 :入力項目のエラーチェックを行う 
     262 * 引数       :POSTデータ 
     263 * 戻値       :エラー内容 
    264264 **************************************************************************************************************/ 
    265265function lfCheckError($data){ 
    266266    $objErr = new SC_CheckError(); 
    267     $objErr->doFunc( array("̾¾Î", "sql_name"), array("EXIST_CHECK") ); 
    268     $objErr->doFunc( array("SQLʸ", "csv_sql", "30000"), array("EXIST_CHECK", "MAX_LENGTH_CHECK") ); 
    269      
    270     // SQL¤ÎÂÅÅöÀ­¥Á¥§¥Ã¥¯ 
     267    $objErr->doFunc( array("名称", "sql_name"), array("EXIST_CHECK") ); 
     268    $objErr->doFunc( array("SQL", "csv_sql", "30000"), array("EXIST_CHECK", "MAX_LENGTH_CHECK") ); 
     269     
     270    // SQLの妥当性チェック 
    271271    if ($objErr->arrErr['csv_sql'] == "") { 
    272272        $objsqlErr = lfCheckSQL($data); 
    273273        if ($objsqlErr != "") { 
    274             $objErr->arrErr["csv_sql"] = "SQLʸ¤¬ÉÔÀµ¤Ç¤¹¡£SQLʸ¤ò¸«Ä¾¤·¤Æ¤¯¤À¤µ¤¤"; 
     274            $objErr->arrErr["csv_sql"] = "SQL文が不正です。SQL文を見直してください"; 
    275275        } 
    276276    } 
     
    281281 
    282282/************************************************************************************************************** 
    283  * ´Ø¿ô̾   ¡§lfCheckSQL 
    284  * ½èÍýÆâÍÆ ¡§ÆþÎϤµ¤ì¤¿SQLʸ¤¬Àµ¤·¤¤¤«¥Á¥§¥Ã¥¯¤ò¹Ô¤¦ 
    285  * °ú¿ô     ¡§POST¥Ç¡¼¥¿ 
    286  * ÌáÃÍ     ¡§¥¨¥é¡¼ÆâÍÆ 
     283 * 関数名  :lfCheckSQL 
     284 * 処理内容 :入力されたSQL文が正しいかチェックを行う 
     285 * 引数       :POSTデータ 
     286 * 戻値       :エラー内容 
    287287 **************************************************************************************************************/ 
    288288function lfCheckSQL($data){ 
     
    303303 
    304304/************************************************************************************************************** 
    305  * ´Ø¿ô̾   ¡§lfUpdData 
    306  * ½èÍýÆâÍÆ ¡§DB¤Ë¥Ç¡¼¥¿¤òÊݸ¤¹¤ë 
    307  * °ú¿ô1    ¡§$sql_idޥޥޥ¹¹¿·¤¹¤ë¥Ç¡¼¥¿¤ÎSQL_ID 
    308  * °ú¿ô2    ¡§$arrDataޥޥޥ¹¹¿·¥Ç¡¼¥¿ 
    309  * Ìá¤êÃÍ   ¡§$sql_id:SQL_ID¤òÊÖ¤¹ 
     305 * 関数名  :lfUpdData 
     306 * 処理内容 :DBにデータを保存する 
     307 * 引数1  :$sql_id・・・更新するデータのSQL_ID 
     308 * 引数2  :$arrData・・・更新データ 
     309 * 戻り値  :$sql_id:SQL_IDを返す 
    310310 **************************************************************************************************************/ 
    311311function lfUpdData($sql_id = "", $arrData = array()){ 
    312     $objQuery = new SC_Query();     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È 
    313     $sql = "";                      // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ 
    314     $arrRet = array();              // ¥Ç¡¼¥¿¼èÆÀÍÑ(¹¹¿·È½Äê) 
    315     $arrVal = array();              // ¥Ç¡¼¥¿¹¹¿· 
    316  
    317     // sql_id ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏUPDATE 
     312    $objQuery = new SC_Query();     // DB操作オブジェクト 
     313    $sql = "";                      // データ取得SQL生成用 
     314    $arrRet = array();              // データ取得用(更新判定) 
     315    $arrVal = array();              // データ更新 
     316 
     317    // sql_id が指定されている場合にはUPDATE 
    318318    if ($sql_id != "") { 
    319         // ¸ºß¥Á¥§¥Ã¥¯ 
     319        // 存在チェック 
    320320        $arrSqlData = lfGetSqlList(" WHERE sql_id = ?", array($sql_id)); 
    321321        if (count($arrSqlData) > 0) { 
    322             // ¥Ç¡¼¥¿¹¹¿· 
     322            // データ更新 
    323323            $sql = "UPDATE dtb_csv_sql SET sql_name = ?, csv_sql = ?, update_date = now() WHERE sql_id = ? "; 
    324324            $arrVal= array($arrData['sql_name'], $arrData['csv_sql'], $sql_id); 
    325325        }else{ 
    326             // ¥Ç¡¼¥¿¤Î¿·µ¬ºîÀ® 
     326            // データの新規作成 
    327327            $sql_id = ""; 
    328328            $sql = "INSERT INTO dtb_csv_sql (sql_name, csv_sql, create_date, update_date) values (?, ?, now(), now()) "; 
     
    331331        } 
    332332    }else{ 
    333         // ¥Ç¡¼¥¿¤Î¿·µ¬ºîÀ® 
     333        // データの新規作成 
    334334        $sql = "INSERT INTO dtb_csv_sql (sql_name, csv_sql, create_date, update_date) values (?, ?, now(), now()) "; 
    335335        $arrVal= array($arrData['sql_name'], $arrData['csv_sql']); 
    336336    } 
    337     // SQL¼Â¹Ô   
     337    // SQL実行     
    338338    $arrRet = $objQuery->query($sql,$arrVal); 
    339339     
    340     // ¿·µ¬ºîÀ®»þ¤Ï$sql_id¤ò¼èÆÀ 
     340    // 新規作成時は$sql_idを取得 
    341341    if ($sql_id == "") { 
    342342        $arrNewData = lfGetSqlList(" ORDER BY create_date DESC"); 
     
    349349 
    350350/************************************************************************************************************** 
    351  * ´Ø¿ô̾   ¡§lfDelData 
    352  * ½èÍýÆâÍÆ ¡§¥Ç¡¼¥¿¤òºï½ü¤¹¤ë 
    353  * °ú¿ô1    ¡§$sql_idޥޥޥºï½ü¤¹¤ë¥Ç¡¼¥¿¤ÎSQL_ID 
    354  * Ìá¤êÃÍ   ¡§¼Â¹Ô·ë²Ì¡¡TRUE¡§À®¸ù FALSE¡§¼ºÇÔ 
     351 * 関数名  :lfDelData 
     352 * 処理内容 :データを削除する 
     353 * 引数1  :$sql_id・・・削除するデータのSQL_ID 
     354 * 戻り値  :実行結果 TRUE:成功 FALSE:失敗 
    355355 **************************************************************************************************************/ 
    356356function lfDelData($sql_id = ""){ 
    357     $objQuery = new SC_Query();     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È 
    358     $sql = "";                      // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ 
    359     $Ret = false;                   // ¼Â¹Ô·ë²Ì 
    360  
    361     // sql_id ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¼Â¹Ô 
     357    $objQuery = new SC_Query();     // DB操作オブジェクト 
     358    $sql = "";                      // データ取得SQL生成用 
     359    $Ret = false;                   // 実行結果 
     360 
     361    // sql_id が指定されている場合のみ実行 
    362362    if ($sql_id != "") { 
    363         // ¥Ç¡¼¥¿¤Îºï½ü 
     363        // データの削除 
    364364        $sql = "DELETE FROM dtb_csv_sql WHERE sql_id = ? "; 
    365         // SQL¼Â¹Ô   
     365        // SQL実行     
    366366        $ret = $objQuery->query($sql,array($sql_id)); 
    367367    }else{ 
     
    369369    } 
    370370 
    371     // ·ë²Ì¤òÊÖ¤¹ 
     371    // 結果を返す 
    372372    return $ret; 
    373373} 
    374374 
    375375 
    376 //---- CSV½ÐÎÏÍѥǡ¼¥¿¼èÆÀ 
     376//---- CSV出力用データ取得 
    377377function lfGetCSVData( $array, $arrayIndex){     
    378378    for ($i=0; $i<count($array); $i++){ 
     
    381381            $return .= "\"";             
    382382            if ( $arrayIndex ){ 
    383                 $return .= mb_ereg_replace("<","¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$arrayIndex[$j]] )) ."\"";   
     383                $return .= mb_ereg_replace("<","",mb_ereg_replace( "\"","\"\"",$array[$i][$arrayIndex[$j]] )) ."\"";    
    384384            } else { 
    385                 $return .= mb_ereg_replace("<","¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$j] )) ."\""; 
     385                $return .= mb_ereg_replace("<","",mb_ereg_replace( "\"","\"\"",$array[$i][$j] )) ."\""; 
    386386            } 
    387387        } 
Note: See TracChangeset for help on using the changeset viewer.