编写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}

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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]

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.

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: 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: 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? 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

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

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.
