2013-03-05 10 views
6

Nella pagina di riepilogo del blog, quella che elenca i post del tuo blog, potrei fare con un po 'più di testo visibile da ciascun post del blog.Orchard Blog Summary Text

È possibile? Non riesco a vederlo da nessuna parte nelle impostazioni e per qualche motivo la tracciatura della forma non mi permette di vedere quale sia il modello per questo.

risposta

4

Attraverso la lettura di altri post ho trovato che la vista responsabile di ciò era Parts_Common_Body_Summary. Così ho copiato questo dal nucleo/cartella comune di frutteto e copiato in tutto ai miei temi di visualizzazione delle cartelle, prima di rinominare a Parts_Blog_Summary

Ho quindi configurare una regola per questo in Placement.info come segue :

<Match ContentType="BlogPost"> 
<Match DisplayType="Summary"> 
     <Place Parts_Common_Body_Summary="Content:after;Alternate=Parts_Blog_Summary"/> 
</Match>  
</Match> 

Questo solo mi ha lasciato il compito di alterare la lunghezza della stringa nella nuova visualizzazione alternativa:

var body = new HtmlString(Html.Excerpt(bodyHtml, 350).ToString().Replace(Environment.NewLine, "</p>" + Environment.NewLine + "<p>")); 
5

avevo bisogno di fare la stessa cosa di recente su orchar d v1.6. Stai utilizzando il tracciamento della forma per andare nella giusta direzione. Il orchard documentation for alternates e placement coprono questo. C'è un buon esempio di questo tipo di modifica su Tony Johnson's Argument Exception Blog.

Come per la risposta di Phil, è necessario modificare il placement.info nel tema corrente per utilizzare una vista alternativa in questo modo;

<Match ContentType="BlogPost"> 
<Match DisplayType="Summary"> 
    <Place Parts_Common_Body_Summary="Content:5;Alternate=Parts_BlogPostSummaryBody"/> 
</Match> 
</Match> 

E quindi aggiungere un elemento alternativo chiamato "Content-BlogPost.Summary.cshtml" nella cartella vista del vostro tema;

@using Orchard.ContentManagement.ViewModels 
@using Orchard.ContentManagement 
@using Orchard.Core.Common.Models 

@{  
ContentItem item = Model.ContentItem; 
string title = Model.Title.ToString(); 
BodyPart bpItem = item.As<BodyPart>(); 
string linkUrl = Url.ItemDisplayUrl(item); 
} 

<h4>@Html.ItemDisplayLink(title, item)</h4> 
<div class="publishinfo">@Model.ContentItem.CommonPart.PublishedUtc by @Model.ContentItem.CommonPart.Owner.UserName</div> 
     <div> 
    <p>@Html.Raw(@bpItem.Text)</p> 
</div>