smarty模板可扩展编程

view层

<?php
    require "../libs/Smarty.class.php";
	require "abc.php";
    $smarty = new Smarty();

    $smarty -> setTemplateDir("../tpls");
    $smarty -> setCompileDir("../coms");

    $smarty -> assign("title","速评表");
//打这个json数据累死我了
    $result = '{
        "service_type": "car",
        "view": {
            "info": {
                "tag_name": "基本信息",
                "data": {
                    "car_jigou": {
                        "explain": "合作机构",
                        "type": "text",
                        "options": "",
                        "value": "合作机构A"
                    },
                    "car_contract": {
                        "explain": "合同类型",
                        "type": "text",
                        "options": "",
                        "value": "类型B"
                    },
                    "car_chexing": {
                        "explain": "车型",
                        "type": "text",
                        "options": "",
                        "value": "豪华"
                    },
                    "car_brand": {
                        "explain": "品牌",
                        "type": "text",
                        "options": "",
                        "value": "宝马"
                    },
                    "car_xinghao": {
                        "explain": "型号",
                        "type": "text",
                        "options": "",
                        "value": "740li"
                    },
                    "car_licheng": {
                        "explain": "行驶里程",
                        "type": "text",
                        "options": "",
                        "value": "123456"
                    },
                    "car_pailiang": {
                        "explain": "排量",
                        "type": "text",
                        "options": "",
                        "value": "4.0"
                    },
                    "car_color": {
                        "explain": "车身颜色",
                        "type": "text",
                        "options": "",
                        "value": "A123456"
                    },
                    "car_number": {
                        "explain": "车牌号",
                        "type": "text",
                        "options": "",
                        "value": "京A123456"
                    },
                    "car_chejiahao": {
                        "explain": "车架号",
                        "type": "text",
                        "options": "",
                        "value": "adadg123333"
                    },
                    "car_chuchang": {
                        "explain": "出厂日期",
                        "type": "text",
                        "options": "",
                        "value": "2013.11"
                    },
                    "car_chudeng": {
                        "explain": "初登日期",
                        "type": "text",
                        "options": "",
                        "value": "2015.3"
                    },
                    "car_yuanjia": {
                        "explain": "抵押物原价",
                        "type": "text",
                        "options": "",
                        "value": "70.8"
                    },
                    "car_gujia": {
                        "explain": "抵押物估价",
                        "type": "text",
                        "options": "",
                        "value": "65.5"
                    },
                    "car_jianyijiekuan": {
                        "explain": "合作机构建议借款",
                        "type": "text",
                        "options": "",
                        "value": "60.3"
                    }
                }
            }
        }
    }';

    $decode = json_decode($result,true);  //变成数组了
	$data=array();
	foreach($layout as $key=>$kuai){
		$datakuai=array();
		$temp=$decode['view'][$key];
		foreach($kuai as $hang){
			$datahang=array();
			foreach($hang as $lie){
				$a=$temp['data'];
				$datahang[$a[$lie]['explain']]=$a[$lie]['value'];
			}
			array_push($datakuai,$datahang);
			//$datakuai.push($datahang);
		}
		$data[$temp['tag_name']]=$datakuai;
		//$data.push($datakuai);
	}
    $smarty -> assign("mycontent2",$data);

    // $smarty -> assign("mycontent2",["速评表详情"=>[["合作机构"=>"abc","合同类型"=>"efg"],
    // ["车型"=>"豪华","品牌"=>"宝马","型号"=>"740li","行驶里程"=>"21564"],["排量"=>"3.0l","车身颜色"=>"白色","车牌号"=>"京A54445","车架号"=>"213435435asdw"],
    // ["出厂日期"=>"2014.11","初登日期"=>"2015.4"]],
    // "议价"=>[["抵押物原价"=>"70","抵押物评估价"=>"65","合作机构建议借款"=>"67"]]]);
    // $smarty ->assign("mycontent",$arr);
	// $smarty-> assign("id",["name","job","kind","address","skill1","skill2","skill3","skill4","name","job","kind","address","skill1","skill2","skill3","skill4"]);
    $smarty -> display("test.tpl");

tpl模板

<html>
	<head>
		<title>{$title}</title>
		<link href="/loan_oa/web/css/bootstrap.min.css" rel="stylesheet">
		<link rel="stylesheet" href="/loan_oa/web/css/mystyle.css">
	</head>

	<body>
	{$index=0}
	<div class="infowrap clearfix">
		<div class="infoleft">
			{foreach $mycontent2 as $c=>$mycontent}
				<div class="infoblock mgt">
					<h3>{$c}</h3>
					<table class="table">
						{foreach $mycontent as $content}
						{$length=(24-count($content)*2)/count($content)}
						<tr>
							{foreach $content as $a=>$b}
								<td class="bggray" colspan="3">{$a}</td>
								<td colspan="{$length}" >{$b}</td>
								{$index=$index+1}
							{/foreach}
						 </tr>
						{/foreach}
					</table>
				</div>
			{/foreach}
		</div>
	</div>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-09 19:23:33

