如何隐藏一些 Kentico 博客评论字段?
Posted
技术标签:
【中文标题】如何隐藏一些 Kentico 博客评论字段?【英文标题】:How do I hide some of the Kentico Blog Comment fields? 【发布时间】:2011-12-21 12:25:09 【问题描述】:将Kentico 用于带有评论的博客时,它具有以下字段:
姓名 电子邮件 您的网址 评论但我想使用当前认证用户的名字,不需要 E-mail 或 Your URL 选项。
在一次性页面上,我们可以使用 CSS 通过其 html ID 将字段设置为 display:none
,但这不适用于博客,因为 ID 会经常更改,因为它们是由 ASP.NET 基于控制树。
有没有办法通过配置 BlogComments Web 部件来隐藏这些字段(我们在其中找不到任何设置),还是我们必须用自定义代码替换 BlogComments Web 部件?
更新:如果不自定义代码,您似乎无法做到这一点(请参阅下面接受的答案),至少在 v5.5 R2 及更早版本中;也许不在v6中?在Kentico UserVoice request 中投票支持将其添加到 Kentico 未来版本的功能建议。
【问题讨论】:
对此并不积极,但认为您可能需要执行自定义 Web 部件。明天我会和一位在博客方面有更多经验的同事核实一下。 【参考方案1】:您使用哪个版本的 Kentico CMS?我刚查了5.5R2版本,如果用户通过认证,用户名和邮箱会自动填入blog cmets中。
要隐藏不需要的字段,您需要更改此 Web 部件中使用的控件的代码 - \CMSModules\Blogs\Controls\BlogCommentEdit.ascx.cs(升级/修补程序时请注意您的更改)。
【讨论】:
【参考方案2】:我们查看了 Web 部件代码,但 Kentico 5.5 不提供通过 Web 部件属性自定义它们的功能,甚至没有自定义 Web 部件,因为博客模块甚至不提供它。所以我们这样做了:
-
复制
~/CMSModules/Blogs/Controls/BlogCommentView.ascx
和~/CMSModules/Blogs/Controls/BlogCommentEdit.ascx
并重命名
更新了这些新文件中的 codefile/inherits 属性以使用自定义类名,并让 ...View.ascx
引用新的 ...Edit.ascx
更改了我们新的...Edit.ascx
的@Register Src="..."
属性以指向新的...Edit.ascx
在我们只想使用默认值的<tr>
行上设置style="display:none"
。 (该站点已经需要身份验证,因此用户名已填写到名称字段中,并且在我们的案例中未使用电子邮件和 URL 字段,因此它们中的内容无关紧要,因为我们不需要根据博客设置的电子邮件字段。)
在我们在自定义门户模板上创建的原始 Web 部件中,将布局更改为指向新 ...View.ascx
的新自定义布局:
刚刚更改@Register
元素中Src
属性的新布局代码:
<%@ 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" />
【讨论】:
以上是关于如何隐藏一些 Kentico 博客评论字段?的主要内容,如果未能解决你的问题,请参考以下文章
如何在另一个控制器的上下文中使用rails form partial而不将ID作为隐藏字段传递