CommunityServer 2008.5 中文搜尋 CSModule

Monday, 29 September 2008 10:02 by admin

CS2008.5 已經出來一陣子了,中文搜尋 CSModule 其實之前也有做過一些研究,不過因為 CS2008.5 實在鳥問題太多 ( Blog 編輯時日期會變CodeHighlight for WikiWiki Fileviewer 沒作用Blog ranks 出不來、少了兩個 theme、Wiki Options 根本就沒此檔案 ... 陸續發現中) ,在加上我可以用 Enterprise Search ( 這是我的錯,別打我 )

回到正題,在 CS2008.5 Express  版本上( 也就是沒用 Enterprise Search ) ,Wiki 是搜尋不到的,所以目前我改出來的 UnicodeCodeSearch CSModule,一樣也搜尋不到 Wiki ( 不是我故意的,Telligent 給的本來就沒有 )

這次除了原本的 UTF-8 like + English hash 搜尋模式外,另外提供了一個無論如何都會用 Like 搜尋,全部用 Like 搜尋的好處是可以關掉 indexjob 的 task ,除了少一點處理器使用,最主要是可以少了很多資料庫空間去存 hash

使用方法很簡單,用 notepad 改 CommunityServer.config

找到

    <add
        name =     "SearchProvider"
        type = "CommunityServer.Components.SearchBarrel.SearchBarrelProvider, CommunityServer.Components.SearchBarrel"
    />

如果是原本的 UTF-8 like + English hash 搜尋模式,替換成

    <add
          name =     "SearchProvider"
          type = "CommunityServer.UnicodeSearchBarrel.UnicodeSearchBarrelProvider1, CommunityServer.UnicodeSearchBarrel"
      />

如果你要全部都用 Like 搜尋,把 UnicodeSearchBarrelProvider1 改成 UnicodeSearchBarrelProvider2

    <add
          name =     "SearchProvider"
          type = "CommunityServer.UnicodeSearchBarrel.UnicodeSearchBarrelProvider2, CommunityServer.UnicodeSearchBarrel"
      />

想刪除 IndexJob task,就把這四行砍了

        <task name = "ForumsIndexing" type = "CommunityServer.Components.SearchBarrel.ForumsSearchJob, CommunityServer.Components.SearchBarrel" enabled = "true" enableShutDown = "false" />
        <task name = "WeblogIndexing" type = "CommunityServer.Components.SearchBarrel.WeblogSearchJob, CommunityServer.Components.SearchBarrel" enabled = "true" enableShutDown = "false" />
        <task name = "MediaGalleryIndexing" type = "CommunityServer.Components.SearchBarrel.MediaGallerySearchJob, CommunityServer.Components.SearchBarrel" enabled = "true" enableShutDown = "false" />
        <task name = "HubIndexing" type = "CommunityServer.Components.SearchBarrel.HubSearchJob, CommunityServer.Components.SearchBarrel" enabled = "true" enableShutDown = "false" />

 

下載bin檔:按此下載
原始碼下載:按此下載

Wiki 百科館開放

Tuesday, 23 September 2008 20:56 by admin

本站升級 CommunityServer 2008.5 後,已經有內建 Wiki 百科,將陸續把 CommunityServer / BlogEngine.net 修改技巧、問題修正與基本應用 寫入 Wiki 百科內

歡迎大家踴躍查詢與給予意見,Wiki 百科館 ( http://www.ruri.com.tw/wikis/ )

CommunityServer 2008.5 正式發表

Saturday, 20 September 2008 01:37 by admin

來源: http://dev.communityserver.com/blogs/announcements/archive/2008/09/17/community-server-2008-5-not-your-traditional-point-release.aspx

CommunityServer 2008.5 已經於2008/9/17發表,之前已經介紹過不少的概略新功能了,我就整理一下新功能

  • 討論區
    • Q&A 系統 - 增強了原本的 Q&A , 並加入新的 Q&A 畫面
  • 多媒體相簿
    • 清單列表 - 多了清單模式 , 對於不是上傳圖片的多媒體的確是必要的功能
  • Blog
    • 小 Bug 修正
  • Wiki
    • 一套全新的 Wiki 系統包含了 Q&A 功能
  • 控制台
    • 改進控制台的選單排列方式
  • 其他
    • Tiny_MCE 修正 - 升級版本到 3.1.0.1 , 修正字體大小 , 預設加入 Table 輸入
    • 加入新成員發送歡迎訊息
    • 主題右上角將會顯示訊息與朋友數量
    • 移除了兩套主題

CS2008.5 Code Highlight CSModule

Wednesday, 17 September 2008 23:31 by admin

在之前,有寫過了 Code highlight CSModule for CS2008 用,在9/16 CS2008.5 推出了,把原本的 CSModule 套用上去理論上是沒問題,不過在 wiki 部分可就沒作用了

在新的 Wiki 下,並沒有用原本的 csa.PrePostUpdate 來控制內文,而是改用了 WikiEvents ,所以就小小的改寫了一下

public void Init(CSApplication csa, XmlNode node)
        {
            csa.PrePostUpdate += new CSPostEventHandler(csa_PrePostUpdate);
            WikiEvents.BeforeAddPage += new PageEventHandler(WikiEvents_BeforeUpdatePage);
            WikiEvents.BeforeUpdatePage += new PageEventHandler(WikiEvents_BeforeUpdatePage);
        }

並把 Code highlight for BlogEngine.net 所想到的把預設值寫在程式碼也加入進去,以免又有人跑來說沒效

下載bin : CommunityServer2008.5.CodeHighlight_1_3.zip
如何安裝 : http://update.to/cs/codehighlight/

Code highlight for BlogEngine.net

Saturday, 13 September 2008 06:17 by admin

之前有寫一個簡單的 Code Highlight CSModule ,現在轉個方向,套用在 BlogEngine.Net 上,雖然 BE.Net 原本已經有內建一個 CodeFormatterExtension ( 作者: www.manoli.net ),不過好像支援的語言很少,而且出來的格式也不合我胃口,既然已經寫好一個 CSModule 了,要套用在 BE.Net 上其實修改的很少

最主要就是把呼叫的方法改了一下

public CodeHighlightExtension()
    {
        Page.Serving += new EventHandler<ServingEventArgs>(ServingContent);
        Post.Serving += new EventHandler<ServingEventArgs>(ServingContent);
    }

    private void ServingContent(object sender, ServingEventArgs e)
    {
        e.Body = SourceCodeMarkup(e.Body);
    }

不過在 BE.Net 出來的原始碼和 CS 不太一樣,如果用原本的 language="xml" 會又要處理 " 的問題,乾脆改成 language=xml 就好,另外 BE.Net 換行會有 <br />\r\n ,這樣會造成一行變兩行,所以送入轉格HTML前,先把 <br />\r\n 轉成 \n 就好,沒幾下就完成了這個 BlogEngine.NET Extension

另外發現有些人會忘了改 web.config ,乾脆先把預設值內建在程式裡,這樣不改 web.config 也能用了

下載: http://update.to/be/codehighlight/CodeHighlight_10.zip
專案網頁: http://update.to/be/codehighlight/