zoukankan      html  css  js  c++  java
  • 第一篇:fastadmin的页面是如何生成的?

    第一步:

    访问URL

    http://www.fastadmin.cc/admin/mydir/test/index?addtabs=1 

    对应的方法是admin模块,controller文件夹下的mydir文件夹下面的Test.php控制器,Test.php里面的index方法。但是打开Test.php却没有index方法,那就看Test类的父类Backend类,可是Backend类也没有,但是Backend有一句代码

    load_trait('library/traits/Backend');
    

      

    打开application/admin/library/traits/Backend.php,找到了。

    /**
         * 查看
         */
        public function index()
        {
            //设置过滤方法
            $this->request->filter(['strip_tags', 'htmlspecialchars']);
            if ($this->request->isAjax())
            {
                //如果发送的来源是Selectpage,则转发到Selectpage
                if ($this->request->request('pkey_name'))  // 疑问1:pkey_name是什么
                {
                    return $this->selectpage(); // 疑问2:selectpage方法是干什么的
                }
                list($where, $sort, $order, $offset, $limit) = $this->buildparams(); // 疑问3: buildparams方法是干嘛的?
                $total = $this->model
                        ->where($where)
                        ->order($sort, $order) // 疑问4:order怎么有两个参数,是如何工作的?
                        ->count();
    
                $list = $this->model
                        ->where($where)
                        ->order($sort, $order)
                        ->limit($offset, $limit)
                        ->select();
    
                $result = array("total" => $total, "rows" => $list);
    
                return json($result);
            }
            return $this->view->fetch(); // 访问url的时候,就有数据了,那明显是执行了 if ($this->request->isAjax())这个分支了啊,可是get怎么会是ajax呢?难道是页面加载了自动发送ajax请求?
    }

     第二步:url访问index方法,显然先执行的是 return $this->view->fetch();   // fetch 的作用是:获取和解析模板内容 用于输出

     那么,接下去就是获取index方法对应的admin/view/mydir/index.html这个模板了

    <div class="panel panel-default panel-intro">
        {:build_heading()}
    
        <div class="panel-body">
            <div id="myTabContent" class="tab-content">
                <div class="tab-pane fade active in" id="one">
                    <div class="widget-body no-padding">
                        <div id="toolbar" class="toolbar">
                            {:build_toolbar()}
                            <div class="dropdown btn-group">
                                <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
                                <ul class="dropdown-menu text-left" role="menu">
                                    <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
                                    <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
                                </ul>
                            </div>
                        </div>
                        <table id="table" class="table table-striped table-bordered table-hover" width="100%">
                        </table>
                    </div>
                </div>
    
            </div>
        </div>
    </div>

    获取到了模板内容,接下去就是解析了。需要解析的只有四个:

    {:build_heading()}
    
    {:build_toolbar()}
    
    {:__('More')}
    
    {:__('Set to normal')}
    
    {:__('Set to hidden')}
     
  • 相关阅读:
    页面自动化
    phantomjs 开发爬虫框架
    javascript 正则表达式
    javascript/TypeScript 生成GUID
    Plupload 上传控件使用指南
    文件上传详解 (HTML FILE)
    Bootstrap File Input 中文文档
    找个地记录和分享工作上的点滴
    最短路 + 记录路径 之 zoj 1456 Minimum Transport Cost (hdu 1385)
    求解单源最短路问题:Bellman-Ford算法(可判负权回路)详解 之 poj 3268 Silver Cow Party
  • 原文地址:https://www.cnblogs.com/bushe/p/7211666.html
Copyright © 2011-2022 走看看