SlideShare uma empresa Scribd logo
1 de 16
Form Follows File Introduction to painless Drupal theming Django Beatty - Adub Drupal Solutions - http://adub.com
Top Two Drupal Theming Myths ,[object Object],[object Object],Django Beatty - Adub Drupal Solutions - http://adub.com
Two ways to customise output ,[object Object],[object Object],[object Object],Django Beatty - Adub Drupal Solutions - http://adub.com
Theme functions ,[object Object],[object Object],[object Object],Django Beatty - Adub Drupal Solutions - http://adub.com
Template files ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Django Beatty - Adub Drupal Solutions - http://adub.com
Contributed modules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Django Beatty - Adub Drupal Solutions - http://adub.com
Django Beatty - Adub Drupal Solutions - http://adub.com
Getting started ,[object Object],[object Object],[object Object],Django Beatty - Adub Drupal Solutions - http://adub.com
  Django Beatty - Adub Drupal Solutions - http://adub.com
Examining how an element is themed Django Beatty - Adub Drupal Solutions - http://adub.com
  Django Beatty - Adub Drupal Solutions - http://adub.com
Django Beatty - Adub Drupal Solutions - http://adub.com
  Django Beatty - Adub Drupal Solutions - http://adub.com
This approach can be used throughout the site Django Beatty - Adub Drupal Solutions - http://adub.com
Django Beatty - Adub Drupal Solutions - http://adub.com
Resources and further reading ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Django Beatty - Adub Drupal Solutions - http://adub.com

Mais conteúdo relacionado

Mais procurados

Bootstrap Paragraphs for Drupal 8
Bootstrap Paragraphs for Drupal 8Bootstrap Paragraphs for Drupal 8
Bootstrap Paragraphs for Drupal 8Jim Birch
 
7 Theming in Drupal
7 Theming in Drupal7 Theming in Drupal
7 Theming in DrupalWingston
 
Introduction to Cappuccino
Introduction to CappuccinoIntroduction to Cappuccino
Introduction to Cappuccinoedthix
 
Production list (1)
Production list (1)Production list (1)
Production list (1)abbsmurray
 
Advanced Content Workflow Using GitHub and Markdown
Advanced Content Workflow Using GitHub and MarkdownAdvanced Content Workflow Using GitHub and Markdown
Advanced Content Workflow Using GitHub and MarkdownIan Lurie
 

Mais procurados (10)

The Themer's Toolkit
The Themer's ToolkitThe Themer's Toolkit
The Themer's Toolkit
 
Int d 3
Int d 3Int d 3
Int d 3
 
Forensic Theming for Drupal
Forensic Theming for DrupalForensic Theming for Drupal
Forensic Theming for Drupal
 
Bootstrap Paragraphs for Drupal 8
Bootstrap Paragraphs for Drupal 8Bootstrap Paragraphs for Drupal 8
Bootstrap Paragraphs for Drupal 8
 
7 Theming in Drupal
7 Theming in Drupal7 Theming in Drupal
7 Theming in Drupal
 
Introduction to Cappuccino
Introduction to CappuccinoIntroduction to Cappuccino
Introduction to Cappuccino
 
Production list (1)
Production list (1)Production list (1)
Production list (1)
 
Creating a Webpage
Creating a WebpageCreating a Webpage
Creating a Webpage
 
Advanced Content Workflow Using GitHub and Markdown
Advanced Content Workflow Using GitHub and MarkdownAdvanced Content Workflow Using GitHub and Markdown
Advanced Content Workflow Using GitHub and Markdown
 
Bootstrap 3 Basic - Bangkok WordPress Meetup
Bootstrap 3 Basic - Bangkok WordPress MeetupBootstrap 3 Basic - Bangkok WordPress Meetup
Bootstrap 3 Basic - Bangkok WordPress Meetup
 

Semelhante a Form Follows File

Drupal 6 Performance Tips
Drupal 6 Performance TipsDrupal 6 Performance Tips
Drupal 6 Performance TipsTrevor James
 
Drupal 8: Most common beginner mistakes
Drupal 8: Most common beginner mistakesDrupal 8: Most common beginner mistakes
Drupal 8: Most common beginner mistakesIztok Smolic
 
Making The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To SwallowMaking The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To SwallowPhilip Norton
 
Upgrading your site from Drupal 6 to Drupal 7
Upgrading your site from Drupal 6 to Drupal 7Upgrading your site from Drupal 6 to Drupal 7
Upgrading your site from Drupal 6 to Drupal 7Andrew Martha
 
Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Phase2
 
Drupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal ConceptsDrupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal ConceptsMicky Metts
 
Drupal
DrupalDrupal
Drupalbtopro
 
Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedAndy Kucharski
 
Drupal Camp Victoria
Drupal Camp VictoriaDrupal Camp Victoria
Drupal Camp VictoriaImage X Media
 
