## CMSware Changlog

## 2.7

CMSware2.7.20060806 Preview

New

+ 编辑器里的图片本地化加水印，在系统设置-编辑器图片本地化加水印处设置。
+ 系统设置“对话框尺寸适应XP”改为默认启用
+ 新增投稿删除
+ 复杂函数调用使用双@号包含：[@function(.....)@]
+新增文件Log功能，文件Log将强制生成，管理界面无法删除。文件Log位于sysdata/logs(如果logs目录不存在或者不可写，将生成在sysdata目录)。admin.20060601.log为管理操作日志，login.20060601.log为登陆日志，tplerror.20060601.log为模版错误日志（config.php的$SYS_CONFIG['tpl_error_display']可以配置是否在最终页面显示错误信息），error.20060601.log为系统错误日志（config.php的$SYS_CONFIG['error_reporting']可以配置报错类型file-不显示报错，只将报错写入文件，html-显示html报错，js-显示js报错对话框）。
+新增错误日志查看,信息查看-查看错误日志
+结点PSN修改后系统支持对结点内容进行重新发布（临时取消原发布，再发布）。
+新增结点重发布（临时取消发布结点所有内容，再发布）、全部取消发布、全部临时取消发布，位于发布管理-批量操作选择菜单。
+改进了模版错误信息的查看功能，避免了大量的错误信息可能破坏页面排版的问题。
+安全上传检查,系统禁止所有native code方式的上传（php,jsp,asp,exe等）
+静态内容页文件发布的名字能使用内容模型的字段名,例如 静态发布文件格式 :content.{Title}.{Author}.{TimeStamp}d{ContentID}.html，结点首页支持结点名称{NodeName}.html
+结点首页文件名、内容页文件名支持函数格式定义：[@str_replace('a','A','{Title}')]_{ContentID}.html ，[@strlen("{Title}")].content.{TimeStamp}d{ContentID}.html，函数变量需要使用引号包含。
+结点参数设置的"发布模式"新增一个“动静态发布”，此时结点首页选择的动态发布入口，内容页等依然是静态发布的选项。这么简单的设置一下或许就能解决栏目下内容太多时列表页的分页刷新问题
+对话框尺寸支持自适应XP系统
+后台新增文章时可以象投稿时那样同时选择索引和虚连接
+后台管理入口的目录名可修改（默认为admin），修改后需同时配置config.php的$SYS_CONFIG['admin_dir_name'] = "admin"项。
+ 创建虚链接 或索引链接后，根据 结点里的 “是否自动发布” 为判断来执行发布。
+ 关键字替换功能支持PSN参数的解析，比如 替换 test 为 带链接的（ <A HREF="{PSN-URL:1}/test">test</A>）。
+ 内容模型的所有字段支持PSN参数的解析，比如内容包含<A HREF="{PSN-URL:1}/hello.html">test</A>，{PSN-URL:1}将自动解析为实际地址。
+新增评论验证码支持（publish/config.php中$PUBLISH_CONFIG['comment_validcode'] 配置开关，默认打开），请在原有评论模板表单内添加以下代码用以支持验证码功能
验证码:<input type="text" name="validCode" size="10" >
<img src="[$PUBLISH_URL]validCode.php"/>
+ 内容模型导入/导出。
+ 后台新增文章时可以象投稿时那样同时选择索引和虚连接
+ 新建内容模型支持自定义TableID，为内容模型共享提供了更大便利，通常情况1~10的TableID已经被普遍使用，因此如果你新建内容模型的时候使用大于100的TableID，就可以避免与其他人已创建的TableID冲突，别人导入你的内容模型文件时候你的默认TableID将被继续使用（如果冲突，系统将使用自动生成的TableID代替默认TableID，如果你的模板中使用了TableID，显然，模板需要修改才能复用，所以，强烈推荐大家创建共享型内容模型时使用3位以上的自定义TableID）
+ CMSwareOAS 插件
+ CMSware Shell任务工具
+系统设置增加开关：自动刷新级联结点，默认为"否"
+附加发布可调用设置的属性变量,变量名为$PublishInfo ,结构如下
$PublishInfo = array (
'PublishID' => '2',
'NodeID' => '2',
'PublishName' => 'test',
'SelfPSN' => NULL,
'SelfPSNURL' => NULL,
'PublishFileName' => 'input_test.html',
'Tpl' => '/input/test1.html',
'Intro' => 'haha',
'CreationUserID' => '1',
'LastModifiedUserID' => '1',
'CreationDate' => '1127447504',
'ModifiedDate' => '1154852437',
)

Bug Fixed

#9 删除虚链接文章时，无法同时删除生成的虚链接HTML文件。
#13 批量图片上传－－显示设置－－色彩选择 JS错误。
#32 数据备份设置分卷为1MB时实际的分卷文件却有很多接近两兆，容易招致还原时超时（默认分卷尺寸改为0.5M）
#14 发布管理里，不选任何，然后选择下面的批量删除菜单，确定，这时就会有错误信息了
#15 投稿不能删除？匿名投搞或用户投稿。没有删除项（管理后台处）。如果属于垃圾稿的，无法处理了。。
#35 表单值采集器:附件录入，上传完附件后，没有把文件的路径显示到input框
#43 cmsware安装程序改为在sysdata上建立%%install来做限制模式检测.
#27 结点附加属性 - 字段输入类型 - 除了TXT字段正常可用外，其他类型都不能用。选择其他字段类型后，结点设置里，都不正常显示
#26 结点加收站。点击结点时出现无效结点ID对话窗口。但如果是刚删除第一次点击的话，会出现两次不同警告的窗口。
# kTemplate对op等语句的漏编译问题
#数据库备份还原mysql5下的NULL问题
#插件管理－会员接口的用户组权限管理和用户权限管理没做任何设置时会报错
#mysql5环境下的一些兼容问题，包括用户管理，来稿管理等
#38 new_editor图片上传时经常出现跑到上面去了
#37 关键字替换功能，应该针对让每个内容模型的主内容都生效，目前只有默认内容模型的Content字段有效
#29 采集－图片本地化：如果目录，或文件名中间有空格或＆等这样的符号的话，会引起采集图片本地化的失败。其它特殊符号可能也有。没有遇到。
#18 内容模型管理，新增字段类型为"字符串",字段长度如果不填时会出错
#74 动态发布的结点的文章，设置自定义模板没用
#71改PSN设置后，重提交结点设置，缓存清空，更新，都不管用，publish_log中的资源都还是原来的不会更新！
#36 循环调用结点列表，然后调用每个结点的附加发布的一段代码，如果有附加发布的调用，就发布时会到附加发布的地方就停止更新，后台停止在那里不动了
#56 评论管理－先搜索空值－再点删除时，会有错误。
#28 发布管理－－下拉菜单里的“永久删除”（采集列表里已经删除导入记录的时候），没有删除掉 cmsware_resource 表 里的采集图片资源。回收站里的永久删除同样有问题。（就是在先删除掉采集管理里的这个新闻，然后发管管理里永久删除时，没有永久删除掉采集文章的图片，回收站里 "永久删除" ，也是同样，无法完全删除掉。反过来，如果先在回收站里删除掉新闻，最后再从采集管理的列表里删除这个新闻时，是会把图片永久删除掉。）
#77 关键字替换功能，如果关键字在<>之间替换，会引起HTML的错误。
#AutoMini引起问题的用户改用AutoMini2试试
#用户后台，点X号关左边栏后，头部没有恢复左边栏的 showtoc 按钮
/**
* 图像自动缩略函数
*
* 自动判断来源图片的尺寸，按照传递的参赛生成缩略图(如果传入图片与定义尺寸相同，则不做缩略)
* <code><img src="[@AutoMini($var.Photo, '120*100', $var)]" border="0" width="120" height="100"></code>
*
* @param string $srcFile 来源图片的地址,可以是本地路径,也可以是http://
* @param string $pixel 输出图片的尺寸,160*120
* @param string $List 包含IndexID的数组
* @param string $cache 缩略图是否缓存
* @param string $miniMode 缩略模式 1-自动伸缩填充$pixel大小, 2-如果源图尺寸小于$pixel，则不自动伸缩填充
* @return string 生成的缩略图Url地址
* @access public
*/
function AutoMini2($srcFile, $pixel, $List, $cache = true, $miniMode='1')
#多图上传－显示设置－单选显示数，如果设置一行只显示一个图，最后插入后，第一行却是两个图，表格的也是同样
#安装全文检索插件的时候会出有很多数据库报错信息，但还是可以安装成功
#自定义的模型－内容模型管理－列表显示－选择两个以上，创建出来的索链接，在发布管理里显示，只能显示一个字段
#在后台进行搜索，如果搜索的时候在结点中的高级搜索中搜索，如果不选择结点范围，默认是搜索所有结点的所有字段。这种情况遇到的问题：
如果有两个内容模型中存在相同的ContentID，就会一次搜索出多篇文章。
#结点属性扩展,字段类型为字符串不设置长度时报错
#UTF版的评论全局设置－过滤字符列表的默认数据乱码
#用户后台－稿件管理－标题上右键菜单有：查看，删除，移动。点击选择时 JS错误，无法弹出菜单。
#关键字替换处选择"非全局变量",无效。
#关键字替换只替换了部分匹配字符.

