Nyheters bäst före-datum

Skript och funktioner

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:

Installera på din webbplats

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

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å Halmstads kommun Länk till annan webbplats..

JavaScript-anpassad vy

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

var bestBeforeDate = (function () {
  var bestBeforeDate;
  var Calendar = java.util.Calendar;
  var today = Calendar.getInstance();
  var propertyUtil = require('PropertyUtil');
  var currentArticle = require('PortletContextUtil').getCurrentPage();

  var fallbackDate = propertyUtil.getCalendar(currentArticle, settings.metadataNames.compareDate);
  if (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';
}
Artikeln är skriven av: Sven Dahlstrand info@limepark.se