source: branches/feature-module-update/data/class/pages/admin/contents/LC_Page_Admin_Contents_CSV.php @ 16326

Revision 16326, 4.8 KB checked in by naka, 13 years ago (diff)

class_extendsディレクトリの追加

  • Property svn:keywords set to "Id Revision Date"
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8// {{{ requires
9require_once(CLASS_PATH . "pages/LC_Page.php");
10require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_CSV_Ex.php");
11
12/**
13 * CSV項目設定 のページクラス.
14 *
15 * @package Page
16 * @author LOCKON CO.,LTD.
17 * @version $Id$
18 */
19class LC_Page_Admin_Contents_CSV extends LC_Page {
20
21    // }}}
22    // {{{ functions
23
24    /**
25     * Page を初期化する.
26     *
27     * @return void
28     */
29    function init() {
30        parent::init();
31        $this->tpl_mainpage = 'contents/csv.tpl';
32        $this->tpl_subnavi = 'contents/subnavi.tpl';
33        $this->tpl_subno = 'csv';
34
35        $this->tpl_mainno = "contents";
36        $this->tpl_subtitle = 'CSV出力設定';
37    }
38
39    /**
40     * Page のプロセス.
41     *
42     * @return void
43     */
44    function process() {
45        $objView = new SC_AdminView();
46        $objSess = new SC_Session();
47        $objCSV = new SC_Helper_CSV_Ex();
48
49        $this->arrSubnavi = $objCSV->arrSubnavi;
50        $this->tpl_subno_csv = $objCSV->arrSubnavi[1];
51        $this->arrSubnaviName = $objCSV->arrSubnaviName;
52
53        // 認証可否の判定
54        $objSess = new SC_Session();
55        SC_Utils_Ex::sfIsSuccess($objSess);
56
57        $arrOutput = array();
58        $arrChoice = array();
59
60        $get_tpl_subno_csv = isset($_GET['tpl_subno_csv'])
61                                     ? $_GET['tpl_subno_csv'] : "";
62
63        // GETで値が送られている場合にはその値を元に画面表示を切り替える
64        if ($get_tpl_subno_csv != ""){
65            // 送られてきた値が配列に登録されていなければTOPを表示
66            if (in_array($get_tpl_subno_csv,$this->arrSubnavi)){
67                $subno_csv = $get_tpl_subno_csv;
68            }else{
69                $subno_csv = $this->arrSubnavi[1];
70            }
71        } else {
72            // GETで値がなければPOSTの値を使用する
73            if (isset($_POST['tpl_subno_csv'])
74                && $_POST['tpl_subno_csv'] != "") {
75
76                $subno_csv = $_POST['tpl_subno_csv'];
77            }else{
78                $subno_csv = $this->arrSubnavi[1];
79            }
80        }
81
82        // subnoの番号を取得
83        $subno_id = array_keys($this->arrSubnavi,$subno_csv);
84        $subno_id = $subno_id[0];
85        // データの登録
86
87        if (!isset($_POST['mode'])) $_POST['mode'] = "";
88
89        if ($_POST["mode"] == "confirm") {
90
91            // エラーチェック
92            $this->arrErr = $this->lfCheckError($_POST['output_list']);
93
94            if (count($this->arrErr) <= 0){
95                // データの更新
96                $this->lfUpdCsvOutput($subno_id, $_POST['output_list']);
97
98                // 画面のリロード
99                $this->reload(array("tpl_subno_csv" => $subno_csv));
100            }
101        }
102
103        // 出力項目の取得
104        $arrOutput = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput($subno_csv, "WHERE csv_id = ? AND status = 1", array($subno_id)));
105        $arrOutput = SC_Utils_Ex::sfarrCombine($arrOutput['col'], $arrOutput['disp_name']);
106
107        // 非出力項目の取得
108        $arrChoice = SC_Utils_Ex::sfSwapArray($objCSV->sfgetCsvOutput($subno_csv, "WHERE csv_id = ? AND status = 2", array($subno_id)));
109
110        if (!isset($arrChoice['col'])) $arrChoice['col'] = array();
111        if (!isset($arrChoice['disp_name'])) $arrChoice['disp_name'] = array();
112
113        $arrChoice = SC_Utils_Ex::sfarrCombine($arrChoice['col'], $arrChoice['disp_name']);
114
115        $this->arrOutput=$arrOutput;
116        $this->arrChoice=$arrChoice;
117
118
119        $this->SubnaviName = $this->arrSubnaviName[$subno_id];
120        $this->tpl_subno_csv = $subno_csv;
121
122        // 画面の表示
123        $objView->assignobj($this);
124        $objView->display(MAIN_FRAME);
125    }
126
127   /**
128     * デストラクタ.
129     *
130     * @return void
131     */
132    function destroy() {
133        parent::destroy();
134    }
135
136    function lfUpdCsvOutput($csv_id, $arrData = array()){
137        $objQuery = new SC_Query();
138
139        // ひとまず、全部使用しないで更新する
140        $upd_sql = "UPDATE dtb_csv SET status = 2, rank = NULL, update_date = now() WHERE csv_id = ?";
141        $objQuery->query($upd_sql, array($csv_id));
142
143        // 使用するものだけ、再更新する。
144        if (is_array($arrData)) {
145            foreach($arrData as $key => $val){
146                $upd_sql = "UPDATE dtb_csv SET status = 1, rank = ? WHERE csv_id = ? AND col = ? ";
147                $objQuery->query($upd_sql, array($key+1, $csv_id,$val));
148            }
149        }
150    }
151
152    Function Lfcheckerror($data){
153        $objErr = new SC_CheckError();
154        $objErr->doFunc( array("出力項目", "output_list"), array("EXIST_CHECK") );
155
156        return $objErr->arrErr;
157
158    }
159}
160?>
Note: See TracBrowser for help on using the repository browser.