首页 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}

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PPT蒙版要怎么添加 PPT蒙版要怎么添加 Mar 20, 2024 pm 12:28 PM

PPT蒙版要怎么添加

如何在 OneNote 中使用模板来提高工作效率 如何在 OneNote 中使用模板来提高工作效率 Apr 30, 2023 am 11:31 AM

如何在 OneNote 中使用模板来提高工作效率

C++ 模板特化的影响对于函数重载和重写 C++ 模板特化的影响对于函数重载和重写 Apr 20, 2024 am 09:09 AM

C++ 模板特化的影响对于函数重载和重写

Flask-Bootstrap:为Flask应用程序添加模板 Flask-Bootstrap:为Flask应用程序添加模板 Jun 17, 2023 pm 01:38 PM

Flask-Bootstrap:为Flask应用程序添加模板

Vue中如何实现图片的模板和蒙版处理? Vue中如何实现图片的模板和蒙版处理? Aug 17, 2023 am 08:49 AM

Vue中如何实现图片的模板和蒙版处理?

C++模板和泛型的比较? C++模板和泛型的比较? Jun 04, 2024 pm 04:24 PM

C++模板和泛型的比较?

PHP电子邮件模板:定制化和个性化您的邮件内容。 PHP电子邮件模板:定制化和个性化您的邮件内容。 Sep 19, 2023 pm 01:21 PM

PHP电子邮件模板:定制化和个性化您的邮件内容。

C++ 模板的局限性和如何规避? C++ 模板的局限性和如何规避? Jun 02, 2024 pm 08:09 PM

C++ 模板的局限性和如何规避?

See all articles