Get Smarty

Donate

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

Advertisement

{include_php}

重要な注意

{include_php} は Smarty では非推奨になりました。 プラグインを登録して使い、プレゼンテーションとアプリケーションのコードを適切に分離するようにしましょう。

属性名 必須 デフォルト 概要
file string Yes n/a インクルードする PHP ファイルの絶対パス
once boolean No TRUE 同じ PHP ファイルが複数回インクルードされた場合に、一度だけインクルードするかどうか
assign string No n/a include_php の出力を格納する変数名

オプションのフラグ

名前 概要
nocache インクルードした PHP スクリプトのキャッシュを無効にする

{include_php} タグを使用して、PHP スクリプトをテンプレートにインクルードします。 属性 file のパスには、絶対パスあるいは $trusted_dir からの相対パスを指定することができます。セキュリティが有効な場合は、スクリプトは セキュリティポリシーの $trusted_dir で指定したパスに存在する必要があります。 詳細は セキュリティ の節を参照ください。

デフォルトでは、PHPファイルはテンプレート内で複数回呼ばれても一度しかインクルードしません。 once 属性によって毎回インクルードするべきかどうかを指定できます。 この属性を FALSE に設定すると、テンプレート内でインクルードの指示がある毎に PHP スクリプトをインクルードします。

オプションで assign 属性を渡すこともできます。 これは、{include_php} の出力をブラウザに表示させる代わりに 変数に格納したい場合に、その変数名を指定します。

Smarty オブジェクトは、インクルードした PHP スクリプト内で $_smarty_tpl->smarty として使用可能です。

Example 7.52. {include_php} 関数

load_nav.php ファイル


<?php

// mysql データベースから変数の値を読み込み、それをテンプレートに割り当てます
require_once('database.class.php');
$db = new Db();
$db->query('select url, name from navigation order by name');
$this->assign('navigation', $db->getRows());

?>

  

テンプレート


{* 絶対パス、あるいは $trusted_dir からの相対パス *}
{include_php file='/path/to/load_nav.php'}
{include_php '/path/to/load_nav.php'}             {* 短縮形 *}

{foreach item='nav' from=$navigation}
  <a href="{$nav.url}">{$nav.name}</a><br />
{/foreach}

  

{include}$trusted_dir{php}{capture}テンプレートリソース および コンポーネント化したテンプレート も参照ください。

Comments
No comments for this page.

Advertisement