zoukankan      html  css  js  c++  java
  • 织梦解析模板之灵活应用视图类

       初步对织梦cms进行了解,忍不住要动手试一试了。织梦cms也是采用mvc的设计模式,它的核心代码,大部分存在于include目录里。包括控制器、 模型、视图类、模板引擎、标签库、公用函数等。下面我们就简单的创建一个属于自己的php页面处理文件,在文件里,用织梦自身的模板引擎和视图,去解析我预先创建好的静态html文件。在此,我简单的写了如下几段代码:

         第一步,创建自己的php页面处理文件,在这里,我在根目录下创建demo.php文件,文件内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    /*************************************************************************
     
     
     * 说  明:织梦解析模板之灵活应用视图类
     
     * 作  者:郑州北鲨
     
     * 备  注:织梦v5+模板引擎,分为两种,
     *        1、静态模板引擎(include/dedetag.class.php) DedeCMS V5.3 及之前版本使用的主要的模板类,它是解析式模板类,并非编译式的。
     *           (注:编译式是通过获得标签位置进行内容替换,编译式是直接解析为 PHP 代码,二次执行。)
     *        2、动态模板引擎(include/dedetemplate.class.php)
     * 可以根据自己的实际需求,修改或创建自己的视图类,让后通过织梦提供的模板引擎,去解析处理即可。
     
     * ***********************************************************************/
    /*第一步>>引入公用配置:
     * common.inc.php作用:
     *      该文件里面进行了系统全局配置、全局常用函数common.func.php、
     * 模块MVC框架需要的控制器和模型基类(control.class.php,model.class.php)、载入小助手配置、
     * 设定缓存配置信息、特殊全局变量、系统配置参数、数据库配置文件(data/common.inc.php)、载入系统验证安全配置、
     * Session跨域设置、$cfg_相关的参数配置信息等这些模块功能的配置。
     
     
     * */
    require 'include/common.inc.php';
    //第二步>>引入视图类
    require 'include/arc.partview.class.php';
    //第三步>>实例化视图对象
    $pv=new PartView();
    //第四步>>设置视图模板
    $pv->SetTemplet("demo.html");
    //最后>显示视图
    $pv->Display();
    ?>

    第二步,创建模板页面。

         懒人省事,同样的我在根目录下创建了demo.html文件,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=">
    <title>demo测试视图-【郑州北鲨科技】</title>
    <STYLE type=" text/css">
    body{font-size:12px;}
     ul li{float:left; list-style:none;padding:2px 10px;}
     ul li a{ }
    #arclist li{ clear:both;float:none;}
    </STYLE>
    </head>
    <body>
    <!-- channel_type标签测试 -->
    <ul>
    {dede:channel type='top' row='10' currentstyle="<li class='hover'><a href='~typelink~' ~rel~><span>~typename~</span></a></li>"}
       <li><a href='[field:typeurl/]' [field:rel/]><span>[field:typename/]</span></a></li>
    {/dede:channel}
    <!--arclist标签测试 -->
    <ul id="arclist">
     {dede:arclist row="10"}
     <li>[field:title/]</li>
     {/dede:arclist}
    </ul>
    </ul>
    </body>
    </html>

    在demo.html文件中,我以{dede:channel}和{dede:arclist}这两个标签来测试程序,运行结果如下:


    这样,所调信息,都呈现出来了。

  • 相关阅读:
    深入浅出MySQL灵魂十连问,你真的有把握吗?
    sharding-jdbc
    计算表数据大小,加查询表数据大小情况sql
    高并发下数据库分库分表面试题整理
    干货|一次MySQL两千万数据大表的优化过程,三种解决方案
    CompletableFuture 使用详解
    mysql innodbd 锁
    mysql : show processlist 详解
    微信支付V2.0-python
    python代码打包加密
  • 原文地址:https://www.cnblogs.com/ibeisha/p/dedecms.html
Copyright © 2011-2022 走看看