Maison php教程 php手册 编写Smarty插件在模板中直接加载数据的详细介绍

编写Smarty插件在模板中直接加载数据的详细介绍

Jun 06, 2016 pm 08:29 PM
模板

本篇文章是对编写Smarty插件在模板中直接加载数据进行了详细的分析介绍,需要的朋友参考下

之前使用smarty的时候,通常是在php程序端读取数据(一般从数据库),网站空间,然后assign给模板的变量,才可以在前端使用这个变量。这样不是不好,只是数据多的时候php端的代码维护起来有点麻烦,特别是当存在很多模板块化得数据时。

所以写了个插件,美国空间,结合之前的crud类实现在前端模板可以加载一些模块化得数据。

复制代码 代码如下:


/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
/**
* Smarty {load_data} function plugin
*
* Type: function

* Name: eval

* Purpose: evaluate a template variable as a template

* @link {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` is empty!');
$db = $class::factory(array('table' => $params['table']));
//var_dump($params);
if (!empty($params['assign'])) {
//把数据赋值给变量$params['assign'],这样前端就可以使用这个变量了(例如可以结合foreach输出一个列表等)
$smarty->assign($params['assign'], $db->get_block_list(array($params['where']), $params['limit']));
}
}
?>


写成插件除了可以减少很多维护之后,网站空间,还有一个显著的好处就是可以在这个插件中对查询数据库的操作进行统一的格式化和过滤操作。
这样在前端就可以这样加载数据了:

复制代码 代码如下:


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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Musée à deux points: toutes les expositions et où les trouver
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Musée à deux points: toutes les expositions et où les trouver
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ajouter un masque PPT Comment ajouter un masque PPT Mar 20, 2024 pm 12:28 PM

Comment ajouter un masque PPT

Comment utiliser des modèles dans OneNote pour améliorer la productivité Comment utiliser des modèles dans OneNote pour améliorer la productivité Apr 30, 2023 am 11:31 AM

Comment utiliser des modèles dans OneNote pour améliorer la productivité

Effets de la spécialisation des modèles C++ sur la surcharge et la réécriture des fonctions Effets de la spécialisation des modèles C++ sur la surcharge et la réécriture des fonctions Apr 20, 2024 am 09:09 AM

Effets de la spécialisation des modèles C++ sur la surcharge et la réécriture des fonctions

Flask-Bootstrap : ajout de modèles aux applications Flask Flask-Bootstrap : ajout de modèles aux applications Flask Jun 17, 2023 pm 01:38 PM

Flask-Bootstrap : ajout de modèles aux applications Flask

Comment implémenter le traitement des modèles d'images et des masques dans Vue ? Comment implémenter le traitement des modèles d'images et des masques dans Vue ? Aug 17, 2023 am 08:49 AM

Comment implémenter le traitement des modèles d'images et des masques dans Vue ?

Comparaison des modèles C++ et des génériques ? Comparaison des modèles C++ et des génériques ? Jun 04, 2024 pm 04:24 PM

Comparaison des modèles C++ et des génériques ?

Modèles d'e-mails PHP : personnalisez et personnalisez le contenu de vos e-mails. Modèles d'e-mails PHP : personnalisez et personnalisez le contenu de vos e-mails. Sep 19, 2023 pm 01:21 PM

Modèles d'e-mails PHP : personnalisez et personnalisez le contenu de vos e-mails.

Limitations des modèles C++ et comment les contourner ? Limitations des modèles C++ et comment les contourner ? Jun 02, 2024 pm 08:09 PM

Limitations des modèles C++ et comment les contourner ?

See all articles