Get Smarty

Donate

Donate Bitcoin Bitcoin
Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Buy cheap glasses from Cheapglasses123.com and save up to 80%.

Where to buy prescription glasses? GlassesPeople.com is your best choice!

Where to buy discount wedding dresses and cheap smart dresses free shipping - Weddingdresstrend.com

Find Wedding Dresses Online at Canada from Ca-dress.com

Discount Wedding Dresses at EvWedding.com

soccer kp is New 2016 Nike Mercurial Superfly V soccer cleats from soccerkpkp.com

Advertisement

テンプレート関数プラグイン

void smarty_function_name( $params,  
  &$smarty);  
array $params;
object &$smarty;
 

テンプレートからテンプレート関数に渡された全ての 属性 は、 連想配列として $params に格納されます。

関数の出力(戻り値)はテンプレート関数のタグの部分と置き換えられます(例: {fetch} 関数)。 あるいは何も出力せずに単に他のタスクを実行する事ができます(例: {assign} 関数)。

関数によっていくつかの変数をテンプレートに割り当てる必要がある、 もしくは Smarty に提供された他の機能を使う必要がある場合は、 提供された $smarty オブジェクトを使用して $smarty->foo() のようにします。

Example 16.1. 出力ありのテンプレート関数プラグイン


<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.eightball.php
 * Type:     function
 * Name:     eightball
 * Purpose:  ランダムに回答を出力する
 * -------------------------------------------------------------
 */
function smarty_function_eightball($params, &$smarty)
{
    $answers = array('はい',
                     'いいえ',
                     'わかりません',
                     '可能性は低い',
                     '今は答えられません',
                     '実はもう実現しているのかも……');

    $result = array_rand($answers);
    return $answers[$result];
}
?>


次のようにテンプレートで使用する事ができます。

質問: 将来、タイムトラベルは実現可能でしょうか?
答え: {eightball}.
    

Example 16.2. 出力なしのテンプレート関数プラグイン


<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.assign.php
 * Type:     function
 * Name:     assign
 * Purpose:  テンプート変数に値を割り当てる
 * -------------------------------------------------------------
 */
function smarty_function_assign($params, &$smarty)
{
    if (empty($params['var'])) {
        $smarty->trigger_error("assign: パラメータ 'var' がありません");
        return;
    }

    if (!in_array('value', array_keys($params))) {
        $smarty->trigger_error("assign: パラメータ 'value' がありません");
        return;
    }

    $smarty->assign($params['var'], $params['value']);
}
?>

      


register_function() および unregister_function() も参照してください。

Comments
No comments for this page.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 4 plus 3? (Are you human?)

Advertisement