首頁 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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP電子郵件範本:客製化和個人化您的郵件內容。 PHP電子郵件範本:客製化和個人化您的郵件內容。 Sep 19, 2023 pm 01:21 PM

PHP電子郵件範本:客製化和個人化您的郵件內容隨著電子郵件的普及和廣泛應用,傳統的郵件範本已經無法滿足人們對個人化和客製化郵件內容的需求。現在,我們可以透過使用PHP程式語言來創建客製化和個人化的電子郵件範本。本文將為您介紹如何使用PHP來實現這一目標,並提供一些具體的程式碼範例。一、建立郵件範本首先,我們需要建立一個基本的郵件範本。這個模板可以是一個HTM

PPT蒙版該怎麼添加 PPT蒙版該怎麼添加 Mar 20, 2024 pm 12:28 PM

關於PPT蒙版,很多人肯定對它很陌生,一般人做PPT不會將牠吃透,而是湊活著可以做出來自己喜歡的就行,所以很多人都不知道PPT蒙版到底是什麼意思,也不知道這個蒙版有什麼作用,甚至更不知道它可以讓圖片變得不再那麼單調,想要學習的小伙伴們快來了學習學習,為你的PPT圖片上添上點吧PPT蒙版吧,讓它不再單調了。那麼,PPT蒙版該怎麼添呢?請往下看。 1.首先我們開啟PPT,選擇一張空白的圖片,之後右鍵點選【設定背景格式】,純色選擇顏色就行。 2.點選【插入】,藝術字,輸入字3.點選【插入】,點選【形狀】

C++中的模板元程式設計面試常見問題 C++中的模板元程式設計面試常見問題 Aug 22, 2023 pm 03:33 PM

C++是一門廣泛應用於各領域的程式語言,其模板元程式設計是一種高階程式技術,可讓程式設計師在編譯時對類型和數值進行變換。在C++中,模板元程式設計是一個廣泛討論的話題,因此在面試中,與此相關的問題也是相當常見的。以下是一些可能會被問到的C++中的模板元程式設計面試常見問題。什麼是模板元程式設計?模板元程式設計是一種在編譯時操作類型和數值的技術。它使用模板和元函數來根據類型和值生成

C++ 模板特化的影響對於函式重載與重寫 C++ 模板特化的影響對於函式重載與重寫 Apr 20, 2024 am 09:09 AM

C++模板特化影響函式重載與重寫:函式重載:特化版本可提供特定型別不同的實現,進而影響編譯器選擇呼叫的函式。函數重寫:衍生類別中的特化版本將覆寫基底類別中的模板函數,影響衍生類別物件呼叫函數時的行為。

Vue中如何實現圖片的模板和蒙版處理? Vue中如何實現圖片的模板和蒙版處理? Aug 17, 2023 am 08:49 AM

Vue中如何實現圖片的模板和蒙版處理?在Vue中,我們經常需要對圖片進行一些特殊的處理,例如添加模板效果或加上蒙版。本文將介紹如何使用Vue實現這兩種圖片處理效果。一、圖片模板處理在使用Vue處理圖片時,我們可以利用CSS的filter屬性來實現模板效果。 filter屬性為元素添加圖形效果,其中的brightness濾鏡可以改變圖片的亮度。我們可以透過改變

Flask-Bootstrap:為Flask應用程式新增模板 Flask-Bootstrap:為Flask應用程式新增模板 Jun 17, 2023 pm 01:38 PM

Flask-Bootstrap:為Flask應用程式添加模板Flask是一個輕量級的PythonWeb框架,它提供了一個簡單而靈活的方式來建立網路應用程式。它是一款非常受歡迎的框架,但它的預設模板功能有限。若要建立富有吸引力的使用者介面,需使用其他框架或函式庫。這就是Flask-Bootstrap的用武之地。 Flask-Bootstrap是一個基於Twitter

C++ 模板在實際開發中常見應用有哪些? C++ 模板在實際開發中常見應用有哪些? Jun 05, 2024 pm 05:09 PM

C++模板在實際開發中廣泛應用,包括容器類別模板、演算法模板、泛型函數模板和元編程模板。例如,泛型排序演算法可對不同類型資料的陣列進行排序。

如何在 OneNote 中使用範本來提高工作效率 如何在 OneNote 中使用範本來提高工作效率 Apr 30, 2023 am 11:31 AM

您是否知道使用模板可以提高記筆記的速度以及捕捉重要想法的效率? OneNote有一套現成的範本供您使用。最好的部分是您還可以根據需要設計模板。無論您是學生、企業戰士還是從事創意工作的自由工作者。 OneNote範本可用於以適合您風格的結構和格式記錄重要筆記。範本可以是記筆記過程的大綱。業餘愛好者只是做筆記,專業人士則在模板的幫助下透過結構良好的筆記做筆記並從中汲取聯繫。讓我們看看如何在OneNote中使用範本。使用預設OneNote範本步驟1:按鍵盤上的Windows+R。鍵入Oneno

See all articles