Archive for the ‘帮助文档’ Category

专题区域、专题文档、专题发布

星期四, 01月 3rd, 2008

所谓专题的区域跟首页、频道页的区域划分是一样的,只不过所创建的区域作用于专题页面而已。
以一个新浪专题为例:

这些区域就是属于专题区域。

开始标记:专题页面模板中区域的开始定界符
结束标记:专题页面模板中区域的结束定界符
注意,开始、结束定界符号在专题模板中必须唯一存在。如图:


文档属性:选择该区域的文档所属的专题属性。
单行模板:用于修饰该区域文档的显示样式。
单行模板中用到的模板变量和函数请参照

当然,专题的制作很大程度上还是要靠手工制作。

专题文档是该专题链接到文档的虚链接,是一种弱耦合,即属于专题的文档肯定强链接于某个分支。
文档可以有两种方式加入专题,第一种方式是直接添加,进入专题的相关文档页面,如图:


点击右下角的添加按钮,直接添加属于该专题的文档。
第二种方式是从文档列表中挑选,可以输入关键字限定,如图:


注意,添加完文档后,要设置文档所属的专题属性,如图:

专题的发布过程与文档差不多,专题静态化的同时将相应的把该专题的区域静态化。

站点内容的组织结构-站点分支

星期四, 01月 3rd, 2008

站点分支是站点内容的树状组织结构,互联网每天都要产生大量的内容,是不是谁每天更新的内容多谁就牛呢,肯定不是,而是谁把有效的内容组织的好,分支虽然是不限深度的,出于对搜索引擎的考虑,最好不要超过3级,你可以依赖文档类型和文档属性来弥补分支的深度浅的问题。
站点分支的建设对搜索引擎影响比较大,搜索引擎不喜欢深度超过3级的内容,最好有站点地图(site map),而站点地图反映的就是分支的划分,因此在创建分支之前,一定要好好考虑内容的组织,对外提供一个好的site map,引导网友和spider能够清晰的浏览你的网站,最快的速度找到想要的内容。
如图:

添加分支

文档模板制作详解

星期四, 01月 3rd, 2008

woodplow publisher在严格意义只有一种前台模板,那便是文档模板,没有其他发布系统中存在的栏目模板、首页模板、列表模板等,因为woodplow强调动静结合、区域划分。
什么是动静结合呢?网站的静态化是为了迎合搜索引擎对静态页面的喜好、降低服务器负载,可是过度静态化会增加维护成本,并且内容更新的即时性也会受到影响;网站的动态化(在建站早期基本上都是)能保证内容的即时性,相应却加重了服务器的负载,毕竟大部分动态页是数据库驱动的,而数据库的性能成为80%网站的性能瓶颈。当然,像新浪这种大型门户,静态化是通过计划任务自动完成的,维护开销也不是很大,毕竟中小型的用户没有这个实力。因此,我们主张伪静态(还是动态)+纯静态来解决搜索引擎收录跟维护成本的矛盾。
什么是区域划分呢,区域划分就是为了降低维护量,主要用于站点首页、栏目页、最终页。首页、栏目页、最终页是更新频率最快的页面,尤其是首页和栏目页,而首页和栏目页的维护就是要划定区域,分开处理,毕竟不同的区域更新时间是不同的。比如:sina的首页区域划分

1、招商加盟区 2、娱乐音乐区 3、体育nba区 4、社会军事区 5、影视直播区
不同的区域由不同的人维护,因此首页模板没有存在的价值。还比如一级栏目页

二级栏目页:

这些页面都可以只做好layout页面,然后上传即可。比如:

其中这种代码就是ssi(server side include)服务器端的包含,iis和apache都支持,这个包含文件就是页面管理中需要添加的,如图:

然后设定该区域满足的调用条件:

而文档的归档页面,也就是列表页面,woodplow推荐使用伪静态或者archive插件来处理,比如

这样可以降低维护的成本。

下面介绍如何制作文档模板
1、模板变量
模板变量都以形式存在,即调用field函数。可用字段参数对应如下:


