opencms
项目(Procject)
项目就是“Online”项目、“Offline”项目或是“Offline”的子项目,其实,项目就是为不同的目的而组合到一起的一组VFS资源(也就是VFS中若干文件夹的组合),为一个站点,你可以创建一个项目,包含这个站点所有相关的资源,但你选择这个项目时,只会看到这个项目中所包含的文件夹和文件,发布项目时也只是发布这些资源。
模块(Module)
模块就是有特殊用途的一个文件包,例如,它可以是一个站点,或者是实现某种功能的一些代码和页面,模块能够作为一个整体在opencms中导入或导出,通常你会每一个站点创建一个对应的模块。
站点(Site)
就是你通过浏览器所能访问的网站,/sites/default就是VFS中默认的一个站点
现在让我困惑的是OpenCms在哪里保存它的文件?所有的模板,站点配置等在/system文件夹下具体的,当创建一个站点时,会为其也创建一个相应的模块,模块路径如下:/system/modules/yourmodule,在这里保存这个站点的模板,其它资源等。
简单地说,站点文件夹就存放的是网站的内容 ,也就是编辑人员所编辑的文本,结构化内容(如新闻)等,而/system/module文件夹下存放的是模板设计人员,编码人员相关的一些网站内容。
区别于其它简单的cms系统,OpenCms中可以使用属性(Properties)和结构化内容(structured content),再我们深入研究创建站点之前,让我们来了解一下它们还是很有好处的。
属性(Properties)
每个文件和文件夹都有关联的属性列表,它们被映射成key->value串对,如title属性,显示的是文件的标题,与文件名称相对应,template属性用来设置页面显示时的模板,还有一些navigation属性,让你决定是否使用动态的导航菜单,此外,用户还可以灵活的自定义一些其它的属性。
例如,有一些通过模板生成的页面显示为样式一,另一些页面只是和这些页面的显示略有不同,显示为样式二,通常的作法是:拷贝模板,做一下极小的改变存成另一个版本,然后为每一个页面指定不同的模板。这种作法违反了DRY原则(Don't repeat yourself,参见《,The pragmatic Programmer 》),所以,更好的作法是定义一个属性,这样,页面编辑人员就可以为每个文件修改属性来达到这个目的,当然,在你的“模板”中,需要根据这个属性的不同值来进行不同的表现。
这么做会增加模板编码的复杂性,所以:这不会像是在公园中漫步一样悠闲,但是它会使你和编辑人员做在管理时做一些“很酷的事”,使生活变得更轻松。
结构化内容(Structured Content)
OpenCms中你可以自己定义“结构化内容”,所谓的“结构化内容”实际上就是xml格式的数据,这种类型数据的好处就是在编辑它们时,它能够为编辑人员展现一个友好的编辑页面。
例如:在一个页面的顶部,你可能会有一组链接,像是:首页,联系我们,站点地图等,不在模板中进行复杂的编码,也不让你的编辑人员像编辑文本一样管理它们,而是使用结构化内容,这样做你可以让编辑人员通过一种友好的编辑表单来管理这些“链接”,并且在你的模板中把这些XML数据转换成相应的显示样式,下图就是这个友好的编辑表单。