编写Smarty插件在模板中直接加载数据的详细介绍
本篇文章是对编写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}

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP email templates: Customize and personalize your email content With the popularity and widespread use of email, traditional email templates can no longer meet people's needs for personalized and customized email content. Now we can create customized and personalized email templates by using PHP programming language. This article will show you how to use PHP to achieve this goal, and provide some specific code examples. 1. Create an email template First, we need to create a basic email template. This template can be an HTM

Regarding PPT masking, many people must be unfamiliar with it. Most people do not understand it thoroughly when making PPT, but just make it up to make what they like. Therefore, many people do not know what PPT masking means, nor do they understand it. I know what this mask does, and I don’t even know that it can make the picture less monotonous. Friends who want to learn, come and learn, and add some PPT masks to your PPT pictures. Make it less monotonous. So, how to add a PPT mask? Please read below. 1. First we open PPT, select a blank picture, then right-click [Set Background Format] and select a solid color. 2. Click [Insert], word art, enter the word 3. Click [Insert], click [Shape]

C++ template specializations affect function overloading and rewriting: Function overloading: Specialized versions can provide different implementations of a specific type, thus affecting the functions the compiler chooses to call. Function overriding: The specialized version in the derived class will override the template function in the base class, affecting the behavior of the derived class object when calling the function.

C++ is a programming language widely used in various fields. Its template metaprogramming is an advanced programming technique that allows programmers to transform types and values at compile time. Template metaprogramming is a widely discussed topic in C++, so questions related to it are quite common in interviews. Here are some common template metaprogramming interview questions in C++ that you may be asked. What is template metaprogramming? Template metaprogramming is a technique for manipulating types and values at compile time. It uses templates and metafunctions to generate based on types and values

How to implement image template and mask processing in Vue? In Vue, we often need to perform some special processing on images, such as adding template effects or masks. This article will introduce how to use Vue to achieve these two image processing effects. 1. Image template processing When using Vue to process images, we can use the filter attribute of CSS to achieve template effects. The filter attribute adds graphic effects to the element, and the brightness filter can change the brightness of the picture. we can change

Flask-Bootstrap: Adding templates to Flask applications Flask is a lightweight Python web framework that provides a simple and flexible way to build web applications. It is a very popular framework, but its default templates have limited functionality. To create attractive user interfaces, use additional frameworks or libraries. This is where Flask-Bootstrap comes in. Flask-Bootstrap is a Twitter-based

Did you know that using templates can make you faster at note-taking and more effective at capturing important ideas? OneNote has a set of ready-made templates for you to use. The best part is that you can also design the template according to your needs. Whether you are a student, a corporate warrior or a freelancer doing creative work. OneNote templates can be used to record important notes in a structure and format that suits your style. A template can be an outline of a note-taking process. Amateurs just take notes, professionals take notes and draw connections from them through well-structured notes with the help of templates. Let's see how to use templates in OneNote. Use Default OneNote Template Step 1: Press Windows+R on your keyboard. Type Oneno

The difference between templates and generics in C++: Templates: defined at compile time, clearly typed, high efficiency, and small code size. Generics: runtime typing, abstract interface, provides flexibility, low efficiency.
