概述
base_controller控制器基类
sh: 1: dot: not found
对html模板文件进行编译后输出function display($tmpl_file, $app_id=null, $fetch=false)
参数
$tmpl_file html模板文件路径
$app_id html模板文所在所在app
$fetch 是否直接输出,false直接输出|true 返回编译后的内容,可以嵌套其他页面
对用display编译后的html进行再次编译,或则是说对编译后的内容进行修改
此方法需要注册一个service实现 base_render_pre_display
私有方法实例化一个类
private function single($classname)
参数
$classname 类的名字
返回
object
fetch方法是调用display,是将display中的$fetch=true,使页面可嵌套输出function fetch($tmpl_file,$app_id=null)
参数$tmpl_file,$app_id和display参数一样
定义模板生成编译文件的key(也就编译文件的文件名)的后缀,为一个数组,可定义多个后缀信息
public function tmpl_cachekey($key,$value)
参数
string $key编译文件key这个数组中的一个键值
string|array $value编译文件key这个数组对因键的值
返回
array
实例化base_component_ui类,这个类是系统中对一些UI组件的定义,此方法是在编译的时候调用
对html模板中使用了系统的UI组件的代码进行编译
function &ui()
对模板生成编译文件的key的值(数组)进行md5,这个key值为:文件名+tmpl_cachekey方法定义的后缀function compile_id($path)
参数
string $path模板文件的路径,包含文件
返回
string
自定义模板文件,如邮件模板,短信模板
一般是我们定义好一个邮件模板文件,先是将规则定义好,根据规则把模板文件存储到数据库
在要使用这个模板文件的时候则到数据库中把模板文件获取到,在根据规则把数据填充到模板文件中
再用base_render中的fetch方法进行编译返回
注册service tpl_source.$name
b2c_messenger_tmpl
service类的写法此service类的方法及作用
last_modified 返回模板文件最后修改的时间
get_file_contents 返回自定义模板文件
* ShopEx licence
*
* @copyright Copyright (c) 2005-2010 ShopEx Technologies Inc. (http://www.shopex.cn)
* @license http://ecos.shopex.cn/ ShopEx License
*/classb2c_messenger_tmpl{//获取模板文件的最后修改时间public functionlast_modified($tplname){$systmpl=app::get('b2c')->model('member_systmpl');$aRet=$systmpl->getList('*',array('active'=>'true','tmpl_name'=>$tplname));//获取到自定义模板if($aRet){
return$aRet[0]['edittime'];
}
returntime();
}
public functionget_file_contents($tplname){$systmpl=app::get('b2c')->model('member_systmpl');$aRet=$systmpl->getList('*',array('active'=>'true','tmpl_name'=>$tplname));
if($aRet){
return$aRet[0]['content'];//返回获取到的模板文件(代码)}
returnnull;
}
}?>
调用display或则fetch是文件名参数的写法function fetch($tmpl_file,$app_id=null)
一般来说$tmpl_file文件为文件的路径:'site/default.html'然而对于使用tpl_source.$name service的方式来说
$tmpl_file写法是:($name:$tmpl_name)
$name 例子来说 $name = messenger
$tmpl_name 是能够获取到模板文件的一个标识
如果模板文件经过系统编译过以后,需要对编译后的文内容再一次进行修改,或则替换,则需要注册此service
注册service
base_service_render
service类的写法pre_display(&$content)
参数
$content 传引用,得到数据是display经过系统编译后的内容
* ShopEx licence
*
* @copyright Copyright (c) 2005-2010 ShopEx Technologies Inc. (http://www.shopex.cn)
* @license http://ecos.shopex.cn/ ShopEx License
*/classbase_service_render{
public functionpre_display(&$content){$content=base_storager::image_storage($content);//对编译后的内容$content进行替换}//End Function}//End Class
开启事务,设置错误或成功时返回的URL地址,设置用户自定义的错误处理函数_errorHandler
和 end 配合使用
参数
string|array 当参数为字符串时,是自己拼的URL,当参数为数组时,则为gen_url对应的写法
例1$this->begin('index.php?app=b2c&ctl=admin_brand&act=index');例2$this->begin(array('app'=>'b2c','ctl'=>'admin_brand','act'=>'index'));
配合begin使用,事务处理,提交或回滚。进行提示成功或失败提示
提示跳转调用的是desktop_controller下的splash方法function end($result=true,$message=null,$url_params=null,$params=array()){
参数
bool $result=true则提交,$result=false则回滚
string $message返回的提示信息
string 提示跳转的URL。如果参数为空并且begin带了参数,那么就用begin带的参数
当参数为字符串时,是自己拼的URL,当参数为数组时,则为gen_url对应的写法
array splash的最后一个参数
function save(){
$this->begin('index.php?app=b2c&ctl=admin_brand&act=index');
$objBrand = &$this->app->model('brand');
$brandname = $objBrand->dump(array('brand_name'=>$_POST['brand_name'],'brand_id'));
if(empty($_POST['brand_id']) && is_array($brandname)){
$this->end(false,app::get('b2c')->_('品牌名重复')); //错误提示
}
$_POST['ordernum'] = intval( $_POST['ordernum'] );
$data = $this->_preparegtype($_POST);
$this->end($objBrand->save($data),app::get('b2c')->_('品牌保存成功'));
}
配合begin使用事物处理,错误则用错误处理函数进行显示,正确则不处理function endonly($result=true){
参数
bool $result=true则提交,$result=false则回滚
信息提示函数,在base只是一个接口类似的东西,实现功能只是跳转,在系统中用的最多还是site_controller或则desktop_controller
中的对base_controller中的splash的重构的方法function splash($status='success',$url=null,$msg=null,$method='redirect',$params=array())
在系统中很少使用,用的最多的还是site_controller中的page或则是desktop_controller中的page
调用的base_render中的display或则是自己注册一个service theme 自己写一个display方法,自定义编译规则function page($detail){
参数
string $detail需要编译的文件路径
此service由base_controller下的page方法提供,service类的方法为dispaly
实现功能和bsae_render下的display的功能差不多,可以在这个方法中自定义
编译规则进行编译,之后在返回给编译后的内容
最后
以上就是真实月饼为你收集整理的php基类控制器,base_controller控制器基类的全部内容,希望文章能够帮你解决php基类控制器,base_controller控制器基类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复