SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
30 september 2010
                              DUG Gent




Van een html/css template
naar een Drupal 7 theme
Hans Rossel - www.koba.be - hans.rossel@koba.be
EEN DRUPAL 7 THEME
  “FROM SCRATCH”
Drupal 7 core Themes: Appearance
Voorbereiding
Wireframes      Photoshop design
Theme CSS
●
    Drupal voegt heel wat html met id's en classes toe. Probeer
     zoveel mogelijk met css op te lossen. De html wijzigen van
     Drupal is een stuk moeilijker.
●
    Werk je html/css template niet volledig in detail af.
     Afwerking css van blokken, zoekbox, menu's hou je best
     voor nadat je de template in Drupal hebt gebracht
●
    Name collision: Drupal voegt html toe met .menu,
     .content, .links, .block. Gebruik die classes niet in je eigen
     template anders krijg je een conflict.
HTML/css Prototype
www.styleshout.com / www.oswd.org




                       vectorlover html/css prototype
                    http://www.styleshout.com/free-templates.php?page=2
Theme files
.info (definition file)
screenshot.png
Css: style, print, ie
page.tpl.php, node.tpl.php:
●
    html met dynamische (php) stukken
template.php: (geavanceerde) php code
.
Regions
regions[header] = Header
regions[help] = Help (d6:$help)
regions[page_top] = Page top (d6:$closure)
regions[page_bottom] = Page bottom (d6:$closure)
regions[highlight] = Highlighted (d6:$mission)
regions[featured] = Featured
regions[content] = Content (d7:main page content is block!)
regions[sidebar_first] = Sidebar first (d6:left)
regions[sidebar_second] = Sidebar second (d6:right)
regions[footer] = Footer (d6:$footer_message)

In D7: regions_hidden[] = naam van de regio die je wil verbergen in
de blocks overview page (default zijn verborgen page_top en
page_bottom)

Blocks overview page: Demonstrate Block regions
Theme folder



          Maak folder: sites/all/themes/vectorlover

 Voeg je index.html, css, images van je statische template toe
.info file
Maak een vectorlover.info file

name = vectorlover
description = A very nice theme
(package nooit gebruiken: Core themes hebben hier “core” in D7
zodat de update manager ze kan herkennen)
version = 1.0
core = 7.x
engine = phptemplate
stylesheets[all][] = css/vectorlover.css
stylesheets[all][] = css/custom.css
scripts[] = scripts/scripts.js
Template files
●    /modules/system
    – html.tpl.php (d7): Bevat DOCTYPE, <head> met
       RDFa, page_top en page_bottom regions en de
       content region waarin page.tpl.php wordt geprint.
       Meestal ga je html.tpl.php niet overnemen in je
       eigen theme. Zie ook
       http://api.drupal.org/api/function/template_preprocess_html/7 om
       variabelen hiervan aan te passen.
    – page.tpl.php: <body> van index.html (d6: alle html of
       index.html)

●   Hernoem index.html naar page.tpl.php en verwijder
    alles behalve wat tussen de <body> tags zit
Theme activeren
 ●       screenshot.png toevoegen (294px × 219px)
 ●       Appearance tab: theme activeren
 ●       Telkens je een nieuw tpl.php bestand toevoegd aan een theme: clear
         theme registry
     –   Clear cache button bij Performance settings
     –   D7: niet meer mogelijk om theme cache leeg te maken op appearance page
     –   D7: drupal_theme_rebuild() in template.php (opgelet! Achteraf uitschakelen of
           serieuse problemen met performance)
     –   Vinkje “Rebuild Theme Registry on every page” bij bepaalde themes
 ●       Let op Drupal6:
     –   Zorg dat je een admin theme (Rubik, RootCandy, Garland) hebt ingesteld
Dynamische content
copiëren en plakken
Render api & hook_page_alter
http://api.drupal.org/api/function/hook_page_alter/7




●   Naar voorbeeld van de FormAPI: meer flexibiliteit en
    mogelijkheid om zaken te wijzigen in regios en blokken net voor
    de pagina gerenderd wordt, hele page is 1 array
Render() toepassingen
●       Voorbeelden
    –   Regio's en blokken wijzigen met module
          ●   Voorbeeld: een blok dupliceren in een tweede regio
          ●   Node links in een sidebar tonen
          ●   Banner ad toevoegen aan comment listing
    –   Volgorde van elementen wijzigen
          ●   Voorbeeld: zie hierboven: node.tpl.php

