“风讯4.05”实战第二天:看录像

不提炼学过的东西,不做笔记真是不行。虽然我摸索着能记得应该怎么做,但是对于风讯这种巨无霸的系统来说,任何一个小差错都有可能导致大问题。于是重新看一次风讯网站上的教学录像,把要点记下来。

重要提示:如果是在本机上调试程度,需要看清除你用的是哪一个IP地址。建议安装后立刻进入“系统参数”更改“域名”为本机IP地址。如果混用不同的域名(比如127.0.0.1和192.168.0.1)可能会造成某些登录不正常的情况。如果登录出错,最好是关闭浏览器重来,否则混乱的URL可能会造成不必要的麻烦。

01、根目录和虚拟目录2种情况安装风讯CMS4.0

这章没说什么。大致讲了下IIS的配置,要点就是要让IIS下的ASP支持父路径。这个几乎是所有ASP系统要做的事情。演示是用INSTALL程序完成的。不可理解的是,在演示虚拟目录安装的时候,演示者放着输入虚拟目录的对话框不用,而是在安装之前去手工修改const.asp中的路径设置,是因为这样很酷?我觉得这完全是炫耀的需要。

02、后台填加栏目演示

对着“栏目管理”按“添加”,就这么简单。说得太简单了。据我的观察,还需要决定英文名称和其他一些设置。至于父级栏目ID,应该是不能选择的,改栏目的父级栏目是什么取决于是是在什么位置按的“添加”。该提示框下的“*0为根目录”是个垃圾代码,因为风讯已经不使用数字作为显示了。需要增加N级子栏目的话只有进入“栏目管理”找到合适的父栏目按“添加子栏目”。如果要移动已经建立的子栏目,需要进入专门的菜单。这样的设计没有IWMS那么直观,可能是他们分别有不通的设计理念。重要的一个设置是“栏目保存路径”,其实就是生成静态页面的路径,可以点“选择路径”然后通过右键,新建目录或者删除目录,然后在目标目录下按“确定”。

03、理解风讯模板

模板是存储在Templets目录下的一系列文件。其实我记得这个栏目名称并不是不可改变的,因为设置模板的时候需要自己手动指定位置,所以可以是任何目录,只要你不嫌麻烦。“首页”的模板是在系统设置中指定的,其他的分别在栏目管理中指定。在“捆绑模板”中可以批量指定模板。如果是更改模板,需要在更改模板后重新生成一下页面,否则页面展示上还是以老面孔出现。模板的名称可以是中文,这个设计确实方便,但是我仍然担心他的兼容性。导入模板是一件非常麻烦的事情,由于风讯模板跟一大堆东西有关,所以你即使拿到了与版本相匹配的模板文件,但是标签样式不同的话,你也只是拿到了一堆“彩壳”,“机芯”的改造工作量还是非常大的,技术含量甚至要比重新建立一个模板还要高,所以只适合哪些熟悉风讯,但是美工能力缺乏的人。而且交流的模板往往缺乏说明文件,所以要花费的气力真是非常多。

04、系统参数,新闻系统

“系统参数”容易和新闻系统的“系统参数设置”混淆。风讯不仅仅把自己看做是一个新闻管理系统,而是一个包括新闻系统在内的多个系统的总和。他的各个自系统是可以单独关闭的。“系统参数”指的是这些系统的共用设置。包括可以上传的文件类型、大小等等。“配置文件”的修改是一个比较危险的设置,但是有可能在使用中需要修改它。比如更改管理目录等等。我估计应该可以直接修改文件而不通过这个后台。“管理员管理”和“数据库维护”还有“日志管理”都是很关键的功能,在这方面的设计风讯是很到位的。“自定义字段”也是个很强的功能,也展示了风讯的可定制性有多强。

新闻系统方面。从我的实际工作情况下,“投稿”是个一般不用的功能,但是作为WEB2.0的概念不能少了他。“回收站”的设置也让人觉得贴心,甚至删除的栏目也能找回(下面的文章能不能找回还没测试)。“常规管理”用来管理在网络新闻中经常用到的来源、关键字等数据,在这里可以做一些预设置。