变动SQL

ALTER TABLE cmsware_content_table CHANGE `Name` `Name` VARCHAR( 100 ) DEFAULT NULL ; ALTER TABLE cmsware_content_fields CHANGE `FieldTitle` `FieldTitle` VARCHAR( 100 ) DEFAULT NULL; ALTER TABLE `cmsware_site` CHANGE `IndexName` `IndexName` VARCHAR( 250 ) ; ALTER TABLE `cmsware_site` CHANGE `PublishFileFormat` `PublishFileFormat` VARCHAR( 250 ) ; UPDATE `cmsware_sys` SET `varValue`='1' WHERE `varName`='DialogFitXP'; INSERT INTO `cmsware_sys` SET `varName`='EnableEditorWaterMark', `varValue`='1'; ALTER TABLE `cmsware_plugin_base_comment` ADD COLUMN `UserID` int(10) NOT NULL DEFAULT '0'; ALTER TABLE `cmsware_content_table` ADD COLUMN `TableGUID` varchar(32) NULL;

## 2.6.2

CMSware2.6.2.20060223 Preview

New

- 新增utf8-zh、、utf8-tw、big5版本，CMSware系统产品全面支持utf8、gb2312、big5这几种主流字符集 。
- 完全支持最新的MySQL4.1.x系列数据库,升级用户可以通过设置config.php来适配MySQL4.1.x那烦人的字符集 。
  //升级用户一般应该设置为latin1
  $db_config['db_charset'] = 'gb2312'; //数据库字符集 latin1,gb2312,utf8...
- 完全支持MySQL5.0,MySQL5.0的用户,如果你使用的是gb2312版本程序,请设置$db_config['db_charset'] = 'gbk'。
- 系统创建的目录和文件支持自定义权限设置。用户可以通过修改config.php的完成配置。
  $SYS_CONFIG['dir_mode'] = 0755; //系统创建目录的默认权限,0755、0777
  $SYS_CONFIG['file_mode'] = 0755; //系统创建文件的默认权限
- [门户版]新增节点属性扩展功能，有了此功能节点也就等于变成一个特殊的内容模型，具体用处不用我说了吧。
- 采集规则处{URL}支持过滤函数。
- 新增对allow_url_fopen 的检测，以及一些关键php.ini参数的显示。
- 安装过程中，如果GD库没有，则屏蔽验证码。
- 新增附加发布调用“ExtraPublish”，调用规则:
  <CMS action="ExtraPublish" return="ExtraInfo" NodeID="2" />

  <ul>
  <loop name="ExtraInfo" var="var" key="key">
  <li><A HREF=" [$var.URL] "> [$var.PublishName] </A></li>
  </loop>
  </ul>

  返回数组ExtraInfo信息说明：

  属性名 | 说明
  PublishID | 附加发布ID
  NodeID | 所属节点ID号
  PublishName | 发布名称
  PublishFileName | 发布文件名
  Intro | 附加注释
  URL | 附加发布的发布URL

Bug Fixed

- CMS_CONTENT调用时,如果只调用一条数据时,必须加上LoopMode="1"参数才会有返回值, 应该是加LoopMode="1"时返回二维数组,而不加时,直接返回一维数组,这样可以兼容2.62以前版本的调用习惯 。
- 系统创建目录、文件的权限问题。
- 对于IE状态栏一直处于打开状态的问题，实际和CMSware并无关系，此类情况下IE实际已经完成所有请求（不存在任何未完成的请求导致状态栏一直打开），问题应该和IE有关，此类情况对CMSware及其他应用的使用毫无影响。

变动SQL

CREATE TABLE `cmsware_node_fields` ( `FieldID` int(8) NOT NULL auto_increment, `FieldTitle` varchar(20) NOT NULL default '', `FieldName` varchar(20) default NULL, `FieldType` varchar(20) default NULL, `FieldSize` varchar(20) NOT NULL default '', `FieldInput` varchar(20) default NULL, `FieldDescription` mediumtext, `FieldOrder` mediumint(8) NOT NULL default '0', `FieldAccess` tinyint(1) NOT NULL default '1', `FieldDataSource` text, PRIMARY KEY (`FieldID`) ) TYPE=MyISAM;

## 2.6.2

CMSware2.6.2 BUILD 20060120 Released

New

- 内核改进： 系统内核支持真正意义上的FTP模式，配置正确的情况下可以在任何安全限制模式下正常运行。系统安装时候可以设置FTP模式的运行参数。
- 改进远程发布FTP连接机制，新增连接共享池，同一个PSN只建立一次连接（以前版本是发布多少文件建立多少次连接），大大提高远程发布效率
- 改进的自动缩略图函数AutoMini
  AutoMini(源图地址, 缩略图尺寸, 内容信息数组, 缩略图品质, 是否自动裁图, URL前缀)
  URL前缀:默认为空，用于源图地址为相对地址时定位图片.
  使用举例：
  [@AutoMini($a,"100*200",$var,'','','http://www.sohu.com/photo/')]
  [@AutoMini($a,"100*200",$var,0,0,'http://www.sohu.com/photo/')]
- 评论增强
  - 评论字词过滤 ，评论过滤3种模式，关闭、开启-禁止发布限定关键词、开启-使用符号替换限定关键词
  - 支持智能匹配“限 定 关键 词”为“限定关键词”，进一步增强关键词过滤的能力
  - 支持评论内容最大和最小长度限制，支持评论用户名最大长度限制
  - 评论审核功能
  - 评论模块开启/关闭功能
  - 集中管理删除修改功能:支持按照时间段、评论IP、评论用户批量删除，支持按照关键词搜索评论并进行批量删除
  以上参数设置位于“插件管理->基础插件->评论全局设置”
- 采集图片自动加水印:系统设置->启用采集图片水印
- 内容/采集/来稿新增查看新增源码/预览两种显示模式, 可以在系统设置处设置默认显示模式
- 发布管理、搜索管理里面批量操作新增永久删除项。
- CMS_CONTENT调用新增参数LoopMode="1"，在只有一条返回值时也生成二维数组。
- 系统关键目录写权限自动检测。
- 新闻编辑器新增“纯文本粘贴”、“从Word中粘贴”，并支持自动检测粘贴内容是否为Word格式。
- 后台信息分页增加“首页/尾页”链接
- 置顶 和 设置 精华可批量设置
- pager里面分页器的PublishDate修改为CreationDate，保证date标记path的固定性
- 外部缩略图功能提供限定Host配置$ALLOW_HOSTS
- 在选择自定义文章的列表窗口里，象发布管理一样，把有图片的也显示出来标志
- 后台搜索出来的文章可评论，刷新，发布等
- 系统设置->对话框尺寸适应XP,解决某些XP浏览器无法看到提交按钮的问题
- * 采集测试时显示测试结果，两种方式切换

Bug Fixed