docid <=> 文档标识(document+block)
pageid <=> 文档分页标识(document)
branchid <=> 分支标识(document+block)
doctypeid <=> 文档类型标识(document+block)
fromid <=> 文档转载来源标识(document+block)
authorid <=> 文档记者标识(document+block)
editorid <=> 文档编辑标识(document+block)

doctitle <=> 文档标题(document+block)
subtitle <=> 文档副标题(document+block)
branch <=> 分支标题(document+block)
alias <=> 分支别名(document+block)
context <=> 分支上下文(document+block)
branchurl <=> 分支链接地址(document+block)
domainurl <=> 所属域名(document)
tag <=> 文档tag,类似于关键字(document+block)
doctype <=> 文档类型(document+block)
docfrom <=> 文档转载来源(document+block)
author <=> 文档记者(document+block)
navipic <=> 导航图片(document+block)
digest <=> 文档导读(document+block)
pagecount <=> 文档页数(document)
pageindex <=> 文档分页索引值(document)
pagetitle <=> 文档页标题(document)
pageurl <=> 文档页地址(document)
content <=> 文档页内容(document)
createtime <=> 文档创建时间(document+block)
说明:括号中document代表对文档模板有效,block代表对区域页面模板有效。
注意:
2、模板函数
模板函数遵循格式,并且可以互相嵌套,例如:

prev <=> 前一页(document)
next <=> 后一页(document)
page <=> 分页 (document)
formatdate <=> 日期格式化(document+block)
urlencode <=> 网页地址格式化(document+block)
left <=> 截取字符串(document+block)
filterhtml <=> 过略html标记(document+block)
relate <=> 相关文档(document)
trim <=> 剔除空格(document+block)
crlf <=> 剔除回车换行(document+block)
cdata <=> xml cdata标记(document+block)
replace <=> 字符串替换(document+block)

用户可以自主添加自定义函数,下图是上述模板函数的api:

注意:函数的字符串参数不能使用双引号(””)引用,须使用单引号(”)
示例说明:

  • prev函数api: 其中,prevTemplate为前一页链接模板,firstTemplate为第一页链接模板,即如果当前页有前一页,则使用前一页链接模板,如果当前页为第一页,则使用第一页链接模板。例如: $pageurl$为模板保留字,此处代表上一页的文档访问地址此函数与page函数、next函数配合实现效果: 类似的效果也可以延伸出来。
  • next函数api: 其中,nextTemplate为下一页链接模板,lastTemplate为最后一页链接模板,即如果当前页有下一页,则使用下一页链接模板,如果当前页为最后一页,使用最后一页的链接模板。例如:
  • page函数api: 其中,pageType是分页类型,如果为1,则为下拉式分页方式,如果为2,则为平面分页方式,pageTemplate为非当前页模板,currentTemplate为当前页模板,例如:下拉式分页平面式分页 下拉式分页样式1如图: 平面式分页样式1如图:
  • 平面式分页样式2如图:
  • urlencode函数api:,targetStr为需要编码的字符串,该函数应用最多的场合就是对文档访问地址进行格式化,防止javascript引用时出现错误,例如:,用到了与field模板变量函数的嵌套调用。crlf函数、trim函数、filterhtml函数也是使用此种调用方法。
  • left函数api:此函数用于对超过一定长度的字符串截取到指定长度,targetStr为需要截取的字符串或者嵌套变量,cutLenght为截取的长度,suffix为后缀填补字符串。例如:
  • formatdate函数api:,dateString为要格式化的日期字符串,dateFormat为日期格式,如果以2007-05-01 09:08:04为例,可用的格式变量有:{Y}=2007,{y}=07,{M}=5,{m}=05,{D}=1,{d}=01,{H}=9,{h}=09,{MI}=8,{mi}=08,{S}=4,{s}=04。例如:,便是格式为2007-05-01的样式。
  • replace函数api:,把字符串srcString中出现的outString字符串替换为inString。例如:
  • relate函数api:,relateNum为调用的相关文档数目,styleTemplate为风格模板,例如:,样式模板中可以使用的内部保留字有: $docid$=文档标识,$doctitle$ =文档标题,$docurl$ = 文档访问地址,$createtime$ = 文档创建时间, $branch$ = 分支名称,$alias$ = 分支别名,$branchid$ = 分支标识,$doctype$ = 文档类型,$doctypeid$ = 文档类型标识,$index$ = 相关文档当前索引