“添加栏目”中,外部栏目就是个伪栏目是一个URL指向。在前台他作为栏目存在,但是他却没有栏目作为一个容器所应该具备的功能,说白了就是个太监。捆绑域名的设置比较有意思,在一个管理系统下多个域名看起来比较牛,而且也很有大站风范。实际应用会怎么样还很难说。归档设置也体现了风讯是为大信息量门户设计的理念,一段时间以后这个栏目下的新闻将自动进入归档数据库,可能前台搜索等功能将不能搜索该信息,从而减轻服务器压力。

05、下载系统

下载系统自带防盗链和地址过滤。估计这个防盗链的功能有限,否则还要IIS防火墙干什么?下载项目的设置基本是流行的一些字段,对于想建立下载的网站来说,确实是比较省心省力。

06、会员系统

会员系统就是管理访问者的系统。风讯自带了支付设置,这个确实有点牛B。积分金币交易是论坛比较流行的玩法,但是要使用这个的话,新闻和下载系统就不能以HTML生成静态页面。我想这个东西我会很少用到。风讯还在会员系统中内置了相册和博客,这个我也不会启用。在会员管理中如果要修改会员信息,必须点会员名称在可以,选ID只能看到概况。个人会员和企业会员有什么差别,教程中没有提及。

07、其他系统

投票、友情链接、广告、统计、留言、采集,都是网站经常用到的东西。但是统计、广告这样的系统与其自身的紧密度不是很高,依然采用嵌入JS代码的方式调用,作为ASP系统的话效率太低了。留言和投票倒是看上去比较完善。自助式的友情链接我觉得已经没有“友情”成分,而且GOOGLE声明这种自助链接不会对排名的提高有什么好处。风讯405内置了SK采集程序,好像是要放弃自己搞的那套了,但是目前是两者穿插使用,SK要借助风讯采集的设定才能工作。遗憾的是SK依然没有直接采集数据库的选项,这个方面IWMS做得不错,但是他的页面采集又实在太差了。

08、样式

开始切入正题了。风讯的特色、自制模板的关键信息从此开始。

其实“样式”应该叫“格式”更确切,也不会和CSS样式混淆。它所面对的是一个特定的数据记录,任务就是决定如何展现与这个记录有关的所有数据字段,并且决定用什么样的HTML格式去展现。单独的“样式”是没有意义的,它最终要通过在“标签”里引用来才能最终得以应用。

09、标签

“样式”决定了一个记录的展现方式,那就要有一个查询来获得特定的记录,两者配合才能完成数据应用。“标签”就是一个查询。这个查询还是有一定限制的,风讯定义了几个分类。另外查询结果也有传统式和符合标准的模式。如果没有称心的查询也没关系,风讯允许使用“自由标签”,也就是自定义查询。可以说这种查询方式已经是到了灵活性的极致了。只是教程没有说太多。

10、发布新闻 理解样式-标签-模板之关联

模板、标签、样式这三者紧密相连,并且按照顺序套用。当生成一个页面的时候,首先模板生成HTML代码,遇到标签的时候则执行标签的查询,当获得标签查询之后再根据模板生成指定格式,并且插入模板的代码中,最后形成完整的HTML代码格式。并不是所有标签都有要套用样式,标签的设置如何改变HTML代码结构也是需要大量实践才能领会。

11、后台栏目和模板的部分设置

这一章只是重复了前面内容,来了一次“实战”。里面最需要注意的是栏目排序的根据“权重”,这个数字越大越靠前。

12、采集系统

这个部分在新的405版本中已经被SK系统取代。如果已经有采集的概念就不需要看了。

13-15、带模板的普及版实际应用

基本上没有多少好借鉴的东西。印象深刻的只有批量设置新闻属性的功能比较好。新闻的属性表面看似乎没有什么特别,但是因为有了这个字段,在前台的标签才可以有更多的花样可以玩。“幻灯”这个属性在405已经取消了,这是明智的。为了一个FLASH轮换效果而设置一个属性有点草率,本来这个事情应该可以用其他的属性代替解决。最快熟悉应用的方式应该是建立两个网站,一个是原版、一个是原版带模板,在实际应用中互相参照,才能真正在感性上明白该怎么建立自己的模板。

