new adventures in drupal theming

34

Upload: john-albin-wilkins

Post on 15-Jun-2015

2.045 views

Category:

Technology


5 download

DESCRIPTION

These are the slides for the presentation I gave at DrupalCamp Chicago 2009. http://www.drupalcampchicago.org/sessions/new-adventures-drupal-themingIn this session I’ll present a roadmap to learning Drupal Theming. You won’t learn everything about Drupal theming, but you will learn that you don’t need to know everything in order to start building Drupal themes.

TRANSCRIPT

Page 1: New Adventures in Drupal Theming
Page 2: New Adventures in Drupal Theming

Designing for Drupal

! Overview of theDrupal Theming Layer

! Implementation Details

! Templates

! Preprocessors

! Base Themes

! Where to go for help

Page 3: New Adventures in Drupal Theming

Theming Example

Page 4: New Adventures in Drupal Theming

Theming Example

Page 5: New Adventures in Drupal Theming

More Zen Examples

Page 6: New Adventures in Drupal Theming

More Zen Examples

Page 7: New Adventures in Drupal Theming

More Zen Examples

Page 8: New Adventures in Drupal Theming

Drupal Design

Page 9: New Adventures in Drupal Theming

Drupal Design<?php print "with some PHP" ?>

Page 10: New Adventures in Drupal Theming

Drupal’s Theme Layer(the big picture)

Page 11: New Adventures in Drupal Theming

Example Theme

Page 12: New Adventures in Drupal Theming

Structure of page.tpl.php

Page 13: New Adventures in Drupal Theming

Structure of page.tpl.php

content

Search box .

CSS style sheets

TitleConditional Info

Page 14: New Adventures in Drupal Theming

Where do page.tpl.php variables come from?

Page 15: New Adventures in Drupal Theming

What do you need to know?

• Your theme doesn’t needall the templates

• You don’t need to learnall the variables

• Let Drupal’s architecture build parts of your theme

Page 16: New Adventures in Drupal Theming

Copy, Override, Modify

Templates and CSS are pulled from lower layers.

Unless they are overridden in your theme.

Page 17: New Adventures in Drupal Theming

modify variables using a function:[theme name]_preprocess_[hook]

e.g. example_preprocess_page

Preprocess Functions

Page 18: New Adventures in Drupal Theming

modify variables using a function:[theme name]_preprocess_[hook]

e.g. example_preprocess_page

Preprocess Functions

Put preprocess functions in your theme’s template.php

Page Variablemodifications

Node VariableAdditions

Page 19: New Adventures in Drupal Theming

What was the part in the middle?

http://drupal.org/theme-guide

Page 20: New Adventures in Drupal Theming

Base ThemesPowerful Frameworks for

Beginners and Power Users

Page 21: New Adventures in Drupal Theming

Benefits of Base Themes

• You don’t have to build everything yourself. Copy, override, and modify only what you need to.

• Bug fixes.Others can fix any bugs in the base theme.

• New features.For contrib Themes, there will occasionally be new features.

• Support.If you have modified an existing theme, sometimes the only answer you will get to your support question is “Well, it works fine in the original theme.”

• Rapid Theme Development.Many things are built for you.

Page 22: New Adventures in Drupal Theming

http://drupal.org/project/zen

Page 23: New Adventures in Drupal Theming

• Designed for beginners and Theming ninjas.

• Extensive on-line documentation.

• Step-by-step instructions on building your own sub-theme.

• Extensive in-line comments in its PHP and CSS files.

Why use Zen?

• It’s also got a laundry list of features. (which are exciting to use, but boring to list.)

• A fantastically flexible CSS Layout method(that even works with IE5.5.)

• You just met the developer.

Page 24: New Adventures in Drupal Theming

• Designed for beginners and Theming ninjas.

• Extensive on-line documentation.

• Step-by-step instructions on building your own sub-theme.

• Extensive in-line comments in its PHP and CSS files.

Why use Zen?

Page 25: New Adventures in Drupal Theming

Brief overview of Zen’s Layout method

• Source-ordered HTML: The importance of the pieces of content determines the order in HTML, and not the graphic design.

• Flexible layout options:

• Fluid (100% width) or fixed-width layout

• Optional horizontal navbar

• 1-3 columns built-in. More columns are possible without mind-bending contortions.

• Zen’s default Layout Method is completely pluggable. If you don’t like it, just replace the layout.css file with your own layout method: YUI, YAML, Jello Mold, Holy Grail, etc.

Page 26: New Adventures in Drupal Theming

Brief overview of Zen’s Layout method

• Source-ordered HTML: The importance of the pieces of content determines the order in HTML, and not the graphic design.

• Flexible layout options:

• Fluid (100% width) or fixed-width layout

• Optional horizontal navbar

• 1-3 columns built-in. More columns are possible without mind-bending contortions.

• Zen’s default Layout Method is completely pluggable. If you don’t like it, just replace the layout.css file with your own layout method: YUI, YAML, Jello Mold, Holy Grail, etc.

Page 27: New Adventures in Drupal Theming

Brief overview of Zen’s Layout method

• Source-ordered HTML: The importance of the pieces of content determines the order in HTML, and not the graphic design.

• Flexible layout options:

• Fluid (100% width) or fixed-width layout

• Optional horizontal navbar

• 1-3 columns built-in. More columns are possible without mind-bending contortions.

• Zen’s default Layout Method is completely pluggable. If you don’t like it, just replace the layout.css file with your own layout method: YUI, YAML, Jello Mold, Holy Grail, etc.

Page 28: New Adventures in Drupal Theming

( These blocks have float: left; )

Negative Margins(and positive results)

Page 29: New Adventures in Drupal Theming

( These blocks have float: left; )

Negative Margins(and positive results)

Page 30: New Adventures in Drupal Theming

( These blocks have float: left; )

Negative Margins(and positive results)

Page 31: New Adventures in Drupal Theming

( These blocks have float: left; )

Negative Margins(and positive results)

Page 32: New Adventures in Drupal Theming

( These blocks have float: left; )

Negative Margins(and positive results)

Page 33: New Adventures in Drupal Theming

( These blocks have float: left; )

Negative Margins(and positive results)

Page 34: New Adventures in Drupal Theming

Getting Helphttp://drupal.org/theme-guidehttp://drupal.org/project/zenhttp://drupal.org/irc

#drupal-design#drupal-themes#drupal-support#drupal

Ask Questions!