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'] . '&nbsp;' . $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.



Komentáře

Zatím nikdo nepřidal komentář, můžete být první.



O autorovi

Pari

Vítejte na mém blogu, rád bych se v krátkosti představil. Je mi 26 let. Momentálně nejvíce času věnuji projektu Lepime.cz - obchod se samolepkami na zeď a tvorbě webů postavených na redakčním systému Drupal pod značkou MEPA.CZ.