15 Ecmall挂件开发.docx_第1页
15 Ecmall挂件开发.docx_第2页
15 Ecmall挂件开发.docx_第3页
15 Ecmall挂件开发.docx_第4页
15 Ecmall挂件开发.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Ecmall挂件开发实质上是后台开发很多页面,分别去调用程序展示这些页面,达到首页内容更换很快的目的,这样做减少后续开发,开发人员只需开发挂件就可以了,至于位置可随意定.(还需调整html,但是起码后台取数据不用做了) 流程介绍: 1:ecmall模板页面调用widget页面(整个过程比较复杂) 参数:page:指明页面是index页面 Area:指明显示的区域。(相当于告诉程序生成的页面是放在那里的) 2:经过ecmall模板引擎重新生成一个临时php文件,上面那句代码被解析成这样的php代码。 | display_widgets(array(page=index,area=cycle_image); ? 3:查看下display_widgets()方法的源码 /* * 视图回调函数显示小挂件 * * author Garbin * param array $options * return void */ function display_widgets($options) $area = isset ( $options area ) ? $options area : ; $page = isset ( $options page ) ? $options page : ; if (! $area | ! $page) return; include_once (ROOT_PATH . /includes/widget.base.php); /* 获取该页面的挂件配置信息 */ $widgets = get_widget_config ( $this-_get_template_name (), $page ); /* 如果没有该区域 */ if (! isset ( $widgets config $area ) return; /*将该区域内的挂件依次显示出来 */ foreach ( $widgets config $area as $widget_id ) $widget_info = $widgets widgets $widget_id; $wn = $widget_info name; $options = $widget_info options; $widget = & widget ( $widget_id, $wn, $options ); $widget-display (); /* * 获取当前使用的模板名称 * * author Garbin * return string */ function _get_template_name() return default; /* * 获取指定风格,指定页面的挂件的配置信息 * * author Garbin * param string $template_name * param string $page * return array */ function get_widget_config($template_name, $page)/default index static $widgets = null; $key = $template_name . _ . $page; if (!isset($widgets$key) $tmp = array(widgets = array(), config = array(); $config_file = ROOT_PATH . /data/page_config/ . $template_name . . . $page . .config.php; if (is_file($config_file) /* 有配置文件,则从配置文件中取 */ $tmp = include_once($config_file); $widgets$key = $tmp; return $widgets$key; /* * 获取挂件实例 * * author Garbin * param string $id * param string $name * param array $options * return Object Widget */ function &widget($id, $name, $options = array() static $widgets = null; if (!isset($widgets$id) $widget_class_path = ROOT_PATH . /external/widgets/ . $name . /main.widget.php; $widget_class_name = ucfirst($name) . Widget; include_once($widget_class_path); $widgets$id = new $widget_class_name($id, $options); return $widgets$id; /* * 显示 * * author Garbin * param none * return void */ function display() echo $this-get_contents(); /* * 将取得的数据按模板的样式输出 * * author Garbin * return string */ function get_contents() /* 获取挂件数据 */ $this-assign(widget_data, $this-_get_data(); /*可能有问题*/ $this-assign(options, $this-options); $this-assign(widget_root, $this-widget_root); return $this-_wrap_contents($this-fetch(widget); 实例开发: 1:在页面上添加要展示的页面模块 2:修改工程目录下/data/page_config/default.index.config.php添加该模块的相关信息 widgets = array ( _widget_1000 = array ( name = test, options = array ( ad_image_url = data/files/mall/template/200908070207084061.gif, ad_link_url = , ), ), ), config = array( bottom_foot = array ( 0 = _widget_1000, ), ), 3:在工程目录external/widgets建name(跟上面定义的name要一致)目录,然后再建文件main.widget.php class TestWidget extends BaseWidget var $_name = test; function _get_data() $test_mod=&m(test); $users=$test_mod-getAll(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论