Drupal 7 a theme_node_submitted
Údajně pro zjednodušení práce byla v novém Drupal 7 zrušena funkce theme_node_submitted. Podíváme se, jak ta jednodušší práce vypadá 🙂
Běžný uživatel zřejmě nebude potřebovat pokročilé stylování a vystačí si s proměnnou $submitted, která zůstala zachována. Nicméně pokud se rozhodnete pro změnu, máte v podstatě dvě možnosti.
a) Využít funkce template_preprocess_node()
Proměnná $submitted lze nyní přepsat ve funkci template_preprocess_node() a tím emulovat funkčnost předchozí theme_node_submitted()
b) Přesunout výpis do šablony
Více doporučovaná metoda je přesun přímo do šablony. V šabloně node.tpl.php máme k dispozici dvě proměnné $name a $date. Takže je stačí vhodně poskládat a výpis je na světě:
<?php print t('Submitted by !author on !date', array('!author' => $name, '!date' => $date)); ?>
Tento způsob zápisu je doporučován zejména z důvodu snadného oddělení výpisu autora a data zveřejnění.
Druhá část – výpis celého jména a příjmení autora příspěvku
Druhou častou změnou, kterou budete chtít provést je vypsání celého jména autora příspěvku. V základu Drupal 7 neobsahuje u uživatele políčka pro Jméno a Příjmení a musíte si je vytvořit (což předpokládám každý zvládne). Jako první je nutné tyto políčka načíst do proměnné, abychom s ní dále mohli pracovat.
function template_preprocess_username(&$variables) {
$user = user_load($variables['uid']);
$variables['fullname'] = $user->field_name['und']['0']['safe_value'] . ' ' . $user->field_surname['und']['0']['safe_value'];
}
Druhou částí je upravit funkci theme_username()
function theme_username($variables) {
if (isset($variables['link_path'])) {
$output = l($variables['fullname'] . $variables['extra'], $variables['link_path'], $variables['link_options']);
}
else {
$output = '<span' . drupal_attributes($variables['attributes_array']) . '>' . $variables['fullname'] . $variables['extra'] . '</span>';
}
return $output;
}
Nyní se nám bude všude místo přezdívky zobrazovat celé jméno. Pokud tuto funkci nechcete měnit, můžete si doplnit proměnnou jméno a příjmení přímo do vaší šablony přes funkci template_preprocess_node(). V tom je krása Drupalu, k výsledku se lze dostat mnoha způsoby 🙂 Přeji hodně zábavy.
Přidej vlastní názor
Ty