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

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

Jun 06, 2016 pm 08:29 PM
templat

本篇文章是对编写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}

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menambah topeng PPT Bagaimana untuk menambah topeng PPT Mar 20, 2024 pm 12:28 PM

Berkenaan PPT masking, pasti ramai yang tidak faham dengannya ketika membuat PPT, tetapi hanya mengada-ngada untuk membuat apa yang mereka suka Oleh itu, ramai yang tidak tahu apa itu PPT masking, dan mereka juga tidak faham Saya tahu apa yang dilakukan oleh topeng ini, dan saya tidak tahu bahawa ia boleh menjadikan gambar itu kurang membosankan. Jadi, bagaimana untuk menambah topeng PPT? Sila baca di bawah. 1. Mula-mula kita buka PPT, pilih gambar kosong, kemudian klik kanan [Set Background Format] dan pilih warna pepejal. 2. Klik [Insert], word art, masukkan perkataan 3. Klik [Insert], klik [Shape]

Kesan pengkhususan templat C++ pada kelebihan beban dan mengatasi fungsi Kesan pengkhususan templat C++ pada kelebihan beban dan mengatasi fungsi Apr 20, 2024 am 09:09 AM

Pengkhususan templat C++ mempengaruhi lebihan beban dan penulisan semula fungsi: Kelebihan beban fungsi: Versi khusus boleh menyediakan pelaksanaan berbeza bagi jenis tertentu, sekali gus menjejaskan fungsi yang dipilih pengkompil untuk memanggil. Mengatasi fungsi: Versi khusus dalam kelas terbitan akan mengatasi fungsi templat dalam kelas asas, menjejaskan kelakuan objek kelas terbitan apabila memanggil fungsi.

Cara menggunakan templat dalam OneNote untuk meningkatkan produktiviti Cara menggunakan templat dalam OneNote untuk meningkatkan produktiviti Apr 30, 2023 am 11:31 AM

Adakah anda tahu bahawa menggunakan templat boleh menjadikan anda lebih pantas dalam mencatat nota dan lebih berkesan untuk menangkap idea penting? OneNote mempunyai set templat siap sedia untuk anda gunakan. Bahagian yang terbaik ialah anda juga boleh mereka bentuk templat mengikut keperluan anda. Sama ada anda seorang pelajar, pahlawan korporat atau pekerja bebas yang melakukan kerja kreatif. Templat OneNote boleh digunakan untuk merekodkan nota penting dalam struktur dan format yang sesuai dengan gaya anda. Templat boleh menjadi garis besar proses pengambilan nota. Amatur hanya mencatat nota, profesional mengambil nota dan menarik sambungan daripada mereka melalui nota tersusun dengan bantuan templat. Mari lihat cara menggunakan templat dalam OneNote. Gunakan Templat OneNote Lalai Langkah 1: Tekan Windows+R pada papan kekunci anda. TypeOneno

Flask-Bootstrap: Tambahkan templat pada aplikasi Flask Flask-Bootstrap: Tambahkan templat pada aplikasi Flask Jun 17, 2023 pm 01:38 PM

Flask-Bootstrap: Menambah templat pada aplikasi Flask Flask ialah rangka kerja web Python ringan yang menyediakan cara mudah dan fleksibel untuk membina aplikasi web. Ia adalah rangka kerja yang sangat popular, tetapi templat lalainya mempunyai fungsi terhad. Untuk mencipta antara muka pengguna yang menarik, gunakan rangka kerja atau perpustakaan tambahan. Di sinilah Flask-Bootstrap masuk. Flask-Bootstrap adalah berasaskan Twitter

Templat e-mel PHP: menyesuaikan dan memperibadikan kandungan e-mel anda. Templat e-mel PHP: menyesuaikan dan memperibadikan kandungan e-mel anda. Sep 19, 2023 pm 01:21 PM

Templat e-mel PHP: Peribadikan dan peribadikan kandungan e-mel anda Dengan populariti dan penggunaan e-mel yang meluas, templat e-mel tradisional tidak lagi dapat memenuhi keperluan orang ramai untuk kandungan e-mel yang diperibadikan dan diperibadikan. Kini kita boleh mencipta templat e-mel yang disesuaikan dan diperibadikan dengan menggunakan bahasa pengaturcaraan PHP. Artikel ini akan menunjukkan kepada anda cara menggunakan PHP untuk mencapai matlamat ini dan memberikan beberapa contoh kod khusus. 1. Buat templat e-mel Pertama, kita perlu mencipta templat e-mel asas. Templat ini boleh menjadi HTM

Bagaimana untuk melaksanakan templat imej dan pemprosesan topeng dalam Vue? Bagaimana untuk melaksanakan templat imej dan pemprosesan topeng dalam Vue? Aug 17, 2023 am 08:49 AM

Bagaimana untuk melaksanakan templat imej dan pemprosesan topeng dalam Vue? Dalam Vue, kita selalunya perlu melakukan beberapa pemprosesan khas pada imej, seperti menambah kesan templat atau topeng. Artikel ini akan memperkenalkan cara menggunakan Vue untuk mencapai dua kesan pemprosesan imej ini. 1. Pemprosesan templat imej Apabila menggunakan Vue untuk memproses imej, kita boleh menggunakan atribut penapis CSS untuk mencapai kesan templat. Atribut penapis menambah kesan grafik pada elemen dan penapis kecerahan boleh menukar kecerahan gambar. kita boleh berubah

Templat Metaprogramming dalam C++ FAQ Soalan Temuduga Templat Metaprogramming dalam C++ FAQ Soalan Temuduga Aug 22, 2023 pm 03:33 PM

C++ ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pelbagai bidang Pemrograman meta templatnya ialah teknologi pengaturcaraan lanjutan yang membolehkan pengaturcara mengubah jenis dan nilai pada masa penyusunan. Metaprogramming templat ialah topik yang dibincangkan secara meluas dalam C++, jadi soalan yang berkaitan dengannya agak biasa dalam temu bual. Berikut ialah beberapa soalan temu bual pengaturcaraan templat biasa dalam C++ yang mungkin ditanya kepada anda. Apakah itu metaprogramming templat? Metaprogramming templat ialah teknik untuk memanipulasi jenis dan nilai pada masa penyusunan. Ia menggunakan templat dan metafungsi untuk menjana berdasarkan jenis dan nilai

Perbandingan templat C++ dan generik? Perbandingan templat C++ dan generik? Jun 04, 2024 pm 04:24 PM

Perbezaan antara templat dan generik dalam C++: Templat: ditakrifkan pada masa penyusunan, ditaip dengan jelas, kecekapan tinggi dan saiz kod yang kecil. Generik: menaip masa jalan, antara muka abstrak, menyediakan fleksibiliti, kecekapan rendah.

See all articles