エントリー
freoの注文管理プラグイン画面で投稿者ユーザーの権限を制限する
- カテゴリー:ユーザー管理, 管理画面
- タグ:freoテンプレート, freoプラグイン
以前、freoの投稿者ユーザーがログインしたとき他ユーザーの情報を表示させない方法 で、サークル管理プラグイン、プロフィール管理プラグインでは、権限が投稿者のユーザーがログインしたときにも自分以外のユーザーの情報も表示、編集ができてしまうので、他のユーザーの情報を表示させない方法を紹介しましたが、注文管理プラグインでも同様のカスタマイズをする方法です。
※特に注文管理プラグインでは個人情報保護上、他のユーザーの情報などを管理者以外の者に表示・編集されないようにしてください。
1-1) 注文管理画面では投稿者ユーザー自身の注文履歴と注文者情報へのリンクを表示する
templates/plugins/catalog_order/admin.html の5~10行目あたりにある
<li><a href="{$freo.core.http_file}/catalog_order/admin_order">すべての注文履歴を表示する</a>。</li>
<li><a href="{$freo.core.https_file}/catalog_order/admin_order_form">注文を新規に追加する</a>。</li>
<li><a href="{$freo.core.http_file}/catalog_order/admin_total">発送済み商品の集計を表示する</a>。</li>
<!--{if $freo.config.user.regist and $freo.config.plugin.catalog_order.user}-->
<li><a href="{$freo.core.http_file}/catalog_order/admin_user">登録された注文者を表示する</a>。</li>
<!--{/if}-->
の部分を、
<!--{if $freo.user.authority == 'root'}-->
<li><a href="{$freo.core.http_file}/catalog_order/admin_order">すべての注文履歴を表示する</a>。</li>
<li><a href="{$freo.core.https_file}/catalog_order/admin_order_form">注文を新規に追加する</a>。</li>
<li><a href="{$freo.core.http_file}/catalog_order/admin_total">発送済み商品の集計を表示する</a>。</li>
<!--{else}-->
<li><a href="{$freo.core.http_file}/catalog_order/admin_order?user_id={$freo.user.id}">自身の注文履歴を表示する</a>。</li>
<!--{/if}-->
<!--{if $freo.config.user.regist and $freo.config.plugin.catalog_order.user}-->
<li><a href="{$freo.core.http_file}/catalog_order/admin_user"><!--{if $freo.user.authority == 'root'}-->登録された注文者を表示する<!--{else}-->自身の注文者情報を表示する<!--{/if}--></a>。</li>
<!--{/if}-->
に変更(赤字部分を追加)します。
1-2) 注文管理画面では対応状況を表示しない
templates/plugins/catalog_order/admin.html の16行目あたりにある
<h3>対応状況</h3>
の部分を、
<h3>対応状況</h3>
<!--{if $freo.user.authority == 'root'}-->
に変更(赤字部分を追加)します。
同じく、templates/plugins/catalog_order/admin.html の下から3行目にある
</table>
の部分を、
</table>
<!--{else}-->
<ul class="attention">
<li>閲覧できません。</li>
</ul>
<!--{/if}-->
に変更(赤字部分を追加)します。
2-1) 注文履歴では注文検索フォームを使用させない
templates/plugins/catalog_order/admin_order.html の22行目あたりにある
<div id="search">
の部分を、
<!--{if $freo.user.authority == 'root'}-->
<div id="search">
に変更(赤字部分を追加)します。
同じく、templates/plugins/catalog_order/admin_order.html の55~56行目あたりにある
</form>
</div>
の部分を、
</form>
</div>
<!--{/if}-->
に変更(赤字部分を追加)します。
2-2) 投稿者自身の注文履歴から印刷用ページを表示させない
templates/plugins/catalog_order/admin_order.html の98行目あたりにある
<!--{if $plugin_catalog_order.zipcode and $plugin_catalog_order.prefecture and $plugin_catalog_order.address}-->
の部分を、
<!--{if $freo.user.authority == 'root' and $plugin_catalog_order.zipcode and $plugin_catalog_order.prefecture and $plugin_catalog_order.address}-->
に変更(赤字部分を追加)します。
3-1) 投稿者自身の注文管理の注文内容からは「対応状況」の変更ができないようにする
templates/plugins/catalog_order/admin_order_form.html の35~37行目あたりにある
<dt>対応状況 <abbr class="attention" title="入力必須">*</abbr></dt>
<dd>
<select name="plugin_catalog_order[status]">
の部分を、
<dt>対応状況 <abbr class="attention" title="入力必須">*</abbr></dt>
<dd>
<select name="plugin_catalog_order[status]"{if $freo.user.authority == 'author'} disabled{/if}>
に変更(赤字部分を追加)します。
3-2) 投稿者自身の注文管理の注文内容からは「メモ」が表示されないようにする
templates/plugins/catalog_order/admin_order_form.html の59~60行目あたりにある
<dt>メモ(注文者には公開されません)</dt>
<dd><textarea name="plugin_catalog_order[admin_text]" cols="50" rows="5"{if $plugin_catalog_order_stat.id == $input.plugin_catalog_order.status} selected="selected"{/if}>{$input.plugin_catalog_order.admin_text}</textarea></dd>
の部分を、
<!--{if $freo.user.authority == 'root'}-->
<dt>メモ(注文者には公開されません)</dt>
<dd><textarea name="plugin_catalog_order[admin_text]" cols="50" rows="5"{if $plugin_catalog_order_stat.id == $input.plugin_catalog_order.status} selected="selected"{/if}>{$input.plugin_catalog_order.admin_text}</textarea></dd>
<!--{/if}-->
に変更(赤字部分を追加)します。
3-3) 投稿者自身の注文管理の注文内容からは「注文者向け連絡事項」の編集ができないようにする
templates/plugins/catalog_order/admin_order_form.html の63~64行目あたりにある
<dt>注文者向け連絡事項(注文者がユーザー用ページで閲覧できます)</dt>
<dd><textarea name="plugin_catalog_order[user_text]" cols="50" rows="5">{$input.plugin_catalog_order.user_text}</textarea></dd>
の部分を、
<dt>注文者向け連絡事項(注文者がユーザー用ページで閲覧できます)</dt>
<dd><textarea name="plugin_catalog_order[user_text]" cols="50" rows="5"{if $freo.user.authority == 'author'} readonly{/if}>{$input.plugin_catalog_order.user_text}</textarea></dd>
に変更(赤字部分を追加)します。
3-4) 逆に管理者の注文管理の注文内容では「注文者からの連絡事項」の編集ができないようにする
templates/plugins/catalog_order/admin_order_form.html の217~218行目あたりにある
<dt>注文者からの連絡事項</dt>
<dd><textarea name="plugin_catalog_order[text]" cols="50" rows="5">{$input.plugin_catalog_order.text}</textarea></dd>
の部分を、
<dt>注文者からの連絡事項</dt>
<dd><textarea name="plugin_catalog_order[text]" cols="50" rows="5"{if $freo.user.authority == 'root'} readonly{/if}>{$input.plugin_catalog_order.text}</textarea></dd>
に変更(赤字部分を追加)します。
4-1) 投稿者自身の注文管理の注文内容からは注文の削除ができないようにする
templates/plugins/catalog_order/admin_order_form.html の76、85行目あたりに、2箇所ある
<th>削除</th>
の部分を、
<!--{if $freo.user.authority == 'root'}-->
<th>削除</th>
<!--{/if}-->
に変更(赤字部分を追加)します。
同じく templates/plugins/catalog_order/admin_order_form.html の95~97行目あたりの
<td>
<a href="{$freo.core.https_file}/catalog_order/admin_order_cart_delete?freo%5Btoken%5D={$token}&id={$freo.query.id}&catalog_id={$catalog.id}" class="delete">削除</a>
</td>
の部分を、
<!--{if $freo.user.authority == 'root'}-->
<td>
<a href="{$freo.core.https_file}/catalog_order/admin_order_cart_delete?freo%5Btoken%5D={$token}&id={$freo.query.id}&catalog_id={$catalog.id}" class="delete">削除</a>
</td>
<!--{/if}-->
に変更(赤字部分を追加)します。
4-2) 投稿者自身の注文管理からは注文の削除ではなくキャンセル依頼に変更する
templates/plugins/catalog_order/admin_order_form.html の215~216行目あたりにある
<!--{if $freo.query.id}-->
<h2>ID.{$freo.config.plugin.catalog.order_prefix}{$freo.query.id}の注文を削除</h2>
の部分を、
<!--{if $freo.query.id and $freo.user.authority == 'root'}-->
<h2>ID.{$freo.config.plugin.catalog.order_prefix}{$freo.query.id}の注文を削除</h2>
に変更(赤字部分を追加)します。
同じく templates/plugins/catalog_order/admin_order_form.html の228~229行目あたりにある
</form>
<!--{/if}-->
の部分を、
</form>
<!--{elseif $freo.query.id and $freo.user.authority == 'author'}-->
<h2>ID.{$freo.config.plugin.catalog.order_prefix}{$freo.query.id}の注文をキャンセル</h2>
<ul>
<li>キャンセル依頼のメールを送信します。</li>
<li>キャンセルしても、ご注文履歴には直ちに反映されません。</li>
<li>一部をキャンセルする場合、以下に詳細をご記入ください。</li>
</ul>
<form action="{$freo.core.https_file}/catalog_order/cancel{if $freo.query.id}?id={$freo.query.id}{/if}" method="post">
<fieldset>
<legend>注文キャンセルフォーム</legend>
<input type="hidden" name="freo[token]" value="{$token}" />
<input type="hidden" name="plugin_catalog_order_cencel[id]" value="{$freo.query.id}" />
<dl>
<dt>連絡事項など</dt>
<dd><textarea name="plugin_catalog_order_cencel[text]" cols="50" rows="5">{$input.plugin_catalog_order_cencel.text}</textarea></dd>
</dl>
<p><input type="submit" value="キャンセルする" /></p>
</fieldset>
</form>
<!--{/if}-->
に変更(赤字部分を追加)します。
さらに templates/plugins/catalog_order/cancel_complete.html を
{include file='header.html'}
<h2>ユーザー用ページ</h2>
<h3>ID.{$freo.config.plugin.catalog.order_prefix}{$freo.query.id}の注文をキャンセル</h3>
<ul>
<li>キャンセル依頼のメールを送信しました。</li>
</ul>
{include file='footer.html'}
から
<!--{if $freo.user.authority == 'author'}-->
{include file='internals/admin/header.html'}
<div id="content">
<h2>注文キャンセル依頼</h2>
<h3>ID.{$freo.config.plugin.catalog.order_prefix}{$freo.query.id}の注文をキャンセル</h3>
<ul>
<li>キャンセル依頼のメールを送信しました。</li>
</ul>
</div>
{include file='internals/admin/footer.html'}
<!--{else}-->
{include file='header.html'}
<h2>ユーザー用ページ</h2>
<h3>ID.{$freo.config.plugin.catalog.order_prefix}{$freo.query.id}の注文をキャンセル</h3>
<ul>
<li>キャンセル依頼のメールを送信しました。</li>
</ul>
{include file='footer.html'}
<!--{/if}-->
に変更(赤字部分を追加)します。
5-1) 注文者管理では投稿者自身の注文者情報しか表示しない
templates/plugins/catalog_order/admin_user.html の17~20行目あたりにある
<ul>
<li>登録された注文者は以下のとおりです。</li>
<li>注文者情報が登録されていないユーザーは、名前が空欄で表示されます。</li>
</ul>
の部分を、
<ul>
<!--{if $freo.user.authority == 'root'}-->
<li>登録された注文者は以下のとおりです。</li>
<li>注文者情報が登録されていないユーザーは、名前が空欄で表示されます。</li>
<!--{elseif $freo.user.authority == 'author'}-->
<li>自身の注文者情報は以下のとおりです。</li>
<!--{/if}-->
</ul>
に変更(赤字部分を追加)します。
同じく templates/plugins/catalog_order/admin_user.html の44~46行目あたりにある
<tbody>
<!--{foreach from=$users|smarty:nodefaults item='user'}-->
<tr>
の部分を、
<tbody>
<!--{foreach from=$users|smarty:nodefaults item='user'}-->
<!--{if $freo.user.authority == 'root' or $freo.user.id == $user.id}-->
<!--{if $user.approved == 'yes'}-->
<tr>
に変更(赤字部分を追加)します。
同じく templates/plugins/catalog_order/admin_user.html の58~60行目あたりにある
</tr>
<!--{/foreach}-->
</tbody>
の部分を、
</tr>
<!--{/if}-->
<!--{/if}-->
<!--{/foreach}-->
</tbody>
に変更(赤字部分を追加)します。
5-2) 注文者登録フォームでは投稿者には管理者用メモの欄を表示しない
templates/plugins/catalog_order/admin_user_form.html の21~24行目あたりにある
<dl>
<dt>管理者用メモ</dt>
<dd><textarea name="plugin_catalog_order_user[admin_text]" cols="50" rows="5">{$input.plugin_catalog_order_user.admin_text}</textarea></dd>
</dl>
の部分を、
<!--{if $freo.user.authority == 'root'}-->
<dl>
<dt>管理者用メモ</dt>
<dd><textarea name="plugin_catalog_order_user[admin_text]" cols="50" rows="5">{$input.plugin_catalog_order_user.admin_text}</textarea></dd>
</dl>
<!--{/if}-->
に変更(赤字部分を追加)します。
関連エントリー
- 2023/09/05 freoのプロフィールやコメントでGravatarのアバターを表示する方法
- 2021/11/14 ショッピングカートプラグインの商品配送方法・料金などの変更
- 2021/09/23 カレンダーの祝日定義の変更・延長
- 2018/06/10 freo用markItUp!拡張版の配布
- 2018/05/12 freoのエントリーのタグ投稿を楽にする方法
- 2018/03/16 freoのエントリーとページの編集画面で添付ファイルとイメージの画像を表示する方法
- 2018/03/16 freoのエントリーとページの編集画面でオプションの画像を表示する方法
- 2018/02/09 freoのエントリーとページの管理画面に閲覧制限情報を表示する
- 2017/06/10 freoのtablesorter.jsを最新版にしてメディアの挿入ファイルを更新日時の新しいもの順に並べる
- 2017/06/10 freoのコメント登録フォームを折りたたむボタン
コメント
- コメントはまだありません。
コメント登録
- コメントを入力してください。
- 一旦登録したコメントは、あとで編集できませんのでご注意下さい。