EC-CUBEカスタマイズ - 店舗オーナー権限のメニュー非表示設定
EC-CUBEをカスタマイズしたので忘備録としてまとめておきます。
今回行ったカスタマイズは、
『管理サイトに店舗オーナー権限でログインした際に、ナビゲーションメニューの[デザイン管理]を非表示にする』
というものです。
カスタマイズ要件は以下の通りです。
【フロント画面】
- (特になし)
【管理画面】
- 店舗オーナー権限でログインした際に、ナビゲーションメニューの[デザイン管理]を非表示にする
【動作確認バージョン】
- EC-CUBE 2.11.4
管理サイトCSS
[eccube]html/user_data/packages/admin/css/admin_contents.css
/* 権限 */
変更前
,.authority_1 #navi-ownersstore {
/* display: none; --- IE で不具合 */
変更後
,.authority_1 #navi-ownersstore
,.authority_1 #navi-design {
/* display: none; --- IE で不具合 */
EC-CUBEバグ修正 - 新着情報管理の表示順
EC-CUBEのバグを修正したので忘備録としてまとめておきます。
今回行った修正対象のバグは、
『新着情報管理にて古い記事を削除すると、残りの記事の順位が全て同じになる』
というものです。
修正内容は以下の通りです。
※ただしこの修正は暫定処置と思われます。
【バグ確認バージョン】
- EC-CUBE 2.11.4
管理画面[新着情報管理]
[eccube]/data/class/pages/admin/contents/LC_Page_Admin_Contents.php
修正前
function computeRankForDelete($news_id,$rank){
$objQuery = $objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->begin();
$table = 'dtb_news';
$sqlval = array();
$sqlval['rank'] = $rank;
$sqlval['update_date'] = 'CURRENT_TIMESTAMP';
$where = 'del_flg = 0 AND rank > ?';
$arrValIn = array($rank);
$objQuery->update($table, $sqlval, $where, $arrValIn);
$sqlval = array();
$sqlval['rank'] = '0';
$sqlval['del_flg'] = '1';
$sqlval['update_date'] = 'CURRENT_TIMESTAMP';
$where = 'news_id = ?';
$arrValIn = array($news_id);
$objQuery->update($table, $sqlval, $where, $arrValIn);
$objQuery->commit();
}
修正後
function computeRankForDelete($news_id,$rank){
SC_Helper_DB::sfDeleteRankRecord('dtb_news', 'news_id', $news_id, "", false);
// $objQuery = $objQuery =& SC_Query_Ex::getSingletonInstance();
// $objQuery->begin();
// $table = 'dtb_news';
// $sqlval = array();
// $sqlval['rank'] = $rank;
// $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
// $where = 'del_flg = 0 AND rank > ?';
// $arrValIn = array($rank);
// $objQuery->update($table, $sqlval, $where, $arrValIn);
//
// $sqlval = array();
// $sqlval['rank'] = '0';
// $sqlval['del_flg'] = '1';
// $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
// $where = 'news_id = ?';
// $arrValIn = array($news_id);
// $objQuery->update($table, $sqlval, $where, $arrValIn);
// $objQuery->commit();
}
EC-CUBEカスタマイズ - マイページに対応状況を表示
EC-CUBEをカスタマイズしたので忘備録としてまとめておきます。
今回行ったカスタマイズは、
『マイページの購入履歴一覧に対応状況を表示する』
というものです。
カスタマイズ要件は以下の通りです。
【フロント画面】
- マイページの購入履歴一覧(詳細の右)に、対応状況(発送済みやキャンセルなど)の表示を追加する
【管理画面】
- (特になし)
【動作確認バージョン】
- EC-CUBE 2.11.4
マイページ[購入履歴一覧]
[eccube]data/class/pages/mypage/LC_Page_Mypage.php
function init() {
変更前
$this->httpCacheControl('nocache');
}
変更後
$this->httpCacheControl('nocache');
$masterData = new SC_DB_MasterData_Ex();
$this->arrORDERSTATUS = $masterData->getMasterData("mtb_order_status");
}
function lfGetOrderHistory($customer_id, $startno = -1) {
変更前
$col = "order_id, create_date, payment_id, payment_total";
変更後
$col = "order_id, create_date, payment_id, payment_total, status";
[eccube]data/Smarty/templates/(default)/mypage/index.tpl
<table summary="購入履歴">
変更前
<th class="alignC">詳細</th>
</tr>
変更後
<th class="alignC">詳細</th>
<th class="alignC">対応状況</th>
</tr>
<!--{section name=cnt loop=$arrOrder}-->
変更前
<td class="alignC"><a href="<!--{$smarty.const.ROOT_URLPATH}-->mypage/history.php?order_id=<!--{$arrOrder[cnt].order_id}-->">詳細</a></td>
</tr>
変更後
<td class="alignC"><a href="<!--{$smarty.const.ROOT_URLPATH}-->mypage/history.php?order_id=<!--{$arrOrder[cnt].order_id}-->">詳細</a></td>
<!--{assign var=status value="`$arrOrder[cnt].status`"}-->
<td class="alignC"><!--{$arrORDERSTATUS[$status]}--></td>
</tr>
EC-CUBEカスタマイズ - CKEditorを導入
EC-CUBEをカスタマイズしたので忘備録としてまとめておきます。
今回行ったカスタマイズは、
『EC-CUBEの商品登録ページにCKEditorを導入する』
というものです。
※CKEditorとは、高機能なWYSIWYGエディタソフトです。
カスタマイズ要件は以下の通りです。
【フロント画面】
- (特になし)
【管理画面】
- 商品登録画面のサブ情報入力欄をCKEditorで編集出来るようにする
【動作確認バージョン】
- EC-CUBE 2.11.4
事前準備
1. CKEditorをダウンロード(動作確認時バージョン:3.6.2)
2. ダウンロードしたファイルを解凍し、html/user_dataディレクトリ直下に配置。
/html/user_data/ckeditor/
管理画面[商品管理 - 商品登録 - サブ情報]
[eccube]data/Smarty/templates/admin/products/product.tpl
変更前
<td>
<span class="attention"><!--{$arrErr[$key]}--></span>
<textarea name="sub_comment<!--{$smarty.section.cnt.iteration}-->" cols="60" rows="8" class="area60" maxlength="<!--{$smarty.const.LLTEXT_LEN}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->"><!--{$arrForm[$key]|h}--></textarea><br />
<span class="attention"> (上限<!--{$smarty.const.LLTEXT_LEN}-->文字)</span>
</td>
変更後
<td>
<span class="attention"><!--{$arrErr[$key]}--></span>
<script type="text/javascript" src="<!--{$smarty.const.ROOT_URLPATH}-->user_data/ckeditor/ckeditor.js"></script>
<script type="text/javascript">
<!--
CKEDITOR.config.toolbar =
[
['Source','-','TextColor','Bold','Italic','Underline','-','Table','-']
,'/'
['Format','-','Strike','-','BGColor','-','NumberedList','BulletedList','-','Outdent','Indent','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','Link','Unlink','-','HorizontalRule','SpecialChar','Cut','Copy','Paste','PasteText','-','Undo','Redo','-','Find','Replace','-','RemoveFormat']
];
//-->
</script>
<textarea name="sub_comment<!--{$smarty.section.cnt.iteration}-->" cols="60" rows="8" class="area60 ckeditor" maxlength="<!--{$smarty.const.LLTEXT_LEN}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->"><!--{$arrForm[$key]|h}--></textarea><br />
<span class="attention"> (上限<!--{$smarty.const.LLTEXT_LEN}-->文字)</span>
</td>
補足
CKEDITOR.config.toolbar =
の行は、ツールバーの表示設定です。
上の段に設定したツールバー(上記設定では ['Source','-','TextColor','Bold','Italic','Underline','-','Table','-'] の部分)が表示されます。
EC-CUBEカスタマイズ - 商品一覧ページのサブタイトルにメーカー名を表示
EC-CUBEをカスタマイズしたので忘備録としてまとめておきます。
今回行ったカスタマイズは、
『EC-CUBEの商品一覧ページのサブタイトル(ページタイトル)にメーカー名を表示する』
というものです。
カスタマイズ要件は以下の通りです。
【フロント画面】
- メーカーID(maker_id)を指定して商品一覧ページを表示した際に、サブタイトル(ページタイトル)にメーカー名を表示する
例)http://******.com/products/list.php?maker_id=1
【管理画面】
- (特になし)
【動作確認バージョン】
- EC-CUBE 2.11.3
商品一覧ページ
[eccube]/data/Smarty/templates/default/products/list.tpl
変更前
<!--★タイトル★-->
<h2 class="title"><!--{$tpl_subtitle|h}--></h2>
変更後
<!--★タイトル★-->
<!--{if $tpl_subtitle == "検索結果"}-->
<!--{$tpl_subtitle|h}-->
<!--{elseif $arrSearch.maker|strlen >= 1}-->
<!--{$arrSearch.maker|h}-->
<!--{else}-->
<!--{$tpl_subtitle|h}-->
<!--{/if}-->
</h2>
[eccube]/data/class/pages/products/LC_Page_Products_List.php
変更前
// 画面に表示するサブタイトルの設定
$this->tpl_subtitle = $this->lfGetPageTitle($this->mode, $this->arrSearchData['category_id']);
変更後
// 画面に表示するサブタイトルの設定
$this->tpl_subtitle = $this->lfGetPageTitle($this->mode, $this->arrSearchData['category_id'], $this->arrSearchData['maker_id']);
変更前
function lfGetPageTitle($mode, $category_id = 0){
変更後
function lfGetPageTitle($mode, $category_id = 0, $maker_id = 0){
変更前
return "全商品";
変更後
if ($maker_id > 0) {
return "";
} else {
return "全商品";
}







