1

Kentico用于带评论的博客时,它具有以下字段:

  • 姓名
  • 电子邮件
  • 您的网址
  • 评论

但我想使用当前经过身份验证的用户名,并且不需要 E-mail 或 Your URL 选项。

在一次性页面上,我们可以使用 CSSdisplay:none通过其 HTML ID 设置字段,但这不适用于博客,因为 ID 会经常更改,因为它们是由 ASP.NET 基于控件树生成的。

有没有办法通过配置 BlogComments Web 部件来隐藏这些字段(我们在其中找不到任何设置),还是我们必须用自定义代码替换 BlogComments Web 部件?

更新:看起来你不能在不定制代码的情况下做到这一点(见下面接受的答案),至少在 v5.5 R2 和更早版本中;也许不在v6中?在此Kentico UserVoice 请求中投票支持将其添加到未来版本的 Kentico 的功能建议。

4

2 回答 2

0

您使用哪个版本的 Kentico CMS?我刚查了5.5R2版本,如果用户通过认证,用户名和邮箱会自动填写在博客评论中。

要隐藏不需要的字段,您需要更改此 Web 部件中使用的控件的代码 - \CMSModules\Blogs\Controls\BlogCommentEdit.ascx.cs(升级/修补程序时请注意您的更改)。

于 2011-11-07T08:24:48.503 回答
0

我们查看了 Web 部件代码,并且 Kentico 5.5 不提供通过 Web 部件属性自定义它们的能力,甚至没有自定义 Web 部件,因为博客模块甚至不提供它。所以我们这样做了:

  1. 复制并重~/CMSModules/Blogs/Controls/BlogCommentView.ascx命名~/CMSModules/Blogs/Controls/BlogCommentEdit.ascx它们
  2. 更新了这些新文件中的 codefile/inherits 属性以使用自定义类名并...View.ascx引用新的...Edit.ascx
  3. 将我们的 new...Edit.ascx@Register Src="..."属性更改为指向新的...Edit.ascx
  4. 在我们只想使用默认值style="display:none"的行上设置。<tr>(该站点已经需要身份验证,因此用户名已填写到名称字段中,并且在我们的案例中未使用电子邮件和 URL 字段,因此它们中的内容无关紧要,因为我们不需要根据博客设置的电子邮件字段。)
  5. 在我们在自定义门户模板上创建的原始 Web 部件中,将布局更改为指向新的自定义布局...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" />
于 2011-11-07T16:09:49.800 回答