注意:自己責任でお願い致します。
EC-CUBE の管理画面では
ログイン者ごとに権限を設定できる仕様になっています。
現在のところ、権限ごとに画面を制御するのではなく、
管理者メニューの項目を権限によって非表示することで
簡易的な制御をしています。
(この経緯は、EC-CUBEのコミュニティーサイトで議論されており
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=398&forum=7
今回、権限を4種類ほど設定して権限ごとにメニュー項目の表示非表示をするにあたり
メニュー項目の設定の一覧を作成しました。
その際に、
data/Smarty/templates/admin/design/subnavi.tpl
を修正いたしました。
修正内容は以下のとおりです。
<ul> <li id="navi-design-pc"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>PC</span></a> <ul> <li<!--{if $tpl_subno == 'layout'}--><!--{/if}--> id="navi-design-pc-layout"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>レイアウト設定</span></a></li> <li<!--{if $tpl_subno == 'main_edit'}--><!--{/if}--> id="navi-design-pc-main"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/main_edit.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>ページ詳細設定</span></a></li> <li<!--{if $tpl_subno == 'bloc'}--><!--{/if}--> id="navi-design-pc-bloc"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/bloc.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>ブロック設定</span></a></li> <li<!--{if $tpl_subno == 'header'}--><!--{/if}--> id="navi-design-pc-header"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/header.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>ヘッダー/フッター設定</span></a></li> <li<!--{if $tpl_subno == 'css'}--><!--{/if}--> id="navi-design-pc-css"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/css.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>CSS設定</span></a></li> <li<!--{if $tpl_subno == 'template'}--><!--{/if}--> id="navi-design-pc-template"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/template.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>テンプレート設定</span></a></li> <li<!--{if $tpl_subno == 'up_down'}--><!--{/if}--> id="navi-design-pc-add"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/up_down.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>テンプレート追加</span></a></li> </ul> </li> <li id="navi-design-mobile"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>モバイル</span></a> <ul> <li<!--{if $tpl_subno == 'layout'}--><!--{/if}--> id="navi-design-mobile-layout-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>レイアウト設定</span></a></li> <li<!--{if $tpl_subno == 'main_edit'}--><!--{/if}--> id="navi-design-mobile-main-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/main_edit.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>ページ詳細設定</span></a></li> <li<!--{if $tpl_subno == 'bloc'}--><!--{/if}--> id="navi-design-mobile-bloc-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/bloc.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>ブロック設定</span></a></li> <li<!--{if $tpl_subno == 'header'}--><!--{/if}--> id="navi-design-mobile-header-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/header.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>ヘッダー/フッター設定</span></a></li> <li<!--{if $tpl_subno == 'css'}--><!--{/if}--> id="navi-design-mobile-css-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/css.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>CSS設定</span></a></li> <li<!--{if $tpl_subno == 'template'}--><!--{/if}--> id="navi-design-mobile-template-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/template.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>テンプレート設定</span></a></li> <li<!--{if $tpl_subno == 'up_down'}--><!--{/if}--> id="navi-design-mobile-add-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/up_down.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>テンプレート追加</span></a></li> </ul> </li> <li id="navi-design-sphone"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>スマートフォン</span></a> <ul> <li<!--{if $tpl_subno == 'layout'}--><!--{/if}--> id="navi-design-sphone-layout"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>レイアウト設定</span></a></li> <li<!--{if $tpl_subno == 'main_edit'}--><!--{/if}--> id="navi-design-sphone-main"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/main_edit.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>ページ詳細設定</span></a></li> <li<!--{if $tpl_subno == 'bloc'}--><!--{/if}--> id="navi-design-sphone-bloc"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/bloc.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>ブロック設定</span></a></li> <li<!--{if $tpl_subno == 'header'}--><!--{/if}--> id="navi-design-sphone-header"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/header.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>ヘッダー/フッター設定</span></a></li> <li<!--{if $tpl_subno == 'css'}--><!--{/if}--> id="navi-design-sphone-css"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/css.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>CSS設定</span></a></li> <li<!--{if $tpl_subno == 'template'}--><!--{/if}--> id="navi-design-sphone-template"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/template.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>テンプレート設定</span></a></li> <li<!--{if $tpl_subno == 'up_down'}--><!--{/if}--> id="navi-design-sphone-add"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/up_down.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>テンプレート追加</span></a></li> </ul> </li> </ul>
書き換え部分は <… id=’navi-******’ …> の部分のみです。
検証は2.11.4で行いました。
以下はcssに設定が簡単に出来るようにまとめたものです。
/* 管理者メニュー id一覧 */ /* 管理者の権限番号毎にcssに設定することによりメニューを非表示に出来る */ /* デザイン部分サブメニューのidの設定については、 */ /* data/Smarty/templates/admin/design/subnavi.tpl書き換えを行っているため、 */ /* 一部既存のものと対応していない */ /* authority_* の*部分には権限番号を設定すること */ /* 権限番号については、mtb_authorityを参照 */ /* cssファイルは html/user_data/packages/admin/css/admin_contents.css */ /* cssの設定を行ってメニューの非表示が出来るだけである */ /* 管理画面ログイン後、直接urlを指定した場合はその画面を操作できます */ ,.authority_* #navi-basis /* 基本情報管理 */ ,.authority_* #navi-basis-index /* -SHOPマスター */ ,.authority_* #navi-basis-tradelaw /* -特定商取引法 */ ,.authority_* #navi-basis-delivery /* -配送方法設定 */ ,.authority_* #navi-basis-payment /* -支払方法設定 */ ,.authority_* #navi-basis-point /* -ポイント設定 */ ,.authority_* #navi-basis-mail /* -メール設定 */ ,.authority_* #navi-basis-seo /* -SEO管理 */ ,.authority_* #navi-basis-kiyaku /* -会員規約設定 */ ,.authority_* #navi-basis-zip /* -郵便番号DB登録 */ ,.authority_* #navi-basis-holiday /* -定休日管理 */ ,.authority_* #navi-customer /* 顧客管理 */ ,.authority_* #navi-customer-index /* -顧客マスター */ ,.authority_* #navi-customer-customer /* -顧客登録 */ ,.authority_* #navi-order /* 受注管理 */ ,.authority_* #navi-order-index /* -受注管理 */ ,.authority_* #navi-order-add /* -受注登録 */ ,.authority_* #navi-order-status /* -対応状況管理 */ ,.authority_* #navi-products /* 商品管理 */ ,.authority_* #navi-products-index /* -商品マスター */ ,.authority_* #navi-products-product /* -商品登録 */ ,.authority_* #navi-products-uploadcsv /* -商品登録CSV */ ,.authority_* #navi-products-class /* -規格管理 */ ,.authority_* #navi-products-category /* -カテゴリー登録 */ ,.authority_* #navi-products-category /* -カテゴリー登録CSV */ ,.authority_* #navi-products-maker /* -メーカー登録 */ ,.authority_* #navi-products-rank /* -商品並び替え */ ,.authority_* #navi-products-review /* -レビュー管理 */ ,.authority_* #navi-total /* 売上集計 */ ,.authority_* #navi-total-term /* -期間別集計 */ ,.authority_* #navi-total-products /* -商品別集計 */ ,.authority_* #navi-total-age /* -年代別集計 */ ,.authority_* #navi-total-job /* -職業別集計 */ ,.authority_* #navi-total-member /* -会員別集計 */ ,.authority_* #navi-mail /* メルマガ管理 */ ,.authority_* #navi-mail-index /* -配信内容設定 */ ,.authority_* #navi-mail-template /* -テンプレート設定 */ ,.authority_* #navi-mail-history /* -配信履歴 */ ,.authority_* #navi-contents /* コンテンツ管理 */ ,.authority_* #navi-contents-index /* -新着情報管理 */ ,.authority_* #navi-contents-recommend /* -おすすめ商品管理 */ ,.authority_* #navi-contents-file /* -ファイル管理 */ ,.authority_* #navi-contents-csv /* -CSV出力項目設定 */ ,.authority_* #navi-csv-product /* |-商品管理 */ ,.authority_* #navi-csv-customer /* |-会員管理 */ ,.authority_* #navi-csv-order /* |-受注管理 */ ,.authority_* #navi-csv-category /* |-カテゴリ */ ,.authority_* #navi-csv-review /* |-レビュー */ ,.authority_* #navi-csv-sql /* |-高度な設定 */ ,.authority_* #navi-design /* デザイン管理 */ ,.authority_* #navi-design-pc /* -PC (id 追加) */ ,.authority_* #navi-design-pc-layout /* |-レイアウト設定(id 修正) */ ,.authority_* #navi-design-pc-main /* |-ページ詳細設定(id 修正) */ ,.authority_* #navi-design-pc-bloc /* |-ブロック設定(id 修正) */ ,.authority_* #navi-design-pc-header /* |-ヘッダー/フッター設定(id 修正) */ ,.authority_* #navi-design-pc-css /* |-CSS設定(id 修正) */ ,.authority_* #navi-design-pc-template /* |-テンプレート設定(id 修正) */ ,.authority_* #navi-design-pc-add /* |-テンプレート追加(id 修正) */ ,.authority_* #navi-design-mobile /* -モバイル(id 追加) */ ,.authority_* #navi-design-mobile-layout /* |-レイアウト設定(id 修正) */ ,.authority_* #navi-design-mobile-main /* |-ページ詳細設定(id 修正) */ ,.authority_* #navi-design-mobile-bloc /* |-ブロック設定(id 修正) */ ,.authority_* #navi-design-mobile-header /* |-ヘッダー/フッター設定(id 修正) */ ,.authority_* #navi-design-mobile-css /* |-CSS設定(id 修正) */ ,.authority_* #navi-design-mobile-template /* |-テンプレート設定(id 修正) */ ,.authority_* #navi-design-mobile-add /* |-テンプレート追加(id 修正) */ ,.authority_* #navi-design-sphone /* -スマートフォン(id 追加) */ ,.authority_* #navi-design-sphone-layout /* |-レイアウト設定(id 修正) */ ,.authority_* #navi-design-sphone-main /* |-ページ詳細設定(id 修正) */ ,.authority_* #navi-design-sphone-bloc /* |-ブロック設定(id 修正) */ ,.authority_* #navi-design-sphone-header /* |-ヘッダー/フッター設定(id 修正) */ ,.authority_* #navi-design-sphone-css /* |-CSS設定(id 修正) */ ,.authority_* #navi-design-sphone-template /* |-テンプレート設定(id 修正) */ ,.authority_* #navi-design-sphone-add /* |-テンプレート追加(id 修正) */ ,.authority_* #navi-system /* システム設定 */ ,.authority_* #navi-system-index /* -メンバー管理 */ ,.authority_* #navi-system-bkup /* -バックアップ管理 */ ,.authority_* #navi-system-parameter /* -パラメーター設定 */ ,.authority_* #navi-system-masterdata /* -マスターデータ管理 */ ,.authority_* #navi-system-adminarea /* -管理画面設定 */ ,.authority_* #navi-system-system /* -システム情報 */ ,.authority_* #navi-system-plugin /* -プラグイン管理 */ ,.authority_* #navi-system-log /* -EC-CUBE ログ表示 */ ,.authority_* #navi-system-editdb /* -高度なデータベース管理 */ ,.authority_* #navi-ownersstore /* オーナーズストア */ ,.authority_* #navi-ownersstore-index /* -購入商品一覧 */ ,.authority_* #navi-ownersstore-settings /* -認証キー設定 */ ,.authority_* #navi-ownersstore-log /* -ログ管理 */
使用方法についての詳細はまた。