woodplow CMS的存储框架

星期四, 01月 3rd, 2008

woodplow publisher具有开放式、模块化的系统结构,域、分支、文档、专题、页面五个元素构成了系统的核心数据模型。

域是顶级管理单元,对应着一个站点域名或二级、三级域名,物理上对应着文件系统中某个目录,当然目录可以不在一个逻辑驱动器上。

节点的域名可以为路径,例如:http://www.woodplow.com/news,注意不要以”/”结尾。如果你想线上管理域所在的目录,可以配置文件系统,增加一个配置点,使其与域对应的目录相关联。

分支是站点资源的组织单元,分支必须基于某个域名创建,文档、专题、页面的组织都是基于分支的。分支理论上不限定深度,但是建议不要超过3级。

文档是站点内容的图文展示,由编辑通过所见即所得的编辑器录入产生,文档的表现形式有其所属分支的文档模板决定,文档可以有很多逻辑属性,比如:热点新闻、推荐新闻等,为了形成内容的交叉,文档还可以携带文档类型,比如:新闻、行情、评测、导购、厂商、促销等。

文档的分页内容要集中管理,woodplow将文档基本信息和主体内容分开存储以便提升检索速度。

专题是对满足某一主题(比如:2007年巴基斯坦总统大选)的文档进行集中组织的单元,专题可以弥补分支的物理组织为逻辑组织,使用指针把散落到各个分支和域的符合同一主题的文档集中展示出来。

你可以把文档添加进专题或者选择指定文档加入专题。

页面是站点频道页、首页、文档页、专题页中的分割区域,比如:新闻周排行、首页热评新闻等。

第一个版本有三种类型的页面:手动页面、动态页面、包含页面。

关于文件系统的配置文件的特别说明

星期四, 01月 3rd, 2008

文件系统是内容的物理存储结构,合理的划分文件系统对日后的维护影响很大,woodplow建议采取”分而治之”的方法,把图片、静态页、素材图标、css样式表、javascript脚本、广告页等建站元素分开存储或者组合存储,默认的文件系统配置:

该配置文件只有网站管理员才可修改,基于安全性,无法通过后台线上修改。
默认划分的四个配置点能够满足中小型网站的使用,配置文件的结构很简单,通过xml标记名能很容易的获知。
每一个item单元代表一个配置项,物理上对应一个磁盘目录,逻辑上对应一个二级域名或者访问路径,index标签标识了该配置项的索引值,注意索引值要从小到大排列,path标签可以为相对路径和物理路径,注意不要以”/”或者”\”结尾。url就是逻辑上的访问地址,以”/”结尾,该地址可以用于下载素材、css文件、javascript等。upload、edit、delete、move、create依次代表上传、编辑、删除、移动、创建的权限,其中包含了允许操作的文件类型,比如:htm|html|css,便是允许操作.htm、.html、.css的文件。
注意:要确保iis安全帐号对配置项中path标签指定的路径有读写权限。

特别说明以下几点

1、不要把后台cms目录放入配置点。
2、不允许上传.asp文件。
3、设定服务器不允许下载directory.xml文件。(修改iis解析映射)
4、如果能满足要求,尽量使用static文件夹作为静态存储点。比如:/static/news可为新闻中心,/static/mp3可为mp3频道等等。
5、为专题策划单独设置素材存放点。

文档模板中加入分页的方法

星期四, 01月 3rd, 2008

woodplow的模板中可以很容易的对多分页的文档进行描述,其中用到了几个系统定义好的模板助记符。

<!–cms:page(pagetype,pagetemplate,currtemplate)–>

