smartTemplate 中文手册 PHP模板手册 ROWCNT ROWBIT

bywzy 发表于 技术交流 分类,
0

smartTemplate 中文手册(部分)    
1、SmartTemplate的效率

2、基本变量

3、逻辑运算结构

4、模式(Methods)

5、扩展类(Extensions) 未完成

————————————————————————————————————

1、SmartTemplate的效率

虽然他有很多的程序来形成强大的功能,但在执行时只有你调用的才被导入,所以不用担心这方面的速度影响,同样这套模版系统是为最快的执行效率而优化过的,比起目前市场上常见的Smarty,要快不少(Smarty采用后期缓存,所以比较可能不是很准确)。

2、SmartTemplate的变量

Array的变量是由SmartTemplate内建函数assign()来赋值的
具体语法如下
assign ( 模版中的变量, 要替换的内容 )

assign ( Array内容 )  

正如其他程序的变量一样,smartTemplate的变量是由特殊的{}所包含的。里面的内容可以是String,Array,Int,或者是Long Text等等(基本上php支持的)

在储存Array数据时,smartTemplate运用了我们常见的父子级分割符".",所以一个特殊的Array数据由Array Handle和具体位置的索引组成(Numerical Index or Associative Index)。
下面是一个例子

在php环境下运行以下程序
代码:
<?php
$template = new SmartTemplate('template.html');
$text = 'Sample Text';
$template->assign( 'TITLE', $text );
$template->output();
?>

模版
代码:
<html> {TITLE} </html>
输出
代码:
<html> Sample Text </html>  

在只有一个Array的情况下,可以直接省略前面的array handle,就象在使用javascript时,document.window.close()可以省略为window.close()

php
代码:
<?php
$user = array(
'NAME' => 'John Doe',
'GROUP' => 'Admin',
'AGE' => '42',
);

$template = new SmartTemplate('user.html');
$template->assign( $user );
$template->output();
?>

模版
代码:
Name: {NAME}
Group: {GROUP}
Age: {AGE}

输出
代码:
Name: John Doe
Group: Admin
Age: 42

下面是另外一个例子。
使用了SmartTemplate的循环函数
<!– begin Array名 –>XXXXXX<!– end Array名>
他的功能类似foreach(),只要有东西,就一直循环显示

代码:
<?php
$links = array(
array(
'TITLE' => 'PHP',
'URL' => 'http://www.php.net/',
),
array(
'TITLE' => 'Apache',
'URL' => 'http://www.php.net/',
),
array(
'TITLE' => 'MySQL',
'URL' => 'http://www.mysql.com/',
),
);

$template = new SmartTemplate('links.html');
$template->assign( 'links', $links );
$template->output();

?>


HTML模版
代码:
<html>
<h3> Sample Links </h3>
<!– BEGIN links –>
<a href="{URL}"> {TITLE} </a>
<!– END links –>
</html>


代码:
<html>
<h3> Sample Links </h3>
<a href="http://www.php.net/"> PHP </a>
<a href="http://www.apache.org/"> Apache </a>
<a href="http://www.mysql.com/"> MySQL </a>
</html>


3、SmartTemplate的逻辑控制结构

★If和end If

语法:
<!– IF 变量 –> 变量已被赋值! <!– ENDIF 变量 –>
如果IF后面直接跟变量,变量为Null时会返回0,否则返回1

<!– IF name=="John Doe" –> Your name is John Doe! <!– ENDIF name –>
==判断是否相等,如果相等返回1,不相等返回0

<!– IF name!="John Doe" –> Your name is not John Doe! <!– ENDIF name –>
!=判断是否不等,如果成立返回1,相等则返回0

例子:
PHP

代码:
<?php
require_once "class.smarttemplate.php";
$page = new SmartTemplate("if.html");
$page->assign( 'username', 'John Doe' );
$page->assign( 'usergroup', 'ADMIN' );
$page->assign( 'picture', '' );
$page->output();
?>

HTML
代码:
<!– IF username –> <H3> Welcome, {username} </H3> <!– ENDIF –>

<!– IF picture –> <img src="{picture}"> <!– ENDIF picture –>

<!– IF usergroup="ADMIN" –>

<a href="admin.php"> ADMIN Login </a><br>

<!– ENDIF usergroup –>

输出代码:
<H3> Welcome, John Doe </H3>
<a href="admin.php"> ADMIN Login </a><br>

★IF的子局 else
如果else子句出现在一个逻辑循环中,当if的条件不成立时则会被运行。
例子
代码:
<?php
require_once "class.smarttemplate.php";
$page = new SmartTemplate("else.html");
$page->assign( 'username', 'John Doe' );
$page->assign( 'usergroup', 'ADMIN' );
$page->assign( 'picture', '' );
$page->output();
?>

模版
代码:
<!– IF username –>
<H3> Welcome, {username} </H3>
<!– ENDIF –>
<!– IF picture –>
<img src="{picture}">
<!– ELSE –>
Picture not available! <br>
<!– ENDIF picture –>
<!– IF usergroup="ADMIN" –>
<a href="admin.php"> ADMIN Login </a><br>
<!– ELSE –>
You are in guest mode!
<!– ENDIF usergroup –>
输出
代码:
<H3> Welcome, John Doe </H3>
Picture not available! <br>
<a href="admin.php"> ADMIN Login </a><br>
★elseif
elseif是else和if组合起来的一种结构,其意义为"除此之外如果…"
以下是一个例子
代码:
<?php
require_once "class.smarttemplate.php";
$page = new SmartTemplate("elseif.html");
$page->assign( 'usergroup', 'INTERNAL' );
$page->output();
?>

模版文件
代码:
<!– IF usergroup="ADMIN" –>
<a href="admin.php"> 管理员登陆 </a><br>
<!– ELSEIF usergroup="SUPPORT" –>
<a href="support.php"> 帮助人员登陆</a><br>
<!– ELSEIF usergroup –>
<a href="other.php"> 普通方式登陆 </a><br>
<!– ELSE –>
You don't even have a usergroup!
<!– ENDIF –>
运行php得到的输出
代码:
<a href="other.php"> 普通方式登陆 </a><br>
★Begin…End
这个语句用于读取一个整数索引矩阵(Numerical Array,以数字为索引的数组)的值.而每个整数矩阵的子矩阵则成为以字符串为索引的矩

« 上一篇: :下一篇 »

发表我的评论

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif