テーブル用の入力インターフェースを使用する
Ver.2.7.0 から使えるようになったテーブルユニットですが、下の図のように、このインターフェースはカスタマイズ次第でブログやカテゴリー、エントリーのカスタムフィールドとしても利用可能です。ここではその方法について、登録側(管理画面)と表示側に分けてご紹介します。
登録側(管理画面)の記述
以下が、テーブル編集のインターフェースが実装された、カスタムフィールドのサンプルHTMLになります。 IFブロックのELSEの方の記述に、まだカスタムフィールドが保存されていない場合、初期状態で表示したいテーブルのHTMLを記述します。
<div class="js-editable-table-field" style="background-color:#eee;padding:10px;"> <div class="js-editable-table"> <!-- BEGIN_IF [{table}[delnl]/nem] --> {table}[raw] <!-- ELSE --> <table> <tr> <th>サンプル</th> <th>サンプル</th> </tr> <tr> <td>サンプル</td> <td>サンプル</td> </tr> </table> <!-- END_IF --> <input type="hidden" class="js-editable-table-dest" value="{table}" name="table"> <input type="hidden" name="field[]" value="table"> </div> </div>
表側の記述
表示したいテーブルが、{table} という変数の場合は以下のように記述します。エントリーのカスタムフィールドで作成した場合はEntry系モジュールのentry:loop内に記述してください。 また、HTMLをそのまま出力したいので校正オプションである[raw]をつける必要があります。ご注意ください。
{table}[raw]