ecshop 模板机制

ECShop模板是基于smarty 文件名cls_template.php

lib_main.php中的assign_template()会设置我们的网店的公共信息及网站设置;assign_dynamic()方法则是设置该页面中的动态加载内容。当页面所需的变量设置完成后,进入smarty的display()方法。

首先,在ECshop中有.dwt和.lbi两种格式的模板文件,那么这两种文件之间是什么关系呢?可以这样理解.dwt文件是针对前台每个显示页面的模板“框架”,而.lbi模板中则是对页面中公共“内容”的整理,每个.lbi文件都是页面中的一个模块。二者是怎样关联到一起的呢?在模板文件夹中有一个libs.xml文件,这里则是具体配置每个模板“框架”中可以显示哪些“内容”(具体内容之后谈及模板管理会细说)。

下面查看解析模板的过程,在.dwt文件中根据框架的设计会划分出几个“可编辑区域”,.lbi模板正是加载到“可编辑区域”中进行输出的。那么我们需要注意的是.dwt模板中的几对标签:

①<!-- TemplateBeginEditable name="右边主区域" --><!-- TemplateEndEditable -->这对标签就是“可编辑区域”标签,在这对标签之间输出的内容是可以通过模板管理进行设置的。主要是选择输出不同的.lbi文件。

②<!-- #BeginLibraryItem "/library/page_header.lbi" --><!-- #EndLibraryItem -->这对标签则是对相应的page_header.lbi文件的加载及输出。这个头部的模板每个页面都需要加载,如果我们想更改模板中的头部内容,只要修改page_header.lbi即可,大大提高了效率。

模板文件加载完成之后,即可通过smarty引擎解析smarty标签,完成模板的输出。
   define('IN_ECS',true);
   define('EC_CHARSET','utf-8');
   define('ROOT_PATH','D:/php/www/ECShop/');
   define('DATA_DIR','data');
   
   $db_host="localhost:3306";
   $db_name="ecshop";
   $db_user="root";
   $db_pass="";
   
   require('../includes/cls_mysql.php');
   $db=new cls_mysql($db_host,$db_user,$db_pass,$db_name);
 
 
    //获取所有记录
     function test_getAll(){
global $db;
$sql="select user_id,user_name,email from ecs_admin_user";
$result=$db->getAll($sql);
print_r($result);
}
test_getAll();


//获取单条数据
function test_getRow(){
global $db;
$sql="select user_id,user_name,email from ecs_admin_user";
$result=$db->getRow($sql);
print_r($result);
}  
test_getRow();
 
 
//获取某栏位的所有值
     function test_getCol(){
global $db;
$sql="select email from ecs_admin_user";
$result=$db->getCol($sql);
print_r($result);
}
test_getCol();
 
 

    //获取的单个值
function test_getOne(){
global $db;
         $sql="select email from ecs_admin_user where user_id=1";

         $result=$db->getOne($sql);
         print_r($result);  
}
test_getOne();



//执行数据库查询
test_query();


   function test_query() 
   {
    global $db;
    
    $sql = "UPDATE ecs_admin_user SET todolist ='我那个'  WHERE user_id =1";


    $db->query($sql);

    $sql = "SELECT todolist FROM ecs_admin_user WHERE user_id = 1";
    $result = $db->getOne($sql);
    print_r($result);
  }
  //数据库表操作
    function  autoExecute1(){
global $db;

$table="ecs_role";
$field_values=array("role_name"=>"总经理办","role_describe"=>"总经理办","action_list"=>"all");
$db->autoExecute($table,$field_values,"INSERT");
$role_id=$db->insert_id();

$field_values=array("action_list"=>"goods_manage");
$db->autoExecute($table,$field_values,"UPDATE","role_id=$role_id");

$sql="select action_list from ecs_role where role_id=$role_id";
$result=$db->getOne($sql);
print_r($result);


}
  autoExecute1();