smarty模板可扩展编程的相关文章

前端学PHP之Smarty模板引擎

前面的话 对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名.功能最强大的一种PHP模板引擎.Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进.文字环绕以及正则表达式都可以直接使用,如果觉得不够,SMARTY还有很强的扩展能力,可以通过插件的形式进行扩充.另外,Smarty也是一种自由软件,用户可以自由使用.修改,以及重新分发该软件.本文将详细介绍Smarty模板引擎 概述 Smarty是一个php模板引擎.更准确的说,它分离了逻辑程序和外

编写一个非常简单而且山寨的smarty模板引擎

PHP的正则表达式今天就结束了,遥想几年前初次接触的时候,感觉这玩意真心玩不转啊,而时至今日,感觉这也没有什么难以理解的,确实还是有很大进步的,尤其是对smarty模板引擎有了一个更为清晰的认识.正则表达式学到最后,总是会抛出这个编写一个山寨的smarty模板引擎的话题出来练练手,今天就在大师的指导下,编写了这么一个山寨smarty,作为这次复习正则的一个句点吧. <?php  class template{ //存储模板引擎源文件目录 private $templateDir; //编译后的文

php smarty模板引擎

<?php /* 一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲, 目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要. 二.smarty优点: 1. 速度:采用smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的. 2. 编译型:采用smarty编写的程序在运行时要编译成一

APP扩展提高你的影响力 -iOS8/OS X v10.10应用扩展编程指南

 当iOS8.0和OS X v10.10来临后,一个全新的概念出现在我们眼前,那就是应用扩展.顾名思义,应用扩展允许开发者对应用的功能进行扩展,究其根本的作用就是通过应用扩展能够让用户在使用别的应用时可以快速便捷的了解该应用的相关信息.你可以开发一个应用扩展,用来执行某些特定的任务,当用户使用该扩展后就可以在各种情况下去执行该任务.比如说,你开发了一款分享应用扩展,他可以让用户快速的将当前浏览的内容分享到你的社区网站.再比如说,你开发了一款实时显示比赛当前分数的扩展,那么用户就可以在通知中心

如何配置Smarty模板

<?php //首先包含Smarty类文件 include_once('Smarty/Smarty.class.php'); //实例化Smarty类文件 $smarty=new Smarty(); //设置配置目录,可以不设置 //注意一下文件夹需要自己创建,并且可以改名 //$smarty->config_dir= //$smarty->cache_dir="./caches";//设置缓存目录 //$smarty->caching=true;//关闭缓存,

smarty模板设计

一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目 中显的尤为重要. 二.smarty优点: 1. 速度:采用smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的. 2. 编译型:采用smarty编写的程序在运行时要编译成一个非模板技术的PH

ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: 对于字符串的截取,truncate函数只适合英文用户,对与中文用户来说,使用 truncate会出现乱码,而且对于中文英文混合串来说,截取同样个数的字符串,实际显示长度上却不同,一个中文的长度大致相当于两个英文的长度.此外,truncate不能同时兼容GB2312.UTF-8等编码. 解决方法:自

smarty模板技术

smarty简介: smarty是php领域流行的一种模板技术,免费,其核心就是一个类(smarty类). 我们的主要目标就是学习怎么使用这个类. smarty的特点: 速度快(因为第二次执行的时候使用第一次执行时生成的编译文件) 缓存技术(正是因为缓存技术,使得smarty模板技术不太适合那些对于实时性更新要求比较高的,比如股票信息) 插件技术(正是因为插件技术,使得smarty可以被扩展) 编译型(访问一个页面一次之后会生成一个编译文件,第二次再来访问这个页面的时候,就会访问这个编译文件,从

命名空间namespace、smarty使用(视图分离,MVC)、smarty模板语法、smarty缓存、MVC模式

一.命名空间:namespace 命名空间 可以理解为逻辑上的使用,为了防止重名 namespace :关键字 加载:require_once();//加载一次 include_once() 申明命名空间注意:名称空间一定是在最顶部 在他上面不能有任何内容,名称空间申明不能写在类的内部 use App\Stu; 引入,导入 名称空间\引入类名 as:取别名 二.smarty使用 smarty是一个使用php写出来的模板引擎,拥有独立简单的模板语法,它实现了逻辑代码与模板的分离,把原本HTML与P