zoukankan      html  css  js  c++  java
  • hdwiki中模板和标签的使用

    MVC中的视图view 主要负责页面显示部分,所有的页面显示全部在此实现,视图对整个页面负责,它通过control的调用来显示页面和数据.

    ......视图(view)类template.class.php路径/lib/template.class.php, 视图类在每个control类的父类(base.calss.php)的构造函数中初始化,主要有以下几个部分,包括设置语言,设置风格,传递变量,显示最终页面,其中前两个在初始化时已被设置,在控制器(control)用的一般就是传递变量和显示最终页面两个部分.
    视图(view)文件存放于 view/default/文件夹中,如果自己新添加新的模板,可以存放于不同的文件夹,例如 view/mediawiki/文件夹下,命名基本以功能为主,例如viewdoc.thm表示就是浏览词条的页面,

    结构
        控制器control调用视图示例代码如下:
    $this->view->assign('navigation',$navigation);
    $this->view->display('viewdoc');

    相关解释:
    1、$this->view->assign('navigation',$navigation);将$navigation变量的值传递给navigation,页面中可以直接调用nvaigation
    2、$this->view->display('viewdoc'); 调用视图文件viewdoc.htm文件并显示最终页面

    语法
        在视图文件(如/view/default/viewdoc.htm)中使用较多的有3个部分
    1.引入其他视图文件 {template header} 便可引入视图文件header.htm

    2.循环显示数据使用loop $doc['title']

    这样便可以循环显示词条列表的每个标题了,$doclist是control文件中传入的变量,示例中表示词条列表,$doc是可以自己命名的,表示doclist数组的第x个元素

    $doc['title']就是doclist每个元素的子元素,是control文件中传递过来的

    3.判断语句使用if
    显示一个东西
    $tag是control控制器传递过来的变量,判断是否和某个值相等或不等,便可在页面中控制某个地方是否显示

    开发
        若添加一个新的视图,需要在控制器(control)中添加新的业务逻辑,取得数据后传递给页面中需要的变量,调用视图文件显示出来,以做个页面显示用户总数为例,以下分步骤演示:
    1.新添加个控制器方法,例如在/control/user.php文件中添加个用户总数的方法function usercount()
    2.在usercount方法中通过模型(model)得到用户总数
    3.通过$this->view->assign('usercount',$usercount); 把变量传递个页面中usercount
    4.通过$this->view->display('usercount');调用/view/default/usercount.htm文件显示用户总数
    5./view/default/usercount.htm文件可以使用各种网页编辑器编辑,如果需要显示数组数据的可以通过loop调用,如果需要判断语句的可以通过if调用,在页面上调用用户总数可以用{$usercount} ,$usercount是从control中传递的

    这样添加一个新的视图就完成了

  • 相关阅读:
    react中useContext实现父子组件传值
    react中异步action的使用
    react中redux原理图
    react中antd按需引入+自定义主题
    react中修改antd主题色?
    程序员哀叹工资低:二本计算机毕业,四年前端开发,年包才四十万!薪资真的和学历挂钩吗?
    C++学到什么程度可以面试找工作?
    一个风骚的C语言操作引起的轩然大波!
    如何比较两种截然不同的编程语言的性能!路人甲:这怎么比较?
    为啥码了十年代码,做到了高级工程师,但还是单身?
  • 原文地址:https://www.cnblogs.com/camelroyu/p/5646551.html
Copyright © 2011-2022 走看看