56
Basic Design for Drupal Emma Jane Hogbin @emmajanedotnet [email protected] www.designtotheme.com

Design to Theme @ CMSExpo

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Design to Theme @ CMSExpo

Basic Design for Drupal

Emma Jane Hogbin@emmajanedotnet

[email protected]

Page 2: Design to Theme @ CMSExpo

Agenda

● A short, analogy-filled, treatise on designing for Drupal.

● <your questions />● Anatomy of a Theme● <your questions />● Base <your questions /> Themes● Making Themes● <your questions><my answers /></your

questions>

Page 3: Design to Theme @ CMSExpo

Pre-requisites to Theming Drupal

● Get the handout.● Understand that you will make mistakes and

that it’s ok to make mistakes.● Have a toolkit.

Page 4: Design to Theme @ CMSExpo

Overview ofDrupal’s Theming System

Page 5: Design to Theme @ CMSExpo

Theming WordPressA “pull” system

http://www.f l ickr .com/photos/13879801@N00/96609354/

Page 6: Design to Theme @ CMSExpo

Theming DrupalA prep and “push” system

Source : http://www.f l ickr .com/photos/sebbisuperstar/2470560831

Page 7: Design to Theme @ CMSExpo

Flow of Themed Content

Page 8: Design to Theme @ CMSExpo
Page 9: Design to Theme @ CMSExpo

ANSIs: Areas of Natural and Scientific Interest

Source : http://www.bsc-eoc .org/organizat ion/giswork.html

High priority

Low priority

Page 10: Design to Theme @ CMSExpo

Tree Spotting

Page 11: Design to Theme @ CMSExpo

Rendered PageLogo

Primary Links

Search Block

View (block)

Login block

Navigation menu

Page 12: Design to Theme @ CMSExpo

Rendered Page

Region

Node

Node

Node

Primary Links

Logo: Site information

Pager

Menu or Secondary Links

Menu

Footer: Site information

Block

Block

● page.tpl.php● $primary_links● $secondary_links● $logo● $footer_message

● node.tpl.php● block.tpl.php

Page 13: Design to Theme @ CMSExpo

Which means...

● Drupal uses Theme Engines to style available content independently of the module layer.

● The most commonly used engine is PHPtemplate which is a “prepare and push” system, this differs from WordPress’s “pull” system.

● Complete Web pages of rendered HTML are compiled from different sources in the theme.

● Design for individual Drupal page elements, not the whole page.

Page 14: Design to Theme @ CMSExpo

Creating Your First Theme

Page 15: Design to Theme @ CMSExpo

My Steps for Creating a Theme

0.Wireframes with Balsamiq + specs.

1.Colour palate + grid + imagination + GiMP.

2.Base theme, text files, version control.

3.Rebuild the PSD in Drupal(or slice + convert).

4.Launch MVT.

5.Theme by UX, not by module or tpl.php.

Page 16: Design to Theme @ CMSExpo

Step 0: Wireframes + Specs

Page 17: Design to Theme @ CMSExpo
Page 18: Design to Theme @ CMSExpo

Creating Front Page Shapes

Page 19: Design to Theme @ CMSExpo

Creating Content Page Shapes

Page 20: Design to Theme @ CMSExpo

Drupal Components for BalsamiqCreated by Top Notch Themes

Available from:http://mockupstogo.net/drupal-cms-components

Page 21: Design to Theme @ CMSExpo

Step 1: Grid + colour palate + imagination + GiMP.

Page 22: Design to Theme @ CMSExpo

Establish the Framework

1.Grid layout: 960.gs templates

2.Colour palate: colourlovers.com, colorschemedesigner.com

3.Page elements: see wireframes and site specs

Page 23: Design to Theme @ CMSExpo
Page 24: Design to Theme @ CMSExpo
Page 25: Design to Theme @ CMSExpo
Page 26: Design to Theme @ CMSExpo

Creating a Basic Design

1.Background: texture, image, colour

2.Place page elements: see wireframes and specs

3.Decorate: texture, flourishes, illustration, photography

4.Typography and font selection

5.Edges and borders: page, block

6.Lists: indents, margins, padding

7.Actions: default, hover, active, .active

Page 27: Design to Theme @ CMSExpo

Decorating and Designing

If that last slide offended you go watch

http://sf2010.drupal.org/conference/sessions/stop-decorating-and-start-designing

while I carry on with my decorator lesson for those of us who don’t poop designs for breakfast.

Page 28: Design to Theme @ CMSExpo

Background with Texture

Page 29: Design to Theme @ CMSExpo

Grid and Blocks

Page 30: Design to Theme @ CMSExpo

Page Elements

Page 31: Design to Theme @ CMSExpo

Change Palate

Page 32: Design to Theme @ CMSExpo

Change Palate (again)

Page 33: Design to Theme @ CMSExpo

http://www.scribb leoneverything .com/prints/type-o-f i le/-preorder-so-you-need-a-typeface-poster/prod_260.html

Page 34: Design to Theme @ CMSExpo

Fill in the Blanks

Page 35: Design to Theme @ CMSExpo

Regions+

Variables

AcquiaSlate

http://fusiondrupalthemes.com/theme/acquia-slate

Page 36: Design to Theme @ CMSExpo

Optimize your Design Files

● Theme by element: node, teaser, blocks, breadcrumbs, pager, site name, shopping cart.

● Sort layers into element-related folders.● Use Web fonts in your design.● Use the 960.gs grid templates.● Create colour palates.● Use a style guide.