- 搜索结果页 不完善,高级搜索多字段时 错误,添加，编辑 页的无TITLE
- 文章回收站－－分页的链接错误
- 回收站新增每页的显示文章条数，自定义显示条数
- 资源管理，新增记录数显示。
- 采集难免会有重复的采集新闻。但所有重复新闻的图片都是引用一个的。如果取消了重复的新闻，只留一个新闻的话，图片在取消重复时已经删除了
- AutoMini源图文件名包含多个“.”时候路径出错
- 内容模型，新建字段的时候没有“外部录入”的选择！
- 如果没有图片页模板，点编辑图片页模板就会一直刷新窗口
- 系统设置新增默认内容、资源发布PSN，解决CMS::SQL调用混混AutoMini函数使用时候的问题
- 改进部分对话框XP下无法显示确认按钮的问题
- 在PHP安全模式下面，进入用户管理出这个错而进管理后台却行 Warning: set_time_limit(): Cannot set time limit in safe mode in /home/cmsware/user/init.php on line 8
- 开始采集按钮位置调整，并增加确认提示
- 全文搜索全部设置好，然后发布文章，但第一次发布的文章，在入plugin_fulltext_search_* 表时，URL字段根本没有数据，是空的。
- 在高级搜索列表页使用下面“更新”按扭，[$NodeInfo.NodeName] 调用问题
- 文章发布过后，如果再次更新，文章中附带的所有图片也会再次重新生成图片文件
- Fatal error: Call to a member function on a non-object in /cmsware/include/admin/collection_admin.class.php4.php on line 140
- 从回收站清空所有已经删除的数据，那么数据库里的几个表之间的数据量就不吻合了。
- 采集时，设置了==>[localizeImg]把图片保存到本地。在文章没有被导入到 content_* 表的情况下，删除已经采集的文章导致的图片采集问题
- 虚连接和索引连接的存在导致－－content_* 几个表之间相加就不等于 content_index 表的数量
- 列表的时候 关键字查询: 输入关键字，产生搜索结果……这个时候无法用 转移
- 如果选择设置发布时间点发布计划，则选中的文章的日期全部变化。结果发布的带有date标记的path，会引起文件位置的改变。
- log_admin log_login 恢复时会出问题，新安装好数据库后恢复说cmsware_log_admin中有重复键值"1"
- 采集过程中常常出错
- cms后台增加用户时，如果没有选择用户组，增加完后用户列不出来，改正为默认就要选择一个用户组
- 发布管理增加“临时取消发布”机制，可以临时取消发布的文章，删除发布库记录和已经发布的文件，但不能删除相关联的评论计数等等
- 模板管理里，移动文件时出的目标窗口目录树不对
- 结点内容都是索引连接无法分页
- LIST调用忽略参数出错
- 在文章没有被导入到 content_* 表的情况下，如果把已经采集的文章删除，没有在 resource 和 resource_ref 表进行记录的删除
- 如果字段内容里有单引号就会出错
- 相对地址的分页采集没法解析
- 在后台列表那里，所有精华文章标题前都有 精华 文章的图片，采用标记图片后直接显示数字形式
- 采集测试时的输出结果页面，改为直接显示采集到的结果值源码，而不是显示页面效果
- js.php输出时处理一些特殊字符比如单引号双引号之类的转义！
- 模板管理中的上传模板文件固化只能用html,htm,tpl
- 模版管理里改名不可改后缀。
- * 默认安装包可以用localhost访问
- * user投稿后台可以用别的域名访问
- * 查看采集索引页面错误
- * 默认的结点内容分页生成器为default
- * 建立新结点时内容分页生成器也是default
- * 采集后查看某文章，里面有[预览][源码]切换。点[源码]后就不能再切换过来了

变动SQL

ALTER TABLE `cmsware_plugin_base_comment` ADD COLUMN `Approved` tinyint(1) NOT NULL DEFAULT '0'; update `cmsware_plugin_base_comment` set Approved=1 INSERT INTO `cmsware_sys` SET `varName`='EnableCLWaterMark'; ALTER TABLE `cmsware_resource_ref` ADD COLUMN `CollectionKey` char(32) NOT NULL ; ALTER TABLE `cmsware_resource_ref` ADD INDEX `N_I_R` (`NodeID`,`IndexID`,`ResourceID`), DROP INDEX `N_I_R`; INSERT INTO `cmsware_sys` SET `varName`='ContentViewMode', `varValue`='1'; INSERT INTO `cmsware_sys` SET `varName`='CollectionViewMode', `varValue`='1'; INSERT INTO `cmsware_sys` SET `varName`='ContributionViewMode', `varValue`='1'; ALTER TABLE `cmsware_resource_ref` ADD INDEX `R_C` (`ResourceID`,`CollectionKey`(32)); ----------------2006-01-20 ALTER TABLE `cmsware_sys` CHANGE COLUMN `varName` `varName` varchar(50) NOT NULL; INSERT INTO `cmsware_sys` SET `varName`='DefaultResourcePSN'; INSERT INTO `cmsware_sys` SET `varName`='DefaultResourcePSNURL'; INSERT INTO `cmsware_sys` SET `varName`='DefaultContentPSN'; INSERT INTO `cmsware_sys` SET `varName`='DefaultContentPSNURL'; ---------------------- ALTER TABLE `cmsware_collection_*` ADD INDEX `Src` (`Src`(250)); ALTER TABLE `cmsware_publish_*` ADD INDEX `PublishDate` (`PublishDate`); ALTER TABLE `cmsware_site` ADD INDEX `InheritNodeID` (`InheritNodeID`); ALTER TABLE `cmsware_content_index` ADD INDEX `PID` (`ParentIndexID`); ALTER TABLE `cmsware_content_index` ADD INDEX `Type` (`Type`); ALTER TABLE `cmsware_content_index` ADD INDEX `Top` (`Top`); ALTER TABLE `cmsware_content_index` ADD INDEX `Pink` (`Pink`); ALTER TABLE `cmsware_plugin_base_count` ADD INDEX `CID` (`ContentID`); ALTER TABLE `cmsware_plugin_base_count` ADD INDEX `TID` (`TableID`); ALTER TABLE `cmsware_resource` ADD INDEX `CUID` (`CreationUserID`); ALTER TABLE `cmsware_tasks` ADD INDEX `TID` (`TaskID`(32)); ---------------------------------------------- 2006-01-25 create table the_tmp_resource_ref as (select distinct * from cmsware_resource_ref); truncate table cmsware_resource_ref ; insert into cmsware_resource_ref select * from the_tmp_resource_ref; drop table the_tmp_resource_ref; INSERT INTO `cmsware_sys` SET `varName`='DialogFitXP', `varValue`='0';

## 2.6.1

CMSware2.6.1 BUILD 20060101 Released

New

- 新增图片水印功能，系统设置-图片上传水印设置
- 新增临时取消发布，临时取消发布实现删除发布库记录和已经发布的文件，但不能删除相关联的评论计数信息等
- 改进的自动缩略图函数AutoMini
  AutoMini(源图地址, 缩略图尺寸, 内容信息数组, 缩略图品质, 是否自动裁图)
  缩略图品质:默认为75,可设范围0~100.
  是否自动裁图:默认为1,1为是,0为否
  例如:[@AutoMini($Photo, '120*100', $Publish, 90, 1)]
- 置顶 和 设置 精华 需要批量设置
- automini.php可以限制外部连接使用
- 模板管理中的上传模板,固化只能用html,htm,tpl,wml,xml
- 内容模型字段 新增关联数据源
  - 表单值采集器:关联数据源
  - 字段附加信息: 此处填写数据源语句

  DB数据源:
  数据源语句: DB数据源必须返回value和title字段内容，以填充select表单控件内容
  <dataSource>
  <sql>select i.IndexID as value, c.CountryName as title from cmsware_content_index i left join cmsware_content_5 c ON c.ContentID=i.ContentID where i.TableID=5 order by c.CountryName</sql>
  </dataSource>

  XML数据源:
  数据源语句: XML数据源必须使用以下格式定义数据，以填充select表单控件内容
  例如:
  <dataSource>
  <List>
  <var>
  <title>买家</title>
  <value>0</value>
  </var>
  <var>
  <title>卖家</title>
  <value>1</value>
  </var>
  </List>
  </dataSource>

  下面的数据源例子我们将"来源网站"的录入由原来的纯手工,改为下拉框选择:

  <dataSource>
  <List>
  <var>
  <title>新浪</title>
  <value>www.sina.com.cn</value>
  </var>
  <var>
  <title>搜狐</title>
  <value>www.sohu.com</value>
  </var>
  <var>
  <title>网易</title>
  <value>www.163.com</value>
  </var>
  </List>
  </dataSource>

  数据源功能的灵活运用将可以极大地提升CMSware内容录入的效率.

Bug Fixed

- 自定义相关文章只有1条时候的Bug
- 删除采集内容及其图片后,再次采集时无法采集图片
- 图片重复发布的问题
- 全文搜索第一次发布的文章，URL字段根本没有数据
- 列表的时候 关键字查询: 输入关键字，产生搜索结果……这个时候无法用 转移
- 如果选择设置发布时间，点发布计划。。。则选中的文章的日期全部变化。 结果发布的带有date标记的path，会引起文件位置的改变。
- log_admin log_login 恢复时会出问题
- 采集测试时的输出结果页面，改为直接显示采集到的结果值源码，而不是显示页面效果
- cms后台增加用户时，如果没有选择用户组，增加完后用户列不出来，改正为默认就要选择一个用户组
- 模板管理里，移动文件时出的目标窗口目录树不对
- 更多细节改进...

变动SQL

INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('EnableWaterMark','0'); INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('WaterMarkImgPath', '../html/WaterMark.gif'); INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('WaterMarkPosition', '1'); ALTER TABLE cmsware_content_index ADD COLUMN `TableID` int(10) NOT NULL DEFAULT 0;

## 2.6

CMSware2.6 BUILD 1022 Released

New

专业版增强功能列表（提供更佳的模板管理与发布管理控制）：

- CMS::LIST支持ignore="1,2"忽略结点ID
- 结点首页文件名支持index_{NodeID}_{date("Ymd")}.html 这样的语法,可以生成index_1_20051011.html这样的文件名,date("Ymd")可以替换为其他返回字符串的函数
- 采集新增{URL}采集器，可以用于自动录入采集的目标内容页URL
- 系统安装提供“典型安装”和“精简安装”两种选择，典型安装提供一套默认网站结构（适用于初级用户），精简安装只提供一套基础框架（适用于高级用户）。
- 新增CMS计算统计类调用标签"COUNT",用于求COUNT、SUM、AVG这些值,返回一个字符串变量,主要使用function属性定义统计操作,其他属性同CMS::LIST
  <cms action="COUNT" return="countValue" Function="count(*)" NodeID="2" />
  <cms action="COUNT" return="sumValue" Function="SUM(c.Price)" NodeID="2" />
  <cms action="COUNT" return="avgValue" Function="AVG(c.Price)" NodeID="2" />
  总记录数:[$countValue]
  Price字段和: [$sumValue]
  Price字段平均值: [$avgValue]

- 图片自动缩略器
  /* ----------------------------------------------------------------------------
  图片自动缩略器
  ------------------------
  [$PUBLISH_URL]automini.php?src=[@urlencode($var.PhotoURL)]&pixel=160*120&cache=1&cacheTime=1000

  **以下是可用GET参数,大小写敏感,在URL中写时用&分开:

  src : 待处理图片源地址,传给src的参数为URL,最好使用urlencode函数进行编码
  pixel : 缩略大小 默认为120*100
  cache : 是否缓存缩略图片,默认为不cache ,cache=0
  cacheTime: 缓存时间(秒) cache=1时候使用，cacheTime=3600 ,默认为1000秒
  cacheKey: 缓存序列号，cache=1时候使用，用于决定缓存目录的路径
  miniMode : 缩略模式 1-自动伸缩填充$pixel大小, 2-如果源图尺寸小于$pixel，则不自动伸缩填充, 默认为1
  miniType : 缩略图格式(gif,jpg,png) 默认为jpg
  quality : 如果缩略图格式为jpg, 输出质量(1-100),默认为75
  ---------------------------------------------------------------------------- */

- 内容模型字段表单值采集器新增"外部页面数据输入",可以实现可定义的关联录入采集器,可以使用附加发布生成一个按照一定规则编写的html页面作为表单值采集器(默认提供一个演示模板,位于/templates/input/test.html),数据输入的灵活度大大提高
- 内容模型字段表单值采集器新增图片录入、附件录入、Flash录入
- 流程里投稿即发布功能.定义方法:新增一个稿件工作流,然后新增一个操作结点,执行人选择"*系统*",操作后状态码填"2",操作前状态码填"1",完成.设置结点套用该工作流即可.
- 模板编辑改进：编辑前需选择对象结点,对象内容IndexID(可选)
- 改进新闻编辑器news_editor、下载编辑器download_editor的图片、附件表单值采集器
- 系统首页新增快捷通道，可以快速跳转到某个结点或者内容进行管理
- 采集记录删除同时删除采集内容中的图片
- 新增资源管理,实现一个资源库管理的概念。管理上传/采集来的图片、附件、Flash等资源,图片、附件、Flash的输入都可以来自本地上传、资源库选择、发布点PSN，保证高度灵活和易用性。（系统保留使用目录/sysdata/automini、/publish/tmp）
- 内容页中的评论列表调用改用js调用:
  <script type="text/javascript" src=" [$PUBLISH_URL] js.php?id=comment&IndexID= [$IndexID] "></script>
- 0915 下载模型新增CustomLinks（相关文章）、CustomSoftLinks（相关软件），修改Intro的字段输入类型为“RichEditor”。
- 0913 新增auto分页符，支持html内容的自动分页发布，单页字数长度可以在系统设置“自动分页单页内容长度”处设置。
- 0913 完善WAP发布，WAP发布支持html到wap格式的自动转换以及自动分页
- 模板编辑增加源码预览，支持模板语法高亮显示、语法检测、行编辑聚焦等。
- 模板编辑增加“区块模式”，通过使用语法（<!---{CMS-BLOCK}--->区块内容<!---{/CMS-BLOCK}--->）定义区块，用户可以可视化的进行区块编辑，大大降低模板编辑的难度
- 结点管理新增附加发布，可以在一个结点下建立类似结点首页的内容索引附加页发布
- SEARCH调用新增Exact属性。用于设置search是否为精确查询， Exact="1"则为精确查询

门户版增强功能列表（主要是针对超大数据量性能优化与更细层面的权限管理）：

- WAP发布支持图片自动缩略（可定制实现机型适配的图片尺寸）、自动分页
- 基于全面改进和新增的分类模板权限控制、结点权限控制、用户组权限控制和PSN权限控制，CMSware期望实现子站分层管理员的功能。
- 发布点（PSN）新增用户组读权限控制（只允许对根用户组进行设置，子用户组自动继承根用户组的设置）
- 用户组管理新增上级用户组、创建子用户组、创建子用户选项，可以定义用户组具备管理子用户组、子用户的功能。
- 结点、分类模板分类的权限控制机制说明
  - 读权限：浏览内容
  - 写权限：新增、修改、删除内容
  - 管理权限：具有管理权限的用户具有结点/分类的完全控制权，包括参数的设置、权限的分配，内容新增、修改，同时具备创建子结点/分类的权利
  - 用户权限优先于用户组权限,一般设置用户组权限即可,用户权限用于用户级的细粒度权限控制.
  - 继承父分类权限：通过继承父分类的权限，可以简化分类权限设置，方便多个亲缘分类的权限管理。这种继承是可以递归的，也就是说如果父分类也是继承父分类权限，子分类就递归继承父分类的父分类（祖父分类）的权限，以此类推。
  - 分类的创建人具有分类的原始控制权（可实现分类子管理员功能）该原始控制权不受分类权限设置的影响，只有系统管理员和分类原始创建人具备删除自身创建分类的权限。
  - 系统管理员具有所有控制权限
- 重新设计的结点权限控制机制。
- 新增分类模板管理，原有的网站模板管理作为公用模板，分类模板具备访问权限控制机制（templates/ROOT：系统保留使用、sysdata/tmp：系统保留使用）
- 新增returnKey标签 ,可以定义内容列表记录返回那些字段，一般列表只需要获得Title即可，而无需返回Content等字段，使用此属性，可以一定程度上提高更新效能。
  <CMS action="LIST" return="List" NodeID="{$NodeInfo.NodeID}" orderby="Hits_Total" num="10" returnKey="Title,Keywords" />
  <LOOP name="List" var="var" key="key">
  <ul>
  <li>
  <a href=" [$var.URL] " target=_blank title=" [$var.Title] " >[@CsubStr($var.Title, 0, 18)] </a><span class="process">(<font color="#FF6600"> [$var.Hits_Total] </font>)</span>
  </li>
  </ul>
  </LOOP>

BUG修复

- 用户投稿后台—添加新文章— 编辑器— 插入FLASH 、视频、音频、附件—除附件外，全是空白？附件上传菜单也不对劲。
- 经过超大数据量商用应用的考验，进一步改进底层算法，提升系统整体的性能
- 强化稳定性，修复2.5.1以来的bug

变动SQL

2.5.2.1001 ALTER TABLE `cmsware_resource` ADD COLUMN `CreationUserID` int(8) NOT NULL DEFAULT 0; ALTER TABLE `cmsware_resource` ADD UNIQUE INDEX `Path` (`Path`(250)); ALTER TABLE `cmsware_resource` CHANGE COLUMN `Path` `Path` varchar(250) NOT NULL; ALTER TABLE `cmsware_resource` ADD COLUMN `Title` varchar(250) NOT NULL; ALTER TABLE `cmsware_resource` ADD INDEX `Category` (`Category`(20)); ALTER TABLE `cmsware_plugin_base_count` ADD COLUMN `TableID` int(5) NOT NULL DEFAULT 0; ALTER TABLE `cmsware_publish_1` ADD INDEX `PublishDate` (`PublishDate`);

2.5.2.0913INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('AutoPageLen', '5000');

2.5.2.0912 CREATE TABLE `cmsware_tpl_cate` ( `TCID` int(10) NOT NULL auto_increment, `CateName` varchar(50) default NULL, `ParentTCID` int(10) default '0', `ReadG` text, `WriteG` text, `ManageG` text, `ReadU` text, `WriteU` text, `ManageU` text, `Inherit` tinyint(1) default '0', `CreationUserID` int(8) default NULL, PRIMARY KEY (`TCID`), KEY `ParentTCID` (`ParentTCID`) ) TYPE=MyISAM; CREATE TABLE `cmsware_tpl_data` ( `TID` int(11) NOT NULL auto_increment, `TCID` int(10) NOT NULL default '0', `TplName` varchar(50) default NULL, `TplType` int(3) NOT NULL default '0', `CreationUserID` int(5) default NULL, `LastModifiedUserID` int(5) default NULL, `CreationDate` int(10) default NULL, `ModifiedDate` int(10) default NULL, PRIMARY KEY (`TID`), KEY `NodeID` (`TCID`) ) TYPE=MyISAM; DROP TABLE `cmsware_extra_publish`; CREATE TABLE `cmsware_extra_publish` ( `PublishID` int(8) NOT NULL auto_increment, `NodeID` int(8) NOT NULL default '0', `PublishName` varchar(100) default NULL, `SelfPSN` varchar(250) default NULL, `SelfPSNURL` varchar(250) default NULL, `PublishFileName` varchar(100) default NULL, `Tpl` varchar(250) default NULL, `Intro` text, `CreationUserID` int(8) default NULL, `LastModifiedUserID` int(8) default NULL, `CreationDate` int(10) default NULL, `ModifiedDate` int(10) default NULL, PRIMARY KEY (`PublishID`), KEY `NodeID` (`NodeID`) ) TYPE=MyISAM; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionManageG` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionManageU` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionReadG` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionReadU` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionWriteG` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionWriteU` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionApproveG` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionApproveU` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionPublishG` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionPublishU` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `PermissionInherit` text NULL; ALTER TABLE `cmsware_site` ADD COLUMN `CreationUserID` int(8) NULL; ALTER TABLE `cmsware_group` ADD COLUMN `ParentGID` mediumint(8) NULL; ALTER TABLE `cmsware_group` ADD COLUMN `canMakeG` tinyint(1) NULL DEFAULT 0; ALTER TABLE `cmsware_group` ADD COLUMN `canMakeU` tinyint(1) NULL DEFAULT 0; ALTER TABLE `cmsware_group` ADD COLUMN `CreationUserID` mediumint(8) NULL; ALTER TABLE `cmsware_user` ADD COLUMN `CreationUserID` mediumint(8) NULL; ALTER TABLE `cmsware_admin_sessions` DROP COLUMN `sGAccessCate`; ALTER TABLE `cmsware_admin_sessions` DROP COLUMN `sGAuth`; ALTER TABLE `cmsware_psn` ADD COLUMN `PermissionReadG` text NULL;

## 2.5.1

CMSware2.5.1 Stable Released [2005-08-10]

New

- AutoMini生成的缩略图空白背景由黑底改为白底
- 部分界面细节完善
- 来稿统计
- GZIP输出支持,系统设置处可设置
- 优化算法,使用Query Cache,系统性能得到大幅提升,特别是大数据量环境下批量更新时候的运行缓慢问题得到根本改善.
- 新增Cache标签Cache="1" ,可以用于所有调用,模板中的CMS调用通过使用Cache,可以大幅提升批量更新的效率.
  Cache使用技巧需要特别注意,只有模板公共调用的部分使用Cache才有效果,比如内容页 头部的导航NODELIST调用,或者TOP10之类的调用,结点首页的Page-10分页调用最好不要用Cache, 因为不会提升任何效率.
  <CMS action="LIST" return="List" NodeID="{$NodeInfo.NodeID}" orderby="Hits_Total" num="10" Cache="1" />
  <LOOP name="List" var="var" key="key">
  <ul>
  <li>
  <a href=" [$var.URL] " target=_blank title=" [$var.Title] " >[@CsubStr($var.Title, 0, 18)] </a><span class="process">(<font color="#FF6600">[$var.Hits_Total]</font>)</span>
  </li>
  </ul>
  </LOOP>

BUG修复

SQL

- ALTER TABLE `cmsware_plus_demo`.`cmsware_content_index` ADD INDEX `N_S` (`NodeID`,`State`);
- INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('enable_gzip', '1');

## 2.5 Stable

CMSware2.5 Stable Released [2005-08-10]

New

- AutoMini生成的缩略图空白背景由黑底改为白底
- 部分界面细节完善
- 增加模板管理中的显示彩色源码功能
- 发布管理菜单中可直接编辑当前结点首页和内容页和图片页模板
- 增加 系统设置 - 登陆IP屏蔽功能
- 登陆增加登陆尝试次数限制/时间间隔机制，进一步强化安全性
- 登陆增加图形验证码，增强安全性
- loop语句新增start属性，可以设置key的起始值
  <loop name="List" var="var" key="key" start="1" >
  <LI>[$key] <A HREF="[$var.URL]">[$var.Title]</A>
  </loop>
- 新增“结点唯一标识符（NodeGUID）”，LIST调用里面使用NodeGUID进行调用。注意：NodeGUID不能和NodeID同时使用，节点唯一标识符建议使用”域名.节点名“的形式以保证唯一性。（对于对外发布共享的结点更需要注意这点）
  <CMS action="LIST" return="List" NodeGUID="com.cmsware.news.global" Num="20" />
  <UL>
  <loop name="List" var="var" key="key">
  <LI>[$var.ContentID] <A HREF="[$var.URL]">[$var.Title]</A>
  </loop>
  </UL>
- 评论管理 - 评论搜索
- 数据库管理 - 执行SQL语句
- 系统设置 - 结点名称后 显示（未发布数/未审核数）
- 用户组管理增加“采集管理”权限设置
- 内容模型字段集新增“投稿、采集、发布“三个选项，可以定义某个字段是否允许投稿，允许采集，允许字段内容发布
- CMS::SQL调用支持page分页,支持使用“#TABLE_HEADER#”符号替换表名
  <CMS action="SQL" return="List" query="select i.URL,c.ContentID,c.Title,c.Content from #TABLE_HEADER#content_1 c left join #TABLE_HEADER#content_index i ON i.ContentID=c.ContentID order by c.ContentID DESC" Num="page-20" />
  <UL>
  <loop name="List" var="var" key="key">
  <LI>[$var.ContentID] <A HREF="[$var.URL]">[$var.Title]</A>
  </loop>
  </UL>

  [@list_page( $PageInfo.TotalPage, $PageInfo.CurrentPage, $PageInfo.URL)]

