1. HOME
  2. 運用を便利にできるかもしれない管理ボックスのカスタマイズ

運用を便利にできるかもしれない管理ボックスのカスタマイズ

a-blog cms Advent Calendar 2020の23日目の記事です。
標準でエントリー作成ボタンなどがある管理ボックスですが、納品時に使用しそうなボタンを用意したり案件でやったことがある内容を少しだけご紹介します。

管理ボックスにボタンを追加する

通常のリンクとしてボタンを置く

<div class="acms-admin-inline-btn">
  <a href="https://kigiroku.com/" class="acms-admin-btn">ラベル</a>
</div>

formでボタンを置く

URLコンテキストに合わせてinputで指定をしていきます。

<form action="#acms_custom" method="post" class="acms-admin-inline-btn">
 <input type="submit" name="ACMS_POST_2GET" value="カテゴリーの編集" class="acms-admin-btn-admin" />
 <input type="hidden" name="admin" value="category_edit" />
 <input type="hidden" name="query" value="edit" />
 <input type="hidden" name="edit" value="update" />
 <input type="hidden" name="bid" value="1" />
 <input type="hidden" name="cid" value="%{CID}" />
</form>

いろいろなボタンを追加してみる

ブログを選択した上でエントリーを作成するボタン

同じくブログとカテゴリーの部分を入れ替えて実装をすれば、カテゴリーを選択した上でエントリーを作成するボタンになります。

<form action="" method="post" class="acms-admin-inline-btn acms-admin-form">
<select name="bid" class="js-select2">
  <option value="1">ルートブログ</option>
  <!-- BEGIN_MODULE Blog_ChildList -->
  <!-- BEGIN blog:loop -->
  <option value="{id}">{name}</option>
  <!-- END blog:loop -->
  <!-- END_MODULE Blog_ChildList -->
</select>
<input type="submit" name="ACMS_POST_2GET" value="<!--T-->エントリー作成<!--/T-->"  class="acms-admin-btn acms-admin-btn-success"/>
<input type="hidden" name="admin" value="entry_editor" />
<input type="hidden" name="cid" value="1" />
</form>

バナーやメインビジュアルなどの設定リンク

フルカラムになっているものや動きがあるものなどはボタンの置き場に困ったり、マウスオーバーの編集リンクでは見にくいなどがあるため管理ボックスに設定することが多いです

<div class="acms-admin-inline-btn">
      <a href="%{HTTP_ROOT}bid/1/admin/module_edit/?mid=111&edit=update#acms_box2" class="acms-admin-btn">スライドバナーの編集</a>
</div>

マニュアルや管理者用ページなどへのリンク

マニュアルや、専用の管理者用ページなどを用意することも多いのでその場合は通常のリンクボタンで設定しています

<div class="acms-admin-inline-btn">
  <a href="https://kigiroku.com/manual.html" class="acms-admin-btn">運用マニュアル</a>
</div>

******
他にも何かあれば追記したいと思います

フォームでボタンを置く時のポイント

 <input type="hidden" name="admin" value="ここに値" />

URLコンテキストでいう /bid/1/eid/1234/admin/****/ のアスタリスクの部分になります。
例:entry_editorやcategory_editor

 <input type="hidden" name="query" value="ここに値" />

URLコンテキストでいう /bid/1/admin/category_edit/?****=update のアスタリスクの部分になります。

 <input type="hidden" name="edit" value="ここに値" />

上で指定したクエリに対して値を挿入します。
URLコンテキストでいう /bid/1/admin/category_edit/?edit=**** のアスタリスクの部分になります。

<input type="hidden" name="bid" value="ここに値" />
<input type="hidden" name="cid" value="ここに値" />

数字やグローバル変数、上のようにモジュールで動的に指定することができます
URLコンテキストでいう /bid/***/cid/***/ のアスタリスクの部分になります。