Как мне скрыть некоторые поля комментариев в блоге Kentico?

При использовании Kentico для блога с комментариями он имеет следующие поля:

  • Имя
  • Эл. почта
  • Ваш URL
  • Комментарии

Но я хочу использовать имя текущего аутентифицированного пользователя и мне не нужны параметры «Электронная почта» или «Ваш URL».

На разовых страницах мы можем использовать CSS, чтобы установить для полей значение display:none по их HTML-идентификаторам, но это не сработает для блогов, потому что идентификаторы будут часто меняться, поскольку они генерируются ASP.NET на основе дерева элементов управления.

Есть ли способ скрыть эти поля, настроив веб-часть BlogComments (мы не можем найти для них никаких настроек), или нам нужно заменить веб-часть BlogComments пользовательским кодом?

ОБНОВЛЕНИЕ: похоже, вы не можете сделать это без настройки кода (см. Принятый ответ ниже), по крайней мере, в v5.5 R2 и старше; может быть, и не в v6? Проголосуйте за предложение функции, чтобы добавить ее в будущую версию Kentico, в этом запросе Kentico UserVoice.


person Jon Adams    schedule 03.11.2011    source источник
comment
Не положительно, но думаю, что вам, возможно, придется создать настраиваемую веб-часть. Завтра я проконсультируюсь с коллегой, у которого больше опыта работы с блогами.   -  person Doozer Blake    schedule 04.11.2011


Ответы (2)


Какую версию Kentico CMS вы используете? Я только что проверил версию 5.5R2, и имя пользователя и адрес электронной почты автоматически заполняются в комментариях блога, если пользователь аутентифицирован.

Чтобы скрыть ненужные поля, вам нужно будет изменить код элемента управления, используемого в этой веб-части - \ CMSModules \ Blogs \ Controls \ BlogCommentEdit.ascx.cs (помните о своих изменениях при обновлении / исправлении).

person Jurajo    schedule 07.11.2011

Мы изучили код веб-части, и Kentico 5.5 не предлагает возможности настраивать их через свойства веб-части или даже с помощью настраиваемой веб-части, поскольку модуль блога даже не предлагает этого. Итак, мы сделали это:

  1. Скопировал ~/CMSModules/Blogs/Controls/BlogCommentView.ascx и ~/CMSModules/Blogs/Controls/BlogCommentEdit.ascx и переименовал их
  2. Обновлены атрибуты codefile / inherits в этих новых файлах для использования имен пользовательских классов и для ...View.ascx для ссылки на новый ...Edit.ascx
  3. Изменен атрибут @Register Src="..." нашего нового ...Edit.ascx, чтобы он указывал на новый ...Edit.ascx
  4. Установите style="display:none" в <tr> строках, которые мы просто хотели использовать по умолчанию. (Этот сайт уже требовал аутентификации, поэтому имя пользователя уже было заполнено в поле «Имя», а поля «Электронная почта» и «URL-адрес» в нашем случае не используются, поэтому не имело значения, что в них было, поскольку мы не требовали поле E-mail в настройках блога.)
  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" />
person Jon Adams    schedule 07.11.2011