ホームページ  >  記事  >  バックエンド開発  >  テンプレートにデータを直接ロードするための Smarty プラグインの作成に関する詳細な紹介_PHP チュートリアル

テンプレートにデータを直接ロードするための Smarty プラグインの作成に関する詳細な紹介_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:02:41820ブラウズ

以前に Smarty を使用していたときは、通常、PHP ターミナルで (通常はデータベースから) データを読み取り、フロントエンドでこの変数を使用する前にテンプレートに変数を割り当てていました。これは悪くありませんが、データが多い場合、特にテンプレート データが多い場合、PHP 側でコードをメンテナンスするのは少し面倒です。

そこで私は、以前の crud クラス実装と組み合わせて、フロントエンド テンプレートでモジュール データをロードできるプラグインを作成しました。

コードをコピーします コードは次のとおりです:

/**
* Smarty プラグイン
* @package Smarty
* @subpackage plugins
 */
/**
* Smarty {load_data} 関数プラグイン
*
* タイプ: function

* 名前: eval

* 目的: テンプレート変数をテンプレートとして評価します

* @link http://smarty. php.net/manual/en/ language.function.eval.php {eval}
* @param array
* @param Smarty
 */
function Smarty_function_load_data($params, &$smarty )
{
$class = (!isset($params['class']) || empty($params['class'])) 'cls_crud' : trim($params['class']);
( !isset($ params['table']) || empty($params['table'])) && exit(''table` は空です!');
$db = $class::factory(array(' table' => ; $params['table']));
//var_dump($params);
if (!empty($params['assign'])) {
//変数 $params[ 'assign' ] このようにして、この変数を利用することができます(例えば、リストを出力することができます)
$ Smarty- & GT; assign ($ Params ['assign'], $ db-& gt; get_block_list ($ Params ['wherere ']), $params['limit']));
}
}
?>

プラグインとして記述されているため、多くのメンテナンスが軽減されることに加えて、もう 1 つの大きな利点があります。このプラグインでデータベースにクエリを実行し、統一された書式設定とフィルタリング操作を実行できることです。
したがって、次のようにフロントエンドにデータをロードできます:
コードをコピーします コードは次のとおりです:

{load_data assign="list" table="test" where=" `id`{foreach from=$list item=rec}
...
{/foreach}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327902.html技術記事以前に Smarty を使用していたときは、通常、PHP ターミナルで (通常はデータベースから) データを読み取り、フロントエンドでこの変数を使用する前にテンプレートに変数を割り当てていました。これは悪いことじゃないですか...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。