其中pagetype为1时为下拉式分页,pagetype为2时为平面式分页,可以自己扩展其他pagetype

下拉式分页示例:

<!–cms:page(1,’<option value=”$pageurl$”>第$pageindex$页:$pagetitle$</option>’,’<option value=”” selected>第$pageindex$页:$pagetitle$</option>’)–>

在这里$pagetitle$ 代表分页标题,$pageindex$代表分页索引号,$pageurl$代表分页的访问地址。

平面式分页示例:

<!–cms:page(2,’<li class=”li_blue”><a href=”$pageurl$”>第$pageindex$页:$pagetitle$</a></li>’,’<li class=”li_red”>第$pageindex$页:$pagetitle$</li>’)–>

如果要显示上一页、下一页,则使用下面两个模板项:

<!–cms:prev(prevTemplate,firstTemplate)–>

<!–cms:next(nextTemplate, lastTemplate)–>

上一页示例:

<!–cms:prev(’<a href=”$pageurl$”>上一页</a>’, ‘第一页’)–>

下一页示例:

<!–cms:next(’<a href=”$pageurl$”>下一页</a>’, ‘最后页’)–>

当然,你也可以使用图片来标识上一页、下一页 。

对零散页面的深入理解

星期四, 01月 3rd, 2008

woodplow所提出零散页面的概念,也就是块状结构。 

零散页面之静态更新机制

大型发布系统的内容的更新机制一般分为三种。
1、手动更新。
中小型的发布系统一般支持手动更新,woodplow主要支持的也是这种,通过编辑或者发布人员手动维护发布文档、专题、页面等需要静态化的地方。此方法的优点是只更新目标页面,发布服务器的压力不会太大,缺点是加大了维护成本。
2、触发更新。
通过设定触发点,当满足触发条件时,由系统自动更新静态页面。woodplow的1.0版本暂不支持,后续版本会考虑加上。
3、计划更新。
通过添加更新计划,由任务管理器监控时间,到了更新时间自动运行更新程序进行静态化。woodplow推荐当站点结构稳定以后,采用此方法,该方法也是国内大型门户网站(比如:新浪网)普遍采用的方法,通过在linux中用perl或者php等书写维护脚本,放到crontab的任务队列中循环执行。在windows os中可以使用schedule计划任务实现,或者将更新计划做成windows service,常驻内存。

woodplow的下一版本,即2.0将增加对计划更新的支持

零散页面之页面类型

woodplow 奉行的区域划分、分而治之的主要体现点就是琐碎页面(piece block),在功能上类似于很多发布系统中的自定义标签(custom label),按照实现方式分为3种:动态页面(dynamic,从数据库中按照某种条件筛选出来,按照一定的item template展现)、包含页面(include,采用capture手段把某种应用的output作为input来引用,可以用来跟其他系统整合)、静态页面(static,有编辑或者美工手动设计的小页面)。

零散页面之创建向导

动态页面(dynamic block)

1、添加动态页面基本信息。进入页面管理,选择左边的分支,将页面加入到指定的分支中。如图:添加动态页面到”新闻中心”

页面名称:为了维护方便,请起用友好的页面名称。页面类型:一共三种类型,选择动态页面。作用文件:该页面将作用到的文件,可以为频道页、首页、某个单独的包含页面、js文件等,注意:该文件的路径是相对于发布节点的。即:如果”新闻中心”所属的域的路径为/static/news,则示例中的作用页面就是/static/news/index.html,即新闻中心的首页。开始标记:出现在作用文件中,用于确定块的起始位置。结束标记:出现在作用文件中,用于确定块的结束位置。简介:尽量详细的描述此页面的功用,方便用户维护、识别。 2、补充页面的调用条件。添加完毕后,程序自动跳转到条件补充窗口,如图:

