source: branches/comu-ver2/data/class/pages/admin/products/LC_Page_Admin_Products_TrackbackEdit.php @ 18701

Revision 18701, 7.4 KB checked in by nanasess, 14 years ago (diff)

Copyright の更新(#601)

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id Revision Date
  • Property svn:mime-type set to text/x-httpd-php; charset=UTF-8
Line 
1<?php
2/*
3 * This file is part of EC-CUBE
4 *
5 * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
6 *
7 * http://www.lockon.co.jp/
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2
12 * of the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22 */
23
24// {{{ requires
25require_once(CLASS_PATH . "pages/LC_Page.php");
26
27/**
28 * トラックバック編集 のページクラス.
29 *
30 * @package Page
31 * @author LOCKON CO.,LTD.
32 * @version $Id$
33 */
34class LC_Page_Admin_Products_TrackbackEdit extends LC_Page {
35
36    // }}}
37    // {{{ functions
38
39    /**
40     * Page を初期化する.
41     *
42     * @return void
43     */
44    function init() {
45        parent::init();
46        $this->tpl_mainpage = 'products/trackback_edit.tpl';
47        $this->tpl_subnavi = 'products/subnavi.tpl';
48        $this->tpl_mainno = 'products';
49        $this->tpl_subno = 'trackback';
50        $this->tpl_subtitle = 'トラックバック管理';
51    }
52
53    /**
54     * Page のプロセス.
55     *
56     * @return void
57     */
58    function process() {
59        $objView = new SC_AdminView();
60        $objSess = new SC_Session();
61        $objQuery = new SC_Query();
62
63        // 認証可否の判定
64        SC_Utils_Ex::sfIsSuccess($objSess);
65
66        //検索ワードの引継ぎ
67        foreach ($_POST as $key => $val){
68            if (ereg("^search_", $key)){
69                $this->arrSearchHidden[$key] = $val;
70            }
71        }
72
73        // 状態の設定
74        $masterData = new SC_DB_MasterData_Ex();
75        $this->arrTrackBackStatus = $masterData->getMasterData("mtb_track_back_status");
76
77        //取得文字列の変換用カラム
78        $arrRegistColumn = array (
79                                  array( "column" => "update_date"),
80                                  array( "column" => "status"),
81                                  array(    "column" => "title","convert" => "KVa"),
82                                  array(    "column" => "excerpt","convert" => "KVa"),
83                                  array(    "column" => "blog_name","convert" => "KVa"),
84                                  array(    "column" => "url","convert" => "KVa"),
85                                  array(    "column" => "del_flg","convert" => "n")
86                                  );
87
88        // トラックバックIDを渡す
89        $this->tpl_trackback_id = $_POST['trackback_id'];
90        // トラックバック情報のカラムの取得
91        $this->arrTrackback = $this->lfGetTrackbackData($_POST['trackback_id'], $objQuery);
92
93        // 商品ごとのトラックバック表示数取得
94        $count = $objQuery->count("dtb_trackback", "del_flg = 0 AND product_id = ?", array($this->arrTrackback['product_id']));
95        // 両方選択可能
96        $this->tpl_status_change = true;
97
98        switch($_POST['mode']) {
99            // 登録
100        case 'complete':
101            //フォーム値の変換
102            $arrTrackback = $this->lfConvertParam($_POST, $arrRegistColumn);
103            $this->arrErr = $this->lfCheckError($arrTrackback);
104            //エラー無し
105
106            if (!$this->arrErr) {
107                //レビュー情報の編集登録
108                $this->lfRegistTrackbackData($arrTrackback, $arrRegistColumn, $objQuery);
109                $this->arrTrackback = $arrTrackback;
110                $this->tpl_onload = "confirm('登録が完了しました。');";
111            }
112            break;
113
114        default:
115            break;
116        }
117
118        $objView->assignobj($this);
119        $objView->display(MAIN_FRAME);
120    }
121
122    /**
123     * デストラクタ.
124     *
125     * @return void
126     */
127    function destroy() {
128        parent::destroy();
129    }
130
131
132    // 入力エラーチェック
133    function lfCheckError($array) {
134        $objErr = new SC_CheckError($array);
135        $objErr->doFunc(array("ブログ名", "blog_name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
136        $objErr->doFunc(array("ブログ記事タイトル", "title", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
137        $objErr->doFunc(array("ブログ記事内容", "excerpt", LTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
138        $objErr->doFunc(array("ブログURL", "url", URL_LEN), array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
139        $objErr->doFunc(array("状態", "status"), array("SELECT_CHECK"));
140        return $objErr->arrErr;
141    }
142
143    //---- 取得文字列の変換
144    function lfConvertParam($array, $arrRegistColumn) {
145        /*
146         *  文字列の変換
147         *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換
148         *  C :  「全角ひら仮名」を「全角かた仮名」に変換
149         *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します
150         *  n :  「全角」数字を「半角(ハンカク)」に変換
151         *  a :  全角英数字を半角英数字に変換する
152         */
153        // カラム名とコンバート情報
154        foreach ($arrRegistColumn as $data) {
155            $arrConvList[ $data["column"] ] = isset($data["convert"]) ? $data["convert"] : "";
156        }
157
158        // 文字変換
159        foreach ($arrConvList as $key => $val) {
160            // POSTされてきた値のみ変換する。
161            if (!isset($array[$key])) $array[$key] = "";
162            if(strlen(($array[$key])) > 0) {
163                $array[$key] = mb_convert_kana($array[$key] ,$val);
164            }
165        }
166        return $array;
167    }
168
169    // トラックバック情報の取得
170    function lfGetTrackbackData($trackback_id, &$objQuery) {
171
172        $select = "tra.trackback_id, tra.product_id, tra.blog_name, tra.title, tra.excerpt, ";
173        $select .= "tra.url, tra.status, tra.create_date, tra.update_date, pro.name ";
174        $from = "dtb_trackback AS tra LEFT JOIN dtb_products AS pro ON tra.product_id = pro.product_id ";
175        $where = "tra.del_flg = 0 AND pro.del_flg = 0 AND tra.trackback_id = ? ";
176        $arrTrackback = $objQuery->select($select, $from, $where, array($trackback_id));
177        if(!empty($arrTrackback)) {
178            $this->arrTrackback = $arrTrackback[0];
179        } else {
180            sfDispError("");
181        }
182        return $this->arrTrackback;
183    }
184
185    // トラックバック情報の編集登録
186    function lfRegistTrackbackData($array, $arrRegistColumn, &$objQuery) {
187
188        foreach ($arrRegistColumn as $data) {
189            if (!isset($array[$data["column"]])) $array[$data["column"]] = "";
190            if (strlen($array[ $data["column"] ]) > 0 ) {
191                $arrRegist[ $data["column"] ] = $array[ $data["column"] ];
192            }
193            if ($data['column'] == 'update_date'){
194                $arrRegist['update_date'] = 'now()';
195            }
196        }
197        //登録実行
198        $objQuery->begin();
199        $objQuery->update("dtb_trackback", $arrRegist, "trackback_id = '".$_POST['trackback_id']."'");
200        $objQuery->commit();
201    }
202}
203?>
Note: See TracBrowser for help on using the repository browser.