2011-11-03 52 views
1

使用時Kentico與評論的博客,它具有以下字段:如何隱藏一些Kentico博客評論欄?

  • 名稱
  • 電子郵件
  • 你的URL
  • 評論

但我想用當前經過身份驗證的用戶名,並且不需要電子郵件或URL選項。

在一次性頁面上,我們可以使用CSS通過它們的HTML ID將字段設置爲display:none,但這對於博客不起作用,因爲ID會經常更改,因爲它們是由ASP.NET基於控制樹。

有沒有辦法通過配置BlogComments Web部件來隱藏這些字段(我們無法在其中找到任何設置),還是必須用自定義代碼替換BlogComments Web部件?

更新:看起來你無法做到這一點沒有定製代碼(見下面的接受的答案),至少在V5.5 R2及以上;也許不在v6中?投票選擇功能建議,將其添加到未來版本的Kentico中,其格式爲Kentico UserVoice request

+0

對此沒有正面評價,但認爲您可能必須執行自定義Web部件。我會和一位明天的同事進行覈對,他們在博客方面有更多的經驗。 –

回答

0

我們看着Web部件代碼,Kentico 5.5不提供通過Web部件的屬性來定製他們的能力,甚至也沒有用,因爲博客模塊自定義Web部件甚至不提供它。所以我們做了:

  1. 複製~/CMSModules/Blogs/Controls/BlogCommentView.ascx~/CMSModules/Blogs/Controls/BlogCommentEdit.ascx並重新命名爲
  2. 更新了的CodeFile /繼承屬性,在這些新文件中使用自定義的類名,爲...View.ascx以引用新...Edit.ascx
  3. 改變了我們新的...Edit.ascx@Register Src="..."屬性指向新的...Edit.ascx
  4. 設置style="display:none"行,我們只是想使用默認值。 (這個網站已經要求認證了,所以用戶的名字已經填入名稱字段,而我們的情況並沒有使用電子郵件和URL字段,所以它們並不重要,因爲我們沒有要求每個博客設置的電子郵件字段。)
  5. 在我們在我們的定製門戶模板創建的原始網頁的一部分,改變了佈局,以指向新...View.ascx新的自定義佈局:

,只是在改變Src屬性的新佈局代碼@Register元素:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="~/CMSWebParts/Blogs/BlogCommentView.ascx.cs" Inherits="CMSWebParts_Blogs_BlogCommentView" %> 
<%@ Register Src="~/CustomBlogCommentView.ascx" TagName="BlogCommentView" TagPrefix="cms" %> 

<cms:BlogCommentView ID="commentView" runat="server" /> 
0

您使用哪個版本的Kentico CMS?我剛剛檢查了5.5R2版本,如果用戶通過身份驗證,用戶名和電子郵件會自動填充到博客評論中。

要隱藏不需要的字段,您需要更改此Web部件中使用的控件的代碼 - \ CMSModules \ Blogs \ Controls \ BlogCommentEdit.ascx.cs(請注意升級/ hotfixing)。