16、通用标签

通用标签是跨越栏目和正文的标签。该介绍没没有介绍什么代码层面的东西,所以没有什么特别之处,我只是觉得“子站导航”是我不会用到的,因为风讯的子系统相对固定,如果启用子站导航那么势必导致千篇一律的感觉,没有自己的个性。生成标签中的CSS项目指定的名称是指CLASS名,实际应用中会造成很多同名的CLASS,非常不经济,实际应用中最好不要让风讯的标签中带样式名。

17、列表类标签

新闻的属性在列表类中终于得到了体现。几种排列方式基本都要根据新闻的属性进行甄别。这章也没什么好关注的。讲解的“乖宝宝”的声音实在跟他的网名一样让人受不了,有胸内生痰的感觉。

18、终极类标签

风讯给这个类别取的名字表意性太差。“终极”一般是指最好、最完善的意思,而看这个教程讲解,似乎应该是指目录树的最后一级的意思,那就应该叫“终级”了。这个类别的标签一个最重要的特点就是不限制条数,只要符合条件,都全部展示,所以这个列表最大的特色就是允许翻页。值得注意的是“子类新闻列表”,似乎只有按照表格进行排版,没有DIV+CSS选项。

19、投票管理

风讯投票采取的是建立投票主题后,再分别建立选项的方式。主题可以是单选或多选,选项可以是文字、图片、或者是自主填写。待建立后,通过JS代码引用或者是创建标签的方式插入到页面中。也可以建立投票的特殊形式多步投票,他是将已建立的投票主题打包发布的一种形式。

20、留言系统

留言可以分类管理,可以隐藏留言,管理员也可以隐藏留言,可以通过标签调用留言内容。

21、新闻权限设置

只要设置了权限,页面的后缀自动变成ASP的。以前曾经生成的HTML会不会删除呢?我没试验,大概不会吧。

22、不规则新闻

不规则新闻是新闻的特殊调用方式。参照新华网、新浪网的首页就能看到这种新闻调用方式。如果新闻本身就具有“不规则新闻”属性,那可以更容易的查找和调用,但是如果没有这个属性也没有关系,制作不规则新闻的时候可以通过搜索加入正常新闻为不规则新闻列表。在不规则新闻的编辑环境下,人为控制新闻的所在行数,修改新闻的标题,从而形成紧密结合的标题区域,打包备用。然后通过标签引用到一个位置。以后只要修改这个不规则新闻包,就可以实现更新了。

“风讯4.05”实战第一天:转换成SQL版本安装

带模板的完整版安装文件没有安装向导,因此ACCESS转SQL的技巧无法使用,所以还是回到风讯4.0SP5完整版。

过程比较顺利,只是过程中忘记给目录写权限折腾了几个来回。

数据库用户名和密码都是foosunv4,数据库名foosunv405。除了IP地址数据库,其他四个数据库都转移到SQL名下,不知道风讯新加入的SK采集器的数据库是不是正常,目前还没法测试确认。
后台登录名称heidian/heidian。在后台初始设置中,新闻系统的前台默认是NEWS目录,改成了根目录/,调整了一下名称策略,避免内容页的名称带上日期属性,因为这些东西将很久不会更新。
目前重要的是重新捡起遗忘的记忆,然后分目录,并建立初始页面,让文案开始运动起来。

为了避免日后又忘记,所以决定把一些能记起的心得写下记录。

CSS中display与visibility不仅是物理占位的不同

有一个用CSS隐藏HTML元素的任务,需要把body>div>div>下的文字隐藏掉。HTML代码一个字都不能改,只能靠CSS来解决。

开始用“display: none”来解决。但是这么一来,不仅body>div>div>下的文字消失,TABLE元素也消失了。然后用display: block恢复TABLE为可见,书上说,这个属性可以把元素改为可见,结果是没有任何反映。

