smarty模板基础
入口文件
![](/assets/blank.gif)
![](/assets/blank.gif)
<?phpdefine("ROOT",str_replace("\\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录//echo str_replace("\\","/",dirname(__FILE__)).'/'; //获取当前文件所在的位置 require ROOT.'libs/Smarty.class.php'; //加载Smarty类文件 $smarty = new Smarty(); //实例化Smarty对象 define("CSS_PATH","/project/css/"); define("JS_PATH","/project/js/");//$smarty -> auto_literal = false; //就可以让定界符号使用空格 $smarty->setTemplateDir(ROOT.'templates/'); //设置所有模板文件存放位置 //$smarty->addTemplateDir(ROOT.'templates2/'); //添加一个模板文件夹 $smarty->setCompileDir(ROOT.'templates_c/'); //设置编译过的模板存放的目录 $smarty->addPluginsDir(ROOT.'plugins/'); //设置为模板扩充插件存放目录 $smarty->setCacheDir(ROOT.'cache/'); //设置缓存文件存放目录 $smarty->setConfigDir(ROOT.'configs/'); //设置模板配置文件存放目录 $smarty->caching = false; //设置Smarty缓存开关功能 $smarty->cache_lifetime = 60*60*24; //设置缓存模板有效时间一天 <br>//下面的内容是修改左和右的分隔符形式 $smarty->left_delimiter = '<{'; //设置模板语言中的左结束符 $smarty->right_delimiter = '}>'; //设置模板语言中的右结束符?>
View Code
根据入口文件的配置把对应的文件放在对应的位置 ; 因为 下面 main 文件夹 里的PHP 文件 默认当前文件获取路径(__FILE__)所以 不用单独标明目录
基本目录如下图
smarty模板只要就是实现分离效果所以每个功能都需要两个页面一个是HTML 和 PHP 两部分组成
使用smarty模板要在main文件夹下面创建login.php文本,要用smarty模板首先引入入口文件,
1
2
3
4
5
|
<? php
include("../init.inc.php");
//引入入口文件
//var_dump($smarty);//
$smarty->display("login.html");//用来在模板显示用户看到的内容
|
登录页面在smarty模板里的templates文件夹下创建要在模板里显示的HTML类型登录页面login.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<! DOCTYPE html>
< html >
< head >
< meta charset="UTF-8">
< title >登录页面</ title >
</ head >
< body >
< hi >登录页面</ hi >
< form action="logincl.php" method="post"> <!--form表单action要做的处理页面-->
< div >用户名:< input type="text" name="uid" /></ div >
< div >密码:< input type="password" name="pwd"/></ div >
< input type="submit" value="登录" />
</ form >
</ body >
</ html >
|
登录的处理页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?php
include ( "../DBDA.php" );
$db = new DBDA();
$uid = $_POST [ "uid" ];
$pwd = $_POST [ "pwd" ];
$sql = "select pwd from users where uid='{$uid}'" ;
$mm = $db ->StrQuery( $sql ); //返回字符串 里面是查到的密码
if ( $mm == $pwd && ! empty ( $pwd )) //如果查到的密码等于用户给的并且用户给的不为空
{
header( "location:main.php" ); //如果登录成功跳转到主页面
}
?>
|
登录做完要做主页面要让主页面显示要查询数据库里的内容显示出来main.php
1
2
3
4
5
6
7
8
9
10
11
|
<?php
include ( "../init.inc.php" );
include ( "../DBDA.php" );
$db = new DBDA();
$sql = "select * from nation" ; //找数据库里nation表里的所有数据
$arr = $db ->Query( $sql ); //返回二维数组 现在$arr里有查到的所有数据
$smarty ->assign( "shuju" , $arr ); //把查到的所有数据arr放到smarty模板里
$smarty ->display( "main.html" ); //调用display方法 显示模板文件
|
在做main.php的main.html页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<! DOCTYPE html>
< html >
< head >
< meta charset="UTF-8">
< title >主页面把main.php里的内容拿过来用</ title >
</ head >
< body >
< h1 >主页面</ h1 >
< table width="100%" border="1" cellpadding="0" cellspacing="0">
< tr >
< td >代号</ td >
< td >名称</ td >
< td >操作</ td >
< td >操作</ td >
< td >操作</ td >
</ tr >
<{foreach $shuju as $v}> <!--$v代表遍历出来的小数组-->
< tr >
< td ><{$v[0]}></ td > <!--代号-->
< td ><{$v[1]}></ td > <!--名称-->
< td >< a href="shanchu.php?code=<{$v[0]}>">删除</ a ></ td >
< td >< a href="xiugai.php?code=<{$v[0]}>">修改</ a > </ td >
< td >< a href="tianjia.php?code=<{$v[0]}>">添加</ a ></ td >
</ tr >
<{/foreach}>
</ table >
</ body >
</ html >
|
在做修改xiugai.php
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
include ( "../init.inc.php" );
include ( "../DBDA.php" );
$db = new DBDA();
$code = $_GET [ "code" ]; //根据传过来的主键值
$sql = "select * from nation where code='{$code}'" ;
$arr = $db ->Query( $sql );
$smarty ->assign( "nation" , $arr [0]); //取到民族 一维数组
$smarty ->display( "xiugai.html" ); //用display方法显示模板文件
?>
|
做xiugai.php的显示文件xiugai.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<! DOCTYPE html>
< html >
< head >
< meta charset="UTF-8">
< title >主页面把main.php里的内容拿过来用</ title >
</ head >
< body >
< h1 >主页面</ h1 >
< table width="100%" border="1" cellpadding="0" cellspacing="0">
< tr >
< td >代号</ td >
< td >名称</ td >
< td >操作</ td >
< td >操作</ td >
< td >操作</ td >
</ tr >
<{foreach $shuju as $v}> <!--$v代表遍历出来的小数组-->
< tr >
< td ><{$v[0]}></ td > <!--代号-->
< td ><{$v[1]}></ td > <!--名称-->
< td >< a href="shanchu.php?code=<{$v[0]}>">删除</ a ></ td >
< td >< a href="xiugai.php?code=<{$v[0]}>">修改</ a > </ td >
< td >< a href="tianjia.php?code=<{$v[0]}>">添加</ a ></ td >
</ tr >
<{/foreach}>
</ table >
</ body >
</ html >
|
做分页
main.php里面加分页信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php
include ( "../init.inc.php" );
include ( "../DBDA.php" );
$db = new DBDA();
//1.分也需要所有的数据总条数
$sall = "select count(*) from nation" ;
$zts = $db ->StrQuery( $sall ); //方法执行会等于总条数
include ( "../page.class.php" ); //分页的类文件
$page = new page( $zts ,3); //2.每页显示3条
//分页里的成员变量$page->limit
$sql = "select * from nation " . $page ->limit; //找数据库里nation表里的所有数据
$arr = $db ->Query( $sql ); //返回二维数组 现在$arr里有查到的所有数据
$smarty ->assign( "fenye" , $page ->fpage()); //分页信息注册到模板里
$smarty ->assign( "shuju" , $arr ); //把查到的所有数据arr放到smarty模板里
$smarty ->display( "main.html" ); //调用display方法 显示模板文件
|
main.html里显示分页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<!DOCTYPE html>
<html>
<head>
<meta charset= "UTF-8" >
<title>主页面把main.php里的内容拿过来用</title>
</head>
<body>
<h1>主页面</h1>
<table width= "100%" border= "1" cellpadding= "0" cellspacing= "0" >
<tr>
<td>代号</td>
<td>名称</td>
<td>操作</td>
<td>操作</td>
<td>操作</td>
</tr>
<{ foreach $shuju as $v }><!-- $v 代表遍历出来的小数组-->
<tr>
<td><{ $v [0]}></td><!--代号-->
<td><{ $v [1]}></td><!--名称-->
<td><a href= "shanchu.php?code=<{$v[0]}>" >删除</a></td>
<td><a href= "xiugai.php?code=<{$v[0]}>" >修改</a> </td>
<td><a href= "tianjia.php?code=<{$v[0]}>" >添加</a></td>
</tr>
<{/ foreach }>
</table>
<div><{ $fenye }></div><!--显示分页-->
</body>
</html>
|
添加查询条件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<! DOCTYPE html>
< html >
< head >
< meta charset="UTF-8">
< title >主页面把main.php里的内容拿过来用</ title >
</ head >
< body >
< h1 >主页面</ h1 >
< form action="main.php" method="get"> <!--条件查询-->
< div >名称:
< input type="text" name="name" />
< input type="submit" value="查询" />
</ div >
</ form >
< table width="100%" border="1" cellpadding="0" cellspacing="0">
< tr >
< td >代号</ td >
< td >名称</ td >
< td >操作</ td >
< td >操作</ td >
< td >操作</ td >
</ tr >
<{foreach $shuju as $v}> <!--$v代表遍历出来的小数组-->
< tr >
< td ><{$v[0]}></ td > <!--代号-->
< td ><{$v[1]}></ td > <!--名称-->
< td >< a href="shanchu.php?code=<{$v[0]}>">删除</ a ></ td >
< td >< a href="xiugai.php?code=<{$v[0]}>">修改</ a > </ td >
< td >< a href="tianjia.php?code=<{$v[0]}>">添加</ a ></ td >
</ tr >
<{/foreach}>
</ table >
< div ><{$fenye}></ div > <!--显示分页-->
</ body >
</ html >
|
main.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?php
include ( "../init.inc.php" );
include ( "../DBDA.php" );
$db = new DBDA();
//条件查询
$tj = " 1=1 " ;
if (! empty ( $_GET [ "name" ]))
{
$n = $_GET [ "name" ];
$tj = " name like '%{$n}%' " ;
}
$ztj = " where {$tj}" ; //条数
//1.分也需要所有的数据总条数
$sall = "select count(*) from nation" . $ztj ;
$zts = $db ->StrQuery( $sall ); //方法执行会等于总条数
include ( "../page.class.php" ); //分页的类文件
$page = new page( $zts ,3); //2.每页显示3条
//分页里的成员变量$page->limit
$sql = "select * from nation " . $ztj . $page ->limit; //找数据库里nation表里的所有数据
$arr = $db ->Query( $sql ); //返回二维数组 现在$arr里有查到的所有数据
$smarty ->assign( "fenye" , $page ->fpage()); //分页信息注册到模板里
$smarty ->assign( "shuju" , $arr ); //把查到的所有数据arr放到smarty模板里
$smarty ->display( "main.html" ); //调用display方法 显示模板文件
|
1.块函数格式 双标签元素<{biaoji size='12'}>这里添加内容<{/biaoji}>
<?php
function smarty_block_biaoji($args,$content,$smarty,$bs)
{//return "aa---{$content}--{$bs}<br>";if(!$bs){$size = $args["size"];$content = "<mark style='font-size:{$size}px'>{$content}</mark>";return $content;}}
2.样式选择器 <{$str|color}>
<?php
function smarty_modifier_color($str)
{$str = "<span style='color:red'>{$str}</span>";return $str;
}
3.普通函数 ---- 单标签元素 <{color name='color'}>
<?php/*** 颜色控件* * @param $name 控件name* @param $value 选中值* <{color name='titlecolor' value='FF00FF'}>*/function smarty_function_color($args, $smarty) {$name = $args['name'];$value = !empty($args['value']) ? $args['value'] : '000000';if(!defined('COLOR_INIT')) {define('COLOR_INIT', 1);$str= '<script src="../js/jscolor/jscolor.js"></script>';}$str .= '<input class="color" style="width:48px;height:16px;overfrom:hidden" name="'.$name.'" value="'.$value.'" />';return $str;}
转载于:https://www.cnblogs.com/ordinaryk/p/6504800.html
smarty模板基础相关推荐
- smarty模板基础2 缓存文件
缓存数据,这个并不是暂存的缓存,而是写入了内存的缓存 通过一个例子来书写:缓存数据 一.书写php和html页面的基本功能 既然是用smarty模板,那么前端和后端要分开写了 (1)php页面 1 2 ...
- smarty模板基础知识
1.定义 Smarty是一个使用php写出来的模板引擎,它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与html代码混杂在一起PHP代码逻辑分离. 简单的讲,目的就是要使PH ...
- smarty模板引擎(一)基础知识
一.基本概念 1.什么是mvc? mvc是一种开发模式,核心思想是:数据的输入.数据的处理.数据显示的强制分离. 2.什么是smarty? smarty是一个php的模板引擎.更明白的 ...
- smarty模板 入门学习 (share)
1.安装Smarty3.0 一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲, 目的就是要使用PHP程序员同美工分离,使用的程序 ...
- php模板引擎smarty案例下载,PHP – Smarty模板引擎 – Download下载 – 2.6.22 | 学步园...
PHP - Smarty模板引擎 - Download下载 - 2.6.22 [PHP - Smarty模板引擎 - 官方网站] [PHP - Smarty模板引擎 - 下载地址] http://sm ...
- Smarty模板技术
模板技术,即利用特定的占位符放到一个文档中的某个部位,然后利用相应的方式找到对应的占位符,并将数据实现占位符替换 普通替换 此时用户访问就不需要在访问静态文件,直接访问php文件即可 ,这就是最基本的 ...
- php smarty 语法,Smarty模板语法详解
本文实例讲述了Smarty模板语法.分享给大家供大家参考,具体如下: 所有模版标签用分隔符包围,默认为"{"和"}". 模板注释 模板注释被星号包围,两边星号被 ...
- Smarty中文手册,Smarty教程,Smarty模板的入门教材
Smarty中文手册,Smarty教程,Smarty模板的入门教材 首先,这份Smarty中文手册的翻译工作是由喜悦国际村村民自发组织的,不代表任何人的意见和观点.对他们的无私奉献精神,我们表示感谢, ...
- codeigniter配置smarty模板
codeigniter是一个比较不错的轻量级的php开发web frame,我将ci结合smarty模板解释器使用,现在ci配置smarty的方法给出: ①下载smarty的源码包并且解压 ②将sma ...
最新文章
- 3dsMax插件V-Ray渲染与合成学习课程 3ds Max: Rendering for Compositing in V-Ray Next
- Python之Pandas库学习(一):简介
- win7系统怎么样在计算机里找桌面,如何在64位win7电脑中创建一个“显示桌面”的快捷方式...
- C语言中的static 详细分析 2014-10-11 15:15 143人阅读 评论(0) 收藏...
- 【cisco下针对冗余链路故障备份的处理措施】
- 设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用
- linux 从命令行自动识别文件并将其打开的命令
- linux centos-6.5,Linux(CentOS 6.5)安装 mysql
- 一个简单WCF项目的建立 by wsz
- 华人数学家可以“恐怖”到什么程度?
- 检测mysql运行失败_MySQL 查看最近执行失败的SQL语句
- switch case穿透Java_Java switch的用法与case的穿透现象举例详解
- python网页开发实现本地上传_树莓派 python 如何将本地文件上传到指定的服务器页面上...
- 一小时学会用Python Socket 开发可并发的FTP服务器
- 样本不平衡 pytorch_CVPR2019 | 面对高度不均衡数据如何提高精度?这篇文章有妙招...
- zepto,kissy前端框架实现跨域
- 影视APP下载页面html源码
- 手游加速器代理改全局
- Arduino LED闪烁
- Corg.quartz.JobPersistenceException: Couldn‘t retrieve trigger
热门文章
- 小程序进阶学习01--功能思维导图梳理
- 那年学过的Web前端笔记
- powershell自动化操作AD域、Exchange邮箱系列(6)——获取并监控内存、CPU占用率
- prod和probor在matlab,matlab补充教程分析.ppt
- 帆软报表重要Activator之DesignerInitActivator之二
- 0x00D2DCAC 处(位于 Company.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000024 时发生访问冲突。
- eclipsevue代码怎么运行_打了多年的单片机调试断点到底应该怎么设置? | 颠覆认知...
- php with openssl directory,为php打扩展openssl 详细步骤
- Request库入门
- bs4用法实例:用Python爬取金融市场数据