SiteServer CMS5.0使用总结

时间:2024-04-05 08:33:24

工作原理

此CMS的原理是,利用后台网站建立网站信息,为相应网站提交相应的新闻内容,以及设置对应的页面模板,最后再结合模板及网站内容生成对应的静态页面。如此就构成了对应的前台网站,而这类网站实际上是由一大堆静态文件(.html文件)组成的。

关于静态页面的生成,SiteServer CMS 提供了两种生成方式:

  • 通过IIS的w3wp.exe进程来实现
  • 通过控制台程序siteserver.exe来实现

只要把控制台程序siteserver.exe启动起来,创建的所有页面生成任务就会被存储在数据库中,然后通过siteserver.exe来执行。如果siteserver.exe没有启动,则创建的所有页面生成任务就会被暂存在存在内存中,然后通过IIS的w3wp.exe进程来执行。

后台操作对网站的影响

一般部署一个cms网站后,其后台地址为"网站地址/siteserver",如:网站地址为:http://localhost,则后台地址为:http://localhost/siteserver。

一、网站目录说明

  1. 一个SitesServer后台只能建立一个主站,但可以建立多个子站,主站目录就是项目的根目录;
  2. 而子站的目录呢?是在主站目录下建立相应名称的目录,放置子站相关的文件。如下图:
    SiteServer CMS5.0使用总结

二、介绍网站的基本目录结构(以一个子站为例)

safetyMobile     //--------这是子站的目录
channels     // ------- 栏目对应的目录
contents  //------- 内容页所对应的目录
css // ------样式表所存放的目录
images
incloude // ------包含文件所存放的目录
js // ------js文件所存放的目录
node_modules
Photo
sitefiles
Template // ------模板文件所存放的目录
upload // ------上传文件目录
index.html // ------首页
T_首页.html // ------首页模板(它不放在Template中)

详情说明
channels:当栏目创建成功后,系统就会创建此目录,并在此目录下创建此栏目id为名的.html页面(这此页面都是二级页面),如图:
SiteServer CMS5.0使用总结
chtents:此为内容页目录,其下面还有两级,一级为栏目目录(以栏目id命名的目录),二级为内容页面(以内容id命名的.html文件)。如图:
SiteServer CMS5.0使用总结
css:样式表所对应的目录,在后台系统中,“显示管理——>样式文件管理”列表就是读的此目录的文件,是直接读取的,所以,你可以直接【修改】/【删除】/【新增】目录中的文件,不需要通过后台系统,找到对应文件,再点击【编辑】去操作。当然你想要那样操作也是可以的。
SiteServer CMS5.0使用总结
js:此文件夹,与 上面的CSS 文件夹一样。
Template:此文件夹,保存的是网站的模板文件。这是网站的灵魂文件啊,它来控制页面的布局啊。这里的文件都是记录在数据库中的,可以在目录中修改文件的内容。但不能在此进行【新增】/【删除】文件操作,最好是在后台操作。
upload:上传文件所存放的位置(包括图片,文档等)
incloude:这是局部文件存放的目录,也是直接读取目录的,可以目录中直接操作,不是必须经过后台系统。
T_首页.html:首页模板
index.html:首页,首页模板生成的首页。

数据库说明(平常使用时重点关注的表)

下面列表一些我常用到的表结构,更多详细的请看另一个博主的 SiteServer CMS的表结构说明

表名 表说明 备注
siteserver_createtask siteserver生成任务表 记录siteserver.exe进程所要生成的任务
siteserver_createtasklog 生成任务日志表
siteserver_node 栏目节点表
siteserver_nodegroup 栏目分组表
siteserver_publishmentsystem 站点表 只包含子站点
siteserver_template 模板信息表

生成任务记录表(siteserver_createtask)

字段名 字段说明 备注
Id 主键Id
CreateType 任务类型 值:Index,Content,Channel,File
PublishmentSystemId 站点Id
ChannelId 栏目Id
ContentId 内容Id
TemplateId 模板Id

【说明】:

  1. 这个生成任务记录表,只记录 siteserver.exe 进程需要完成的任务,只不包括不启动此进程时的生成任务。
  2. 此表是一个临时记录表,只有有生成任务时,表中才会有记录,完成一条任务,删除一条记录,当所有任务都完成时,此表空为空。当然每完成一条任务,系统也会在 siteserver_createtasklog 中新增一条日志记录。

栏目节点表(siteserver_node)

字段名 字段说明 备注
NodeId 节点id 静态页面就是以此id命名的
NodeName 节点名称
NodeType 节点类型
PublishmentSystemId 站点id
ContentModelId
ParentId 父级节点Id 首页的父级为0;
ParentsPath 节点所有上级id 所有上级节点以“,”分隔组成的字符串,如“1,122,129”
ParentsCount 上级数量
ChildrenCount 下子数量
IsLastNode 是否是最后一级
NodeIndexName 节点索引名称

不使用后台系统直接操作数据库完成的功能

有一些功能使用后台系统来操作,会非常的费时费力或没有此功能,那么就可以通过直接操作数据库来完成这些功能就会方便很多。下面列出一些我要使用过程遇到的这类操作:

  1. 更改树节点的父节点。此功能在节点的编辑页面是无法更改父节点的,只能通过节点的【移动】功能来完成;
  2. 取消正在生成的任务

一、更改树节点的父节点。

进行此操作需要修改 表 siteserver_node 的字段的值:

  • ParentId:父节点id
  • ParentsPath:上级节点字符器id
  • ParentsCount:上级节点数。
    如下图:
    原始:
    SiteServer CMS5.0使用总结
    数据库记录信息:
    SiteServer CMS5.0使用总结
    修改后:
    数据库记录修改:
    SiteServer CMS5.0使用总结
    SiteServer CMS5.0使用总结

二、取消正在生成的任务

在CMS5.0的版本中,我没有找到取消正在生成任务的功能,但这个功能在我这里的是必须的。例如,我之前在修改首页模板后要重新生成首页时,误操作,点了【一键生成】,然后事情大条了,就有了几百条生成任务排在前面了,我要的首页生成就得排在后面了;于是我想啊,要将之前的任务都取消掉,可是,我没找到在哪取消,后来就可能等了。。。。。。还有一次,领导在一个会议上演示发布条紧急新闻,而刚好系统在生成另一个栏目下的内容,100多条呢,他那条新闻排在后面,然后他在会上点击页面链接就是没有内容,然后他尴尬了。。。。
  所以啊,这个功能是必须的。虽然这个功能在CMS6.0版本中已经有了,但这个版本没有,又不想升级版本,怎么办呢?最后只能跑到数据库里去找解决方案了。
  宾果,让我找到了,就是表 siteserver_createtask,这个表里里面放置了 siteserver.exe 进程在执行的任务,只需要将此表清空,就可以将当前的任务都取消掉;当然你也可以清空掉其中几项也是可以的。反正是一条记录对应一个任务。
  下面贴些我对这个表常用的sql。(我们的数据库是mysql)

  1. 查询正在生成的任务,逻辑栏目,内容,模板。
SELECT a.*,b.NodeName,c.Title,d.TemplateName,c.Taxis FROM safetychina_db.siteserver_createtask a
left join siteserver_node b on a.ChannelId = b.NodeId and a.PublishmentSystemId = b.PublishmentSystemId
left join model_content c on a.ContentId = c.id
left join siteserver_template d on a.TemplateId = d.TemplateId
order by CreateType desc #, c.Taxis 
;
  1. 清空生成任务表。
SET SQL_SAFE_UPDATES = 0;    # 处理1175错误
delete from siteserver_createtask

由于时间原因,目前先记这些,后期再补充。