September 2008 - 文章

CommunityServer 2008.5 中文搜尋 CSModule

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檔:按此下載
原始碼下載:按此下載

Posted 作者 dmwc with 1 comment(s)

Wiki 百科館開放

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

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

Posted 作者 dmwc with no comments
分類:

CommunityServer 2008.5 正式發表

來源: 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 輸入
    • 加入新成員發送歡迎訊息
    • 主題右上角將會顯示訊息與朋友數量
    • 移除了兩套主題
Posted 作者 dmwc with 1 comment(s)

CS2008.5 Code Highlight CSModule

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

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

1
2
3
4
5
6
        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

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

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

1
2
3
4
5
6
7
8
9
10
    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/

Posted 作者 dmwc with 3 comment(s)

CS2008 CodeHighlight CSModule

communityserver.org 網站上,有人問有沒有 Code highlight for cs2008,在 jun/20 我就有放出這個 csmodule ,不過當時個人技術不夠,沒辦法找到為何無法在 blog 格式化的問題(相信我,我完全遵照規定寫,但就是無法格式化)

瞎混了半年後,在暗黑兄的文件交導下,功力已經比以前進步了一點點 (其實是抄襲別人的功力進步了Big Smile),現在已經有辦法 debug CSModule,而且當初給 cs2008 用的,在 cs2008.1 上又出現個怪問題,趁機重新打響一下知名度,更新的一點 code,如果您想寫 CSModule ,也可以下載回去研究看看,畢竟好像很少人願意放 CSModule 原始碼了

下載: http://www.ruri.com.tw/product/cscodehighlight/CommunityServer2008.CodeHighlight_1_2.zip
原始碼 : http://www.ruri.com.tw/product/cscodehighlight/CommunityServer2008.CodeHighlight_1_2_src.zip
專案網頁(教你怎麼安裝): http://www.ruri.com.tw/product/cscodehighlight/

如果您不想用 CSModule ,可以用 dp.SyntaxHighlighter ( http://code.google.com/p/syntaxhighlighter/ ),這套只要用 javascript 就可以完成 code format,不過如果我是覺得這樣應該會導致每頁都會載入這個 javascript

所以如果您想直接轉成 html ,可以用 quickhighlighter ( http://quickhighlighter.com/ ) 或 CodeHTMLer ( http://puzzleware.net/codehtmler/ ),轉好後直接貼上 HTML 就好了

Posted 作者 dmwc with 3 comment(s)

修改 Tiny_MCE 輸入字體大小

在 Firefox 上,字體並不是靠 Windows 內建字體,而是 Firefox 已經有內建一套,這點和 IE 是有大大的不同

在預設的 Tiny_MCE 上,預設的輸入區文字大小,在 IE 上無論是中文或英文,大家應該都沒有太大意見,不過在 Firefox 下,輸入英文就會看的有點吃力,中文+Cleartype看了後真的就會得到近視了

修改文字大小很簡單,先用記事本等軟體,開啟 \tiny_mce\themes\advanced\skins\default\content.css ( Tiny_mce 3.x )

body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; margin:8px;}

font-size:11px 改成 12px 即可

body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:8px;}

驗收一下
修改前:

修改後:

這下就不用煩惱眼鏡度數不夠了Cool

2008/9/20 補充:

在 CS2008.5 中,已經將字體改成 12px 了,所以不用在動手啦

Posted 作者 dmwc with no comments

CS2008 搭洋蔥頭表情符號

Lifetype ,他們把 Tiny_mce 換成的洋蔥頭,於 CommunityServer 2007 以後,也都換成 Tiny_mce ,當然也是可是可以換的,不過也許會有人會問,明明就有內建換表情圖案的功能,直接加入新圖不就得了

這鳥問題我也想過,不過實際測試後發現,那個換圖只能換 18x18 的圖,包子頭的大小是 50x50 ,用了後會變成18x18 的迷你包子頭,說實在,CommunityServer 的工作人員是不是吃飽太閒,連這個功能都鎖圖片大小

不過內建表情和MSN那個一樣,不怎麼出色,換掉也好,首先這個套件是改原本的 emotions plugins ,所以只要放到 emotions 放到 tiny_mce\plugins 目錄,圖放到 \Emoticons 目錄

檔案放在:http://www.ruri.com.tw/media/p/2708.aspx

檔案放好後,用記事本等軟體,修改 CommunityServer.config,找到 <editors> 後,把 plugins 的 smilies 換成 emotions,例如以下:

 

    <editors>
      <editor name="Plain Text" type="CommunityServer.Controls.DefaultTextEditor, CommunityServer.Controls" resourceName="EditorType_PlainText_Name" />
      <editor name="Standard" type="Telligent.TinyMCEWrapper.TinyMCE, Telligent.TinyMCEWrapper" resourceName="EditorType_Standard_Name">
        <editorOption name="fix_content_duplication" value="true" />
        <editorOption name="theme_advanced_resizing" value="true" />
        <editorOption name="remove_linebreaks" value="false" />
        <editorOption name="verify_html" value="false" />
        <editorOption name="theme_advanced_statusbar_location" value="'bottom'" />
        <editorOption name="theme_advanced_resize_horizontal" value="false" />
        <editorOption name="plugins" value="'insertmedia,paste,emotions,iespell,safari'" />
        <editorOption name="theme_advanced_buttons1_add" value="'iespell,emotions'" />
        <editorOption name="tab_focus" value="':prev,:next'" />
      </editor>
      <editor name="Enhanced" type="Telligent.TinyMCEWrapper.TinyMCE, Telligent.TinyMCEWrapper" default="true" resourceName="EditorType_Enhanced_Name">
        <editorOption name="fix_content_duplication" value="true" />
        <editorOption name="theme_advanced_resizing" value="true" />
        <editorOption name="theme_advanced_statusbar_location" value="'bottom'" />
        <editorOption name="theme_advanced_resize_horizontal" value="false" />
        <editorOption name="verify_html" value="false" />
        <editorOption name="remove_linebreaks" value="false" />
        <editorOption name="plugins" value="'insertmedia,paste,emotions,iespell,safari'" />
        <editorOption name="theme_advanced_buttons1" value="'fontselect,separator,fontsizeselect,separator,forecolor,backcolor,separator,cut,copy,paste,pasteword,separator,code,iespell'" />
        <editorOption name="theme_advanced_buttons2" value="'bold,italic,underline,strikethrough,separator,blockquote,hr,removeformat,separator,indent,outdent,separator,bullist,numlist,separator,link,unlink,image,insertmedia,emotions'" />
        <editorOption name="tab_focus" value="':prev,:next'" />
      </editor>
    </editors>

對了,這是修改 Tiny_mce 3 的 emotions plugins ,理論上其他系統要是也用  tiny_mce 3 也都能使用

Posted 作者 dmwc with no comments