source: branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_TrackbackEdit.php @ 19661

Revision 19661, 7.5 KB checked in by nanasess, 13 years ago (diff)

source:branches/camp/camp-2_5-E のマージ

  • スマートフォン対応(#787)
  • プラグイン機能(#494)
  • 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/admin/LC_Page_Admin.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_Admin {
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        $this->action();
60        $this->sendResponse();
61    }
62
63    /**
64     * Page のアクション.
65     *
66     * @return void
67     */
68    function action() {
69        $objSess = new SC_Session();
70        $objQuery = new SC_Query();
71
72        // 認証可否の判定
73        SC_Utils_Ex::sfIsSuccess($objSess);
74
75        //検索ワードの引継ぎ
76        foreach ($_POST as $key => $val){
77            if (ereg("^search_", $key)){
78                $this->arrSearchHidden[$key] = $val;
79            }
80        }
81
82        // 状態の設定
83        $masterData = new SC_DB_MasterData_Ex();
84        $this->arrTrackBackStatus = $masterData->getMasterData("mtb_track_back_status");
85
86        //取得文字列の変換用カラム
87        $arrRegistColumn = array (
88                                  array( "column" => "update_date"),
89                                  array( "column" => "status"),
90                                  array(    "column" => "title","convert" => "KVa"),
91                                  array(    "column" => "excerpt","convert" => "KVa"),
92                                  array(    "column" => "blog_name","convert" => "KVa"),
93                                  array(    "column" => "url","convert" => "KVa"),
94                                  array(    "column" => "del_flg","convert" => "n")
95                                  );
96
97        // トラックバックIDを渡す
98        $this->tpl_trackback_id = $_POST['trackback_id'];
99        // トラックバック情報のカラムの取得
100        $this->arrTrackback = $this->lfGetTrackbackData($_POST['trackback_id'], $objQuery);
101
102        // 商品ごとのトラックバック表示数取得
103        $count = $objQuery->count("dtb_trackback", "del_flg = 0 AND product_id = ?", array($this->arrTrackback['product_id']));
104        // 両方選択可能
105        $this->tpl_status_change = true;
106
107        switch($_POST['mode']) {
108            // 登録
109        case 'complete':
110            //フォーム値の変換
111            $arrTrackback = $this->lfConvertParam($_POST, $arrRegistColumn);
112            $this->arrErr = $this->lfCheckError($arrTrackback);
113            //エラー無し
114
115            if (!$this->arrErr) {
116                //レビュー情報の編集登録
117                $this->lfRegistTrackbackData($arrTrackback, $arrRegistColumn, $objQuery);
118                $this->arrTrackback = $arrTrackback;
119                $this->tpl_onload = "confirm('登録が完了しました。');";
120            }
121            break;
122
123        default:
124            break;
125        }
126    }
127
128    /**
129     * デストラクタ.
130     *
131     * @return void
132     */
133    function destroy() {
134        parent::destroy();
135    }
136
137
138    // 入力エラーチェック
139    function lfCheckError($array) {
140        $objErr = new SC_CheckError($array);
141        $objErr->doFunc(array("ブログ名", "blog_name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
142        $objErr->doFunc(array("ブログ記事タイトル", "title", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
143        $objErr->doFunc(array("ブログ記事内容", "excerpt", LTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
144        $objErr->doFunc(array("ブログURL", "url", URL_LEN), array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
145        $objErr->doFunc(array("状態", "status"), array("SELECT_CHECK"));
146        return $objErr->arrErr;
147    }
148
149    //---- 取得文字列の変換
150    function lfConvertParam($array, $arrRegistColumn) {
151        /*
152         *  文字列の変換
153         *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換
154         *  C :  「全角ひら仮名」を「全角かた仮名」に変換
155         *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します
156         *  n :  「全角」数字を「半角(ハンカク)」に変換
157         *  a :  全角英数字を半角英数字に変換する
158         */
159        // カラム名とコンバート情報
160        foreach ($arrRegistColumn as $data) {
161            $arrConvList[ $data["column"] ] = isset($data["convert"]) ? $data["convert"] : "";
162        }
163
164        // 文字変換
165        foreach ($arrConvList as $key => $val) {
166            // POSTされてきた値のみ変換する。
167            if (!isset($array[$key])) $array[$key] = "";
168            if(strlen(($array[$key])) > 0) {
169                $array[$key] = mb_convert_kana($array[$key] ,$val);
170            }
171        }
172        return $array;
173    }
174
175    // トラックバック情報の取得
176    function lfGetTrackbackData($trackback_id, &$objQuery) {
177
178        $select = "tra.trackback_id, tra.product_id, tra.blog_name, tra.title, tra.excerpt, ";
179        $select .= "tra.url, tra.status, tra.create_date, tra.update_date, pro.name ";
180        $from = "dtb_trackback AS tra LEFT JOIN dtb_products AS pro ON tra.product_id = pro.product_id ";
181        $where = "tra.del_flg = 0 AND pro.del_flg = 0 AND tra.trackback_id = ? ";
182        $arrTrackback = $objQuery->select($select, $from, $where, array($trackback_id));
183        if(!empty($arrTrackback)) {
184            $this->arrTrackback = $arrTrackback[0];
185        } else {
186            sfDispError("");
187        }
188        return $this->arrTrackback;
189    }
190
191    // トラックバック情報の編集登録
192    function lfRegistTrackbackData($array, $arrRegistColumn, &$objQuery) {
193
194        foreach ($arrRegistColumn as $data) {
195            if (!isset($array[$data["column"]])) $array[$data["column"]] = "";
196            if (strlen($array[ $data["column"] ]) > 0 ) {
197                $arrRegist[ $data["column"] ] = $array[ $data["column"] ];
198            }
199            if ($data['column'] == 'update_date'){
200                $arrRegist['update_date'] = 'now()';
201            }
202        }
203        //登録実行
204        $objQuery->begin();
205        $objQuery->update("dtb_trackback", $arrRegist, "trackback_id = '".$_POST['trackback_id']."'");
206        $objQuery->commit();
207    }
208}
209?>
Note: See TracBrowser for help on using the repository browser.