文档数量:调用的文档的数量。指定文档:如果你知道要调用的文档的标识号,可以直接输入文档的标识号,用逗号分割,比如:3,8,9,14,16 。一旦指定,则其他条件都失效。文档分支:选择所属分支的文档,过滤条件之一。(通过”手工设置”,可以设定选择该分支的子分支)文档属性:选择属于选择的文档属性的文档,过滤条件之一。如果选择多个属性,可以设定并集还是交集。文档类型:选择属于该文档类型的文档,过滤条件之一。如果不选,则默认所有的文档类型。单行模板:指定显示页面块时一行新闻的模板,又称item template,单行模板中可以嵌入模板变量,也可以使用模板函数,请查阅。页面头部:块的头部。页面尾部:块的底部。 3、手工设置。如果向导不能满足你的调用需求,你可以进行手工设置。如图:

静态页面(static)

1、广告、头部、尾部、友情链接、不定长文档调用等可选择使用静态页面。

2、创建静态页面后,便可以在编辑区域离线(使用dreamweaver)设计好页面后,把source code拷贝其中,发布即可。如图:

静态页面内容添加(大图)

包含页面(include)

1、包含页面主要用于与其他应用的整合。

2、你需要指定调用地址,区域开始定界符号,区域结束定界符号,如图:

包含页面添加(小图)

包含地址:远程调用地址,可以指定其他内部应用或外部应用的绝对访问地址,不能用相对路径。

开始字符:远程地址的执行结果中唯一标定的区域开始符号。

结束字符:远程地址的执行结果中唯一标定的区域结束符号。

如图:

那么,<!–   循环开始   –> 和 <!–  循环结束  –> 之间夹的内容将被截取到包含页面中,如果要更改样式,只需修改外部程序的参数即可。

文档管理的常规维护

星期四, 01月 3rd, 2008

文档常规维护:
1、修改基本信息,不推荐修改文档tag。
2、分页信息,可以删除分页,编辑分页,添加分页。注意:编辑完要重新发布该文档。
3、审核,如果文档未经审核,无法发布,前台无法调用。
4、删除,woodplow的删除是直接从库中删除,无法恢复,谨慎使用。
5、发布,文档的静态化。

分开管理的简单说明

星期四, 01月 3rd, 2008

分支是站点的逻辑结构和物理存储的骨架,因此维护时须谨慎,一旦设定好分支,不要频繁的更改,尤其是删除操作,会导致分支下内容的丢失,或者导致垃圾信息的产生。woodplow不支持分支的合并,内容的转移等操作,如果必须要做,请维护人员在数据库中批量操作。
待续… 

分支管理之内容归档
很多发布系统都按照分支进行归档,woodplow建议按照分支、文档属性、记者、编辑、来源、文档类型、发表时间等组合进行归档,尤其是按照时间归档,可以降低归档造成的服务器负载。
待续…

用woodplow cms 建立网站的步骤

星期四, 01月 3rd, 2008