●       Bekijken
    –   Devel module: show page array
    –   print_r($page);

●       Meer info
    –   http://www.archive.org/details/ExplorethegloryofDrupal7simprovedrenderandthemingsystems
    –   http://www.archive.org/details/PageRenderDrillDownInDrupal7
Main menu (hoofdnavigatie)




●   To meet Web Content Accessibility Guidelines (WCAG)
    requirements, HTML headings should be used before all content
    sections, which includes lists of links such as menus. The headers
    ensure that there is a quick way for assistive technology users to
    browse through the content
.element-invisible in Bartik
Accessibility: Css clip

Probleem: hide content except for screen-readers
●display:none maakt de content onzichtbaar voor screen-readers
●Negative text-indent heeft problemen met RTL talen




.element-invisible {
  clip:rect(1px, 1px, 1px, 1px);
  position:absolute !important;
}
Achtergrond:http://adaptivethemes.com/using-css-clip-as-an-accessible-method-of-hiding-content
First sidebar (zijkolom regio)




●   Alle regio's die je definieert in je .info bestand moeten geprint
    worden in html.tpl.php en page.tpl.php om hun juiste plaats op de
    pagina te bekomen.
Andere stukken
om te copiëren/plakken



●Secondary menu
●Footer

●Regio's: footer, sidebar, ...

●Logo, title
IE css
        template.php (example Bartik theme)

Gebruik: functie vectorlover_preprocess_html(&$vars)
       Issue: in .info file? Zie http://drupal.org/node/522006
EEN THEME
  OP BASIS VAN
EEN ANDER THEME
Subtheme
van een bestaand theme
                             .info file:

                           Toevoegen:
                       base theme = Bartik


  Opgelet: Pas nooit rechtstreeks een core of ander theme aan.
 Voordeel om via base theme te werken is dat je updates van het
                base theme kunt implementeren.

Starter themes zoals Zen en Fusion zijn specifiek ontwikkeld om als
                 base theme gebruikt te worden.
DYNAMISCH THEMEN
CSS
●   Drupal geeft heel wat contextuele css classes en id's. De CSS
    aanpassen is een heel stuk makkelijker dan de HTML wijzigen. Je
    kunt al heel veel doen met een “CSS only” subtheme (gewoon
    een custom.css bestandje aangeven in de .info file).
HTML wijzigen
Template overrides

●   Copieer om het even welk tpl.php bestand dat je vindt in een
    module naar je de map van je theme
●   Doe aanpassingen in de html naar wens
●   Maak de cache (theme registry) leeg

Voorbeeld:
search-result.tpl.php in /modules/search
Belangrijkste andere tpl.php
●                        ● region.tpl.php
                         ● maintainance-page.tpl.php
●   In /modules/system
                         ● html.tpl.php


●In /modules/node        ● node.tpl.php
●In /modules/field       ● field.tpl.php


●In                      ● comment.tpl.php


/modules/comment
●In /modules/block       ●   Block.tpl.php
page.tpl.php
Frontpage page--front.tpl.php


Vermijd zoveel mogelijk meerdere page.tpl.php templates te hebben.
  Gebruik css of preprocess variabelen in template.php.


Op pad (url geen alias)
page--node-edit.tpl.php of page--node-add.tpl.php > page--node-1.tpl.php > page--node.tpl.php >
  page.tpl.php
page--blog.tpl.php, page--viewpagename.tpl.php, page--admin.tpl.php, page--admin-build-
  block.tpl.php, page--civicrm.tpl.php, page--googlemap.tpl.php



Nieuw in D7: % integer wildcard
  page--user.tpl.php > page--user-%.tpl.php > page--user-1.tpl.php
node.tpl.php

Copieer de originele node.tpl.php van /modules/node


Per content type
node--blog.tpl.php
node--forum.tpl.php
node--page.tpl.php
node--ccknews-content-type.tpl.php


D6: Opgelet: je moet steeds een gewoon node.tpl.php bestand hebben in je theme folder als
  je het wil overriden. In D7 deze bug is opgelost.
block.tpl.php
●   Origineel bestand in /modules/block

●   D6:
    –   block-modulename-delta.tpl.php
    –   block-block-1.tpl.php
    –   block-user-0.tpl.php

