エントリー

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}&amp;id={$freo.query.id}&amp;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}&amp;id={$freo.query.id}&amp;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}-->

に変更(赤字部分を追加)します。

ページ移動

関連エントリー

コメント

  • コメントはまだありません。

コメント登録

  • コメントを入力してください。
  • 一旦登録したコメントは、あとで編集できませんのでご注意下さい。
登録フォーム

基本的には「全体に公開」されますが、内容によっては管理人の方で公開を制限する場合がありますので、その旨ご了承下さい。

ユーティリティ

2024年04月

- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -

キーワード検索

キーワード検索フォーム

ユーザー

  • cccのアバター

新着画像

ブログパーツ

Twitter

Twilogを見る

Feed