- 管理工具：批量替换字段数据
- 新增“表单值采集器－基于节点内容”，可以选择其它结点的内容自动输入指定字段(适用门户和企业版)
- 新增登陆/管理日志记录功能。系统设置可以设置是否开启日志记录(适用门户和企业版)
- 增加模板变量和关键字替换作用范围功能，可以定义某个变量为全局作用或者局部结点作用(适用门户和企业版)
- RC6升级Stable版用户请修改你的config.php 中在下面黑色代码后面添加以下3行红色的代码
  $this->workflow_state = $db_config['table_pre'].'workflow_state';
  $this->workflow_record = $db_config['table_pre'].'workflow_record';
  $this->log_login = $db_config['table_pre'].'log_login';
  $this->log_admin = $db_config['table_pre'].'log_admin';
  $this->block_ip = $db_config['table_pre'].'block_ip';

BUG修复

- 采集多页索引页时不能正确按顺序采集。
- 投稿管理中的几个bug

SQL

- INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('isLogLogin', '1');
- INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('isLogAdmin', '1');
- INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('DisplayPublishCount', '1');
- ALTER TABLE `cmsware_group` ADD COLUMN `canCollection` tinyint(1) NULL DEFAULT 0;
- ALTER TABLE `cmsware_content_fields` ADD COLUMN `EnableContribution` tinyint(1) NULL DEFAULT 1;
- ALTER TABLE `cmsware_content_fields` ADD COLUMN `EnableCollection` tinyint(1) NULL DEFAULT 1;
- ALTER TABLE `cmsware_content_fields` ADD COLUMN `EnablePublish` tinyint(1) NULL DEFAULT 1;
- ALTER TABLE `cmsware_site` ADD COLUMN `NodeGUID` char(250) NOT NULL AFTER `NodeID`;
- CREATE TABLE `cmsware_log_admin` ( `LogID` int(10) NOT NULL auto_increment, `uName` char(50) default NULL, `IP` char(15) default NULL, `Action` char(100) default NULL, `ActionURL` char(250) default NULL, `Time` int(10) default NULL, PRIMARY KEY (`LogID`) ) TYPE=MyISAM;
- CREATE TABLE `cmsware_log_login` ( `LogID` int(10) NOT NULL auto_increment, `uName` char(50) default NULL, `IP` char(15) default NULL, `Time` int(10) default NULL, PRIMARY KEY (`LogID`) ) TYPE=MyISAM;
- CREATE TABLE `cmsware_block_ip` ( `Id` int(6) unsigned NOT NULL auto_increment, `IP` char(15) NULL, `ExpireTime` int(10) NULL, `Reason` char(250) NULL, PRIMARY KEY (`Id`) ) TYPE=MyISAM;
- INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('LoginTryTime', '15');
- INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('LoginTryCount', '5');
- ALTER TABLE `cmsware_tpl_vars` ADD COLUMN `IsGlobal` tinyint(1) NULL DEFAULT 1;
- ALTER TABLE `cmsware_tpl_vars` ADD COLUMN `NodeScope` text NULL;
- ALTER TABLE `cmsware_keywords` ADD COLUMN `IsGlobal` tinyint(1) NULL DEFAULT 1;
- ALTER TABLE `cmsware_keywords` ADD COLUMN `NodeScope` text NULL;

## 2.5 RC6

CMSware2.5 Release Candidate 6 Released [2005-07-28]

New

- 系统设置 - 用户登陆超时时间设置
- 外部投稿接口（publish/contribution.php）（适用门户和企业版）
- 在CMS信息显示中增加自定义变量的显示
- 新增PSN有效性检测
- 新增整站发布和结点发布中 发布所有未发布内容 功能选项，方便把还没有发布的内容全部发布，包括子目录
- 内容页模板新增“简/繁”在线切换脚本功能，参考模板default/content.html
- 内容模型字段属性“表单值采集器”新增“附件上传”选项
- 编辑器新增附件上传功能。
- 采集参数设置新增“加入全站采集”选项。
- 改进下载系统软件录入界面，支持本地上传软件。
- 下载模型新增“界面预览(Photo)”字段。
- 下载模型新增“本地上传(LocalUpload)”字段。
- 新增下载系统内容编辑器download_editor.php。
- 后台高级搜索新增“搜索类型: 未发布文档 已发布文档 所有文档”选项
- 对于已经删除的节点(位于回收站)，恢复时提供“恢复到...”选项。
- NODELIST调用新增新参数
<CMS action="NODELIST" return="List" type="brother">
type

- parent : 调用所有父级节点列表（新）
- brother : 调用所有同级(兄)节点列表（新）
- son : 调用所有子节点列表，等同于“sub”（新）

- 菜单布局优化调整。
- 新增header标签，实现发送文件头的功能， 比如动态发布中加XML头
属性（name：header名）
<header name="Content-Type: text/html; charset=gb2312" />
<header name="Content-Type: text/xml; charset=gb2312" />
- 多页采集增强（采集索引页URL改进） 比如需要采集
  http://edu.qq.com/kaoyan/fuxizhidao01.htm
  http://edu.qq.com/kaoyan/fuxizhidao02.htm
  http://edu.qq.com/kaoyan/fuxizhidao03.htm
  ...
  ..
  .
  http://edu.qq.com/kaoyan/fuxizhidao08.htm
  这样的多页采集RC6以前无法完成。
  RC6做了改进，使用如下的索引页规则
  http://edu.qq.com/kaoyan/fuxizhidao{0[1,8,0]}.htm
  规则说明： {A[B,C,D]}
  “{...}”是索引页分页语法定义
  A:附加字符
  B:开始页数
  C:结束页数
  D:采集的第一页是否从默认初始页（去掉“{...}”的URL）开始，是的话填“1”，否则填“0”
  举例－采集索引页URL规则1：
  http://edu.qq.com/kaoyan/fuxizhidao{0[1,8,1]}.htm
  可以采集如下页面：
  http://edu.qq.com/kaoyan/fuxizhidao.htm
  http://edu.qq.com/kaoyan/fuxizhidao01.htm
  http://edu.qq.com/kaoyan/fuxizhidao02.htm
  http://edu.qq.com/kaoyan/fuxizhidao03.htm
  ...
  ..
  .
  http://edu.qq.com/kaoyan/fuxizhidao08.htm
  举例－采集索引页URL规则2：
  http://edu.qq.com/kaoyan/fuxizhidao{0[1,8,0]}.htm
  可以采集如下页面：
  http://edu.qq.com/kaoyan/fuxizhidao01.htm
  http://edu.qq.com/kaoyan/fuxizhidao02.htm
  http://edu.qq.com/kaoyan/fuxizhidao03.htm
  ...
  ..
  .
  http://edu.qq.com/kaoyan/fuxizhidao08.htm

  规则1比规则2多采集了一个 http://edu.qq.com/kaoyan/fuxizhidao.htm 这个就是参数D的作用

  举例－采集索引页URL规则3：
  http://www.blueidea.com/tech/web/index{_[2,8,1]}.asp
  可以采集如下页面：
  http://www.blueidea.com/tech/web/index.asp
  http://www.blueidea.com/tech/web/index_2.asp
  http://www.blueidea.com/tech/web/index_3.asp
  http://www.blueidea.com/tech/web/index_4.asp
  http://www.blueidea.com/tech/web/index_5.asp
  http://www.blueidea.com/tech/web/index_6.asp
  http://www.blueidea.com/tech/web/index_7.asp
  http://www.blueidea.com/tech/web/index_8.asp
  举例－采集索引页URL规则4：
  http://www.blueidea.com/tech/web/index{_[2,8,0]}.asp
  可以采集如下页面：
  http://www.blueidea.com/tech/web/index_2.asp
  http://www.blueidea.com/tech/web/index_3.asp
  http://www.blueidea.com/tech/web/index_4.asp
  http://www.blueidea.com/tech/web/index_5.asp
  http://www.blueidea.com/tech/web/index_6.asp
  http://www.blueidea.com/tech/web/index_7.asp
  http://www.blueidea.com/tech/web/index_8.asp

BUG修复

- 取消/删除发布时可能遇到的发布内容删除问题。
- 内容页使用AutoMini错误问题，请使用[@AutoMini($Photo, '120*100',$Publish)]实现缩略图。
- 图片发布后图片地址可能丢失的问题。
- 前台搜索的SQL问题。
- 系统管理中的关键词替换功能页面显示BUG
- 自定义相关文章在新闻编辑器(news_editor)设置之后保存,再编辑时自定义相关文章消失。
- 用户组权限：站点管理和模板管理有效性问题。
- BSD下sId丢失问题。
- 修复CMS_SEARCH调用对page-x的支持，具体参考templates/default/search_index.html。
- 自定义相关文章选择时，连未发布的也能选择出来，而且选择了以后，调用发布后没有内容
- 批量操作时可以输入批注。
- 来稿管理列表中，如果不选择任何内容就点go，就会白屏。没有提示
- 文档第一次发布URL变量丢失问题

