source: branches/feature-module-update/data/class/pages/admin/basis/LC_Page_Admin_Basis_Seo.php @ 15323

Revision 15323, 6.1 KB checked in by nanasess, 17 years ago (diff)

クラス化対応

  • 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");
10
11/**
12 * SEO管理 のページクラス.
13 *
14 * @package Page
15 * @author LOCKON CO.,LTD.
16 * @version $Id$
17 */
18class LC_Page_Admin_Basis_Seo extends LC_Page {
19
20    // {{{ properties
21
22    /** エラー情報 */
23    var $arrErr;
24
25    // }}}
26    // {{{ functions
27
28    /**
29     * Page を初期化する.
30     *
31     * @return void
32     */
33    function init() {
34        parent::init();
35        $this->tpl_mainpage = 'basis/seo.tpl';
36        $this->tpl_subnavi = 'basis/subnavi.tpl';
37        $this->tpl_subno = 'seo';
38        $this->tpl_mainno = 'basis';
39        $this->tpl_subtitle = 'SEO管理';
40        $masterData = new SC_DB_MasterData_Ex();
41        $this->arrPref = $masterData->getMasterData("mtb_pref", array("pref_id", "pref_name", "rank"));
42        $this->arrTAXRULE = $masterData->getMasterData("mtb_taxrule");
43    }
44
45    /**
46     * Page のプロセス.
47     *
48     * @return void
49     */
50    function process() {
51        $conn = new SC_DBConn();
52        $objView = new SC_AdminView();
53        $objSess = new SC_Session();
54        $objQuery = new SC_Query();
55
56        // 認証可否の判定
57        SC_Utils_Ex::sfIsSuccess($objSess);
58
59        // データの取得
60        $objLayout = new SC_Helper_PageLayout_Ex();
61        $this->arrPageData = $objLayout->lfgetPageData(" edit_flg = 2 ");
62
63        if (isset($_POST['page_id'])) $page_id = $_POST['page_id'];
64
65        if (!isset($_POST['mode'])) $_POST['mode'] = "";
66
67        if($_POST['mode'] == "confirm") {
68            // エラーチェック
69            $this->arrErr[$page_id] = $this->lfErrorCheck($arrPOST['meta'][$page_id]);
70
71            // エラーがなければデータを更新
72            if(count($this->arrErr[$page_id]) == 0) {
73
74                // 更新データの変換
75                $arrMETA = $this->lfConvertParam($_POST['meta'][$page_id]);
76
77                // 更新データ配列生成
78                $arrUpdData = array($arrMETA['author'], $arrMETA['description'], $arrMETA['keyword'], $page_id);
79                // データ更新
80                $this->lfUpdPageData($arrUpdData);
81            }else{
82                // POSTのデータを再表示
83                $arrPageData = lfSetData($arrPageData, $arrPOST['meta']);
84                $this->arrPageData = $arrPageData;
85            }
86        }
87
88        $arrDisp_flg = array();
89        // エラーがなければデータの取得
90        if (isset($page_id) && isset($this->arrErr[$page_id])) {
91
92            if(count($this->arrErr[$page_id]) == 0) {
93                // データの取得
94                $arrPageData = $objLayout->lfgetPageData(" edit_flg = 2 ");
95                $this->arrPageData = $arrPageData;
96            }
97
98            // 表示・非表示切り替え
99            foreach($arrPageData as $key => $val){
100                $arrDisp_flg[$val['page_id']] = $_POST['disp_flg'.$val['page_id']];
101            }
102        }
103        $this->disp_flg = $arrDisp_flg;
104
105        $objView->assignobj($this);
106        $objView->display(MAIN_FRAME);
107    }
108
109    /**
110     * デストラクタ.
111     *
112     * @return void
113     */
114    function destroy() {
115        parent::destroy();
116    }
117
118    /**
119     * ページレイアウトテーブルにデータ更新を行う.
120     *
121     * @param array $arrUpdData 更新データ
122     * @return integer 更新結果
123     */
124    function lfUpdPageData($arrUpdData = array()){
125        $objQuery = new SC_Query();
126        $sql = "";
127
128        // SQL生成
129        $sql .= " UPDATE ";
130        $sql .= "     dtb_pagelayout ";
131        $sql .= " SET ";
132        $sql .= "     author = ? , ";
133        $sql .= "     description = ? , ";
134        $sql .= "     keyword = ? ";
135        $sql .= " WHERE ";
136        $sql .= "     page_id = ? ";
137        $sql .= " ";
138
139        // SQL実行
140        $ret = $objQuery->query($sql, $arrUpdData);
141
142        return $ret;
143    }
144
145    /**
146     * 入力項目のエラーチェックを行う.
147     *
148     * @param array $array エラーチェック対象データ
149     * @return array エラー内容
150     */
151    function lfErrorCheck($array) {
152        $objErr = new SC_CheckError($array);
153
154        $objErr->doFunc(array("メタタグ:Author", "author", STEXT_LEN), array("MAX_LENGTH_CHECK"));
155        $objErr->doFunc(array("メタタグ:Description", "description", STEXT_LEN), array("MAX_LENGTH_CHECK"));
156        $objErr->doFunc(array("メタタグ:Keywords", "keyword", STEXT_LEN), array("MAX_LENGTH_CHECK"));
157
158        return $objErr->arrErr;
159    }
160
161    /**
162     * テンプレート表示データに値をセットする.
163     *
164     * @param array 表示元データ
165     * @param array 表示データ
166     * @return array 表示データ
167     */
168    function lfSetData($arrPageData, $arrDispData){
169
170        foreach($arrPageData as $key => $val){
171            $page_id = $val['page_id'];
172            $arrPageData[$key]['author'] = $arrDispData[$page_id]['author'];
173            $arrPageData[$key]['description'] = $arrDispData[$page_id]['description'];
174            $arrPageData[$key]['keyword'] = $arrDispData[$page_id]['keyword'];
175        }
176
177        return $arrPageData;
178    }
179
180    /* 取得文字列の変換 */
181    function lfConvertParam($array) {
182        /*
183         *  文字列の変換
184         *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換
185         *  C :  「全角ひら仮名」を「全角かた仮名」に変換
186         *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します
187         *  n :  「全角」数字を「半角(ハンカク)」に変換
188         *  a :  全角英数字を半角英数字に変換する
189         */
190        // 人物基本情報
191
192        // スポット商品
193        $arrConvList['author'] = "KVa";
194        $arrConvList['description'] = "KVa";
195        $arrConvList['keyword'] = "KVa";
196
197        // 文字変換
198        foreach ($arrConvList as $key => $val) {
199            // POSTされてきた値のみ変換する。
200            if(isset($array[$key])) {
201                $array[$key] = mb_convert_kana($array[$key] ,$val);
202            }
203        }
204        return $array;
205    }
206}
207?>
Note: See TracBrowser for help on using the repository browser.