モジュールが出力する変数の表示を加工したい

説明

a-blog cmsでは、各モジュールがそれぞれ出力する変数(情報)の内容を、指定した規則にしたがって加工・編集することができます。

回答

校正オプション:リファレンス」を参考に、表示する変数の後ろに校正オプションの記述を追加してください。

校正オプションは変数の内容を、最終的に出力する前に指定した内容で変換します。以下に例として一部を示します。

数字のカンマ区切り : [number_format] 数字を千位毎にカンマ区切りにします

改行をHTMLに変換 : [nl2br] 改行コードを <br /> に変換します

一行をリストのHTMLに変換 : [list] 一行ごとに <li> ~ </li> に変換します

カスタムフィールドを動的化してみよう

通常カスタムフィールドを変更しようと思った場合にはテンプレートを修正する必要が出てきます。 ですがカスタムフィールドをカスタムフィールドで作るといったカスタムフィールドの動的化をすることによってテンプレートを触ることなくカスタムフィールドが変更できるようになります。

カスタマイズ

今回はsimple2016の物件情報の最寄り駅選択肢を動的化していきます。

カスタムフィールドのメタ情報の準備

まずは、選択肢を追加するためのカスタムフィールドを作っていきます。今回はブログのカスタムフィールドを利用してみたいと思います。 /themes/simple2016/admin/blog/field.html に以下のコードを追加します。

新規作成時と更新時のカスタムフィールドを分ける方法

新規作成画面のチェックボックスに値が入っている


今回は、Ver.2.0から使用できるIFブロックを使って、新規作成時と更新時のカスタムフィールドを分ける方法をご紹介します。サンプルではは新規保存時は値が入っているチェックボックスと、値が入っていないチェックボックスを作成します。

以前のVer.1.x系でも新規作成時と更新時のカスタムフィールドを分けることはできましたが、IFブロックを使うことによってedit.htmlを編集する必要がなくなります。a-blog cmsをバージョンアップしても最新のedit.htmlを使うことができ、メンテナンスもやりやすくなります。

デモサイトのようにタイトルや説明を変更したい

カスタムフィールドによる情報の書き換え

a-blog cmsのデモサイトでは、サイトタイトルや説明、フッターのテキストはカスタムフィールド(自由に追加できるエントリー、カテゴリー、ブログ固有の入力フィールド)でできています。

ブログのカスタムフィールドはご利用のテーマに /admin/blog/field.html を置くことで読み込むことができます。

ブログカスタムフィールドの記述に関するファイル

/themes/(ご利用のテーマ)/admin/blog/field.html

a-blog cmsをダウンロードしていただき、v2.0 以降に同梱されている「site2014」テーマのブログカスタムフィールドを参考にしてみてください。

site2014のブログカスタムフィールドの記述に関するファイル

/themes/site2014/admin/blog/field.html

表示されていないカスタムフィールドの値を削除しないようにする

通常、エントリーデータの変更時にはカスタムフィールドの値は全更新が行われます。そのエントリー ※1 に登録されているカスタムフィールドの値を全て削除したのちに、入力されている値を登録します。
例えば、新規エントリー登録時には、カスタムフィールドとしてTEL、FAXの項目があったとします。編集時に入力項目としてTELしかなかった場合 ※2 編集データの登録が行われると画面になかったFAXの値は削除されます。
※1 カテゴリーのカスタムフィールド、ブログのカスタムフィールドも同様です。
※2 hiddenではなくHTMLのソース上に存在しないの意味

全て削除してから登録するのではなく、画面に存在している値のみ上書きするには、下記の2行を field.html の中にご記入ください。

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