Open Source Web Application Framework for ASP.NET Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

6.3 KiB

Kit CMS: Comentários

O Kit CMS fornece um sistema de comentários para adicionar a funcionalidade de comentários a qualquer tipo de recurso, como postagens de blog, produtos, etc.

Habilitando a funcionalidade de comentários

Por padrão, as funcionalidades do Kit CMS estão desabilitadas. Portanto, você precisa habilitar as funcionalidades desejadas antes de começar a usá-lo. Você pode usar o sistema de Funcionalidades Globais para habilitar/desabilitar as funcionalidades do Kit CMS durante o desenvolvimento. Alternativamente, você pode usar o Sistema de Funcionalidades do ABP Framework para desabilitar uma funcionalidade do Kit CMS em tempo de execução.

Verifique a seção "Como instalar" da documentação do módulo Kit CMS para saber como habilitar/desabilitar as funcionalidades do Kit CMS durante o desenvolvimento.

Opções

O sistema de comentários fornece um mecanismo para agrupar definições de comentários por tipos de entidade. Por exemplo, se você deseja usar o sistema de comentários para postagens de blog e produtos, você precisa definir dois tipos de entidade chamados BlogPosts e Product e adicionar comentários sob esses tipos de entidade.

CmsKitCommentOptions pode ser configurado na camada de domínio, no método ConfigureServices do seu módulo. Exemplo:

Configure<CmsKitCommentOptions>(options =>
{
    options.EntityTypes.Add(new CommentEntityTypeDefinition("Product"));
    options.IsRecaptchaEnabled = true; //false por padrão
    options.AllowedExternalUrls = new Dictionary<string, List<string>>
    {
      {
        "Product",
        new List<string>
        {
          "https://abp.io/"
        }
      }
    };
});

Se você estiver usando a Funcionalidade de Blog, o ABP Framework define automaticamente um tipo de entidade para a funcionalidade de blog. Você pode facilmente substituir ou remover os tipos de entidade predefinidos no método Configure como mostrado acima.

Propriedades de CmsKitCommentOptions:

  • EntityTypes: Lista de tipos de entidade (CmsKitCommentOptions) definidos no sistema de comentários.
  • IsRecaptchaEnabled: Esta flag habilita ou desabilita o reCaptcha para o sistema de comentários. Você pode defini-la como true se quiser usar o reCaptcha em seu sistema de comentários.
  • AllowedExternalUrls: Indica as URLs externas permitidas por tipos de entidade, que podem ser incluídas em um comentário. Se for especificado para um determinado tipo de entidade, apenas as URLs externas especificadas serão permitidas nos comentários.

Propriedades de CommentEntityTypeDefinition:

  • EntityType: Nome do tipo de entidade.

O Widget de Comentários

O sistema de comentários fornece um widget de comentários para permitir que os usuários enviem comentários para recursos em sites públicos. Você pode simplesmente colocar o widget em uma página como abaixo.

@await Component.InvokeAsync(typeof(CommentingViewComponent), new
{
  entityType = "Product",
  entityId = "...",
  isReadOnly = false,
  referralLinks  = new [] {"nofollow"}
})

entityType foi explicado na seção anterior. entityId deve ser o id único do produto, neste exemplo. Se você tiver uma entidade Produto, você pode usar seu Id aqui. referralLinks é um parâmetro opcional. Você pode usar este parâmetro para adicionar valores (como "nofollow", "noreferrer" ou qualquer outro valor) aos atributos rel dos links.

Interface do Usuário

Itens de Menu

Os seguintes itens de menu são adicionados pela funcionalidade de comentários à aplicação de administração:

  • Comentários: Abre a página de gerenciamento de comentários.

Páginas

Gerenciamento de Comentários

Você pode visualizar e gerenciar comentários nesta página.

comment-page

Você também pode visualizar e gerenciar respostas nesta página.

comments-detail

Internos

Camada de Domínio

Agregados

Este módulo segue o guia de Melhores Práticas e Convenções de Entidades.

Comentário

Um comentário representa um comentário escrito por um usuário.

  • Comment (raiz do agregado): Representa um comentário escrito no sistema.

Repositórios

Este módulo segue o guia de Melhores Práticas e Convenções de Repositórios.

Os seguintes repositórios personalizados são definidos para esta funcionalidade:

  • ICommentRepository

Serviços de Domínio

Este módulo segue o guia de Melhores Práticas e Convenções de Serviços de Domínio.

Gerenciador de Comentários

CommentManager é usado para realizar algumas operações para a raiz do agregado Comment.

Camada de Aplicação

Serviços de Aplicação

  • CommentAdminAppService (implementa ICommentAdminAppService): Implementa os casos de uso do sistema de gerenciamento de comentários, como listar ou remover comentários, etc.
  • CommentPublicAppService (implementa ICommentPublicAppService): Implementa os casos de uso do sistema de gerenciamento de comentários em sites públicos, como listar comentários, adicionar comentários, etc.

Provedores de Banco de Dados

Comum

Prefixo de tabela / coleção e esquema

Todas as tabelas/coleções usam o prefixo Cms por padrão. Defina propriedades estáticas na classe CmsKitDbProperties se você precisar alterar o prefixo da tabela ou definir um nome de esquema (se suportado pelo seu provedor de banco de dados).

String de conexão

Este módulo usa CmsKit como nome da string de conexão. Se você não definir uma string de conexão com esse nome, ela será usada a string de conexão Default.

Consulte a documentação de strings de conexão para obter detalhes.

Entity Framework Core

Tabelas
  • CmsComments

MongoDB

Coleções
  • CmsComments