Ingediend door aanpassen

De weergave van „Ingediend door auteur op datum” is afhankelijk van de instellingen bij de templates en de definitie in het gebruikte sjabloon. Kijk hier voor meer informatie hierover.

Hieronder worden twee situaties belicht, uitgaande van een sjabloon gebaseerd op de template engine.

  1. waar is „Ingediend door” gedefinieerd in het sjabloon
  2. hoe kan de tekst worden aangepast.

 

Waar is „Ingediend door” gedefinieerd in het sjabloon

Een sjabloon bestaat uit diverse bestanden die ieder een deel van de opmaak definiëren. De weergave van auteursnaam en aanmaakdatum staat in node.tpl.php en alleen als de volgende regel aanwezig is. Dit geldt voor Drupal 5, 6 en 7.

<?php print $submitted; ?>

 

Hoe kan de tekst worden aangepast in alleen de datum

Kijk in het thema waarin de tekst aangepast moet worden of het bestand node.tpl.php aanwezig is. Zo niet, dan kopieer dit bestand vanuit de laatste drupal versie uit modules/node naar het gekozen thema.
Open dit bestand met een tekstverwerker en zoek de tekst <?php print $submitted; ?>. Wijzig dit in:

<?php print 'Op ' . format_date($node->created, 'medium'); ?>

In plaats van ‘medium’ kan ook gezoen worden voor ‘small’ en ‘large’. Een andere datumnotatie is mogelijk. Zie:
https://api.drupal.org/api/drupal/includes%21common.inc/function/format_date/7.x

Vanaf Drupal 7 kan ook een zelf aangemaakte datumnotatie worden gebruikt. Kijk bij „Land- en taal instellingen / Datum en tijd”. Hier kan een eigen datumsoort worden aangemaakt door eerst bij tabblad Formaten een nieuw formaat te definieren en vervolgens dit formaat in tabblad Soorten via „Een datumsoort toevoegen” een naam te geven. Van deze nieuwe naam wordt ook een systeemnaam (in kleine letters!) aangemaakt. Deze systeemnaam kan hierboven ook worden gebruikt in plaats van ‘medium’.
Indien de website in meerdere talen moet werken kan via tabblad Lokaliseren per taal een aparte definitie worden aangemaakt per datumsoort.

De datum wordt met de functie format_date() automatisch vertaald naar de gekozen pagina taal, gebaseerd op de gelokaliseerde versie.

Nadat e.e.a. is aangepast moet de nieuwe/gewijzigde node.tpl.php geupload worden naar de website in de directory van het thema. Daarna is het verstandig via „Prestaties” alle caches te legen zodat de nieuwe situatie herkend wordt.

Uitgebreide aanpassing

Er kan op deze manier natuurlijk veel meer worden aangepast. Op deze Drupal website wordt de volgende code gebruikt:

<?php setlocale(LC_TIME, 'nl_NL'); (($node->changed - $node->created) > 172800) ?
print 'Laatst gewijzigd: '. strftime("%e %B %Y",$node->changed). ',
aangemaakt: '. strftime("%e %B %Y",$node->created) :
print 'Aangemaakt: '. strftime("%e %B %Y",$node->created)
?>

Toelichting

Uiteraard kan er ook met format_date() worden gewerkt. Maar ter illustratie is hier een andere techniek gebruikt.
Eerst wordt ervoor gezorgd dat we een Nederlandse datum krijgen. Vervolgens wordt gekeken hoeveel tijd er verstreken tussen de aanmaak van de node en de laatste aanpassing. Als dit meer dan 172800 minuten is geweest (= 2 dagen) dan wordt zowel de datum van de laatste wijziging ($node->changed) als de aanmaakdatum ($node->created) weergegeven, anders alleen de datum van aanmaak.

randomness