修正BBCodes 轉換不正確 for CS 2.1 sp1

Thursday, 30 November 2006 22:11 by admin

參考: http://communityserver.org/forums/thread/558395.aspx

 

BB code 轉 HTML 的時候可能會style 刪除掉,所以轉換後可能字體顏色就不見了,修正方式是開啟 communityserver.config 裡面的 <CSModules> 要做點順序調整

<add name = "AutoApproveForumModule" type="CommunityServer.Discussions.Components.AutoApproveForumModule, CommunityServer.Discussions" />
<add name = "BBcodeToHtml" type = "CommunityServer.Discussions.Components.BBcodeToHtmlModule, CommunityServer.Discussions" />
<add name = "IrcCommands" type = "CommunityServer.Discussions.Components.IrcCommandsModule, CommunityServer.Discussions" />
<add name = "ForumCensorship" type = "CommunityServer.Discussions.Components.CensorshipModule, CommunityServer.Discussions" />
<add name = "ForumEmoticon" type = "CommunityServer.Discussions.Components.EmoticonModule, CommunityServer.Discussions" />
<add name = "ForumSourceCode" type = "CommunityServer.Discussions.Components.SourceCodeModule, CommunityServer.Discussions" />
<add name = "ForumPlainText" type = "CommunityServer.Discussions.Components.PlainTextModule, CommunityServer.Discussions" />
<add name = "ForumHtmlScrubbing" type = "CommunityServer.Discussions.Components.HtmlScrubbingModule, CommunityServer.Discussions" />
<add name = "ForumCollapse" type = "CommunityServer.Discussions.Components.CollapseModule, CommunityServer.Discussions" />

改為:

<add name = "AutoApproveForumModule" type="CommunityServer.Discussions.Components.AutoApproveForumModule, CommunityServer.Discussions" />
<add name = "IrcCommands" type = "CommunityServer.Discussions.Components.IrcCommandsModule, CommunityServer.Discussions" />
<add name = "ForumCensorship" type = "CommunityServer.Discussions.Components.CensorshipModule, CommunityServer.Discussions" />
<add name = "ForumSourceCode" type = "CommunityServer.Discussions.Components.SourceCodeModule, CommunityServer.Discussions" />
<add name = "ForumPlainText" type = "CommunityServer.Discussions.Components.PlainTextModule, CommunityServer.Discussions" />
<add name = "ForumHtmlScrubbing" type = "CommunityServer.Discussions.Components.HtmlScrubbingModule, CommunityServer.Discussions" />
<add name = "BBcodeToHtml" type = "CommunityServer.Discussions.Components.BBcodeToHtmlModule, CommunityServer.Discussions" />
<add name = "ForumEmoticon" type = "CommunityServer.Discussions.Components.EmoticonModule, CommunityServer.Discussions" />
<add name = "ForumCollapse" type = "CommunityServer.Discussions.Components.CollapseModule, CommunityServer.Discussions" />

網站整合第一部: 利用CS元件撰寫使用者建立與登入

Monday, 13 November 2006 02:56 by admin

把CS整合到自己的網站相信大多數人都想這樣做,首先我會推薦一個連結給您

 

參考(ref): http://nayyeri.net/archive/2006/07/09/1136.aspx

 

不過我還是簡單的說一下,首先必須開啟一個ASP.Net程式,然後把 CommunityServer.Components.dll 加入參考,以下程式為 VB.Net ,所以和 nayyeri 的程式寫法有點出入

程式1: 判斷使用者是否登入

     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' 在這裡放置使用者程式碼以初始化網頁
        Dim CSContext As CSContext

        ' 如果是訪客
        If CSContext.Current.User.IsAnonymous Then
            Response.Write("CSContext.User: 我是訪客")
        Else
            Response.Write("CSContext.UserID (使用者帳號): " & CSContext.Current.UserID)
            Response.Write("CSContext.UserName (使用者名稱): " & CSContext.Current.UserName)
        End If

    End Sub

 

程式二:驗證使用者

        Dim oUser As New User
        oUser.Username = Me.lblID.Text
        oUser.Password = Me.lblPassword.Text

        ' 驗證使用者
        Dim iResult As LoginUserStatus
        iResult = Users.ValidUser(oUser)

        If iResult = LoginUserStatus.Success Then
            Response.Write("Login Success!!")
        Else
            Response.Write("Login Fail!!")
        End If

 

下一篇在寫怎麼建立帳戶 

學習CS SDK第一部-用VS.Net開啟SDK

Monday, 13 November 2006 02:12 by admin

如果您要做網站整合,先利用CS SDK版本然後看他怎麼運作那是最快的學習方式,不過設定CS並不簡單,以下用 2.1 (SP1) for ASP.Net 2.0 為例

 

1. 首先您必須先安裝好 CS 2.1 ,建議不要用 SDK 版本安裝,因為 SDK 的 installer 是 ASP.Net 1.1 的,還要花一個步驟轉成 ASP.Net 2.0 ,安裝時請於 IIS 建立一個虛擬目錄指到 cs\web 下

 

2. 安裝完成後,把 SDK 版本解壓,把剛才的 IIS 目錄指到剛才解壓 SDK 目錄下\source\web

 

3. 如果您是要對 ASP.Net 2.0 版本除錯,必須先安裝 Visual Studio 2005 Web Application Projects ,請到 http://msdn2.microsoft.com/en-us/asp.net/aa336618.aspx 下載後安裝 (注意:僅支援英文版 VS.Net 2005 ,中文版或其他語言版本都無法安裝,如果您要在中文版上使用,可以先安裝英文版VS.Net後更新,更新後移除英文版再安裝中文版)

 