step1:安装系统
1、系统的运行时环境,windows2000或者windows2003(推荐),iis5.x web server(推荐iis6.0),sqlserver2000或者sqlserver2005 网络数据库。
2、在sqlserver的企业管理器中创建一个数据库,设定数据库用户名和操作密码。
3、创建一个系统帐号(例如:web_user),解压缩您下载的程序包到某个目录,并设定web_user用户对该目录的读、写权限,在iis中绑定该目录设定站点,建议使用ip直接访问后台程序,注意:打开iis的父路径,设定web_user为iis的权限用户。
4、运行安装向导(例如:http://127.0.0.1:8080/install/install.asp),按照提示一步一步完成安装。
step2:确定站点逻辑结构和存储结构
1、划分域名,根据站点的规模合理的分配域名。(例如:新闻中心=http://news.woodplow.com;体育频道=http://sport.woodplow.com)


2、划分基于域名的分支,为了合理的组织内容,建议分支深度不要超过3级,扁平、交叉的组织结构比较合理。


3、配置文件系统,文件系统是内容的物理存储方式,文档的静态化存储最好具有逻辑上、语义上的意义,便于维护。默认的安装分配了静态发布、模板文件、风格修饰、上传附件4个配置点,静态发布点是文档静态化的存储目录,捆绑了static文件夹,模板文件点是站内模板的存储目录,集中存放模板文件,捆绑了template文件夹,风格修饰点是css、javascript、icon图标等风格文件的存储目录,捆绑了style文件夹,上传附件点是文档图片、下载文件、办公文档等附件的存储目录,捆绑了attach文件夹。这四个配置点基本满足了大众化的需求,当然你也可以通过修改配置文件进行自主配置。如图:


注意:要为图片的上传选择一个配置点,默认index=4,是attach文件夹对应的上传附件配置点。
4、设定文档属性和类型,文档属性和类型是站点扁平化、交叉化的有力补充,也是woodplow的一大亮点。
可以为全站建立一个通用属性组


建议为专题策划建立一个专题属性组


然后再为不同的域创建域属性组


这样,你便可以随意的把一个或多个属性与文档关联起来,进而方便把指定的内容推到首页或者频道页,归档也灵活起来。
另外,为了建设行业门户网站的方便,我们加入了文档类型的概念,以IT类型的门户为例,不同的文档会有不同的类型,或者属于新闻类型,或者属于行情新闻,或者属于厂商新闻,或者属于导购评测,等等。


域、分支、文档属性、文档类型的紧密结合,便形成了站点扁平、可扩展的组织结构。
step3:相关杂项
1、管理文档来源,网站内容可以是原创(搜索引擎喜欢原创,原创是网站的核心资源)的,也可以是转载的,转载要注明来源(不注明来源,那是抄袭^_^)。

2、管理撰稿记者,站内的市场人员或者前方记者是原创的动力,采集的原始稿件是编辑创作的有力支撑。

3、管理站内编辑,网站的编辑是使用woodplow最频繁的人员,负责把记者采集到的信息进行加工、编篡成赏心悦目的文章,奉献给网友,随着”内容为王”理念日渐深入人心,编辑的作用越来越重要。
编辑属于系统用户

在1.0的版本中,我们并没有把编辑的权限绑定到频道上,在后期的版本中,这一点会加强。
step4:创建模板
网友访问你的网站,第一眼看到的就是网站的face、interface、looks,网站的总体风格、布局、排版、样式等等是用户体验的一部分,变得越来越重要,当然,简介、明快、让网友能迅速的捕捉到自己想要的内容,站点结构和布局就是第一位的,这是网页设计师、UI设计师、UE设计师、总编辑配合的结果,因此制作好的模板,确定好的风格和布局,现在就开始吧
1、确定网站的主色调,好的网站,主色调不会超过5中颜色,具体到频道,会有频道的次色调,这些是有css样式表决定的,随着div + css的xhtml布局的日渐推崇,css设计也越来越标准化,以便应对不同浏览器的兼容性,woodplow建议把style集中管理,上传到风格修饰存储点中。

上传css文件到风格素材存储点

2、制作模板,制作模板的工具一般采用dreamweaver,请具体看模板制作向导。
3、编辑分支,为分支指定具体的模板文件。

step5:生产内容
内容的来源一般有两种方式,转载和原创,当然大部分站长在刚开始建站的时候还会使用采集工具抓取别人的内容(不推荐,也没意义,woodplow不支持,百度谷歌也不支持)。具体查看内容生产向导。
step6:内容发布
数据库中有了内容,便可以静态化发布了,这是常规的方法、也是推荐的方法。
1、选择发布,选择你要发布的文档、专题、页面直接发布。

点击右下角,发布按钮
2、批量发布

发布进程

step7:首页、频道页、归档页
1、制作首页和频道页,处于对首页和频道页重要性的考虑,我们需要单独制作,主要是layout的制作,layout中有对区域页面的调用,一般采用服务器端的包含(SSI=server side include),区域页面则需要添加。制作完layout页面,上传到指定的目录即可。
2、文档的归档采用动态和伪静态的方式表达,可以降低维护量。并且一般按照时间进行归档。
step8:日常维护
平时工作可能大部分时间花在了维护上,为此,你可以自己书写发布脚本,进行计划任务。这个功能将在后续的版本中添加。