试了很多选择符,无奈IE支持有限。于是用visibility试了试,哈,简直跟拉电线开关一样方便,想显示就显示,想隐藏就隐藏。先吧body>div>div隐藏,然后把body>div>div>table显示就OK了。

查网上资料说,display与visibility的隐藏元素的方法就是占不占物理位置的问题,看来那只是表面现象,display: block也只是设置块属性,不具有设置元素为可见的功能。display与visibility其实有本质上的区别:自从display: none出现的那一刻起,这个区块就是不存在的,哪怕他的子元素如何挣扎要显示出来也是无济于事的,地球都不存在了,还有珠穆朗玛峰吗?visibility就象是哈利波特的隐身衣,他只是不显示出来而已,在物理上他还是存在的。

【疑难排除】导致IE、FF混乱的神秘字符

今天调试代码的时候发生了一个灵异现象。相关的三个文件打包如下:

点击下载此文件

文件中有两个页面:01.htm和02.htm。两个文件看似一模一样,但是无论是用IE还是FF浏览都存在问题。

在IE下02.htm在首位空了一行,“另存为”以后,标签的位置也发生了错乱。而01.htm不存在问题;

在FF下似乎两个文件完全一样,但是用web-developer工具“查看处理后的原始码”,会发现代码也发生了混乱,一个大大的空间被撑了出来。

用其他工具比较不同,我的EDITPLUS2.13看不出区别(据说2.11版本可以看出隐藏字符)。搞了半天,最后在记事本中通过移动光标的方法,发现文件最原始部分存在一个隐藏的字符。就是这个字符导致了两个浏览器的理解混乱。

如果有兴趣的话,这个鬼魅一样的字符可以在02.htm中轻易的复制提取,然后粘帖到别人的文档中,从而让别人也挠一下午的头……。

2010-11-06注:这应该是UTF-8格式文件的BOM头闹出的问题

开始接触风讯CMS

对IWMS的个性化改造让人精疲力竭。其实做到后半截已经知道这么做是个错误,IWMS根本就是以小巧方便见长,要用这把小军刀去剔牛骨头……辛苦的只有屠夫了。在上一个任务勉强交差后就寻思换一个可定制性强的CMS,以备不时之需。看来看去,也就风讯人气比较旺,而且口碑不错。

风讯CMS给我的感觉是强大、复杂,客户群瞄准的是那些动手能力比较强的站长,因为它的最新免费版本甚至没有一套可以用的内置模板。如果把建网站看成是盖房子,那么IWMS就是一套积木式的房屋,你只要规划一下要盖多少层楼,要多少间房,房间和楼层分别叫什么名字就可以了;而风讯CMS,只提供给你一把铁锹和一堆砖,你的工作要从基本的打地基、灌水泥预制板开始。IWMS的构建模式允许你有少量的装修,比如刷个油漆,帖张装饰画什么的,但是基本结构你是不能动的。比如一个厕所里有一个马桶一个窗户,你就不能改成两个马桶两个窗户;而风讯CMS有的只是砂浆水泥,你想安几个马桶开多少窗户完全在于设计者怎么想。IWMS是安全的、普遍合理的设计,用它做房子不会出什么差错,同时也不允许有什么个性;而风讯CMS能做出什么样的东西来,则完全看设计者怎么使用它,也许它是摩天大厦,也许是个摇摇欲坠的危房。这种自由度无疑对设计者是个挑战,同时也能让思维的神经兴奋起来。

初次使用风讯CMS需要让自己安静下来,因为这完全是个陌生的构建环境,而且说实话,有些专用名词的设计明显欠缺考虑,非常容易造成误解。比如“样式”,不知道的人会以为这个项目是用来指定CSS样式表的;还有标签,会让人以为这是博客中常用的“tag”,也就是关键词管理;还有“复制到备份库”,其实执行的是“移动”操作。风讯的帮助部分也是差强人意,不过已经比IWMS好很多了。程序附带的PDF帮助手册看似内容不少,其实不是一本编写严谨的说明书,其中的内容看过之后似乎和没看是一样的,而且由于更新不能跟上新变化,所以内容也显得非常老旧,以一个过来人的角度看,这本说明书的作用只比没有说明书好一点。

