SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Podstawowe informacje o
  szablonach w Drupalu
Plan szkolenia
●   Podstawowe informacje o szablonach
●   Pliki w szablonie
●   Regiony
●   Szablony dla stron (page) I rodzajów zawartości
    (node)




                                                  page 2/43
System szablonów
●   Domyślnym silnikiem w Drupalu jest PHPTemplate. Silnik
    jest umieszczony w katalogu themes/engines/phptemplate
●   Możesz zainstalować dodatkowe silniki, np Smarty (D6) lub
    PHPTAL (D6, D7)
●   W Drupal 8 nowym domyślnym systemem szablonów
    będzie Twig (znany z fremeworka Symfony2)
●   Dodatkowe silniki można pobrać z drupal.org I umieścić w
    katalogu sites/all/themes/engines
●   Jest możliwość generowania kodu szablonu bez użycia
    silnika szablonów pisząc odpowiedni kod w PHP.




                                                         page 3/43
System szablonów
●   Drupal posiada architecturę, która umożliwia zmianę wyglądu
    strony bez modyfikacji plików rdzenia Drupala




                                                              page 4/43
Smarty
<div id="top-nav">
  {if count($secondary_links)}
    <ul id="secondary">
    {foreach from=$secondary_links item=link}
          <li>{$link}</li>
    {/foreach}
    </ul>
  {/if}
  {if count($primary_links)}
    <ul id="primary">
    {foreach from=$primary_links item=link}
          <li>{$link}</li>
    {/foreach}
    </ul>
  {/if}
</div>

                                                page 5/43
PHPTAL
<div id="top-nav">
  <ul tal:condition="php:is_array(secondary_links)" id="secondary">
    <li tal:repeat="link secondary_links" tal:content="link">secondary
link</li>
  </ul>
  <ul tal:condition="php:is_array(primary_links)" id="primary">
    <li tal:repeat="link primary_links" tal:content="link">primary
link</li>
  </ul>
</div>




                                                                  page 6/43
PHP Template
<div id="top-nav">
  <?php if (count($secondary_links)) : ?>
    <ul id="secondary">
    <?php foreach ($secondary_links as $link): ?>
         <li><?php print $link?></li>
    <?php endforeach; ?>
    </ul>
  <?php endif; ?>
  <?php if (count($primary_links)) : ?>
    <ul id="primary">
    <?php foreach ($primary_links as $link): ?>
         <li><?php print $link?></li>
    <?php endforeach; ?>
    </ul>
  <?php endif; ?>
</div>


                                                    page 7/43
Instalacja szablonu
●Darmowe szablony dostępne są na stronie
http://drupal.org/project/themes
●Płatne szablony można znależć na stronie

http://www.templatemonster.com/drupal-themes.php
lub w Google wyszukując frazę „Drupal premium
themes”
●Szablony powinny być instalowane w katalogu

sites/all/themes




                                            page 8/43
Nowy szablon (1)
Jeśli chcesz utworzyć nowy szablon możesz
●

wybrać jedną z dwóch opcji
 ● Utworzenie nowego szablonu od podstaw

 ● Utworzenie nowego szablonu, który bazuje

   (dziedziczy ustawienia) na istniejącym szablonie –
   zalecana opcja




                                                 page 9/43
Nowy szablon (2)
Bazowe szablony
●

● http://drupal.org/project/zen (recommended by

  openBIT)
● http://drupal.org/project/basic

● http://drupal.org/project/fusion

● http://drupal.org/project/tao

● http://drupal.org/project/framework

● http://drupal.org/project/omega




                                              page 10/43
Nowy szablon (3)
●Pobierz szablon http://drupal.org/project/zen, i
rozpakuj do katalogu sites/all/themes




                                                    page 11/43
Nowy szablon (4)
●Z katalogu zen kopiujemy podkatalog STARTERKIT
do katalogu sites/all/themes




                                           page 12/43
Nowy szablon (5)




                   page 13/43
Nowy szablon (6)




                   page 14/43
Nowy szablon (7)




Edytory plików i środowiska programistyczne:
http://netbeans.org/ http://notepad-plus-plus.org/ http://www.eclipse.org/

                                                                             page 15/43
Nowy szablon (8)




                   page 16/43
Nowy szablon (9)




                   page 17/43
Plik .info (1)

●W tym pliku są umieszczone opcje konfiguracyjne
szablonu
●Każda linia to para klucz-wartość zapisana w

formacie:
 ● key = value

