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数据转换成相应的显示样式,下图就是这个友好的编辑表单。

你可能感兴趣的:(数据结构,cms,生活,配置管理,项目管理)