## 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>