●Niektóre elementy posiadają nawiasy kwadratowe

na końcu nazwy klucza [] w celu przechowywania
wartości w tablicy




                                           page 18/43
Plik .info (2)
●Lista opcji w pliku
●name (wymagana)

●description (zalecana) – opis wyświetlan na liście szablonów

●screenshot – zrzut ekranu wyświetlany na liście szablonów

●version - wersja szablonu

●core – wersja rdzenia Drupala ( 6.x, 7.x)

●engine – silnik szablonu, np. engine = phptemplate

●base theme – opcja pozwala na dziedziczenie ustawień z innego

szablonu
●regions – lista wszystkich dostepnych regionów w szablonie

●stylesheets – lista plików CSS szablonu

●script – lista plików JavaScript szablonu

●php – wymagana wersja PHP, np. PHP 5.3




                                                           page 19/43
Pliki .tpl (1)

●Skopiuj wszystkie pliki .tpl.php z katalogu
sites/all/themes/zen/templates do
sites/all/themes/mytheme/templates
●Najczęściej używane pliki tpl:

 ● page.tpl.php

 ● node.tpl.php

 ● region.tpl.php

 ● block.tpl.php

 ● comment.tpl.php




                                               page 20/43
Pliki .tpl (2)




                 page 21/43
Struktura szablonu




Źródło i więcej informacji: http://drupal.org/node/171194

                                                            page 22/43
html.tpl.php (1)




                   page 23/43
html.tpl.php (2)




                   page 24/43
page.tpl.php (1)




                   page 25/43
page.tpl.php (2)
●Ważne zmienne dostępne w pliku.
 ● $is_front: TRUE jeśli aktualna strona jest stroną główną.

 ● $logged_in – TRUE jeśli użytkownik jest zalogowany

 ● Regiony:

   ● $page['content']: Główna zawartość strony

   ● $page['sidebar_first'] – lewa kolumna

   ● $page['sidebar_second'] – prawa kolumna

   ● $page['footer'] – stopka

●Opis wszystkich zmiennych znajduje się w nagłówku pliku.




                                                          page 26/43
page.tpl.php (3)

●Możesz tworzyć specjalne pliki page.tpl.php dla
określonych stron
●Wzór: page--[url].tpl.php

●Przykłady:

 ● Adres URL strony: cars, plik szablonu: page-

   cars.tpl.php
 ● Strona główna: page-front.tpl.php




                                              page 27/43
Pliki CSS (1)

Domyślna lista plików CSS szablonu (plik .info)
●




                                              page 28/43
Pliki CSS (2)

Dodawanie nowego pliku CSS do szablonu
●




                                         page 29/43
Pliki CSS (3)

Zmiany wyglądu za pomocą CSS (1)
●




                                   page 30/43
Pliki CSS (4)
Zmiany wyglądu za pomocą CSS (2)
●




                                   page 31/43
node.tpl.php (1)




                   page 32/43
node.tpl.php (2)




                   page 33/43
node.tpl.php (4)

●Możesz tworzyć pliki node.tpl.php dla wybranych
rodzajów zawartości
●Wzór: node--[type].tpl.php

●Przykład:

   node-car.tpl.php
 ● node-article.tpl.php




                                               page 34/43
block.tpl.php




                page 35/43
comment.tpl.php




                  page 36/43
Więcej informacji

●http://drupal.org/theme-guide/6-7
●http://drupal.org/documentation/theme




                                         page 37/43
Regiony (1)
Domyślne regiony
●




                                 page 38/43
Regiony (2)

Dodanie nowego regionu: nowa linia w pliku .info




                                                   page 39/43
Regiony (3)




              page 40/43
Regiony (4)




Po dodaniu nowego regionu do pliku .info należy wyczyścić cache w Drupalu (za
pomocą admin_menu lub na stronie admin/config/development/performance




                                                                                page 41/43
Regiony (5)




              page 42/43
Dziękuję za uwagę


             Kontakt:
E-mail: grzegorz.bartman@openbit.pl
       Tel: +48 882 515 514




                                      strona 43/43

Weitere ähnliche Inhalte

Was ist angesagt? (10)

Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015
 
Podstawy SEO w Drupalu 7 - Jarosław Sobiecki
Podstawy SEO w Drupalu 7 - Jarosław SobieckiPodstawy SEO w Drupalu 7 - Jarosław Sobiecki
Podstawy SEO w Drupalu 7 - Jarosław Sobiecki
 
Drupal Rules - Drupal Idzie Na Studia - Jarosław Sobiecki
Drupal Rules - Drupal Idzie Na Studia - Jarosław SobieckiDrupal Rules - Drupal Idzie Na Studia - Jarosław Sobiecki
Drupal Rules - Drupal Idzie Na Studia - Jarosław Sobiecki
 
Nowości w drupal 9 i 10 [PL]
Nowości w drupal 9 i 10 [PL]Nowości w drupal 9 i 10 [PL]
Nowości w drupal 9 i 10 [PL]
 
Devel - przegląd możliwości modułu [PL]
Devel - przegląd możliwości modułu [PL]Devel - przegląd możliwości modułu [PL]
Devel - przegląd możliwości modułu [PL]
 
Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]
 
