注:カテゴリごとの説明文表示機能追加 を行ってから実行してください。
1.テンプレートファイルの編集(カテゴリ登録画面)
編集ファイル: data/Smarty/templates/admin/products/category.tpl
カテゴリごとの説明文表示機能追加で追加したカテゴリ名とカテゴリ毎の説明文編集エリアのテーブルに以下を追加します。
—————————————————————————————————————–
” size=”60″ />
” size=”65″ />
” size=”65″ />
—————————————————————————————————————–
カテゴリ登録画面に入力欄追加
2.データベースのdtb_categoryテーブルにカラムを追加します。
カラム名:category_h1_txt データ型: text
カラム名:category_keyword データ型: text
カラム名:category_description データ型: text
[root@nvrg ~]# /usr/local/mysql/bin/mysql -u root -p
Enter password:
mysql> use 6gb8_db;
mysql> desc dtb_category;
mysql> alter table dtb_category add category_h1_txt TEXT;
mysql> alter table dtb_category add category_keyword TEXT;
mysql> alter table dtb_category add category_description TEXT;
mysql> grant select,insert,delete,update,create,drop,file,alter,index on *.* to eccube_db_user identified by ‘eccube_db_*********’;
mysql> flush privileges;
mysql> exit
3.実行ファイルの編集をします。
編集ファイル: data/class/pages/admin/products/LC_Page_Admin_Products_Category.php
【doPreEdit()】
・「編集対象のカテゴリ名をDBより取得する」$colにcategory_h1_txt, category_keyword, category_descriptionを追加します。
・「入力ボックスへカテゴリ名を保持する」に以下を追加します。
————————————————————————————————————–
// 編集対象のカテゴリ名をDBより取得する
$where = “category_id = ?”;
// $category_name = $objQuery->get(“category_name”, “dtb_category”, $where, array($category_id));
$col = “category_name, category_info, info_flg, category_h1_txt, category_keyword, category_description, level”;
$arrRet = $objQuery->select($col, “dtb_category”, $where, array($_POST[‘category_id’]));
// 入力ボックスへカテゴリ名を保持する.
// $this->arrForm[‘category_name’] = $category_name;
$this->arrForm[‘category_name’] = $arrRet[0][‘category_name’];
$this->arrForm[‘category_info’] = $arrRet[0][‘category_info’];
$this->arrForm[‘info_flg’] = $arrRet[0][‘info_flg’];
$this->arrForm[‘category_h1_txt’] = $arrRet[0][‘category_h1_txt’]; //追加
$this->arrForm[‘category_keyword’] = $arrRet[0][‘category_keyword’]; //追加
$this->arrForm[‘category_description’] = $arrRet[0][‘category_description’]; //追加
$this->arrForm[‘level’] = $arrRet[0][‘level’];
————————————————————————————————————–
【doEdit()】
・「入力項目チェック」部分に以下を追加します。
・「カテゴリ更新」部分に以下を追加します。
——————————————————————————————————
// 入力項目チェック
$arrErr = $objFormParam->checkError();
if (count($arrErr) > 0) {
$this->arrErr = $arrErr;
$this->arrForm[‘category_id’] = $objFormParam->getValue(‘category_id’);
$this->arrForm[‘category_name’] = $objFormParam->getValue(‘category_name’);
$this->arrForm[‘category_info’] = $objFormParam->getValue(‘category_info’);
$this->arrForm[‘category_h1_txt’] = $objFormParam->getValue(‘category_h1_txt’); //追加
$this->arrForm[‘category_keyword’] = $objFormParam->getValue(‘category_keyword’); //追加
$this->arrForm[‘category_description’] = $objFormParam->getValue(‘category_description’); //追加
$this->arrForm[‘info_flg’] = $objFormParam->getValue(‘info_flg’);
return;
}
・・・・・・上との間を省略しています。・・・・・
// カテゴリ更新
$arrCategory = array();
$arrCategory[‘category_name’] = $objFormParam->getValue(‘category_name’);
$arrCategory[‘category_info’] = $objFormParam->getValue(‘category_info’);
$arrCategory[‘info_flg’] = $objFormParam->getValue(‘info_flg’);
$arrCategory[‘category_h1_txt’] = $objFormParam->getValue(‘category_h1_txt’); //追加
$arrCategory[‘category_keyword’] = $objFormParam->getValue(‘category_keyword’); //追加
$arrCategory[‘category_description’] = $objFormParam->getValue(‘category_description’); //追加
$arrCategory[‘update_date’] = ‘NOW()’;
$this->updateCategory($objFormParam->getValue(‘category_id’), $arrCategory);
——————————————————————————————————
【doRegister()】
・「入力項目チェック」部分に以下を追加します。
・「カテゴリ登録」部分に以下を追加します。
——————————————————————————————————
// 入力項目チェック
$arrErr = $objFormParam->checkError();
if (count($arrErr) > 0) {
$this->arrErr = $arrErr;
$this->arrForm[‘category_name’] = $objFormParam->getValue(‘category_name’);
$this->arrForm[‘category_info’] = $objFormParam->getValue(‘category_info’);
$this->arrForm[‘info_flg’] = $objFormParam->getValue(‘info_flg’);
$this->arrForm[‘category_h1_txt’] = $objFormParam->getValue(‘category_h1_txt’); //追加
$this->arrForm[‘category_keyword’] = $objFormParam->getValue(‘category_keyword’); //追加
$this->arrForm[‘category_description’] = $objFormParam->getValue(‘category_description’); //追加
return;
}
・・・・・・上との間を省略しています。・・・・・
// カテゴリ登録
$this->registerCategory($objFormParam->getValue(‘parent_category_id’),
$objFormParam->getValue(‘category_name’),
$objFormParam->getValue(‘category_info’),
$objFormParam->getValue(‘info_flg’),
$objFormParam->getValue(‘category_h1_txt’), //追加
$objFormParam->getValue(‘category_keyword’), //追加
$objFormParam->getValue(‘category_description’), //追加
$_SESSION[‘member_id’]);
——————————————————————————————————–
【initParam()】
・以下を追加します。
————————————————————————————————————————
$objFormParam->addParam(“カテゴリh1テキスト”, “category_h1_txt”, LLTEXT_LEN, “KVa”, array(“SPTAB_CHECK”,”MAX_LENGTH_CHECK”));
$objFormParam->addParam(“Keywrodテキスト”, “category_keyword”, LLTEXT_LEN, “KVa”, array(“SPTAB_CHECK”,”MAX_LENGTH_CHECK”));
$objFormParam->addParam(“Descriptionテキスト”, “category_description”, LLTEXT_LEN, “KVa”, array(“SPTAB_CHECK”,”MAX_LENGTH_CHECK”));
——————————————————————————————————————
【registerCategory()】
・function registerCategory()に$category_h1_txt, $category_keyword, $category_descriptionを追加します。
・「自分のレベルを取得する(親のレベル + 1)」部分に以下を追加します。
——————————————————————————————————————
/**
* カテゴリを登録する
*
* @param integer 親カテゴリID
* @param string カテゴリ名
* @param integer 作成者のID
* @return void
*/
function registerCategory($parent_category_id, $category_name, $category_info, $info_flg, $category_h1_txt, $category_keyword, $category_description, $creator_id) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->begin();
・・・・・・上との間を省略しています。・・・・・
// 自分のレベルを取得する(親のレベル + 1)
$level = $objQuery->get(‘level’, “dtb_category”, $where, array($parent_category_id)) + 1;
$arrCategory = array();
$arrCategory[‘category_name’] = $category_name;
$arrCategory[‘parent_category_id’] = $parent_category_id;
$arrCategory[‘create_date’] = “Now()”;
$arrCategory[‘update_date’] = “Now()”;
$arrCategory[‘creator_id’] = $creator_id;
$arrCategory[‘rank’] = $rank;
$arrCategory[‘level’] = $level;
$arrCategory[‘category_id’] = $objQuery->nextVal(‘dtb_category_category_id’);
$arrCategory[‘category_info’] = $category_info;
$arrCategory[‘info_flg’] = $info_flg;
$arrCategory[‘category_h1_txt’] = $category_h1_txt; //追加
$arrCategory[‘category_keyword’] = $category_keyword; //追加
$arrCategory[‘category_description’] = $category_description; //追加
—————————————————————————————————————–
4.実行ファイルを編集します。
編集ファイル: data/class/pages/products/LC_Page_Products_List.php
【lfGetCategoryId】
・カテゴリごとの説明文表示機能追加で追加したカテゴリ説明の部分に下記を追加します。
—————————————————————————————————————–
// 2012.03.30追加:カテゴリ説明
$objQuery = new SC_Query();
$this->category_info = $objQuery->get(“category_info”, “dtb_category”, “category_id = ?”, $arrCategory_id);
$objQuery = new SC_Query(); //追加
$this->category_h1_txt = $objQuery->get(“category_h1_txt”, “dtb_category”, “category_id = ?”, $arrCategory_id); //追加
$objQuery = new SC_Query(); //追加
$this->category_keyword = $objQuery->get(“category_keyword”, “dtb_category”, “category_id = ?”, $arrCategory_id); //追加
$objQuery = new SC_Query(); //追加
$this->category_description = $objQuery->get(“category_description”, “dtb_category”, “category_id = ?”, $arrCategory_id); //追加
return $arrCategory_id[0];
—————————————————————————————————————–
5.テンプレートファイルを編集します。
EC-CUBE管理画面→「デザイン管理」→「ヘッダー/フッター設定」→「ヘッダー編集」
表示させたい位置に以下を追加します。
—————————————————————————
一覧ページ、詳細ページ以外のページで表示するテキスト
—————————————————————————
6.テンプレートファイルを編集します。
編集ファイル: data/Smarty/templates/default/site_frame.tpl
キーワード、ディスクリプション部分を以下に差し替えます。
————————————————————————
= 1}–>
” />
= 1}–>
” />
= 1}–>
” />
= 1}–>
” />
————————————————————————-
以上でおわりです。