Page 37: Design to Theme @ CMSExpo

Step 2: Base theme, text files, version control.

Page 38: Design to Theme @ CMSExpo

Base Themes

● A base theme is a collection of defaults that you can adjust in your own theme. It is not meant to be used as-is. It is meant to be a foundation of adjustable assumptions.

● Elements to inspect: SEO, accessibility, additional functions, documentation, CSS grid framework.

Page 39: Design to Theme @ CMSExpo

(Some of) My Fave Base Themes

● Lazy: 960.gs● Super lazy: Fusion● Ultra powerful: Zen

Page 40: Design to Theme @ CMSExpo

How to use a Base theme

● Download the base theme and read its documentation.

● Create a new theme which references your chosen base theme in the .info file.

● Choose which properties need to be adjusted with custom tpl.php files and other stuff we won’t get to today.

Page 41: Design to Theme @ CMSExpo

Create Your Theme

1.Make a new folder (start with letters).

2.Add to it a text file named foldername.info

3.Copy the sample settings from the handout into your .info file.

Page 42: Design to Theme @ CMSExpo

Your Theme’s .info filename = My First Themedescription = Featuring multiple pony­friendly regions.core = 6.xengine = phptemplatebase theme = ninesixty

; Add pony­friendly regions, CSS and Javascript filesregions[shetland] = Left sidebar, column 1stylesheets[all][] = my_theme_styles.cssscripts[] = myscript.js

Page 43: Design to Theme @ CMSExpo

Step 3: Rebuild the PSD in Drupal (or slice + convert).

Page 44: Design to Theme @ CMSExpo

<html goes here>

Copy the page.tpl.php from your base theme and/or use:http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6/source

Repeat for page-front.tpl.php

Page 45: Design to Theme @ CMSExpo

It s too hard.’Show me how!

Pink sherbert photography http ://www.f l ickr .com/photos/pinksherbet/3372060864/

Page 46: Design to Theme @ CMSExpo

Step 4: Launch Your MVT

Page 47: Design to Theme @ CMSExpo

Uploading your Theme

● Base theme: /sites/all/themes

● Your theme: /sites/domainname.com/themes

● Enabling the theme: ?q=/admin/build/themes

● When in doubt: clear Drupal’s cache

Page 48: Design to Theme @ CMSExpo

Step 5: Theme the Rest by UX

Page 49: Design to Theme @ CMSExpo

Themer Module

Page 50: Design to Theme @ CMSExpo

$node object

$node­>nid$node­>body$node­>content['body'][#value]

Page 51: Design to Theme @ CMSExpo

node.tpl.php (theme: fusion)<?php// $Id: node.tpl.php,v 1.1.2.2 2009/11/11 05:26:25 sociotech Exp $?>

<div id="node­<?php print $node­>nid; ?>" class="node <?php print $node_classes; ?>">  <div class="inner">    <?php print $picture ?> <?php if ($page == 0): ?>    <h2 class="title"><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>    <?php endif; ?>   <?php if ($submitted): ?>    <div class="meta">      <span class="submitted"><?php print $submitted ?></span>    </div>    <?php endif; ?> <?php if ($node_top && !$teaser): ?>    <div id="node­top" class="node­top row nested">      <div id="node­top­inner" class="node­top­inner inner">        <?php print $node_top; ?>      </div><!­­ /node­top­inner ­­>    </div><!­­ /node­top ­­>    <?php endif; ?>

    <div class="content clearfix">      <?php print $content ?>    </div> <?php if ($terms): ?>    <div class="terms">      <?php print $terms; ?>    </div>    <?php endif;?> <?php if ($links): ?>    <div class="links">      <?php print $links; ?>    </div>    <?php endif; ?>  </div><!­­ /inner ­­>

  <?php if ($node_bottom && !$teaser): ?>  <div id="node­bottom" class="node­bottom row nested">    <div id="node­bottom­inner" class="node­bottom­inner inner">      <?php print $node_bottom; ?>    </div><!­­ /node­bottom­inner ­­>  </div><!­­ /node­bottom ­­>  <?php endif; ?></div><!­­ /node­<?php print $node­>nid; ?> ­­>

Page 52: Design to Theme @ CMSExpo

tpl.php files to override styles

● Individual template files make up a whole page (see the handout).

● tpl.php files include: page.tpl.php, node.tpl.php, node-contenttype.tpl.php, comment.tpl.php

● Look at the source of a tpl.php file to find variables that can be moved and altered.

● Use the Devel + Themer Modules● Alter variable contents with

http://drupal.org/node/223430● See also: api.drupal.org

Page 53: Design to Theme @ CMSExpo

You’re a Themer!

http://www.f l ickr .com/photos/14150482@N02/2526889807/

Page 54: Design to Theme @ CMSExpo

My 5 Steps for Creating a Theme

0.Wireframes the specs.

1.Colour palate + grid + imagination + GiMP.

2.Base theme, text files, version control.

3.Rebuild the PSD in Drupal(or slice + convert).

4.Launch MVT.

5.Theme by UX, not by module or tpl.php.

Page 55: Design to Theme @ CMSExpo

Sharing Your Designs

● Licensing: GPL the “codey bits.”● Creating a project on drupal.org (and also

http://themegarden.org/drupal6/)● Selling your themes

(www.topnotchthemes.com)

Page 56: Design to Theme @ CMSExpo

And that was...Basically How You Theme Drupal

Emma Jane Hogbin@emmajanedotnet

[email protected]

Remind me I have one Balsamiq license to give away.Also: online classes start next week.