smarty 插件里 smarty_block函数怎么用?
时间:2010-01-14
来源:互联网
作者: 九剑 发布时间: 2010-01-14
1.写个php文件放在smarty里面plugins目录下,做为插件;
2.使用这个函数$smarty->register_block("translates", "do_translation");
第一种方式,文件php代码:
<?PHP
/*
* Smarty plugin
* -------------------------------------------------------------
* FileName: block.translate.php
* Type: block
* Name: translat
* -------------------------------------------------------------
*/
function smarty_block_translate($params, $content, & $smarty, & $repeat) {
if (isset ($content)) {
print_r($params);
var_dump($content);
}
}
?>
第二种方式代码:
$smarty->register_block("translates", "do_translation");
function do_translation($params, $content, & $smarty, & $repeat) {
if (isset ($content)) {
print_r($params);
var_dump($content);
}
}
模版页面调用代码:
<{translate type="plugin" info="使用插件的方式调用块函数"}>
插件块函数的内容
<{/translate}>
<{translates type="register_block" info="使用register_block()函数的方式调用块函数"}>
register_block块函数的内容
<{/translates}>
不懂再详谈
作者: adm889486 发布时间: 2010-01-15
作者: 九剑 发布时间: 2010-01-15
作者: 九剑 发布时间: 2010-01-15
$params是一个数组, 里面存放的是你传给块函数的变量名和变量的值,比如:
<{translate type="plugin" info="使用插件的方式调用块函数"}>
传入的参数就有type和info 使用$params['type']就可以得到相应的值
$content 是你写在块函数之间的值
如:<{translate type="plugin" info="使用插件的方式调用块函数"}>
插件块函数的内容
<{/translate}>
$content 值为"插件块函数的内容"
& $smarty 就是对$smarty变量的引用;你可以去看看smarty里面所有的插件函数,都有这个参数,就是这样引用的
参数 &$repeat 通过参考引用传递给函数执行过程并为其提供一个可能值来控制显示块多少遍。具体也不是很清楚
作者: adm889486 发布时间: 2010-01-15
作者: 九剑 发布时间: 2010-01-15
作者: adm889486 发布时间: 2010-01-15
* Smarty plugin
* -------------------------------------------------------------
* FileName: block.tmar.php
* Type: block
* Name: translat
* -------------------------------------------------------------
*/
<?php
function smarty_block_mar($peram,$content,&$marty,&$repeat){
extract($peram);
if(!isset($font)){
$font=13;
}
if(!isset($color))
$color="red";
//$str.="<span style='font-size:$font;color:$color'>";
//$content='效果发挥吃';
//$str=$content;
//$str.="</span>";
//$str.="<marquee>";
//$str.=$content;
//$str.="</marquee>";
//return $str;
mysql_connect("localhost","root","123456");
mysql_select_db("li");
mysql_query('set names gbk');
if(!isset($num)){
$num=10;
}
if(!isset($table)){
$table='liu';
}
$sql = "select * from $table limit 0,$num";
$result = mysql_query($sql);
while($row=mysql_fetch_assoc($result)){
$n[]=$row;
}
//$content='效果发挥吃';
$content=$n;
$str=$content;
return $str;
}
?>
作者: 九剑 发布时间: 2010-01-15
<ul>
{@ mar num=5 table=hui @}
{@ section name=i loop=$str @}
<li>{@ $str.liu_title @}</li>
{@ /section @}
{@ /mar @}
</ul>
</div>
作者: 九剑 发布时间: 2010-01-15
作者: 九剑 发布时间: 2010-01-15
作者: 九剑 发布时间: 2010-01-15
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28