●   Probleem in D7
    –   Ook de hoofdcontent (node) is nu in een blok
    –   Als je block.tpl.php overschrijft dan overschrijf je ook de weergave van de
          node
    –   Css: als je .block class gebruikt heeft dit nu ook gevolgen voor de node
    –   Geen block-block-3.tpl.php meer in D7? Niet zeker, kan ook een bug zijn.
          (Issues: http://drupal.org/node/678714 en http://drupal.org/node/190815)
HTML wijzigen
Theme overrides

   Als er geen tpl.php beschikbaar is, dan zit de html in een
   theme_ functie
    ● Zoek de theme_functie in je module of via api.drupal.org,


      api.lullabot.com of http://drupalcontrib.org (contrib)
    ● Copieer en plak de functie in template.php en vervang


      theme_ met naamvanjetheme_ (niet meer phptemplate_
      zoals in D6)
    ● Pas de html aan naar wens




   Nieuw in Drupal 7: suggestions
   ●   bartik_links()
   ●   bartik_link__node(): enkel de nodes
Alternatieven: Modules
● Panels: www.drupal.org/project/panels
● Display Suite: www.drupal.org/project/ds

● Context: www.drupal.org/project/context

● Sweaver: www.drupal.org/project/sweaver
Meer over Theming Drupal 7
●   http://drupal.org/node/925532 en
    http://drupal.org/theme-guide/6
●   http://drupal.org/update/theme/6/7
●   http://drupal.org/update/modules/6/7
●   http://drupal.org/node/394070:

●   D7 Theme issues:
    http://drupal.org/project/issues/drupal?text=&status=Open&priorities=All&categories=All&version=156281&component=theme+system



●   Video's:
    –   http://www.archive.org/details/AwesomenessRedefinedDrupal7Theming
    –   http://www.archive.org/details/DesignAndThemingWhatsNewInDrupal7

Weitere ähnliche Inhalte

Was ist angesagt?

Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development Cursus
Luciuswebsystems
 
Drupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingDrupal Uitgebreide Starters Training
Drupal Uitgebreide Starters Training
Luciuswebsystems
 
Powerpoint Htmlcss
Powerpoint HtmlcssPowerpoint Htmlcss
Powerpoint Htmlcss
Hans Rossel
 
Drupal Cursus Hans Rossel
Drupal Cursus Hans RosselDrupal Cursus Hans Rossel
Drupal Cursus Hans Rossel
Hans Rossel
 
Drupal opleiding
Drupal opleidingDrupal opleiding
Drupal opleiding
Hans Rossel
 
Magento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beherenMagento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beheren
Michel Doens
 

Was ist angesagt? (13)

Best Practice: Joomla! templating
Best Practice: Joomla! templatingBest Practice: Joomla! templating
Best Practice: Joomla! templating
 
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayoutsJD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
 
Bouw je eerste eigen Joomla! template
Bouw je eerste eigen Joomla! templateBouw je eerste eigen Joomla! template
Bouw je eerste eigen Joomla! template
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development Cursus
 
Lucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLucius Websystems Drupal Startersdag
Lucius Websystems Drupal Startersdag
 
Drupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingDrupal Uitgebreide Starters Training
Drupal Uitgebreide Starters Training
 
Powerpoint Htmlcss
Powerpoint HtmlcssPowerpoint Htmlcss
Powerpoint Htmlcss
 
Template overrides in joomla jug073 februari 2019
Template overrides in joomla   jug073 februari 2019Template overrides in joomla   jug073 februari 2019
Template overrides in joomla jug073 februari 2019
 
Joomladagen 2019 joomla basis seo
Joomladagen 2019 joomla basis seoJoomladagen 2019 joomla basis seo
Joomladagen 2019 joomla basis seo
 
Drupal Cursus Hans Rossel
Drupal Cursus Hans RosselDrupal Cursus Hans Rossel
Drupal Cursus Hans Rossel
 
Drupal opleiding
Drupal opleidingDrupal opleiding
Drupal opleiding
 
Wordpress Training Deel 1 2-3 - Handout
Wordpress Training Deel 1 2-3 - HandoutWordpress Training Deel 1 2-3 - Handout
Wordpress Training Deel 1 2-3 - Handout
 
Magento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beherenMagento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beheren
 

Ähnlich wie Drupal 7 Theming

Drupal koba-nov2013
Drupal koba-nov2013Drupal koba-nov2013
Drupal koba-nov2013
Hans Rossel
 

Ähnlich wie Drupal 7 Theming (20)

Drupal 6 Theming
Drupal 6 ThemingDrupal 6 Theming
Drupal 6 Theming
 
1.7 terugblik module 1
1.7 terugblik module 11.7 terugblik module 1
1.7 terugblik module 1
 
Drupal introductie - GoalGorilla - Oxilion Lunch &amp; Learn
Drupal introductie - GoalGorilla - Oxilion Lunch &amp; LearnDrupal introductie - GoalGorilla - Oxilion Lunch &amp; Learn
Drupal introductie - GoalGorilla - Oxilion Lunch &amp; Learn
 
Templates maken met helix framework Joomla User Group Utrecht 10 november 2014
Templates maken met helix framework  Joomla User Group Utrecht 10 november 2014Templates maken met helix framework  Joomla User Group Utrecht 10 november 2014
Templates maken met helix framework Joomla User Group Utrecht 10 november 2014
 
General Drupal presentation in Dutch
General Drupal  presentation in DutchGeneral Drupal  presentation in Dutch
General Drupal presentation in Dutch
 
Template overrides - Joomladagen 2010 #jd10nl
Template overrides - Joomladagen 2010 #jd10nlTemplate overrides - Joomladagen 2010 #jd10nl
Template overrides - Joomladagen 2010 #jd10nl
 
Zelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersZelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginners
 
Drupal introductie voor NCRV-i
Drupal introductie voor NCRV-iDrupal introductie voor NCRV-i
Drupal introductie voor NCRV-i
 
Drupal 7 intro
Drupal 7 introDrupal 7 intro
Drupal 7 intro
 
1.1 html css introductie
1.1 html css introductie1.1 html css introductie
1.1 html css introductie
 
Drupalgardens
DrupalgardensDrupalgardens
Drupalgardens
 
1.7 html css terugblik
1.7 html css terugblik1.7 html css terugblik
1.7 html css terugblik
 
Eduvision - Webinar drupal: gratis online cursus Drupal
Eduvision - Webinar drupal: gratis online cursus DrupalEduvision - Webinar drupal: gratis online cursus Drupal
Eduvision - Webinar drupal: gratis online cursus Drupal
 
Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016
 
Templates maken met Helix 3 framework - Presentatie Eric Tiggeler Joomladage...
Templates maken met Helix 3 framework  - Presentatie Eric Tiggeler Joomladage...Templates maken met Helix 3 framework  - Presentatie Eric Tiggeler Joomladage...
Templates maken met Helix 3 framework - Presentatie Eric Tiggeler Joomladage...
 
TU/e - Back to the TYPO3 CMS basics
TU/e - Back to the TYPO3 CMS basicsTU/e - Back to the TYPO3 CMS basics
TU/e - Back to the TYPO3 CMS basics
 
Joomla
JoomlaJoomla
Joomla
 
Introductie Drupal development
Introductie Drupal developmentIntroductie Drupal development
Introductie Drupal development
 
Drupal koba-nov2013
Drupal koba-nov2013Drupal koba-nov2013
Drupal koba-nov2013
 
Drupal 7 Architectuur
Drupal 7 ArchitectuurDrupal 7 Architectuur
Drupal 7 Architectuur
 

Drupal 7 Theming

  • 1. 30 september 2010 DUG Gent Van een html/css template naar een Drupal 7 theme Hans Rossel - www.koba.be - hans.rossel@koba.be
  • 2. EEN DRUPAL 7 THEME “FROM SCRATCH”
  • 3. Drupal 7 core Themes: Appearance
  • 4. Voorbereiding Wireframes Photoshop design
  • 5. Theme CSS ● Drupal voegt heel wat html met id's en classes toe. Probeer zoveel mogelijk met css op te lossen. De html wijzigen van Drupal is een stuk moeilijker. ● Werk je html/css template niet volledig in detail af. Afwerking css van blokken, zoekbox, menu's hou je best voor nadat je de template in Drupal hebt gebracht ● Name collision: Drupal voegt html toe met .menu, .content, .links, .block. Gebruik die classes niet in je eigen template anders krijg je een conflict.
  • 6. HTML/css Prototype www.styleshout.com / www.oswd.org vectorlover html/css prototype http://www.styleshout.com/free-templates.php?page=2
  • 7. Theme files .info (definition file) screenshot.png Css: style, print, ie page.tpl.php, node.tpl.php: ● html met dynamische (php) stukken template.php: (geavanceerde) php code
  • 8. .
  • 9.
  • 10.
  • 11. Regions regions[header] = Header regions[help] = Help (d6:$help) regions[page_top] = Page top (d6:$closure) regions[page_bottom] = Page bottom (d6:$closure) regions[highlight] = Highlighted (d6:$mission) regions[featured] = Featured regions[content] = Content (d7:main page content is block!) regions[sidebar_first] = Sidebar first (d6:left) regions[sidebar_second] = Sidebar second (d6:right) regions[footer] = Footer (d6:$footer_message) In D7: regions_hidden[] = naam van de regio die je wil verbergen in de blocks overview page (default zijn verborgen page_top en page_bottom) Blocks overview page: Demonstrate Block regions
  • 12. Theme folder Maak folder: sites/all/themes/vectorlover Voeg je index.html, css, images van je statische template toe
  • 13. .info file Maak een vectorlover.info file name = vectorlover description = A very nice theme (package nooit gebruiken: Core themes hebben hier “core” in D7 zodat de update manager ze kan herkennen) version = 1.0 core = 7.x engine = phptemplate stylesheets[all][] = css/vectorlover.css stylesheets[all][] = css/custom.css scripts[] = scripts/scripts.js
  • 14. Template files ● /modules/system – html.tpl.php (d7): Bevat DOCTYPE, <head> met RDFa, page_top en page_bottom regions en de content region waarin page.tpl.php wordt geprint. Meestal ga je html.tpl.php niet overnemen in je eigen theme. Zie ook http://api.drupal.org/api/function/template_preprocess_html/7 om variabelen hiervan aan te passen. – page.tpl.php: <body> van index.html (d6: alle html of index.html) ● Hernoem index.html naar page.tpl.php en verwijder alles behalve wat tussen de <body> tags zit
  • 15. Theme activeren ● screenshot.png toevoegen (294px × 219px) ● Appearance tab: theme activeren ● Telkens je een nieuw tpl.php bestand toevoegd aan een theme: clear theme registry – Clear cache button bij Performance settings – D7: niet meer mogelijk om theme cache leeg te maken op appearance page – D7: drupal_theme_rebuild() in template.php (opgelet! Achteraf uitschakelen of serieuse problemen met performance) – Vinkje “Rebuild Theme Registry on every page” bij bepaalde themes ● Let op Drupal6: – Zorg dat je een admin theme (Rubik, RootCandy, Garland) hebt ingesteld
  • 17. Render api & hook_page_alter http://api.drupal.org/api/function/hook_page_alter/7 ● Naar voorbeeld van de FormAPI: meer flexibiliteit en mogelijkheid om zaken te wijzigen in regios en blokken net voor de pagina gerenderd wordt, hele page is 1 array
  • 18. Render() toepassingen ● Voorbeelden – Regio's en blokken wijzigen met module ● Voorbeeld: een blok dupliceren in een tweede regio ● Node links in een sidebar tonen ● Banner ad toevoegen aan comment listing – Volgorde van elementen wijzigen ● Voorbeeld: zie hierboven: node.tpl.php ● Bekijken – Devel module: show page array – print_r($page); ● Meer info – http://www.archive.org/details/ExplorethegloryofDrupal7simprovedrenderandthemingsystems – http://www.archive.org/details/PageRenderDrillDownInDrupal7
  • 19. Main menu (hoofdnavigatie) ● To meet Web Content Accessibility Guidelines (WCAG) requirements, HTML headings should be used before all content sections, which includes lists of links such as menus. The headers ensure that there is a quick way for assistive technology users to browse through the content
  • 21. Accessibility: Css clip Probleem: hide content except for screen-readers ●display:none maakt de content onzichtbaar voor screen-readers ●Negative text-indent heeft problemen met RTL talen .element-invisible { clip:rect(1px, 1px, 1px, 1px); position:absolute !important; } Achtergrond:http://adaptivethemes.com/using-css-clip-as-an-accessible-method-of-hiding-content
  • 22. First sidebar (zijkolom regio) ● Alle regio's die je definieert in je .info bestand moeten geprint worden in html.tpl.php en page.tpl.php om hun juiste plaats op de pagina te bekomen.
  • 23. Andere stukken om te copiëren/plakken ●Secondary menu ●Footer ●Regio's: footer, sidebar, ... ●Logo, title
  • 24. IE css template.php (example Bartik theme) Gebruik: functie vectorlover_preprocess_html(&$vars) Issue: in .info file? Zie http://drupal.org/node/522006
  • 25. EEN THEME OP BASIS VAN EEN ANDER THEME
  • 26. Subtheme van een bestaand theme .info file: Toevoegen: base theme = Bartik Opgelet: Pas nooit rechtstreeks een core of ander theme aan. Voordeel om via base theme te werken is dat je updates van het base theme kunt implementeren. Starter themes zoals Zen en Fusion zijn specifiek ontwikkeld om als base theme gebruikt te worden.
  • 28. CSS ● Drupal geeft heel wat contextuele css classes en id's. De CSS aanpassen is een heel stuk makkelijker dan de HTML wijzigen. Je kunt al heel veel doen met een “CSS only” subtheme (gewoon een custom.css bestandje aangeven in de .info file).
  • 29. HTML wijzigen Template overrides ● Copieer om het even welk tpl.php bestand dat je vindt in een module naar je de map van je theme ● Doe aanpassingen in de html naar wens ● Maak de cache (theme registry) leeg Voorbeeld: search-result.tpl.php in /modules/search
  • 30. Belangrijkste andere tpl.php ● ● region.tpl.php ● maintainance-page.tpl.php ● In /modules/system ● html.tpl.php ●In /modules/node ● node.tpl.php ●In /modules/field ● field.tpl.php ●In ● comment.tpl.php /modules/comment ●In /modules/block ● Block.tpl.php
  • 31. page.tpl.php Frontpage page--front.tpl.php Vermijd zoveel mogelijk meerdere page.tpl.php templates te hebben. Gebruik css of preprocess variabelen in template.php. Op pad (url geen alias) page--node-edit.tpl.php of page--node-add.tpl.php > page--node-1.tpl.php > page--node.tpl.php > page.tpl.php page--blog.tpl.php, page--viewpagename.tpl.php, page--admin.tpl.php, page--admin-build- block.tpl.php, page--civicrm.tpl.php, page--googlemap.tpl.php Nieuw in D7: % integer wildcard page--user.tpl.php > page--user-%.tpl.php > page--user-1.tpl.php
  • 32. node.tpl.php Copieer de originele node.tpl.php van /modules/node Per content type node--blog.tpl.php node--forum.tpl.php node--page.tpl.php node--ccknews-content-type.tpl.php D6: Opgelet: je moet steeds een gewoon node.tpl.php bestand hebben in je theme folder als je het wil overriden. In D7 deze bug is opgelost.
  • 33. block.tpl.php ● Origineel bestand in /modules/block ● D6: – block-modulename-delta.tpl.php – block-block-1.tpl.php – block-user-0.tpl.php ● Probleem in D7 – Ook de hoofdcontent (node) is nu in een blok – Als je block.tpl.php overschrijft dan overschrijf je ook de weergave van de node – Css: als je .block class gebruikt heeft dit nu ook gevolgen voor de node – Geen block-block-3.tpl.php meer in D7? Niet zeker, kan ook een bug zijn. (Issues: http://drupal.org/node/678714 en http://drupal.org/node/190815)
  • 34. HTML wijzigen Theme overrides Als er geen tpl.php beschikbaar is, dan zit de html in een theme_ functie ● Zoek de theme_functie in je module of via api.drupal.org, api.lullabot.com of http://drupalcontrib.org (contrib) ● Copieer en plak de functie in template.php en vervang theme_ met naamvanjetheme_ (niet meer phptemplate_ zoals in D6) ● Pas de html aan naar wens Nieuw in Drupal 7: suggestions ● bartik_links() ● bartik_link__node(): enkel de nodes
  • 35. Alternatieven: Modules ● Panels: www.drupal.org/project/panels ● Display Suite: www.drupal.org/project/ds ● Context: www.drupal.org/project/context ● Sweaver: www.drupal.org/project/sweaver
  • 36. Meer over Theming Drupal 7 ● http://drupal.org/node/925532 en http://drupal.org/theme-guide/6 ● http://drupal.org/update/theme/6/7 ● http://drupal.org/update/modules/6/7 ● http://drupal.org/node/394070: ● D7 Theme issues: http://drupal.org/project/issues/drupal?text=&status=Open&priorities=All&categories=All&version=156281&component=theme+system ● Video's: – http://www.archive.org/details/AwesomenessRedefinedDrupal7Theming – http://www.archive.org/details/DesignAndThemingWhatsNewInDrupal7