任意の編集ページに遷移するボタン

衝動的にブログ更新

a-blog cmsでログイン直後にトップページから直接エントリー作成を押すと、カテゴリーが指定されていない状態でエントリー作成画面が表示されますね。これだと運用者がシステムの運用に不慣れな場合には、カテゴリーの選択し忘れなどのヒューマンエラーにつながることも考えられます。

そこで例えば、「商品情報を追加」のような決められた動作を促すボタンを作る方法を紹介してみます。

./themes/system/admin/action.html

このファイルは、いわゆるログインした後に表示される「エントリー作成」や「管理ページ」というボタンが含まれる部分のテンプレートです。そこからエントリー作成ボタンの部分を抜粋。

<input type="submit" name="ACMS_POST_2GET" value="エントリー作成" />
<input type="hidden" name="admin" value="entry-edit" />
<input type="hidden" name="bid" value="%{BID}" />
<input type="hidden" name="cid" value="%{CID}" />

ACMS_POST_2GET?

これはボタンを押した後に移動するURLを作って、そのURLに遷移するためのモジュールです。ここに遷移先ページのカテゴリーIDを指定している部分があります。

<input type="hidden" name="cid" value="%{CID}" />

%{CID}としてカテゴリーIDが指定されていますね。これは、カテゴリー情報を含むページにいればそのカテゴリーのCIDが入力されますが、トップページにはカテゴリー情報がないので、ここが空白になり、エントリー作成時にはカテゴリーが指定されていない状態で画面が開きます。

じゃあ固定しちゃいましょう

<input type="submit" name="ACMS_POST_2GET" value="商品を追加する" />
<input type="hidden" name="admin" value="entry-edit" />
<input type="hidden" name="bid" value="%{BID}" />
<input type="hidden" name="cid" value="2" />

こんな感じでカテゴリーIDを2に指定しました。company1テーマをインストールした際の商品紹介のカテゴリーIDですね。こうすることでログイン直後にボタンを1つ押すだけで、商品紹介にエントリーを追加する画面に遷移させることができます。

たくさんのページをラクにつくる

更新箇所がある程度限られているのであれば、このようなボタンを作ることで運用者の操作を導くことができるようになります。

さらにユニット設定から新規作成時のカラム構成や必ず入力するような内容を雛形として用意することで、日々の更新がとてもラクになりますね。

試せそうな場面があればゼヒお試しください。

余談

<input type="hidden" name="admin" value="entry-edit" />

ここを編集することで管理ページの中の深層(例えばバナーのコンフィグとか)に誘導するボタンも作成できます。

<input type="submit" name="ACMS_POST_2GET" value="バナーの設定" />
<input type="hidden" name="bid" value="%{BID}" />
<input type="hidden" name="admin" value="config_banner" />
<input type="hidden" name="mid" value="3" />
<input type="hidden" name="query[]" value="mid" />

とか追加するとモジュールIDのID(変な表現ですが、ようはデータベース上の数字のID)が、3であるバナーモジュールの設定に遷移することもできます。たぶん。