Přeskočit přímo na text


Změna vzhledu primárních odkazů

Občas se probudíme a v mailu nalezneme od webdesignera jeho nový skvělý návrh pro ten web jehož výběrko jsme nedávno vyhráli a když se podíváme na vzhled například hlavního menu, mírně nás zamrazí. Drupal naštěstí poskytuje mnoho možností pro šablonování všech prvků stránky, dnes se podíváme na to, jak změnit vzhled primárních odkazů.

Při tvorbě šablony určitě narazíte na soubor page.tpl.php. Když se podíváte na nějakou stávající, naleznete kód velmi podobný tomuto:

<?php print theme('links', $primary_links); ?>

Důležitá je proměnná $primary_links, ve které jsou uloženy právě primární odkazy. Využijeme templatovací funkce a do šablony vložíme:

<?php print theme('primary_links', $primary_links); ?>

Do souboru template.php (pokud není v aktuálním adresáři s šablonou, tak ho vytvoříme) vložíme:

function phptemplate_primary_links($links) {
  return _phptemplate_callback('primary_links', array('links' => $links));
}

Co se stane? Drupal pomocí templatovací funkce vypíše primární odkazy. Tuto funkci jsme definovali níže a místo kódu na výpis jsme řekli: Prožeň odkazy souborem primary_links.tpl.php.

Nyní už jen vytvoříme tento soubor. Pro příklad:

<?php
echo '<ul class="menu">';
foreach ($links as $index => $link) {
  if (stristr($index, 'active')) {
    $active = ' class="aktivni"';
  } else {
    $active = '';
  }
  echo '<li'.$active.'><a href="'.url($link['href']).'" '.drupal_attributes($link['attributes']).'><span><span>'.$link['title'].'</span></span></a></li>';
}
echo '</ul>';
?>
Tento kód vytvoří následující HTML (pozn. Tento kód je specifický, nedoporučuji ho obecně používat, ukazuje právě možnost jednoduché změny vzhledu odkazů (zde konkrétně přidání více span, kvůli okrajům odkazu)):
<ul class=„menu“>
<li><a href=„odkaz“><span><span>Odkaz</span></span></a></li>
<li class=„aktivni“><a href=„odkaz“><span><span>Odkaz</span></span></a></li>
</ul>
About the author

Jakub Suchý je provozovatelem projektu Drupal.cz. Je členem Drupal Security Teamu, vytvořil několik volně dostupných modulů a také se Drupalem živí.

 

Nice menu

já využívámm nice menu a toto http://drupal.org/node/210441

<?php print theme('nice_menu_primary_links', $primary_links)?>

menus

ja som vcera stravil asi 12 hodin skusanim roznych menu potreboval som nove menu pre „moznosti prihlasenych clenov“ v ramci upravy dizajnu na somvprahe.sk, stadardne menu drupalovske bolo pre mna nepouzitelne, lebo do polozky potrebujem vkladat obrazky a php kod, co nejde (alebo ja som na to neprisiel) a hlavne je to hrozny opruz robit menu cez drupal menu, vnorenie jedneho menu do druheho ide iba cestou upravit kazdu polozku a ked tych poloziek je vela tak to je opruz…

skusal som potom nice menus, ale tym ze vyuziva klasicke drupal menu, tak som zasa skoncil na tom ze tam nemam kam dat php kod

az som si nakoniec spravil vlastny blok, do toho html kod mojhpo menu aj s php kodmi a ikonkami, a pre css pouzil css z Drupal Administration menu.
trocha ma to hnevalo cez z-indexy v IE, ale nakoniec som to vsetko vyriesil (nad ranom :), a zaintegroval do hlavicky
vysledky su tu:



Detail:

Zásady šablonování - Best Practices

Nedávno jsem narazil na článek Nata Hauga z Lullabotu. Vadilo mu volání funkcí z tématu Garlandu a ve svém článku prováděl „clean-up“ tohoto tématu.

Musím říct, že mu dávám za pravdu, volání jakýchkoliv funkcí (byť tak primitivních jako phptemplate_body_class) prostě do theme nepatří. Všechna volání se dají udělat v template.php a do page.tpl.php umisťovat jen naplněné proměnné.

Ještě odkaz na ten článek. http://www.lullabot.com/…ts-a-cleanup

Jakub> Mně to přijde jako dobrá zásada, jaký na to máš názor, nechtěl bys to třeba v tom článku alespoň na konci zmínit?

Zmizení odkazů

Tenhle manuál u mě způsobí zmizení odkazů. Používám drupal 6. Nevíte si někdo rady?

Mam stejny problem :-)

Mam stejny problem :-)

V čem je problem?

Ahoj Inspiroval sem se článkem a pokusil jsem se použít kod. Bohužel jsem došel do stejného stadia co posledni dva uživatelé. Trochu jsem hledal na drupal.org a jediné co jsem našel jako obstojný návod je: http://drupal.org/node/289129
Používám teď drupal6 a pořád se mě nedaří propojit page.tpl.phptemplate.php.
Dle návodu bych měl upravit page.tpl.php a změnit theme(‚links‘, na „název mého thems“_links(‚links‘,
Do template.php zkopírovat obsah celé funkce theme_links() z includes/theme.inc. A upravit si kod dle potřeby.

V čem je problem. Když tohle vše provedu tak se mě menu nezobrazi. Když jsem zkusmo provedl upravu přímo v includes/theme.inc tak vše jelo v pořádku tak jak jsem chtěl.
V čem by tedy mohl být problem?? Děkuji za pomoc. Radek

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <p> <br> <b> <i> <h2> <img> <pre> <sup> <sub> <pre class="php"> <span class="php-keyword1"> <span class="php-var"> <span class="php-num"> <img class="screenshot"> <p class="beginner"> <a class="greybox"> <h3> <h4>

Více informací o možnostech formátování

Hledat

Přihlášení

Poslední komentáře