Blog Tags
Blog Archiv
- Oktober, 2010 (1)
- April, 2010 (1)
- Dezember, 2009 (2)
News
Datum in Beiträgen anpassen
Drupal 5.x, PHP-Template basiertes Theme
Bei manchen Templates für die Anzeige der Nodes, der Datei "node.tpl.php", wird das Datum deart formatiert das es mit der Uhrzeit angezeigt wird. Nun möchte man nicht unbedingt bei der Anzeige, wann ein Beitrag erstellt wurde, auch die Uhrzeit anzeigen. Oder man möchte das Format des Datums generell ändern.
Wie geht es?
Datum in Beiträgen
Die Anzeige des Datums bei Beiträgen wird in der Datei "node.tpl.php" festgelegt. Nachfolgende Codebeispiele sind nur Ausschnitte aus einer "node.tpl.php".
Variante 1, langes Datum mit Uhrzeit
<?php if ($submitted): ?>
<span class="submitted"><?php print t('!date — !username', array('!username' => theme('username', $node), '!date' => format_date($node->created))); ?></span>
<?php endif; ?>
Variante 2, nur kurzes Datum
<?php if ($submitted): ?>
<div class="submitted"><?php print t('!date - !username', array('!username' => theme('username', $comment), '!date' => format_date($comment->timestamp, 'custom', 'd.m.y'))); ?></div>
<?php endif; ?>
Datum in Kommentaren
Die Anzeige des Datums bei Kommentaren wird in der Datei "comment.tpl.php" festgelegt. Nachfolgende Codebeispiele sind nur Ausschnitte aus einer "comment.tpl.php".
Variante 1, langes Datum mit Uhrzeit
<?php if ($submitted): ?>
<div class="submitted"><?php print t('!date — !username', array('!username' => theme('username', $comment), '!date' => format_date($comment->timestamp))); ?></div>
<?php endif; ?>
Variante 2, nur kurzes Datum
<?php if ($submitted): ?>
<div class="submitted"><?php print t('!date - !username', array('!username' => theme('username', $comment), '!date' => format_date($comment->timestamp, 'custom', 'd.m.y'))); ?></div>
<?php endif; ?>
Ich gehe nur auf das deutsche Datumsformat ein. Um in mehrsprachigen Installationen das Datum sprachtypisch anzuzeigen müsste man die aktuelle Language-Variable abfragen und die Formatierung entsprechend des Variableninhaltes realisieren.
Datum in Suchergebnissen
Hierbei beziehe ich mich auf die Standardsuche von Drupal.
Um bei den einzelnen Suchergebnissen das angezeigte Datum zu formatieren sollte man mit einem Template arbeiten. Die Änderung im Modulcode selbst ist zwar die schnellere Lüsung aber nicht die saubere.
Im Modul "search.module" wird auf der Basis der Funktion theme_search_item() das Template erstellt in dem die Datumsanzeige formatiert wird.
Schritt 1, die Datei "template.php" erweitern
Als Voraussetzung für das Template selbst folgenden Code einfügen:
/**
* Format a single result entry of a search query. This function is normally
* called by theme_search_page() or hook_search_page().
*/
function phptemplate_search_item($item, $type) {
return _phptemplate_callback('search_item', array('item' => $item, 'type' => $type));
}
Sollte die Datei "template.php" nicht existieren wird sie einfach neu angelegt. Dabei beachten, daß es sich um eine Datei mit PHP-Code handelt.
Schritt 2, die Template-Datei erstellen
Die Template-Datei selbst ist "search_item.tpl.php". Sie wird im gleichen Ordner wie die Datei "template.php" gespeichert.
Im nachfolgenden Code für die Template-Datei "search_item.tpl.php" ist bereits ein kurzes Datum ohne Uhrzeit formatiert:
<?php /* $Id: search_item.tpl.php, v 1.0 2007/05/04 quiptime Exp $ */
$output = '';
$output = ' <dt class="title"><a href="'. check_url($item['link']) .'">'. check_plain($item['title']) .'</a></dt>';
$info = array();
if ($item['type']) {
$info[] = $item['type'];
}
if ($item['user']) {
$info[] = $item['user'];
}
if ($item['date']) {
$info[] = format_date($item['date'], 'custom', 'd.m.y');
}
if (is_array($item['extra'])) {
$info = array_merge($info, $item['extra']);
}
$output .= ' <dd>'. ($item['snippet'] ? '<p>'. $item['snippet'] . '</p>' : '') . '<p class="search-info">' . implode(' - ', $info) .'</p></dd>';
print $output;
?>
Die Formatierung des Datums
$info[] = format_date($item['date'], 'custom', 'd.m.y');
erfolgt analog der Beispeile bei den Beiträgen und Kommentaren.
Angehangene Datei
Die Template-Datei habe ich diesem Beitrag als Datei angehangen. Die Endung ".txt" muß logischer Weise entfernt werden.
Links
Anhang | Größe |
---|---|
search_item.tpl.php | 680 Bytes |
- Blog von quiptime
- Anmelden um Kommentare zu schreiben
- Druckversion