在这一集中,我不清楚视频该做些什么,先把文档写出来了,大致可以先看看。根据文档我会做一个小的视频解释一下如何使用KingCMS的外部模板和内部模板,因为我本地测试的源里没有数据也没有特定有区别的模板,等我找到了就把视频做出来。
先来看看以下两个html命令
<!--#include virtual="path/filename"-->
<!--#include file="path/filename"-->
先解释一下这两个的用途和区别
在编写ASP程序的时候,通常都会用到这两个语句把一段相对独立的文件代码嵌套到当前页面中来。如果懂一点Asp程序,那么这个其实就比较好解释了.当然也不是Asp程序里才能用这两个语句,这两个语句都是给服务器编译的,如果服务器支持,html文件里也可以使用, 最好呢是.shtml.
下面是这两个命令的详细地描述
Include命令
Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中,是整个SSI的关键所在。通过Include命令只需要改动一个文件就可以瞬间更新整个站点!
Include命令具有两个不同的参数,如果使用错误的参数更新站点的话,不仅达不到初衷,反而会得到一大堆的错误信息。
Virtual:给出到服务器端某个文档的虚拟路径。例如:
<!--#include virtual="/includes/header.html" -->
为了更加合理的组织站点的内容,用户可以在根目录下创建includes子目录来存放所有的包含文件。Virtual参数可以通知服务器所要包含的是一个虚拟文件,即文件和当前被解析的文档不是位于同一个目录,而是存放在其它目录中。服务器会根据该参数的值找到根目录下的includes子目录。使用这种方法,用户可以把所有HTML文档包含的文件放在一个目录中,而根据相互之间的关系把不同的页面保存在不同的目录或子目录中。无论服务器解析哪一个文档都可以找到所包含的文件,不会产生任何错误。
不过这里有一个小问题需要解决。一般我们都会在页面中加入一些TITLE和META标签,如果我们规定所有的页面都调用相同的页眉文件的话,就显得很不灵活。用户碰到这样的问题时,可以使用两个包含文件,一个设置TITLE标签前的内容,另一个设置META标签后的部分,而在两个包含文件之间则可以添加任何定制内容。例如:
<!--#include virtual="/includes/header1.html" -->
<TITLE>Your Page Title</TITLE>
LINK rel = STYLESHEET href = "http://domain.com/styles/my.css" Type = "text/css" >
META NAME = "Description" CONTENT = " Description of page">
META NAME = "Keywords" CONTENT = "keywords for page" >
<!--#include virtual="/includes/header2.html" -->
这里放置页面内容
<!--#include virtual="/includes/footer.html" -->
从上我们可以看出通过在页面中包含页眉和页脚可以大大减少站点更新的工作量。但是如果我们希望动态显示一些内容,例如页面的最后更新时间等该怎么办呢?没问题,我们可以把包含文件使用.html后缀保存,这样就可以在包含文件中调用其它的包含文件。
File:给当前目录的相对路径,其中不能使用“../”,也不能使用绝对路径。例如:
<!--#include file="header.html" -->
这就要求每一个目录中都包含一个header.html文件。当然,采用这样的方法并不比更新每一个页面简单多少,但是如果用户只更新一、两个文件的话还是很方便的。例如,如果我们不希望让一个对HTML不熟悉的人直接改动网站中的新闻页面的话,可以只让他更新一个单独的文本文件,然后再把该文件包含到HMTL文档中,这样即不会破坏原页面,同时又更新了内容,两全其美。
使用"file"的时候,等号后面使用的是相对路径。使用"virtual"的时候,等号后面使用的是绝对路径。很多人都不知道virtual这个包含绝对路径。
看完这一段能理解了的话就比较容易理解KingCMS外部模板和内部模板的区别了,外部模板其实主要是指页面的框架,包括这些内容:页头,页尾,栏目导航,可以在不同栏目共用的KingCMS标签,JS程序等,总之是多数栏目或模块可以共用的部分放在外部模板。
内部模板主要是放当前数据的内容和标签,比如当前栏目的内容,当前单条数据的详细标签及信息。
然后再通过外部模板的{King:inside /}命令调用进去,这里可以把这个命令就看成一个<!--#include file="" -->不同之处在于这个标签是根据模块自动指定要包含导入的文件名称的,而<!--#include file=""-->这样的命令要自己动手指定文件了。
KingCMS模板的分成内部模板和外部模板的作用其实在于减少制作模板的工作量,能共用的标签就一起共用了,如果有区别于其他的栏目,那复制一下外部模板,稍微修改,内部如果是一样就可以不动了,一开始理解可能比较困难点,但理解了就知道这样做其实很方便操作了。
KingCMS的程序会根据后台指定的外部模板和内部模板读取模板中的标签,根据标签再读数据库生成数据,最后合成成静态页面,无论什么样的数据或文章模块、下载模块、单页面、自定义模块都是这样的过程,把这个过程理解了,那么如果遇到错误也知道该在哪个部分进行修改。
先到这里,等我找到了合适的演示数据和模板大致的演示一下就知道有什么区别了。