Drupal jako modularny i rozszerzalny CMS [PL]
Drupal jako modularny i rozszerzalny CMS [PL]Drupal jako modularny i rozszerzalny CMS [PL]
Drupal jako modularny i rozszerzalny CMS [PL]
 
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
Uwierzytelnianie dwuetapowe (2FA) w Drupalu [PL]
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Grok Artykul
Grok ArtykulGrok Artykul
Grok Artykul
 

Ähnlich wie Podstawowe informacje o szablonach w Drupalu [openBIT]

Aplikacje w Delphi. Przykłady. Wydanie II
Aplikacje w Delphi. Przykłady. Wydanie IIAplikacje w Delphi. Przykłady. Wydanie II
Aplikacje w Delphi. Przykłady. Wydanie II
Wydawnictwo Helion
 
Zwiększanie produktywności programisty php
Zwiększanie produktywności programisty phpZwiększanie produktywności programisty php
Zwiększanie produktywności programisty php
adamhmetal
 

Ähnlich wie Podstawowe informacje o szablonach w Drupalu [openBIT] (12)

WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyce
 
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & AnsibleCodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHP
 
Drupal 7 training - Views
Drupal 7 training - ViewsDrupal 7 training - Views
Drupal 7 training - Views
 
TWIG - niezłe widoki dla PHP
TWIG - niezłe widoki dla PHPTWIG - niezłe widoki dla PHP
TWIG - niezłe widoki dla PHP
 
Open Power Template
Open Power TemplateOpen Power Template
Open Power Template
 
Wprowadzenie do pisania własnych modułów oraz do systemu menu.
Wprowadzenie do pisania własnych modułów oraz do systemu menu. Wprowadzenie do pisania własnych modułów oraz do systemu menu.
Wprowadzenie do pisania własnych modułów oraz do systemu menu.
 
Aplikacje w Delphi. Przykłady. Wydanie II
Aplikacje w Delphi. Przykłady. Wydanie IIAplikacje w Delphi. Przykłady. Wydanie II
Aplikacje w Delphi. Przykłady. Wydanie II
 
Zwiększanie produktywności programisty php (v2)
Zwiększanie produktywności programisty php (v2)Zwiększanie produktywności programisty php (v2)
Zwiększanie produktywności programisty php (v2)
 
Zwiększanie produktywności programisty php
Zwiększanie produktywności programisty phpZwiększanie produktywności programisty php
Zwiększanie produktywności programisty php
 
Drupal Features - Agnieszka Piłasiewicz
Drupal Features - Agnieszka PiłasiewiczDrupal Features - Agnieszka Piłasiewicz
Drupal Features - Agnieszka Piłasiewicz
 
Modularny JavaScript - meet.js
Modularny JavaScript - meet.jsModularny JavaScript - meet.js
Modularny JavaScript - meet.js
 

Mehr von Grzegorz Bartman (8)

Automatyzacja w tworzeniu aplikacji opartych Drupala
Automatyzacja w tworzeniu aplikacji opartych DrupalaAutomatyzacja w tworzeniu aplikacji opartych Drupala
Automatyzacja w tworzeniu aplikacji opartych Drupala
 
WYSIWYG w Drupalu 7 - Tomasz Rychter
WYSIWYG w Drupalu 7 - Tomasz RychterWYSIWYG w Drupalu 7 - Tomasz Rychter
WYSIWYG w Drupalu 7 - Tomasz Rychter
 
Drupal Feeds - Wiktor Burbo
Drupal Feeds - Wiktor BurboDrupal Feeds - Wiktor Burbo
Drupal Feeds - Wiktor Burbo
 
Drupal Context - Agnieszka Cupek
Drupal Context - Agnieszka CupekDrupal Context - Agnieszka Cupek
Drupal Context - Agnieszka Cupek
 
