你现在的位置:首页 > PHP网站建设知识库 > ecmall > 正文

ecmall网站开发 - 挂件机制

ecmall中挂件的作用是让用户将自己想要展示内容放在网站前台页面,可以挂上去,也可以随时取下来,让我们来详细探讨一下ecmall的挂件机制。

\

1.挂件widgets在哪里?

在data目录的page_config目录的中,比如说default.index.config.php就是首页生成的挂件。

2. 挂件参数解析:

return array (

  'widgets' =>      

  array (

    '_widget_513' =>                      //挂件名称

    array (

      'name' => 'best_goods',              //挂件类型  (精品推荐)

      'options' => NULL,

    ),

  ),

  'config' =>

  array (

    'top_left' =>                            

        $controller =& cc();

        $controller->display_widgets($arr);

    }

 那么display_widgets($arr)是在哪里定义的呢?

 这个display_widgets($options)是实例化frontend.base.php中的控制器cc类的一个方法。 

   

d) $widgets = get_widget_config($this->_get_template_name(), $page);

get_widget_config()函数是在哪里定义的呢?

get_widget_config()函数是在wedget.base.php文件中被调用的,此函数是定义在default.index.config.php文件,

e)$config_file = ROOT_PATH . '/data/page_config/' . $template_name . '.' . $page . '.config.php';

   这里$template_name默认值是default,如果使用其它模板,对应的是模板的名称。

   而$page值为index,所以生成default.index.config.php文件。

 

e)挂件解析会分成两步来进行:

   1. 首先将 <!--{widgets page=index area=top_left}--> 解析为:

 <?php $this->display_widgets(array('page'=>'index','area'=>'top_left')); ?>

   2. 读取以上挂件数组中数据生成网页可识别的标准数据:     

    <div id="_widget_513" name="best_goods" widget_type="widget" class="widget">

         <div class="module_common">

            <h2><b class="best_item" title="BEST ITEM精品推荐"></b></h2>

            <div class="wrap">

               <div class="wrap_child">

                 <div class="recommend">

                     <ul class="list_pic"> </ul>

                 </div>

              </div>

            </div>

        </div>

    </div>