gio 21 ago 08

Finalmente disponibile l'estensione per la gestione e modifica dei commenti con BlogEngine.NET

Categorie: BlogEngine.NET · Extensions
Tags: , , , , , ,
Technorati: View blog reactions

English flagEnglish version of this post

user commentUno dei più grandi limiti di BlogEngine.NET (se non l'unico) è rappresentato dall'assenza di un modulo di backend amministrativo per una gestione agevole dei commenti, ivi inclusa la possibilità di apportare modifiche agli stessi. Allo stato dell'arte è possibile (oltre che aggiungere) solo eliminare i commenti o approvarli quando sono in moderazione.

Il pannello amministrativo non presenta nessuna interfaccia di gestione dello storico degli stessi e nè una gestione ad essi dedicati; tale funzionalità era stata prevista nella roadmap di sviluppo con il rilascio della versione 1.4 ma purtroppo poi non è stata implementata.

Personalmente ho sempre considerato incomprensibile questa assenza, ma avendo inizialmente un basso flusso di commenti in ingresso, non l'ho mai giudicata limitativa. Adesso, invece, con uno storico di oltre 1150 commenti in attivo ed un ragionevole incremento giornaliero degli stessi, la funzionalità descritta è divenuta indispensabile.

In attesa del backend definitivo, ho deciso di implementare io stesso un sistema di gestione che sia semplice e funzionale al tempo stesso e che non comporti modifiche che costringano ad una ricompilazione del core dell'engine.

Tramite l'estensione implementata è possibile:

  • disporre di una comodo pannello amministrativo che elenca in ordine cronologico inverso (ovvero dal più recente al più datato) tutti i commenti inseriti: questi vengono correttamente renderizzati anche in presenza di eventuali estensioni che ne modifichino l'aspetto.
  • modificare, approvare o eliminare ciascun commento rispettando le policy associate all'utente autenticato: gli amministratori possono modificare tutti i commenti, gli editor solo i commenti agli articoli che hanno inserito.
  • modificare ciascun commento direttamente dalla pagina contenente l'articolo pubblicato sul blog.

Installazione

Scaricare Comment Manager (7,49 kb) (ver. 1.0.1), quindi:

  1. Decomprimere i file.
  2. Copiare i file Comments.aspx, Comments.aspx.cs, CommentView.ascx e Web.Config (sovrascrivendo l'esistente) nella cartella /Admin/Pages/
  3. Copiare il file Web.Sitemap (sovrascrivendo l'esistente) nella root che ospita il blog

Se non si desidera sovrascrivere i file di configurazione Web.Sitemap e Web.Config con quelli forniti perchè sono state effettuate delle personalizzazioni sugli stessi, è necessario provvedere al loro aggiornamento in maniera manuale.

Aprire il file Web.Config contenuto nella cartella /Admin/Pages/ ed aggiungere all'interno del nodo <configuration> ... </configuration>

<location path="Comments.aspx">
    <system.web>
      <authorization>
        <allow roles="administrators, editors"/>
        <deny users="*" />
      </authorization>
    </system.web>
  </location>

Aprire il file Web.Sitemap contenuto nella root che ospita il blog ed aggiungere all'interno del nodo <siteMapNode url="default.aspx" ... > ... </siteMapNode>

<siteMapNode url="~/admin/Pages/Comments.aspx" title="comments"  description=""  roles="administrators, editors"/>

Configurazione

L'estensione è completamente plug and play ed è immediatamente funzionante. Una volta copiati i file, nel Pannello di Controllo sarà presente il menù Commenti dedicato alla gestione degli stessi.

Se si desidera aggiungere un comando per la modifica di ciascun commento direttamente dalla pagina in cui esso è pubblicato, è necessario:

  • aprire il file CommentView.ascx contenuto nella cartella del tema utilizzato
  • inserire subito al di sotto della riga

    <%@ Control Language="C#" EnableViewState="False" Inherits="BlogEngine.Core.Web.Controls.CommentViewBase" %>
    la riga di codice:

    <%@ Import Namespace="BlogEngine.Core" %>
  • inserire subito dopo il codice <%= AdminLinks %>

    <% if (Page.User.Identity.IsAuthenticated) { %>
        | <a href="<%=Utils.RelativeWebRoot %>admin/pages/comments.aspx?id=<%=Comment.Id %>"><%=Resources.labels.edit %></a>
    <% } %>

Il link, ovviamente, verrà mostrato solo agli utenti autenticati e non ai visitatori anonimi.

Personalizzazione

E' possibile modificare l'aspetto del preview dei commenti nel pannello amministrativo modificando opportunamente il file CommentView.ascx contenuto nella cartella /Admin/Pages/.

L'estensione è stata testata con successo sulle versioni di BlogEngine.NET a partire dalla 1.4 in poi.

Finally released Comment Manager extension for BlogEngine.NET

user commentI’m really pleased to announce that has been released an extension to editing ed managing comments on BlogEngine.NET.

This extension is fully plug and play and it's not required any changes to core.

Now we can:

  • managing comments from Control Panel: editing, approving and erasing are allowed. Administrators can manage all comments, Editors only the comments of their post. The comments are shown in reverse chronological order through paging.
  • editing comment directly from the post on.
  • customize the preview of the comment shown in the list.

Installation

Download Comment Manager (7,49 kb) (ver. 1.0.1), then:

  1. Extract files.
  2. Copy Comments.aspx, Comments.aspx.cs, CommentView.ascx and Web.Config (overwriting the existing file) into /Admin/Pages/ folder
  3. Copy Web.Sitemap (overwriting the existing file) in the blog's root

If you want to manually configure the files Web.Sitemap e Web.Config and not overwrite them with those provided, proceed as follows.

Open (with your preferred editor) Web.Config located in /Admin/Pages/ folder, then insert inside the node <configuration> ... </configuration>, this code

<location path="Comments.aspx">
    <system.web>
      <authorization>
        <allow roles="administrators, editors"/>
        <deny users="*" />
      </authorization>
    </system.web>
  </location>

Open (with your preferred editor) Web.Sitemap located in your blog's root, then insert inside the node <siteMapNode url="default.aspx" ...> ... </siteMapNode>, this code

<siteMapNode url="~/admin/Pages/Comments.aspx" title="comments"  description=""  roles="administrators, editors"/>

Configuration

After installation you can view a new tab named Comments in the Control Panel

If you want to add a command for editing each comment directly from the page in which it is published, you must:

  • open (with your preferred editor) CommentView.ascx located in your theme folder 
  • locate the first line of code:

    <%@ Control Language="C#" EnableViewState="False" Inherits="BlogEngine.Core.Web.Controls.CommentViewBase" %>
    and insert immediately after:

    <%@ Import Namespace="BlogEngine.Core" %>
  • then, insert immediately after the code <%= AdminLinks %>

    <% if (Page.User.Identity.IsAuthenticated) { %>
        | <a href="<%=Utils.RelativeWebRoot %>admin/pages/comments.aspx?id=<%=Comment.Id %>"><%=Resources.labels.edit %></a>
    <% } %>

The link, of course, will be shown only to authenticated users and not to anonymous visitors.

Customization

You can change the appearance of preview of comments displayed in the control panel modifying the file CommentView.ascx contained in the /Admin/Pages/ folder.

This extension has been tested successfully on BlogEngine.NET from version 1.4 onwards.

P.S.: I'm sorry for my poor english

Voto: 3.9 · Votanti: 21 · Assegna il tuo voto:

  • Currently 3,857142/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Commenti

Aggiungi commento


(Visualizza la tua icona Gravatar)  

biucitecode
  • Commento
  • Anteprima
Loading