テンプレートメソッド
メソッド名 | 解説 | サンプル |
---|---|---|
uc() | 大文字にします。 |
<?= $user_id->uc(); ?> [出力例] ABCDEFG |
lc() | 小文字にします。 |
<?= $user_id->lc(); ?> [出力例] abcdefg |
wrap() | 第一引数と第二引数で囲みます。 |
<?= $name->wrap('拝啓 ',' 様'); ?> [出力例] 拝啓 山田太郎 様 |
tail() | 指定文字を末尾に付けます。 |
<?= $name->tail(' 様'); ?> [出力例] 山田太郎 様 |
def() | 現在値がなければ引数に指定された値にします。 |
<input name="onamae" value="<?= $onamae-> def('さんぷる太郎'); ?>"> |
indent() | 行頭に指定の文字を挿入します。複数選択なら、自動で \n で連結してから行います。 |
<?= $colors->indent(' ・') ?> [出力例] ・赤 ・青 ・黄 |
mask() | 文字列を第一引数の文字でマスクします。第二引数には露わにする個数を指定できます。 |
<?= $cardnum->mask('*',4) ?> [出力例] ************1234 |
file_org_name() | アップロードファイルのオリジナルファイル名にします。 |
<?= $img1->file_org_name() ?> [出力例] ねこにゃんにゃん.jpg |
file_tmp_name() | アップロードファイルの一時ファイル名にします。 |
<?= $img1->file_tmp_name() ?> [出力例] fk-ainBF8.jpg |
---|---|---|
file_size() | アップロードファイルのファイルサイズにします。 |
<?= $img1->file_size() ?> [出力例] 123465 |
file_type() | アップロードファイルのファイルタイプにします。 |
<?= $img1->file_type() ?> [出力例] image/jpg |
file_width() | アップロードファイルの横幅ピクセル数を出力します。 |
<?= $img1->file_width() ?> [出力例] 640 |
file_height() | アップロードファイルの高さピクセル数を出力します。 |
<?= $img1->file_height() ?> [出力例] 480 |
file_preview() | アップロードファイルのプレビューURLを出力します。 |
<?= $img1->file_preview() ?> [出力例] /contact/formkit/index.php?pv=fk-ainBF8.jpg |
is_image() | アップロードファイルが画像なら true を返します。 |
<?= $img1->is_image() ? '画像' : '画像以外' ?> [出力例] 画像 |
file_preview_tag() |
アップロードファイルのプレビュー用タグにします。主に確認画面で使用します。引数には細かい設定を配列で渡せます。 is_link
画像サムネイルの最大横幅を指定(標準 画像サムネイルの最大高さを指定(標準 未選択時の表示文字列を指定(標準 設定ファイルの$Config['empty_label']) |
<?= $img1->file_preview_tag (array('is_link_target'=>false)); ?> [出力例] <a href="/contact/formkit/check.php?pv=fk-ainBF8.jpg" class="fk-preview-link image-file" target="_blank"><img src="/contact/formkit/check.php?pv=fk-ainBF8.jpg" style="max-width:50px;max-height:50px;" class="fk-preview-image" alt="*"><span class="fk-preview-filename">ねこにゃんにゃん.jpg</span></a> |
file_control_tag() | アップロード済みファイルの情報表示用タグにします。主に入力画面の再表示時に出力されます。 |
<?= $img1->file_control_tag(); ?> [出力例] <div class="fk-file-control"><a href="/contact/formkit/index.php?pv=fk-ainBF8.jpg" class="fk-preview-link image-file" target="_blank"><img src="/contact/formkit/index.php?pv=fk-ainBF8.jpg" style="max-width:50px;max-height:50px;" class="fk-preview-image" alt="*"><span class="fk-preview-filename">ねこにゃんにゃん.jpg</span></a><label class="fk-file-control-delete"><input type="checkbox" name="img1[delete]" class=""></label></div> |
file_upped() | ファイルがアップロードされているかを返します。 |
<?= $img1->file_upped() ? 'アップ済み' : '未アップ'; ?> [出力例] アップ済み |
int() | 整数にします。 |
<?= $data->int(); ?> [出力例] 100 |
comma() | コンマ付き数値にします。 |
<?= $data->comma(); ?> [出力例] 10,000 |
join() | 複数値の要素の場合に、指定の文字列で連結します。 |
<?= $colors->join('、'); ?> [出力例] 赤、青、黄 |
is_set() | 定義済みのデータかどうかを返します。 |
<?= $data->is_set() ? '定義済み' : '未定義'; ?> [出力例] 定義済み |
is_exist() | データが存在しているかどうか(データ幅が1以上か)を返します。 |
<?= $data->is_exist() ? '存在' : 'ない'; ?> [出力例] 存在 |
checked() | 第一引数にマッチする値があれば checked を返します。修正画面などですでに選択されているようにできます。尚、第二引数に true を指定するとその値がデフォルトで選択されます。 |
<input type="colors" value="赤"<?= $colors->checked('赤') ?>> <input type="colors" value="青"<?= $colors->checked('青') ?>> <input type="colors" value="黄"<?= $colors->checked('黄') ?>> |
selected() | 第一引数にマッチする値があれば selected を返します。修正画面などですでに選択されているようにできます。尚、第二引数に true を指定するとその値がデフォルトで選択されます。 |
<select name="data"> <option value="データ1"<?= $data->selected('データ1') ?>></option> <option value="データ2"<?= $data->selected('データ2') ?>></option> <option value="データ3"<?= $data->selected('データ3') ?>></option> </select> |
error() | 該当要素のバリデートエラーメッセージをセットするまたは返します。 |
<?php $error_message = $data->error(); $data->error(($error_message.'ご確認下さい。')); ?> |
error_tag() | エラー表示用タグを出力します。基本的には入力要素の近くに配置するのが分かりやすいです。 |
<?= $onamae->error_tag(); ?> [出力例] <div data-fk-error="onamae" class="fk-error"><span></span></div> |
marker_tag() | マーカー表示用タグを出力します。基本的には入力要素の近くに配置するのが分かりやすいです。 |
<?= $onamae->marker_tag(); ?> [出力例] <span data-fk-marker="onamae" class="fk-marker"></span> |
link_tag() | データをリンクのタグにして返します。 |
<?= $url->link_tag(); ?> [出力例] <a href="http://aa" target="_blank">http://aa</a> |
auto_link_tag() | テキストデータ中にリンク(URL、メールアドレス)があれば自動的にすべてリンクタグで囲みます。引数が true の場合は別ウィンドウへのリンクになります。 |
<?= $message->auto_link_tag(true); ?> [出力例] url is <a href="http://aa" target="_blank">http://aa</a> . |
mail_link_tag() | データをメールリンクのタグにして返します。 |
<?= $mail->mail_link_tag('メール'); ?> [出力例] <a href="mailto:test@test.test">メール</a> |
empty_label() | 空データの時に指定文字を出力する |
<?= $data->empty_label('(未選択)'); ?> // 空なら「(未選択)」と表示する <?= $data->empty_label(); ?> // 空ならなにも出力しない。 |
テンプレートメソッド:特殊変数
メソッド名 | 解説 | サンプル値 |
---|---|---|
$__COUNT__ | 送信カウント値を出力します。メールテンプレートやCSVの値で使用できます。(設定ファイルで送信カウント設定を有効にしておく必要があります)また、送信時にしか使用できないため、フォームテンプレートに記述しても正常に機能しません。 | 50 |
$__DATE__ | PHP実行時の日付を出力します。 | 2017-03-29 |
$__TIME__ | PHP実行時の時間を出力します。 | 11:48:35 |
$__DATEJP__ | PHP実行時の日付を日本語形式で出力します。 | 2017年03月29日 |
$__TIMEJP__ | PHP実行時の時間を日本語形式で出力します。 | 11時48分35秒 |
$__UA__ | ブラウザのユーザーエージェント名を出力します。 | Mozilla/5.0 (Windows... |
$__IP__ | IPアドレスを出力します。 | 127.0.0.1 |
$__HOST__ | ホスト名を出力します。 | host.example.jp |
テンプレートメソッドの自作
既存のテンプレートメソッドは、formkit/lib/template-methods/
内に入っており、ここに自作したPHPファイルを配置することで新たにテンプレートメソッドを追加することが出来ます。以下、サンプルで hoge()
というメソッドを作成します。(慣例的に小文字で作成して下さい)また、ここで注意して欲しいのは、引数で入ってくるデータは一度 conv_in()
関数を通す必要があるということです。これはテンプレート文字コードが UTF-8 でない場合に一度UTF-8に変換してから操作する必要があるためです。以下、サンプルを記載しますので、コピペしてご利用下さい。
ファイルの冒頭に必ず namespace FK;
を記述して下さい。
namespace FK; function __hoge($element, $head=null, $tail=null) { if($element->is_exist()) { $element->val = conv_in($head) . $element->val . conv_in($tail); } return $element; }
第一引数で入ってくる $element
オブジェクトは要素ごとのオブジェクトです。基本的には $element->val
に現在の要素の値が入っているのでそれを操作して書き換えればOKです。その他のメンバー変数は formkit/lib/FormKitElement.php
で定義しているので、詳細はこちらを参照していただければと存じます。
これで、フォームテンプレートやメールテンプレートで hoge()
が使えるようになります。以下、使用サンプルです。
<?= $onamae->hoge('The','くん') ?> ↓ The 山田太郎 くん
テンプレート中で使えるヘルパー関数
要素オブジェクトのメソッドではなく、通常のPHP関数としてよく使いそうなものを用意しましたので是非ご利用下さい。
テンプレート中で使用する際には以下のように必ず頭に \FK\
が付きますが、 config.php
内など冒頭で namespace FK;
を宣言しているファイルで使用する場合は \FK\
は必要ありません。(書いてもいいですが)
ヘルパー関数名 | 解説 | サンプル |
---|---|---|
\FK\marker_tag(要素名) | 指定の要素名でマーカータグを返します。$要素名->marker_tag() が使えないときなどの代替えです。 |
<?= \FK\marker_tag('mail') ?> |
\FK\error_tag(要素名) | 指定の要素名でエラータグを返します。$要素名->error_tag() が使えないときなどの代替えです。 |
<?= \FK\error_tag('mail') ?> |
\FK\hiddens_tag() | FormKitで生成した次の画面へ渡す情報をまとめたinputタグを出力します。必ず各ページの <form > 内に記述して下さい。 |
~ <noscript>JavaScriptを有効にして下さい。</noscript> <form action="agree.php" method="post" enctype="multipart/form-data"> <?= \FK\hiddens_tag() ?> <table> ~ |
\FK\element(要素名) | バリデート定義の FUNC() 内で使いたい要素を宣言するときの関数です。 |
$Config['validate'] = [ 'list' => [ 'user' => FUNC(function($me){ $tall = element('tall'); if($tall->val >= 200) return true; $me->error = 'BAN!'; return false; }), ~ |
\FK\clean(文字列) | 前後の空白や改行を除去して綺麗にします。配列でも再帰的に処理します。 |
$new_data = \FK\clean(" あい\nう "); // →「あいう」 |
\FK\error_page(メッセージ,ステータスコード,詳細情報) |
formkit/lib/error.php テンプレートを使い、エラーページを出力したのちプログラムをそこで終了します。
|
\FK\error_page( 'ページが見つかりません。', 404, array('情報1','情報2','情報3') ); |
\FK\post_only() | POST通信以外の場合に、設定していた再入力URLに自動的にジャンプします。 |
post_only(); |
\FK\arr2csv(データ,文字エンコード) | 指定の文字コードで変数からCSVデータを返す関数です。 |
$csv_data = \FK\arr2csv( array( ['データ1','たろう',30], ['データ2','はなこ',32], ), ); |
\FK\echo_mode(出力モード) | 出力モード切替関数です。入力画面では input モード、確認画面では view モードで、要素の値の出力の形を変更しています。それを手動でモード変更できる関数です。一時的に出力モードを変更したい場合などに使用できます。 |
\FK\echo_mode('input'); // input出力モードに切り替え \FK\echo_mode('view'); // view出力モードに切り替え \FK\echo_mode('mail'); // mail出力モードに切り替え \FK\echo_mode('csv'); // csv出力モードに切り替え |
\FK\options_tag(リスト,選択済みにさせたい要素または文字列,デフォルト値) | <options>タグを一挙に出力します。第二引数に要素オブジェクト変数を指定すると、現在の値とマッチするものが選択済みになります。 |
<select name="year"> <option value="">---</option> <?= \FK\options_tag(range(date('Y'),date('Y')+3), $year, date('Y')) ?> </select> 年 <select name="month"> <option value="">---</option> <?= \FK\options_tag(range(1,12), $month ?> </select> 月 <select name="day"> <option value="">---</option> <?= \FK\options_tag(range(1,31), $day ?> </select> 日 |
\FK\pref_options_tag(選択済みにさせたい要素または文字列,デフォルト値) | 都道府県名の <option> タグを一挙に出力します。第一引数と第二引数は、上記 \FK\options_tag() 関数の第二引数と第三引数と同じ指定です。 |
<select name="pref"> <?= \FK\pref_options_tag($pref, '宮城県') ?> </select> |
\FK\h(文字列) | HTML文字をエスケープをします。 |
echo \FK\h('123'); // → <span>123</span>
|
\FK\n(文字列) | 改行コードを消します。 |
echo \FK\n("123\n456\n789"); // → 123456789 |
\FK\run_date(フォーマット) | スクリプトが実行された時間で date() 関数を実行します。引数は date() と同じものが指定できます。 |
echo \FK\run_date('H:i:s'); // → 11:39:56 |
\FK\conv_in(文字列) | テンプレートに書いたメソッドの引数データなどを内部文字コード(UTF-8)に変換して使えるようにします。実行モードによって変換元の文字コードが違います。input,viewモード時はフォームテンプレートファイルの文字エンコード設定を、mailモード時はメールテンプレートファイルの文字エンコード設定を元に変換します。主にメソッド自作等で使います。 |
$args1 = \FK\conv_in($args1); |
\FK\conv_out(文字列) | input,viewモード時に、フォームテンプレート文字コードに変換します。 |
$out = \FK\conv_out($data); |
\FK\copyright_tag() | FormKitのコピーライトを出力します。ライセンスコードを購入・設置していない場合はコピーライトの表示は必須になります。 |
<?= \FK\copyright_tag() ?> |