Todo list

- 1，现在的NODELIST调用时，不能按设置的结点排序顺序调用出来，默认是按结点号的，现在也不能指定参数排序，希望增加排序参数可以指定，同时默认按设置的排序调用，结点排序和文章排序设置不是很直观，希望有批量排序功能，比如结点排序，能在一个窗口中列出所有结点树形后，在名称后面直接填完所有的数值后进行排序.象ipb论坛后台的排序那样
- 2，完善文档
- 3，编辑器修改 http://tinymce.moxiecode.com/download.php

SQL

- ALTER TABLE `cmsware_collection_category` ADD COLUMN `InRunPlan` tinyint(1) NOT NULL DEFAULT 1;
- INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('sessionTimeout', '120');
- INSERT INTO `cmsware_content_fields` VALUES ('', 2, '界面预览', 'Photo', 'varchar', '250', 'text', NULL, NULL, 'upload', NULL, NULL, 0, 0, 0, 0, 0);
- INSERT INTO `cmsware_content_fields` VALUES ('', 2, '本地上传', 'LocalUpload', 'varchar', '250', 'text', NULL, NULL, 'upload_attach', NULL, NULL, 0, 0, 0, 0, 0);
- ALTER TABLE `cmsware_collection_2` ADD COLUMN `Photo` varchar(250) NOT NULL default '';
- ALTER TABLE `cmsware_collection_2` ADD COLUMN `LocalUpload` varchar(250) NOT NULL default '';
- ALTER TABLE `cmsware_content_2` ADD COLUMN `Photo` varchar(250) NOT NULL default '';
- ALTER TABLE `cmsware_content_2` ADD COLUMN `LocalUpload` varchar(250) NOT NULL default '';
- ALTER TABLE `cmsware_contribution_2` ADD COLUMN `Photo` varchar(250) NOT NULL default '';
- ALTER TABLE `cmsware_contribution_2` ADD COLUMN `LocalUpload` varchar(250) NOT NULL default '';
- ALTER TABLE `cmsware_publish_2` ADD COLUMN `Photo` varchar(250) NOT NULL default '';
- ALTER TABLE `cmsware_publish_2` ADD COLUMN `LocalUpload` varchar(250) NOT NULL default '';
- ALTER TABLE `cmsware_plugin_fulltext_search_2` ADD COLUMN `Photo` varchar(250) NOT NULL default '';
- ALTER TABLE `cmsware_plugin_fulltext_search_2` ADD COLUMN `LocalUpload` varchar(250) NOT NULL default '';

## 2.5 RC5

CMSware2.5 Release Candidate 5 Released [2005-07-08]

BUG修复

- 不管是全新安装还是从rc3升级，击后台的 来稿管理 默认站点，都出现报错
- 发布管理 ---搜索 随便一个字。在出来的结果页里 再点 高级搜索 时 就会出错了。IE左下角有提示
- 从后台 用户登陆－分类管理，新建分类并选择好内容模型套用时，“默认投稿主结点”会列出所有系统节点,包括和所建分类内容模型不匹配的以及不允许投稿的节点。改为新建分类时，“默认投稿主结点”只列出允许投稿的、内容模型匹配的节点
- RC3升级RC4出现“SQL: SELECT * FROM ”错误的用户，请修改你的config.php
  在
  $this->tmp_file = $db_config['table_pre'].'tmp_file';
  $this->resource_ref = $db_config['table_pre'].'resource_ref';
  后面添加以下3行
  $this->tmp_file = $db_config['table_pre'].'tmp_file';
  $this->resource_ref = $db_config['table_pre'].'resource_ref';
  $this->workflow = $db_config['table_pre'].'workflow';
  $this->workflow_state = $db_config['table_pre'].'workflow_state';
  $this->workflow_record = $db_config['table_pre'].'workflow_record';

RC4升级到RC5方法

- 使用RC5升级包覆盖替换RC4文件（config.php不要替换）。

## 2.5 RC4

CMSware2.5 Release Candidate 4 Released [2005-07-01 ]
功能新增

- New 增强授权投稿作者功能（用户登陆），新增分类视图和结点视图，方便作者投稿。未完成创建过程的文章可以暂存 可以分类浏览其发布的文章：未完成的和已提交给编辑的。其中，对于已提交给编辑但尚未被编辑验证的文章，作者可以主动撤回。
- New 稿件审核工作流增强支持，高端版本支持自定义审核工作流。
- New 稿件批注查看。
- New 全站采集，启动全站采集，将依次运行所有采集分类的采集任务。
- New 新增支持自适应结点的RSS模板，可以设置任意结点文章发布成为RSS内容功能

BUG修复

- 用户投稿数据统计问题
- #0000065 给文章自定义URL，增加外部连接时，用CMS_List调用不能调用到是外连接的文章
- rc2-rc3的部分修复：
  0000033 内容调用指定ID出错
  0000035 setting/model.download.php中的download.php默认路径不对，需要改
  0000038 使用搜索搜出来的文章不能修改页面显示稿件数字
  0000039 后台搜索出来的稿件无法使用“创建虚链接”“创建索引链接”等功能
  0000040 用rc2不能采集，也不能导入采集规则
  0000044 用户常遇问题
  0000012 在右下frame的操作不应该影响到右侧节点的状态
  0000015 发布管理显示记录数问题
  0000017 在新标签where中支持<where: c.IndexID>'4442' >
  0000018 采集出现空白标题
  0000021 图片本地化上传有问题
  0000022 文章发表时[$URL]显示错误
  0000026 编辑器-右键-插入出错
  0000007 采集节点的问题
  0000027 取消插入时系统出问题
  0000059 节点调用标签如果不带NodeID参数或带空的NodeID参数
  0000054 用自定义模型添加文章的时候,如果输入类型为 radio,select..在添加新文章的时候,此种自段无法显示报错
  0000052 CMS_LIST调用时不会再根据NodeID识别TableID
  0000051 评论comment.php
  0000050 update2_1to2_5.php 升级出错
  0000049 使用JS输出 js.php出现问题
  0000048 php4安装包出错,在显示服务器信息时也出此错
  0000047 找不到function.php5.php和image.class.php5.php问题汇总
  0000046 发布文章在发布设置里填写自定义内容保存后为空
  0000065 自定义URL的文章调用不出来
  0000067 RSS模板无法生成
  0000004 分页下拉列表的问题
  0000058 缩略图缓存机制

[SQL]