4. 安裝完成後開啟 Community Server ASPNET11.sln ( ASP.Net 1.1 ) 或 Community Server ASPNET20.sln ( ASP.Net 2.0 )

 

5. 編譯,然後用IE 開啟您剛才安裝的網址,如果不能執行,請確認 web.config 裡面的 sql connection 有沒有設定正確

 

6. 如果要利用中斷的方式除錯,在VS.Net 的 工具>附加至程式序 附加 aspnet_wp.exe ,這樣到中斷點 就會停下來

 

探討: 利用Community server 2.1整合原本ASP.Net

Sunday, 5 November 2006 19:08 by admin

參考

http://tod1d.net/blogs/tech/pages/Running-ASP.NET-applications-under-Community-Server.aspx

 

總結

以下步驟將告訴您如何將原本的 ASP.Net 頁面整合到 Community Server 

 

步驟1: 安裝與設定Community Server

在整合前,您必須先安裝一套Community Server,並且選擇相同的.Net Framework版本安裝,例如原本的網頁是用ASP.Net 1.1 就要安裝 Community server for ASP.Net 1.1,如果還沒下載,可以到官方網站下載區,下載Web Install版本

 

下載後將檔案解壓縮並上傳到伺服器上的一個目錄,例如 wwwroot\cs21 ,並且建立一個虛擬目錄指到此目錄的web下面,例如 wwwroot\cs21\web ,上傳後請利用瀏覽器開啟線上安裝程式設定與建立資料庫,線上安裝網址 http://yourdomain/cs/installer/default.aspx

 

※安裝於根目錄也可以,但推薦安裝於虛擬目錄

 

步驟2: 複製必要的檔案到您的網頁專案

CS安裝完成後即可開始準備整合到您自己的專案,首先開啟您的Visual Studio.Net 2003 (ASP.Net 1.1) or 2005 (ASP.Net 2.0) 複製並加入以下參考到 bin 目錄

 

ASP.Net 1.1 

  • CommunityServer.MemberRole.dll
  • CommunityServer.Components.dll
  • MemberRole.dll
  • CommunityServer.Reader.dll (此檔案應該為非必要,後續解說)
  • CommunityServer.SqlDataProvider.dll

 ASP.Net 2.0

  • CommunityServer.ASPNet20MemberRole.dll
  • CommunityServer.Components.dll
  • CommunityServer.Reader.dll (此檔案應該為非必要,後續解說)
  • CommunityServer.SqlDataProvider.dll

當然複製越多的 dll 您就可以有越多功能,但會造成伺服器更多的負擔,並且通常您應該是不會用到這些功能,另外您還要複製

  • communityserver.config
  • SiteUrls.config
  • 與 languages 目錄

完成後您還要整合 web.config ,建議把 cs 目錄的 web.config 複製到您的專案,然後再加入您需要修改的部分

 

步驟3: CS功能簡化

大部分CS的功能都會在 cs 目錄下執行,應該用不到在您自己的專案下執行,所以關掉大部分用不到的CS功能來減少伺服器負載與增加效率

首先開啟 communityserver.config,找到 "<Jobs minutes" ,這區塊都是CS的自動執行服務,都用不到了,再來找到<CSModules> ,這些是宣告CS有哪些模組,這僅需要留下基本的模組,其他的大都不必要

<CSModules>
<add name = "InkModule" type = "CommunityServer.Components.InkModule, CommunityServer.Components" />
<add name = "CSMembershipRulesModule" type = "CommunityServer.Components.CSMembershipRulesModule, CommunityServer.Components" />
<add name = "CSValidationModule" type = "CommunityServer.Components.CSValidationModule, CommunityServer.Components" />
<add name = "CSCatastrophicExceptionModule" type = "CommunityServer.Components.CSCatastrophicExceptionModule, CommunityServer.Components" />
<add name = "CSExceptionModule" type = "CommunityServer.Components.CSExceptionModule, CommunityServer.Components" />
<add name = "UserLastVisit" type = "CommunityServer.Components.UserLastVisitModule, CommunityServer.Components" />
   
<add name = "FullyQualifiedUrlModule" type = "CommunityServer.Components.FullyQualifiedUrlModule, CommunityServer.Components" />
<add name = "AuditDeletedPostContentModule" type = "CommunityServer.Components.AuditDeletedPostContentModule, CommunityServer.Components" />           
</CSModules>

 

步驟4: 將程式碼加入您的程式

到此已經可以把 CS 整合到您的網頁專案,試看看在您的首頁加入以下程式碼

   18     protected void Page_Load(object sender, EventArgs e)
   19     {
   20       CommunityServer.Components.User currentUser =
   21         CommunityServer.Components.CSContext.Current.User;
   22       Label1.Text = currentUser.Username;
   23     }

完成後編譯如果動作正常即可發現使用者名稱顯示在 label1 的位置上,另外要注意的就是完成後,您的專案就變成了 表單 認證 ( <authentication mode="Forms" /> )

 

步驟5: 確定原CS網頁是否正常工作

由於您複製了 web.config 到根目錄,會造成您原本 cs 有些衝突,您可以還要修改一下 cs 專案下的 web.config ,把衝突的地方刪除 

 

恭喜你,完成了整合,您可以參考一些CS程式碼來自訂一些功能到您的網頁上,例如自己設計登入表單或介面到您的網頁專案上

 

更新 CS 2.1 SP1 完成

Friday, 3 November 2006 00:19 by admin
前天測試完成 ASP.Net 2.0 版本完成,今天將本站升級 CS 版本為 2.1 SP1