Szkolenie drupal-podstawy 2
Szkolenie drupal-podstawy 2Szkolenie drupal-podstawy 2
Szkolenie drupal-podstawy 2
 
Openbit szkolenie-drupal-podstawy 2
Openbit szkolenie-drupal-podstawy 2Openbit szkolenie-drupal-podstawy 2
Openbit szkolenie-drupal-podstawy 2
 
Openbit szkolenie-drupal-podstawy 2
Openbit szkolenie-drupal-podstawy 2Openbit szkolenie-drupal-podstawy 2
Openbit szkolenie-drupal-podstawy 2
 
Drupal 6 - podstawy - www.openbit.pl
Drupal 6 - podstawy - www.openbit.plDrupal 6 - podstawy - www.openbit.pl
Drupal 6 - podstawy - www.openbit.pl
 

Podstawowe informacje o szablonach w Drupalu [openBIT]

  • 1. Podstawowe informacje o szablonach w Drupalu
  • 2. Plan szkolenia ● Podstawowe informacje o szablonach ● Pliki w szablonie ● Regiony ● Szablony dla stron (page) I rodzajów zawartości (node) page 2/43
  • 3. System szablonów ● Domyślnym silnikiem w Drupalu jest PHPTemplate. Silnik jest umieszczony w katalogu themes/engines/phptemplate ● Możesz zainstalować dodatkowe silniki, np Smarty (D6) lub PHPTAL (D6, D7) ● W Drupal 8 nowym domyślnym systemem szablonów będzie Twig (znany z fremeworka Symfony2) ● Dodatkowe silniki można pobrać z drupal.org I umieścić w katalogu sites/all/themes/engines ● Jest możliwość generowania kodu szablonu bez użycia silnika szablonów pisząc odpowiedni kod w PHP. page 3/43
  • 4. System szablonów ● Drupal posiada architecturę, która umożliwia zmianę wyglądu strony bez modyfikacji plików rdzenia Drupala page 4/43
  • 5. Smarty <div id="top-nav"> {if count($secondary_links)} <ul id="secondary"> {foreach from=$secondary_links item=link} <li>{$link}</li> {/foreach} </ul> {/if} {if count($primary_links)} <ul id="primary"> {foreach from=$primary_links item=link} <li>{$link}</li> {/foreach} </ul> {/if} </div> page 5/43
  • 6. PHPTAL <div id="top-nav"> <ul tal:condition="php:is_array(secondary_links)" id="secondary"> <li tal:repeat="link secondary_links" tal:content="link">secondary link</li> </ul> <ul tal:condition="php:is_array(primary_links)" id="primary"> <li tal:repeat="link primary_links" tal:content="link">primary link</li> </ul> </div> page 6/43
  • 7. PHP Template <div id="top-nav"> <?php if (count($secondary_links)) : ?> <ul id="secondary"> <?php foreach ($secondary_links as $link): ?> <li><?php print $link?></li> <?php endforeach; ?> </ul> <?php endif; ?> <?php if (count($primary_links)) : ?> <ul id="primary"> <?php foreach ($primary_links as $link): ?> <li><?php print $link?></li> <?php endforeach; ?> </ul> <?php endif; ?> </div> page 7/43
  • 8. Instalacja szablonu ●Darmowe szablony dostępne są na stronie http://drupal.org/project/themes ●Płatne szablony można znależć na stronie http://www.templatemonster.com/drupal-themes.php lub w Google wyszukując frazę „Drupal premium themes” ●Szablony powinny być instalowane w katalogu sites/all/themes page 8/43
  • 9. Nowy szablon (1) Jeśli chcesz utworzyć nowy szablon możesz ● wybrać jedną z dwóch opcji ● Utworzenie nowego szablonu od podstaw ● Utworzenie nowego szablonu, który bazuje (dziedziczy ustawienia) na istniejącym szablonie – zalecana opcja page 9/43
  • 10. Nowy szablon (2) Bazowe szablony ● ● http://drupal.org/project/zen (recommended by openBIT) ● http://drupal.org/project/basic ● http://drupal.org/project/fusion ● http://drupal.org/project/tao ● http://drupal.org/project/framework ● http://drupal.org/project/omega page 10/43
  • 11. Nowy szablon (3) ●Pobierz szablon http://drupal.org/project/zen, i rozpakuj do katalogu sites/all/themes page 11/43
  • 12. Nowy szablon (4) ●Z katalogu zen kopiujemy podkatalog STARTERKIT do katalogu sites/all/themes page 12/43
  • 13. Nowy szablon (5) page 13/43
  • 14. Nowy szablon (6) page 14/43
  • 15. Nowy szablon (7) Edytory plików i środowiska programistyczne: http://netbeans.org/ http://notepad-plus-plus.org/ http://www.eclipse.org/ page 15/43
  • 16. Nowy szablon (8) page 16/43
  • 17. Nowy szablon (9) page 17/43
  • 18. Plik .info (1) ●W tym pliku są umieszczone opcje konfiguracyjne szablonu ●Każda linia to para klucz-wartość zapisana w formacie: ● key = value ●Niektóre elementy posiadają nawiasy kwadratowe na końcu nazwy klucza [] w celu przechowywania wartości w tablicy page 18/43
  • 19. Plik .info (2) ●Lista opcji w pliku ●name (wymagana) ●description (zalecana) – opis wyświetlan na liście szablonów ●screenshot – zrzut ekranu wyświetlany na liście szablonów ●version - wersja szablonu ●core – wersja rdzenia Drupala ( 6.x, 7.x) ●engine – silnik szablonu, np. engine = phptemplate ●base theme – opcja pozwala na dziedziczenie ustawień z innego szablonu ●regions – lista wszystkich dostepnych regionów w szablonie ●stylesheets – lista plików CSS szablonu ●script – lista plików JavaScript szablonu ●php – wymagana wersja PHP, np. PHP 5.3 page 19/43
  • 20. Pliki .tpl (1) ●Skopiuj wszystkie pliki .tpl.php z katalogu sites/all/themes/zen/templates do sites/all/themes/mytheme/templates ●Najczęściej używane pliki tpl: ● page.tpl.php ● node.tpl.php ● region.tpl.php ● block.tpl.php ● comment.tpl.php page 20/43
  • 21. Pliki .tpl (2) page 21/43
  • 22. Struktura szablonu Źródło i więcej informacji: http://drupal.org/node/171194 page 22/43
  • 23. html.tpl.php (1) page 23/43
  • 24. html.tpl.php (2) page 24/43
  • 25. page.tpl.php (1) page 25/43
  • 26. page.tpl.php (2) ●Ważne zmienne dostępne w pliku. ● $is_front: TRUE jeśli aktualna strona jest stroną główną. ● $logged_in – TRUE jeśli użytkownik jest zalogowany ● Regiony: ● $page['content']: Główna zawartość strony ● $page['sidebar_first'] – lewa kolumna ● $page['sidebar_second'] – prawa kolumna ● $page['footer'] – stopka ●Opis wszystkich zmiennych znajduje się w nagłówku pliku. page 26/43
  • 27. page.tpl.php (3) ●Możesz tworzyć specjalne pliki page.tpl.php dla określonych stron ●Wzór: page--[url].tpl.php ●Przykłady: ● Adres URL strony: cars, plik szablonu: page- cars.tpl.php ● Strona główna: page-front.tpl.php page 27/43
  • 28. Pliki CSS (1) Domyślna lista plików CSS szablonu (plik .info) ● page 28/43
  • 29. Pliki CSS (2) Dodawanie nowego pliku CSS do szablonu ● page 29/43
  • 30. Pliki CSS (3) Zmiany wyglądu za pomocą CSS (1) ● page 30/43
  • 31. Pliki CSS (4) Zmiany wyglądu za pomocą CSS (2) ● page 31/43
  • 32. node.tpl.php (1) page 32/43
  • 33. node.tpl.php (2) page 33/43
  • 34. node.tpl.php (4) ●Możesz tworzyć pliki node.tpl.php dla wybranych rodzajów zawartości ●Wzór: node--[type].tpl.php ●Przykład: node-car.tpl.php ● node-article.tpl.php page 34/43
  • 35. block.tpl.php page 35/43
  • 36. comment.tpl.php page 36/43
  • 39. Regiony (2) Dodanie nowego regionu: nowa linia w pliku .info page 39/43
  • 40. Regiony (3) page 40/43
  • 41. Regiony (4) Po dodaniu nowego regionu do pliku .info należy wyczyścić cache w Drupalu (za pomocą admin_menu lub na stronie admin/config/development/performance page 41/43
  • 42. Regiony (5) page 42/43
  • 43. Dziękuję za uwagę Kontakt: E-mail: grzegorz.bartman@openbit.pl Tel: +48 882 515 514 strona 43/43