Nyheters bäst före-datum

Nyheter är ofta en färskvara. I SiteVision går det att avpublicera en artikel när den inte längre är aktuell - men det kanske du inte alltid vill. Här bjuder vi på en lösning där besökaren meddelas när en nyhets bäst före-datum har passerat.

Meddelandet visas automatiskt, till exempel ett halvår efter publiceringsdagen, eller så väljer redaktören själv ett bäst före-datum. Så här kan det se ut när någon besöker en inaktuell nyhet:

Nyhetens bäst före-datum har passerat och är kanske inte längre aktuell.

Installera på din webbplats

Om du har jobbat med metadata och enklare mallbygge tidigare kan du snabbt installera funktionen på din webbplats:

  1. Sätt upp ett datum-metadata och ange bestBeforeDate som namn.
  2. Gå till din nyhets-mall och skapa en anpassad vy där du vill att meddelandet ska visas. Ge den anpassade vyn ett namn, välj Typ JavaScript och klistra in skriptet som du hittar här nedanför.
  3. När den anpassade vyn är skapad fyller du den med ett lämpligt meddelande: "Nyhetens bäst före-datum har passerat". Sätt gärna lite färg och form på meddelandet så det syns ordentligt.
  4. Publicera mallen och du är klar!

Nu är det bara att skriva nyheter som vanligt och välja bäst före-datum med hjälp av det metadata du satte upp i steg ett.

Som standard blir nyheten inaktuell efter 180 dagar om inget datum sätts. I skriptet kan du ändra numberOfDaysFresh: 180 till numberOfDaysFresh: 90 eller det antal dagar som passar dig.

Är du nyfiken på hur funktionen används av andra? Ta en titt på Luleå kommun och Halmstads kommun.

JavaScript-anpassad vy

var settings = {
  numberOfDaysFresh: 180,
  metadataNames: {
    bestBeforeDate: 'bestBeforeDate',
    compareDate: 'publishDate'
  }
};

var bestBeforeDate = (function () {
  importClass(java.util.Calendar);

  var bestBeforeDate;
  var today = Calendar.getInstance();  
  var utils = request.getAttribute('sitevision.utils');
  
  if (utils) {
    var propertyUtil = utils.getPropertyUtil();
    var currentArticle = utils.getPortletContextUtil().getCurrentPage();

    var fallbackDate = propertyUtil.getCalendar(currentArticle, settings.metadataNames.compareDate);
    fallbackDate && fallbackDate.add(Calendar.DATE, settings.numberOfDaysFresh);

    bestBeforeDate = propertyUtil.getCalendar(currentArticle, settings.metadataNames.bestBeforeDate, fallbackDate);
  }

  return {
    hasPassed: bestBeforeDate && bestBeforeDate < today
  };
}());

if (bestBeforeDate.hasPassed) {
  result = 'true';
}

Jönköping

Jönköping

Limepark AB

Gjuterigatan 9
553 18 Jönköping
Vägbeskrivning

Stockholm

Stockholm

Limepark AB

Gotlandsgatan 46
116 65 Stockholm
Vägbeskrivning

Timrå

Timrå

Limepark AB

Folketshusvägen 10
860 35 Söråker
Vägbeskrivning

Örebro

Örebro

Limepark AB

Kansligatan 1
703 61 Örebro
Vägbeskrivning

Örnsköldsvik

Örnsköldsvik

Limepark AB

Magasinsallén 2
891 31 Örnsköldsvik
Vägbeskrivning

*

I supporten:
Evylyn
AAA - Högsta kreditvärdighet