mercoledì 27 luglio 2016

Condizione IF nelle macro e in K# ASCX

Per utilizzare la condizione IF nelle macro è necessario questo codice:

{% DocumentContext.CurrentDocument.YoutubeVideo  == "" ? "" : "<div class='responsive-video'><iframe width='420' height='315' src='https://www.youtube.com/embed/" + DocumentContext.CurrentDocument.YoutubeVideo + "' frameborder='0' allowfullscreen></iframe></div>" #%}

In questo esempio viene valutato il campo custom "YoutubeVideo" e se è vuoto viene eseguita la prima azione, cioè niente. Se invece il campo è valorizzato viene stampato il codice HTML della seconda parte. Questo codice ha a sua volta una parte dinamica che è formata dal valore stesso del campo che va a comporre l'url definitivo del video di Youtube.

Invece la stessa condizione per i template ASCX si scrive:

<%# IfEmpty(Eval("YoutubeVideo"),"", "<div class='responsive-video'><iframe width='420' height='315' src='https://www.youtube.com/embed/" + Eval("YoutubeVideo") + "' frameborder='0' allowfullscreen></iframe></div>") %>

Aggiungere una classe al body tramite un template

Se si vuole aggiungere una classe al body per tutte le pagine di uno specifico template è necessario aggiungere il seguente codice nel layout del template stesso:

<script runat="server">
  protected void Page_Load(object sender, EventArgs e)
  {
    Page.DataBind();
    CMS.DocumentEngine.DocumentContext.CurrentBodyClass += " your-class";
  }
</script>

Non è importante se in cima o in fondo al codice stesso.

Fonte:
http://dahlindevelopment.com/blog/november-2015/add-a-css-class-to-the-body-tag-in-kentico/