Qualche help(er) nel theming di Orchard
Dopo aver utilizzato Orchard per il minisito del nostro prossimo evento, ho deciso di cominciare a usare questo fantastico CMS anche in produzione.

Naturalmente non da un giorno all’altro, quindi si parte con un piccolo sito web commissionatomi dall’azienda di impianti elettrici di mio padre. Il sito è molto semplice e come già saprete la parte tosta è il theming. In questo caso ho lasciato scegliere a mio padre il template di suo gradimento da un sito web ed ho chiesto al buon Carmine di fare giusto qualche modifica per inserire meglio il loro logo nel layout scelto.
Se avete seguito lo streaming o eravate all’ultimo workshop di DotNetMarche sapete già come creare un nuovo tema. Comunque sto approfittando del basso budget messo a disposizione da mio padre (eh… cosa non si fa per la famiglia…) per tirare fuori almeno una guida su come ho realizzato questo lavoro con Orchard, quindi restate sintonizzati su DotNetCampania…
Uno dei problemi del theming riguarda la bella feature di poter in ogni momento switchare da un tema all’altro dalla dashboard, cosa che comporta però l’utilizzo nel css del tema e nelle view razor di url relativi. Razor ci viene in aiuto con alcuni helper messi disposizione da Orchard per l’inclusione di risorse con path relativi, ad esempio se avete il css nella cartela Style creata durante la generazione del tema potete usare:
@{
Style.Include("style.css");
}
Se poi invece siete sfortunati come me e vostro padre ha scelto un tema in cui le immagini non sono tutte linkate dal css, allora vi ritroverete a dover scrivere una cosa del genere:
<img src="@Url.Content(Html.ThemePath("/Content/Images/logo.gif"))" alt="logo" />
dove Url.Content è un url helper di mvc che serve proprio a linkare risorse con url relativi, ma se non volete dipendere dal nome della cartella del tema potete usare l’helper di Orchard che vi fornisce il path del tema corrente Html.ThemePath!
Spero vi sia utile!
--Michele