Basic Introduction to Drupal
Basic Introduction to DrupalBasic Introduction to Drupal
Basic Introduction to DrupalMurtaza Alvi
 
Drupal Global Training Day by Drupal Mumbai 6th Sep - Extending Drupal
Drupal Global Training Day by Drupal Mumbai 6th Sep - Extending Drupal Drupal Global Training Day by Drupal Mumbai 6th Sep - Extending Drupal
Drupal Global Training Day by Drupal Mumbai 6th Sep - Extending Drupal DrupalMumbai
 
Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011Ryan Price
 
Absolute Beginners Guide to Drupal
Absolute Beginners Guide to DrupalAbsolute Beginners Guide to Drupal
Absolute Beginners Guide to DrupalRod Martin
 
Drupal for Non-Wimpy Librarians (ILEAD U 2011)
Drupal for Non-Wimpy Librarians (ILEAD U 2011)Drupal for Non-Wimpy Librarians (ILEAD U 2011)
Drupal for Non-Wimpy Librarians (ILEAD U 2011)Mikael Jacobsen
 
"Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for ...
"Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for ..."Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for ...
"Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for ...DrupalCamp Kyiv
 
Introduction of drupal7 by ayushi infotech
Introduction of drupal7 by ayushi infotechIntroduction of drupal7 by ayushi infotech
Introduction of drupal7 by ayushi infotechMandakini Kumari
 
Drupal 7 install with modules and themes
Drupal 7 install with modules and themesDrupal 7 install with modules and themes
Drupal 7 install with modules and themesGeshan Manandhar
 
Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010Emma Jane Hogbin Westby
 

Semelhante a Form Follows File (20)

Drupal 6 Performance Tips
Drupal 6 Performance TipsDrupal 6 Performance Tips
Drupal 6 Performance Tips
 
Drupal 8: Most common beginner mistakes
Drupal 8: Most common beginner mistakesDrupal 8: Most common beginner mistakes
Drupal 8: Most common beginner mistakes
 
Making The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To SwallowMaking The Drupal Pill Easier To Swallow
Making The Drupal Pill Easier To Swallow
 
Upgrading your site from Drupal 6 to Drupal 7
Upgrading your site from Drupal 6 to Drupal 7Upgrading your site from Drupal 6 to Drupal 7
Upgrading your site from Drupal 6 to Drupal 7
 
Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7
 
Drupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal ConceptsDrupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal Concepts
 
Drupal
DrupalDrupal
Drupal
 
Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speed
 
Drupal Camp Victoria
Drupal Camp VictoriaDrupal Camp Victoria
Drupal Camp Victoria
 
Basic Introduction to Drupal
Basic Introduction to DrupalBasic Introduction to Drupal
Basic Introduction to Drupal
 
Drupal Global Training Day by Drupal Mumbai 6th Sep - Extending Drupal
Drupal Global Training Day by Drupal Mumbai 6th Sep - Extending Drupal Drupal Global Training Day by Drupal Mumbai 6th Sep - Extending Drupal
Drupal Global Training Day by Drupal Mumbai 6th Sep - Extending Drupal
 
Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011
 
Absolute Beginners Guide to Drupal
Absolute Beginners Guide to DrupalAbsolute Beginners Guide to Drupal
Absolute Beginners Guide to Drupal
 
Drupal for Non-Wimpy Librarians (ILEAD U 2011)
Drupal for Non-Wimpy Librarians (ILEAD U 2011)Drupal for Non-Wimpy Librarians (ILEAD U 2011)
Drupal for Non-Wimpy Librarians (ILEAD U 2011)
 
"Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for ...
"Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for ..."Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for ...
"Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for ...
 
Introduction of drupal7 by ayushi infotech
Introduction of drupal7 by ayushi infotechIntroduction of drupal7 by ayushi infotech
Introduction of drupal7 by ayushi infotech
 
Drupal 7 install with modules and themes
Drupal 7 install with modules and themesDrupal 7 install with modules and themes
Drupal 7 install with modules and themes
 
Drupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating ModulesDrupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating Modules
 
Top Drupal modules for beginners
Top Drupal modules for beginnersTop Drupal modules for beginners
Top Drupal modules for beginners
 
Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010
 

Último

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Form Follows File

