ホーム > サポート・マニュアル > 基本からしっかり学ぶ a-blog cms > 基礎編 > カスタムフィールド

基本からしっかり学ぶ a-blog cms

a-blog cms のカスタムフィールドについては、テンプレートを手で書く必要がありますが、その分、自由度が高いフォームを作る事ができます。テーマの章で少し書いたように、a-blog cms では管理ページのテンプレートファイルを、カスタマイズしているテーマのディレクトリにコピーする事でオリジナルの管理ページを作る事ができます。

カスタムフィールドには以下の4種類のものを設定する事ができます。

  • ブログ
  • カテゴリー
  • エントリー
  • ユーザー

カスタムフィールドのタグの基本

以下のようにカスタムフィールドを作る事ができます。どこかでご覧になった事があるかと思います。フォームのHTMLと同様に書く事で a-blog cms のカスタムフィールドを作る事ができると理解して下さい。

表示されるフォームタグ(メールアドレスの入力欄)

<input type="text" name="mailaddress" value="{mailaddress}" />

システムに mailaddress という項目がある事を伝える指定

<input type="hidden" name="field[]" value="mailaddress" />

必須入力を指示するための指定

<input type="hidden" name="mailaddress:validator#required" />

ブログのカスタムフィールド

まず、どこのファイルを修正すればいいかを知る方法からご紹介します。まず、ブログの管理ページのフォームを開いてみます。

以下はローカルPC上にインストールした場合のアドレスになります。レンタルサーバにインストールした際には localhost の部分がオリジナルのドメインになります。

http://localhost/bid/1/admin/blog_edit/?edit=update&step=reapply

このテンプレートファイルは以下のファイルになります。

/themes/system/admin/blog/edit.html

これを site テーマ内で修正するのであれば、以下の場所にコピーして修正する事になります。

/themes/site/admin/blog/edit.html

これが基本ではありますが、この edit.html が次のバージョンアップでメンテナンスが入ってしまう事があるかもしれません。もちろん、このファイルを修正し、しっかりカスタマイズする事も方法としてはあります。

今回、より簡単にカスタムフィールドをカスタマイズ頂けるように、edit.html の中に書かれているインクルードの記述をご紹介します。この記述上の場所は何もファイルが存在しておりません。ですので、カスタマイズ前の段階では何も表示されません。

<!--#include file="/admin/blog/field.html" -->

この場所に field.html を置く事で、あたかも edit.html を修正したかのような効果がある事になります。

/themes/site/admin/blog/filed.html

テキストの入力欄を1つ、プルダウンメニューを1つ追加する際のサンプルは以下のようになります。

<h3>カスタムフィールド サンプル</h3>

<input type="text" name="sample1" value="{sample1}" />
<input type="hidden" name="field[]" value="sample1" />

<select name="sample2">
    <option value="aaa"{sample2:selected#aaa}>aaa</option>
    <option value="bbb"{sample2:selected#bbb}>bbb</option>
    <option value="ccc"{sample2:selected#ccc}>ccc</option>
</select>
<input type="hidden" name="field[]" value="description" />

このようにして多くのカスタムフィールドを設定する事で、柔軟にフォームを作成でき、クライアントに分かりやすいインターフェースを実装する事ができるようになります。

このカスタムフィールドのデータの表示には、Blog_Field というモジュールを利用し、以下のようにテンプレートに記述します。

<!-- BEGIN_MODULE Blog_Field -->
<p> sample1 : {sample1}</p>
<p> sample2 : {sample2}</p>
<!-- END_MODULE Blog_Field -->

エントリーのカスタムフィールド

エントリーのカスタムフィールドについては、いろいろなコントロールが可能です。例えば、このカテゴリーの時とか、このブログの時、このエントリーの時のみというように、同じエントリーのフォームで違うフォームを表示させる事ができれば、必要ところで必要なカスタムフィールドのみを表示させる事が可能になります。

ブログのカスタムフィールドの時と同様にエントリーのカスタムフィールド用の field.html を用意します。

/themes/site/admin/entry/filed.html

内容としては、以下のように記述します。

    <!--#include file="/admin/entry/blog%{BID}.html" -->
    <!--#include file="/admin/entry/category%{CID}.html" -->
    <!--#include file="/admin/entry/entry%{EID}.html" -->

グローバル変数とインクルードを利用して、特定のブログや、カテゴリー、エントリーの時にのみ読み込むファイルを用意します。例えば、カテゴリーIDが 1 の時には以下のようなファイルを用意します。

/themes/site/admin/entry/category1.html

エントリーのカスタムフィールドについては、エントリーについては修正時点でないとIDが確定していません。カテゴリーのプルダウンで変更してもカスタムフィールドは変化しませんので、注意する必要があります。


関連エントリー

このエントリーについているタグから関連するエントリーを表示しています。


携帯アクセス解析