前台视图模块化实现思路求解

浏览:994 发布日期:2015/03/17 分类:求助交流 关键字: UI模块化 include widget
小弟刚刚涉足PHP网站开发。尝试开发一个完整项目实际经验。如有一些低级问题还请各位大侠勿喷!闲话少许,进入正题。现在面临的问题,是前台UI页面公用部分重复调用如何高效实现。见图片1 图片中 选中部分为传统的页面导航(与用户登录权限有关)。该选中部分多个页面需要调用。出于对项目维护性的考虑,想将选中部分单独提出来单独的文件。在模板文件中通过include 引入该文件内容。如图2.这时问题来了,针对include 只是引入该路径的项目的html,并没有调用controller。引入页面的显示的数据,还需要一个controller来相关处理。看了一些其他童鞋的例子,往往通过继承公用controller,或者跨域调用对应的Controller、Event实现后台 给前台include html段赋值。感觉这样开发很不易维护。所以 尝试使用widget 扩展方法。建立扩展类,指向对应扩展html。通过前台html调用W方法实现页面的布局的模块化。如代码1class LayoutWidget extends Controller
{
    
    
    public function getDemo($id=0)
    {
        // echo "this is public widget fun getDemo".$id;

        $this->assign('id',$id);

        $content=$this->fetch('Layout:two-menu-2Index');
        //echo $content;

        // echo "this is Widget getDemo";
        // $value['demo']='this is demo';
        // $content=$this->renderFile('Layout/two-menu-2LeftSidebar',$value);
        // $this->display('Admin@Layout:two-menu-2Sidebar');
        // return $this->fetch("Layout:two-menu-2Sidebar");
        # code...
    }
}
注释内容都是 之前实现失败的内容。前台模板只有echo输出有效。其余没有任何效果。还请哪位大侠分享自己的经验,与小弟分享
最佳答案
评论( 相关
后面还有条评论,点击查看>>