如何隐藏一些Kentico博客评论字段?

时间:2011-11-03 20:06:59

标签: asp.net web-parts blogs kentico

对于带有评论的博客使用Kentico时,它包含以下字段:

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

但我想使用当前经过身份验证的用户名,而不需要电子邮件或您的网址选项。

在一次性页面上,我们可以使用CSS通过HTML ID将字段设置为display:none,但这对于Blog不起作用,因为ID会经常更改,因为它们是由ASP.NET生成的基于控制树。

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

更新:看起来如果没有自定义代码就无法做到这一点(请参阅下面接受的答案),至少在v5.5 R2及更早版本中是这样;也许不是在v6中?投票选择功能建议,将其添加到此Kentico UserVoice request的未来版本的Kentico中。

2 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的Kentico CMS?我刚检查了5.5R2版本,如果用户通过了身份验证,则会在博客评论中自动填写用户名和电子邮件。

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

答案 1 :(得分: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. 将新...Edit.ascx的{​​{1}}属性更改为指向新的@Register Src="..."
  4. 在我们想要使用默认值的...Edit.ascx行上设置style="display:none"。 (此站点已经需要身份验证,因此用户的名称已填入“名称”字段,并且在我们的案例中未使用电子邮件和URL字段,因此我们不需要它们并不重要每个博客设置的电子邮件字段。)
  5. 在我们在自定义门户网站模板上创建的原始网页部分中,将布局更改为指向新<tr>的新自定义布局:
  6. 刚刚更改了...View.ascx元素中Src属性的新布局代码:

    @Register