Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'aspetto di post e commenti

Personalizzare la visualizzazione dei contenuti e dei commenti con la logica degli user control
Personalizzare la visualizzazione dei contenuti e dei commenti con la logica degli user control
Link copiato negli appunti

Lo user control PostView.ascx ha il compito di occuparsi del rendering di un singolo post. Esso viene utilizzato per la lista dei post nella pagina principale, e quindi verrà ripetuto per il numero di volte come impostato nei setting (il valore di default è 10). Inoltre definisce la visualizzazione del singolo post nella pagina di dettaglio.

Per accedere alle informazioni che si potranno visualizzare, BlogEngine mette a disposizione alcuni oggetti e funzioni:

Oggetto/funzione Codice
Autore del post <%=Post.Author %>
Titolo <%=Post.Title %>
Contenuto del post <%=Post.Content%>
Data di creazione <%=Post.DateCreated.ToString("d. MMMM yyyy HH:mm") %>
PermaLink <%=Post.PermaLink %>
Link relativo al post <%=Post.RelativeLink %>
Categorie a cui appartiene il post <%=CategoryLinks(" | ") %>
Link al feed dei commenti <%=CommentFeed %>
Rating <%=Rating %>
Tag associate al post <%=TagLinks(", ") %>

Quello che si dovrà fare è creare un nuovo user control ereditando dalla classe BlogEngine.Core.Web.Controls.PostViewBase. Così si avrà accesso alle proprietà e metodi sopra elencati. All'interno del controllo andrà inserita solamente la porzione di codice html che BlogEngine dovrà utilizzare per renderizzare i post, come l'esempio che segue:

<%@ Control Language="C#" AutoEventWireup="true" EnableViewState="false" Inherits="BlogEngine.Core.Web.Controls.PostViewBase" %>

<div class="post xfolkentry">
  <h2><a class="postheader taggedlink" href="<%=Post.RelativeLink %>"><%=Post.Title %></a></h2>
  <span class="author">by <a href="<%=VirtualPathUtility.ToAbsolute("~/") + "author/" + Post.Author %>.aspx"><%=Post.Author %></a></span>
  <span class="pubDate"><%=Post.DateCreated.ToShortDateString() %></span>
  <div class="entry"><asp:PlaceHolder ID="BodyContent" runat="server" /></div>
  
  <div class="postfooter">
    Tags: <%=TagLinks(", ") %><br />
    Categories: <%=CategoryLinks(" | ") %><br />
  </div>
  
  <p>| <a href="#top">To the top </a> |</p>
</div>

Lo usercontrol CommentView.ascx si occupa della visualizzazione di un singolo commento, e verrà utilizzato nella pagina di dettaglio di un post automaticamente ripetuto per il numero di commenti presenti.

Anche in questo caso, si deve creare un nuovo user control ereditando da una classe dell'engine. In questo caso si tratta della classe BlogEngine.Core.Web.Controls.CommentViewBase che permette l'accesso a proprietà e metodi riguardanti per l'appunto i commenti.

In questo controllo BlogEngine ci mette a disposizione la possibilità di visualizzare l'avatar per gli utenti che hanno scritto un commento e hanno il loro profilo su gravatar attivo, ed il tutto richiamando la funzione Gravatar presente nella classe da cui abbiamo ereditato lo user control appena creato.

<%@ Control Language="C#" EnableViewState="False" Inherits="BlogEngine.Core.Web.Controls.CommentViewBase" %>

<div id="id_<%=Comment.Id %>" class="comment<%= Post.Author.Equals(Comment.Author, StringComparison.OrdinalIgnoreCase) ? " self" : "" %>">
  <p class="date"><%= Comment.DateCreated.ToString("MMMM d. yyyy HH:mm") %></p>
  <p class="gravatar"><%= Gravatar(80)%></p>
  <p class="content"><%= Text%></p>
  <p class="author">
    <%= Comment.Website != null ? "<a href="" + Comment.Website + "">" + Comment.Author + "</a>" : Comment.Author %>
    <%= AdminLinks %>
  </p>
</div>

Terminata la realizzazione del tema, non rimane altro che copiarlo all'interno della cartella themes di BlogEngine, e successivamente selezionarlo dall'area amministrazione del blog in modo da poterlo applicare e utilizzare.


Ti consigliamo anche