风讯专门用来做技术支持的help.foosun.net也是个不怎么更新的地方。看得出,它曾热闹过一阵子,对风讯3.0的解释和帮助内容较多,但是缺乏组织和内容更新不及时依然不能让人满意,初学者在这里会不知道从哪里开始认识风讯CMS。在风讯支持论坛中的二十多个视频教学对初次接触它的人来说是一个亮点。死读书不如做一遍,视频教学中的一些过程演示虽然没有什么组织,但是确能从中看出很多门道来。比如上传图片,我相信很多人都找不到提交本地文件的地方在哪里,只有看过视频演示之后,才知道那个“上传”的按钮可以调出UPLOAD界面来,而这种外观的“上传”按钮在其他的场合基本都是起到“提交”的按钮作用,谁会想到它在风讯CMS中其实是个链接呢?视频的配音实在不敢恭维,经常把title念“踢头”,把dreamweaver念“追马克思”,而且口音严重,看完几个视频教程我终于明白为什么教师资格证要和普通话考级挂钩了。

纵观官方提供的学习资源,可以说信息足够但是没有组织。良好的教学是把概念、模式传达给学习者,而风讯的所有学习资源没有一个介绍了风讯CMS的组织形式,不管是说明书还是视频教学都是直接从事务操作入手进行介绍,这是网上教程和大多数市面上的教材常犯的错误。当我在阅读这些资料后初步明白他的组织模式的时候,曾想过重写一个详细的解读材料,后来一琢磨,工程量还不小。再说了,别人不懂那不是更好?有些事情说太清除了也就不值钱了。而且,牛群的那句名言我一直记在心里:“我不能马上告诉你。马上告诉你,你的印象不深。”个人认为,风讯只要把专用名称“样式”改成“格式”,“标签”改成“模块”,对初学者来说就能避免很多误解了。

另外一个普遍关心的问题就是“风讯CMS免费版本是否支持SQL?”按照常理理解,免费的应该只支持ACCESS数据库。但是风讯在安装的时候又显示可以选择SQL,并且给出了参数的写法。于是我费了好几天的功夫试验免费版支持SQL数据库的可能性。

在SQL数据库中建表是个麻烦的事情,起初我用导入access数据的方式建表。表是建起来了,但是字段属性又碰到了问题。在ACCESS表中的自动ID属性,在SQL中成为标签属性,并且要设定自动增加的步长,要是一个个手工这么搞下去……那工作量太大了。搜索了百度谷歌,对这种升级也没有更好的办法。后来无意看到了有人提议用accsee的数据库升迁工具试试,一用果然见效,ACCSEE的数据顺利升级为SQL。但是问题又出现了,按照默认的设置,一个风讯系统要占用三个数据库,这对于虚拟主机用户明显是缺乏操作性的。于是手工生成三个库的创建表SQL脚本,然后在一个新库中生成所有表,最后分别导入数据。这个方法看似不会产生问题,但是实际问题还是出现了,后台的“样式”栏目出错,在“采集”中也不能保存站点设定。研究了半天也没有什么好办法。后来灵光闪现,让ACCSEE升迁数据库的时候使用一个ODBC链接的方式,在ODBC中设定“默认数据库”为一个自定义的新库,而不是用默认的“新建数据库”方式升迁。经过一番折腾,重新安装程序后,这种模式果然见效。使用了一天,目前还没看出有什么问题。感觉风讯已经在一套程序中兼顾了两种数据库,并没有为两种数据库模式分别编写两套程序。虽然这种获得SQL支持的方式“可能”不会有什么问题,但是如果网站信息量不会超过2万的话,建议还是使用ACCESS数据库,毕竟它是全静态化的系统,查询的强度不高。如果对安全稳定性有特别高的要求,建议还是花800元购买风讯的商业版本,毕竟稳定是压倒一切的,也不必为老板省这个小钱。省钱的事情老板多数不会知道,但出了问题就全是你的责任了。

现在,该看的资料该建立的概念已经成形,下一步就是如何实际应用了。