- ALTER TABLE `cmsware_site` ADD COLUMN `WorkFlow` int(8) NOT NULL DEFAULT 0;
  ALTER TABLE `cmsware_contribution_1` ADD INDEX `NodeID` (`NodeID`);
  ALTER TABLE `cmsware_contribution_1` CHANGE COLUMN `State` `State` int(5) NULL DEFAULT 0;
  ALTER TABLE `cmsware_contribution_2` ADD INDEX `NodeID` (`NodeID`);
  ALTER TABLE `cmsware_contribution_2` CHANGE COLUMN `State` `State` int(5) NULL DEFAULT 0;
  INSERT INTO `cmsware_group` VALUES (3, '编辑', '0', '', '', 0, 1, 0, 0, 0, 0);
  INSERT INTO `cmsware_group` VALUES (4, '高级编辑', '0', '', '', 0, 1, 0, 0, 0, 0);

  DROP TABLE IF EXISTS cmsware_workflow;
  CREATE TABLE cmsware_workflow (
  `wID` int(8) NOT NULL auto_increment,
  `Name` varchar(30) default NULL,
  `Intro` text,
  PRIMARY KEY (`wID`),
  UNIQUE KEY `wID` (`wID`)
  ) TYPE=MyISAM ;

  INSERT INTO `cmsware_workflow` VALUES (3, '稿件审核工作流', '测试！！');

  DROP TABLE IF EXISTS cmsware_workflow_record;
  CREATE TABLE cmsware_workflow_record (
  `OpID` int(8) NOT NULL auto_increment,
  `wID` int(8) default NULL,
  `Executor` int(8) default NULL,
  `OpName` varchar(50) default NULL,
  `StateBeforeOp` varchar(100) default NULL,
  `StateAfterOp` varchar(100) default NULL,
  `AppendNote` int(1) default '0',
  `OpIntro` text,
  PRIMARY KEY (`OpID`),
  UNIQUE KEY `OpID` (`OpID`),
  KEY `wID` (`wID`)
  ) TYPE=MyISAM ;

  INSERT INTO `cmsware_workflow_record` VALUES (3, 3, 3, '设置为“正在编辑”', '1/103', '100', 0, '将用户的投稿设置为“正在编辑“状态');
  INSERT INTO `cmsware_workflow_record` VALUES (4, 3, 3, '通过审核', '100', '101', 0, NULL);
  INSERT INTO `cmsware_workflow_record` VALUES (5, 3, 3, '打回作者', '100/1/103', '3', 1, '');
  INSERT INTO `cmsware_workflow_record` VALUES (6, 3, 4, '设置为“正在编辑”', '101', '102', 0, NULL);
  INSERT INTO `cmsware_workflow_record` VALUES (7, 3, 4, '打回给作者', '102/101', '3', 1, NULL);
  INSERT INTO `cmsware_workflow_record` VALUES (8, 3, 4, '打回给编辑', '102/101', '103', 1, '');
  INSERT INTO `cmsware_workflow_record` VALUES (9, 3, 4, '通过终审', '102', '2', 0, '完成稿件的审核,稿件被导入内容库,等待发布');
  INSERT INTO `cmsware_workflow_record` VALUES (10, 3, 3, '撤回', '101', '100', 0, NULL);

  DROP TABLE IF EXISTS cmsware_workflow_state;
  CREATE TABLE cmsware_workflow_state (
  `ID` int(8) NOT NULL auto_increment,
  `Name` char(30) default NULL,
  `State` int(5) default NULL,
  `System` int(1) default '0',
  PRIMARY KEY (`ID`),
  UNIQUE KEY `ID` (`ID`),
  UNIQUE KEY `State` (`State`)
  ) TYPE=MyISAM ;

  INSERT INTO `cmsware_workflow_state` VALUES (1, '新增', 0, 1);
  INSERT INTO `cmsware_workflow_state` VALUES (2, '删除', -1, 1);
  INSERT INTO `cmsware_workflow_state` VALUES (3, '已投稿', 1, 1);
  INSERT INTO `cmsware_workflow_state` VALUES (4, '被打回', 3, 1);
  INSERT INTO `cmsware_workflow_state` VALUES (5, '已录用', 2, 1);
  INSERT INTO `cmsware_workflow_state` VALUES (9, '正在编辑(编辑)', 100, 0);
  INSERT INTO `cmsware_workflow_state` VALUES (11, '审核通过(编辑)', 101, 0);
  INSERT INTO `cmsware_workflow_state` VALUES (12, '正在编辑(高级编辑)', 102, 0);
  INSERT INTO `cmsware_workflow_state` VALUES (13, '打回编辑(高级编辑)', 103, 0);

## 2.5 RC3

CMSware2.5 Release Candidate 3 Released [2005-05-15 ]
功能新增

- New 新版模板语法，参见下面的说明。
- New 新版模板语法新增OP语句，用于表达式的运算
- New 系统管理设置 -> 发布管理单页显示记录、索结果单页显示记录、采集管理单页显示记录
- New 标题采集不到的文章不进行采集导入
- New 缩图功能新增检测大图是否存在功能，加入一个检查是否已经有了缩图文件的判断，如果有就不重新生成。

BUG修复

- #2236 后台搜索出来的稿件可以“创建虚链接”“创建索引链接”
- #2278 修改文章成功但显示了出错代码
- #2242 使用评论时出现错误
- #2241不能采集稿件，采集管理的参数设置里，不能导入采集规则了
- 关于图片发布的问题，流程如下：用户上传图片，上传图片保存于资源目录resource/hxxx/hxx下，所以文章中图片链接为管理后台的链接，文章发布之时，文章中的图片才进行真正的发布（一篇文章的发布，包括静态页面的生成和文章图片的发布这2个基本过程），图片发布到结点资源发布PSN上面，文章中的图片地址也会自动替换为发布后的地址，所以，你要理解，图片会有2个以上的拷贝，发布后台resource里面有个（文章删除时候会自动删除，前提是图片引用关联为0），资源发布PSN上也有一个（文章取消发布时会自动删除）。

[SQL]

- INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('CollectionPageNum', '15');
  INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('ContentPageNum', '15');
  INSERT INTO `cmsware_sys` (`varName`, `varValue`) VALUES ('SearchPageNum', '15');

[*新模板语法]

从2.5RC3起，模板引擎增加新的模板调用语法（该模板语法为cmsware3.0的计划，现在提前加入进行过渡测试），同时完全兼容1.x/2.x模板语法，新语法支持更多更强的功能。

CMS调用
<CMS action="LIST" return="ListOne" where="(c.Title=='{$var.Title}' and c.Photo!='') or c.Hit>=10" NodeID="1" />
<CMS action="CONTENT" return="contentInfo" IndexID="{$var.IndexID}" />
<CMS action="SQL" return="ListTwo" query="select * from cmsware_site where Disabled=0" />
IF语句
<if test="$a > $b && ($b>$e)">
<elseif test="$c > $b || $a == 0" >
<else>
</if>
LOOP语句
<loop name="List" var="var" key="key" >
</loop>

OP操作语句
该语句为新增语句，用于表达式的运算
格式：<op exp="要运算的表达式" />
例子：
<op exp="$var=$var+1" />
<op exp="$var++" />
<op exp="$var=($var - 5)/10" />
<op exp="$var=date()" />
<op exp="$var=date('Y-m-d', $info.Time)" />

OP语句的功能非常强大，可以用来替换var语句进行复杂变量定义

<var name="hello" value="world" /> 等同于<op exp="$hello='world'" />

使用OP语句进行复杂变量定义：
<op exp="$hello=Cstrsub($var.Content,1,10,'...').'New!'" />
Debug语句
该语句为新增语句，用于变量调试
格式：<debug name="变量名" />
例子：
<CMS action="SEARCH" return="List" NodeID="{$NodeID}" Field="Keywords" Keywords="{$Keywords}" Num="10" Separator="," IgnoreContentID="{$ContentID}" /><!--使用SEARCH调用获取相关文章列表-->
<debug name="List" />
<LOOP name="List" key="key" var="var">
<li><a href="[$var.URL]">[$var.Title]</a></li>
</LOOP>

[新旧模板语法比较]

- 为了符合XML规范，新版本<CMS...>中的所有属性必须使用""进行闭合，同时将老版的闭合标签<CMS...>..</CMS>改为非闭合标签<CMS.../>。
- 所有非闭合标签必须使用 />作为结束符,比如<op exp="$var=$var+1" />
  闭合标签: 比如 <loop ......>....</loop>、<if...>......</if>.
  非闭合标签: 比如 <cms action="xxx" return="xxx"..../>、<op exp="xxx" />、<var name="xxx" value="xxx" />
- 新版模板语法改为将where调用直接放在<cms...>标签中,请大家注意

新版CMS调用:
<CMS action="LIST" return="ListOne" where="(c.Title=='{$var.Title}' and c.Photo!='') or c.Hit>=10" NodeID="1"/> <!--新版本的where调用支持变量引用判断,及复杂表达式-->
<CMS action="SQL" return="ListTwo" query="select * from cmsware_site where Disabled=0" />
老版CMS调用:
<CMS::LIST:ListOne NodeID="1">
<where: (c.Title=='{$var.Title}' and c.Photo!='') or c.Hit>=10 > <!--老版本的where调用不支持变量引用判断,及复杂表达式-->
...
</CMS>
新版LOOP调用:
<loop name="List" var="var" key="key">
</loop>
老版LOOP调用:
<loop $List var=var key=key>
</loop>
新版IF调用:
<if test="$a > $b && ($b>$e)">
<elseif test="$c > $b || $a == 0" >
<else>
</if>
老版IF调用:
<if $a > $b && ($b>$e)>
<elseif $c > $b || $a == 0 >
<else>
</if>