Notas do Editor

  1. When it comes to theming a Drupal site, there are some different approaches available. We'll take a look at one of them which I believe is the easiest for  non-programmers, offers reduced maintenance costs and represents an emerging standard which can drive wider adoption of Drupal. 
  2. I've encountered two big misunderstandings about Drupal theming.  One is that Drupal is particularly hard to theme and requires highly specialist knowledge. The other is that it is inflexible and doesn't allow you to specify the HTML that is being output. Here we'll briefly touch on how a designer with basic templating skills or a front-end coder can precisely control the HTML and content which is output by a Drupal module without requiring the help of a back-end developer.    And it's worth bearing in mind that everything in Drupal is a module so this means that you should be able to customise any element of a site using this approach.
  3. One of the hardest tasks with a CMS or any dynamically driven site has often been customising the look and feel to a satisfactory degree. Over the past few years largely in response to this we've seen a lot of efforts to separate the presentation layer in the various web frameworks and Drupal is no different in that respect.   In Drupal this is all done within a site's 'theme' and Drupal offers us two methods for changing how our site looks. These are theme functions and template files and they are used in conjunction. I'm going to propose that almost all customisation is done using template files.      
  4. Drupal has historically had a lot of developers as users and so the level of php proficency has been relatively high for a php CMS system. Older versions used to largely rely on php functions arranged as a kind of library of display helpers in the theme. This is not dissimilar to other frameworks and is workable if you have a developer on call. Working this way can be slightly easier and more familiar to developers and prior to Drupal 6, this had much better performance characteristics. However, you end up with a large file containing many php functions which is very opaque and where a single typo will bring a site down. If you are not a confident coder, you really don't want to touch this on an important production site.
  5. The other approach is to use template files - these are php-based but not dissimilar to working with Smarty for example.   Since Drupal 6, there has been an effort to minimise the function-based approach and to do as much as possible just using template files.   This puts control in the hands of designers and front-end developers and allows day-to-day changes without needing to involve a back-end developer.   There is no longer any performance penalty (as templates in use are cached in a theme registry).    Most useful content can be changed this way. (It looks like Drupal 7 will take this approach further and allow any output to be modified easily without resorting to code.)
  6. Old habits die hard and you will find that some contributed modules don't yet offer the file-based theming I'm going to show here. However, many more recent ones do.    For those that don't, a developer can make any theme functions available via template files in your theme. So if you work with a developer who tells you to 'just start overriding themeable functions', you can instead ask them to map them to template files for you (hook_theme() now makes this simpler). If you identify all the parts you want to change they can do this in one shot.
  7. So we'll take a quick look at a contributed module. The Gigulate module displays gigs and aggregated news using the Gigulate.com API. We'll mainly focus on the upcoming gigs block it provides.    But the principle is the same across the board in Drupal theming and you should be able to apply this to most elements of the page.   Here it is in a brand new install using all the defaults out of the box. You can see this is a default list style and notice that the dates are in the default US format of this site.
  8. We'll look at how to adapt this to fit in with other sites.    There are a couple of ways to approach this but by far the easiest is to use the theme developer which is part of a module called devel. Once you have devel installed, you should enable the devel block (and limit access). This block has a number of links including one to enable and disable the theme developer. (You'll find you want to disable it when not in use as it slows page loads.) The theme developer is a little like the outline tool in the firefox developer toolbar - you hover over page elements and they are outlined with information about them. With theme developer, you click on an element and an info box will give you detailed information about how that is rendered.  
  9. Noiseloop.com is a music news aggregator site and has just enabled this module. This site uses a very popular theme - Morning After - which has had some light restyling.   The gigs block is currently using the default templates that come with the module just as in the previous site I showed you.    We can see that the theme's CSS is already taking care of this block to a large degree and that dates are now formatted to the site's default.    But we might decide to change the layout, content or maybe the underlying HTML for SEO purposes. We'll look at where we'd need to go to change the structure of this area.    Enabling the theme developer module causes a 'Themer info' checkbox to appear at the bottom of the screen. Checking that allows us to examine any element of the page and see what makes it tick. 
  10. When we click on one of the gig items, the themer information box shows us which template file is used to create the output. We can see that it's a file called gigulate-block-gigs-item.tpl.php  We just need to create a file with the same name and place it in our theme to override this.    The usual way to do this is to locate this file in the module and copy it. Theme developer makes this pretty easy by showing us the full path to this file below (File used:). But it even goes a step further - that's a clickable link which takes us to...
  11. ...this - theme developer even provides us with formatted source code for our template file.   We can see that this is a typical template file which mixes php and html. There is a large comments block explaining what variables are available to the designer. And the fragment at the bottom is responsible for the gig item we highlighted. This file's comments show that it has a variable called $item which contains extensive content in various fields.   Our fragment makes use of the artist name, URL, venue name and date.  So we can see that we can easily change the h6 tag that the title is in or add a class to it. Or we could add an artist picture into the gig listing and so on. (The template even has latitude and longitude so that we could possibly add a map here.)
  12. And here's an example of a customised template.    We can see that this is in the house style of the site and there are also 'buy tickets' buttons.
  13. The Gigulate module also provides a related news block with aggregated news from various sites.    Here we can see that it's again been themed to be consistent with the rest of this site and fits in with their own editorial content.
  14. As I said, this approach can be used generally and isn't limited to contributed modules.    Here, we are examining the site search box.
  15. And again we see a large comment area with a usage example for customising this element.