首页 > 代码库 > 织梦解析模板之灵活应用视图类

织梦解析模板之灵活应用视图类

   初步对织梦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}这两个标签来测试程序,运行结果如下:


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