Zápisník začínajícího vývojáře šablon pro Drupal

Těchto pár poznámek poslouží všem, kdo chtějí "od nuly" vytvářet šablony pro redakční systém Drupal bez znalosti programovacího jazyka PHP. Veškeré zdrojové kódy jsou převzaty z různých šablon.
reklama

Poutníkem tvorby šablon

Specializuji se na programovací jazyk CSS  - Cascading Style Sheets, který je nezbytné znát při tvorbě šablon pro redakční systémy.  U Drupalu je zapotřebí znát i programovací jazyk PHP, abyste mohli správně vytvářet různé PHP vsuvky do šablony. 

Vzhledem k tomu, že já sám neumím programovací jazyk PHP, byl jsem nucen prozkoumávat různé šablony, abych věděl jak některé PHP vsuvky zapisovat. Sepsal jsem právě proto těchto pár poznámek.

Nezoufejte, s tímto zápisníkem není potřeba znát programovací jazyk PHP.

Z čeho se skládá šablona

Nezbytnou součástí šablony jsou tyto soubory:

page.tpl.php - kostra stránek
node.tpl.php - ovlivňuj zobrazení článků. Většinou je ve všech šablonách stejné.
*.info -  v tomto typu souboru  jsou informace o šabloně
screenshot.png - náhled šablony. Velikost obrázku 150x90.
 
Další součásti, které nejsou vyžadovány, najdete na adrese drupal.org/node/190815

Co se nachází v souborech  *.info

; $Id:nazevsouboru.info,v 1.0 2009/10/06 05:50:50 autor Exp $ 
name = Název šablony
description = Popis.
version = Verze
core = 6.x
engine = phptemplate

Kostra page.tpl.php

Jedna z možných podob souboru:

<?php
// $Id: page.tpl.php,v 1.18.2.1 2009/04/30 00:13:31 goba Exp $
?><!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
  <head>
    <?php print $head ?>  -
    <title><?php print $head_title ?></title>
    <?php print $styles ?>
    <?php print $scripts ?>
  </head>
  <body>
<!--Začátek Layoutu -->
<div class="layout">
<!--Zde přijde obsah Layoutu, viz dále -->
</div>
<!-- /  Konec layoutu -->
 <?php print $closure ?>
 </body>
</html>

Na konci layoutu musí být vždy   <?php print $closure ?>.

Příklady, jak definovat prvky do kostry layoutu

Název stránek „klikatelný"

{syntaxhighlighter brush: php} <?php if ($site_name) { ?>

" title="<?php print t('Home') ?>"><?php print $site_name ?>

<?php } ?> {/syntaxhighlighter}

Název stránek  „standard"

{syntaxhighlighter brush: php} <?php if ($site_name) { ?>

<?php print $site_name ?>

<?php } ?> {/syntaxhighlighter}

Popis stránek

{syntaxhighlighter brush: php} <?php if ($site_slogan) { ?>
<?php print $site_slogan ?>
<?php } ?> {/syntaxhighlighter}

Definovaní možnosti změny loga stránek s administrace

{syntaxhighlighter brush: php} <?php if ($logo) { ?>" title="<?php print t('Home') ?>">" alt="<?php print t('Home') ?>" /><?php } ?> {/syntaxhighlighter}

Hlavička

<?php print $header ?>

Patička

<?php print $footer_message . $footer ?>

nebo

Copyright © <?php print date('Y') ?> <a href="/"><?php print $site_name ?></a>. <?php print $footer_message ?>

Levý sloupec

<?php if ($left): ?>
<div class="layout_left">
<?php print $left ?>
</div>
<?php endif; ?>  

Pravý sloupec

<?php if ($right): ?>
<div class="layout_right">
<?php print $right ?>
</div>
<?php endif; ?>

Sloupec, ve kterém se mění obsah Drupalu

{syntaxhighlighter brush: php}

<?php print $title ?>

- Titulek stránky
<?php print $tabs ?>
- zobrazuje záložky v administraci <?php if ($show_messages) { print $messages; } ?> - zobrazuje chybové správy a další informace. <?php print $help ?> - Nápověda administrace nebo pro konkrétní modul <?php print $content; ?> obsah HTML generován Drupalem <?php print $feed_icons; ?> -zobrazuje RSS zdroj {/syntaxhighlighter}

Další prvky šablony

Vyhledávání 

<?php if ($search_box): ?><div class="název třídy"><?php print $search_box ?></div><?php endif; ?>

Drobečková navigace

<?php print $breadcrumb; ?>

RSS zdroj

<?php print $feed_icons; ?>

node.tpl.php

Ovlivňuje zobrazení článků. Většinou je ve všech šablonách stejné.

{syntaxhighlighter brush: php} <?php // $Id: node.tpl.php,v 1.5 2007/10/11 09:51:29 goba Exp $ ?>
nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>"> <?php print $picture ?> <?php if ($page == 0): ?>

" title="<?php print $title ?>"><?php print $title ?>

<?php endif; ?> <?php if ($submitted): ?> <?php print $submitted; ?> <?php endif; ?>
<?php print $content ?>
<?php if ($taxonomy): ?>
<?php print $terms ?>
<?php endif;?>
<?php if ($links): ?> <?php endif; ?>
{/syntaxhighlighter}

comment.tpl.php

Ovlivňuje zobrazení komentářů. Pomocí tohoto způsobu se vám budou zobrazovat avatary uživatelů u komentáře. Po zapnutí funkce v šabloně.

{syntaxhighlighter brush: php} <?php // $Id: comment.tpl.php,v 1.7 2008/01/04 19:24:23 goba Exp $ ?>
"> <?php if ($picture) { print $picture; } ?>

<?php print $title; ?>

<?php if ($new != '') { ?><?php print $new; ?><?php } ?>
<?php print $content; ?> <?php if ($signature): ?>
-
<?php print $signature ?>
<?php endif; ?>
{/syntaxhighlighter}

Závěrem

Doufám že vám bude tento rychlý přehled při tvorbě šablon nějak užitečný. 

Rovněž bych vám chtěl doporučit knížku od Jan Polzera, Drupal podrobný průvodce tvorbou a správou webů.

Redakční poznámka: Miroslav Špaňko je jeden z vás, čtenářů Maxiorla. Výše uvedené poznámky nejsou kompletní, postupem času zjistíte, že řadu věcí je možné řešit i jinak - jednodušeji nebo složitěji. Tak či tak autorovi článku děkuji a myslím si, že pro úplné začátečníky, kteří chtějí v Drupalu vytvořit šablony, by tento článek mohl být inspirací. Článek je uveden bez obsahových úprav.

Máte-li nějaké doplnění, nebojte se jej napsat do komentářů.

Jan Polzer

Tagy
reklama

Komentáře k článku

návštěvník

Děkuji za další kvalitní článek, který rozhodně hodně pomohl nejenom mě :)

Přidat komentář

Filtered HTML

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <p> <br>
  • Řádky a odstavce se zalomí automaticky.
  • Web page addresses and email addresses turn into links automatically.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
reklama
Nové diskuze
reklama
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

Knihy o Drupalu

Kniha Drupal 8 Kniha Drupal 7 333 tipů a triků pro Drupal
Více na KnihyPolzer.cz

Co píší na Interval.cz
@maxiorel na Twitteru

Maxiorel na Twitteru