2. What Should I Know First?
Before Installing:
Be familiar with databases and PHPMyadmin, have a
web server and a local database server
After Installing:
Server admin skills, a lot of curiosity, and some time
to spend learning how modules work together and
what’s available
3. Main Drupal Topics
1: Understanding Drupal Core
2: Installation
3: Configuring Core
4: Configuring Modules
5: Best Practices
5. What Is Drupal?
Content Management System (CMS)
Framework - Content Management Framework CMF
Open Source - Under GPL General Public License
Web Application Framework - Written in PHP
A way for developers and non-developers alike
to manage content. Uses control panels rather
than straight code.
6. Created By Dries Buytaert
Developer from Antwerp, Belgium
Derived from “Druppel,” the Dutch word
for “Drop” which also means village in
Dutch.
7. Drupal Distinctions
Best PHP Open Source CMS from Packt Publishing
Best Overall 2008 Open Source CMS Award for
Second Year in a Row
It does everything Wordpress does, and a lot more
Its code is cleaner and better supported than
Joomla!’s
Is one of hundreds of CMS, but is continually
growing.
8. Drupal Community
Now a large community of developers and designers
all work on Drupal and talk to each other
irc.freenode.net - #drupal, #drupal-support
#drupaltheming
Conferences - DrupalCon
Unconferences - DrupalCamps
Meetups, etc...
I organize the Drupal Meetup Group here in
Austin.
9. Drupal Planning Stages
Prepare the concept of your website:
What’s the main idea? Figure out what kind of
content you want to serve. *CONTENT IS KING.
Create a basic sitemap and features list.
Go shopping for:
Modules
Themes
10. Drupal Is Platform Agnostic
Allows for modularity and extensibility
You can install:
Apache/ IIS / Unix / Linux / BSD / Solaris /
Windows / Mac OS X
Database Independence: you can use both MySQL
and PostgreSQL (ask me about even cooler stuff)
11. The Drupal “Stack”
Apache (lighttpd, IIS)
MySQL (PostgresSQL, SQL Server, Oracle)
PHP
PHPMyAdmin for adminisering your SQL Database
Linux (BSD, Mac OS, Windows, Solaris)
15. PHP: Generates
Dynamic Content
HTML <?PHP
Page ?>
Client <?PHP
Web
HTML
Page
PHPTemplate ?>
Drupal Core
Browser
HTML
<?PHP
Page
?>
Drupal MySQL
Database
(Views Is Basically a Query Builder)
16. Displaying Page To Browser
1. Browser retrieves dynamic information from the database.
2. Browser checks retrieved data against relevant output filters.
3. Server Inserts information into each core template.
4. Theme Engine Merges template files into template.php
5. Browser displays formatted page in the Web Browser.
17. Themes
Multiple Template Engines Available, though the most
common is PHPTemplate
Total customization possible by using
CSS
Writing custom template files
Overriding template.php functions
Writing a subtheme
18. Drupal 6.x
Separating Design & Logic
• .info files define your theme
• More templates = more control, better
separation
• Better phptemplate_variables()
• Theme inheritance makes subtheming and
overriding possible
• Pure CSS themes are also possible
19. Drupal “Core” Allows You To:
Customize the layout with regions and block and any number of pages.
Personalize logos, settings, themes, add blocks and customize templates
Use a multi-level menu system - primary, secondary, tertiary, whatever you like
Allow multiple people to create and edit content
Utilize “roles” and flexible account privileges
Use a hierarchical taxonomy to categorize content, use tagging
Access statistics/logging and use advanced search functions
20. PHPTemplate Engine
Wrapper that interfaces
Drupal Template Language
• Understands HTML & PHP Statements for Dynamic Data
• Comes installed, so you need not touch it.
• File Extension - *.tpl.php
• Handles - page.tpl.php, front-page.tpl.php, node.tpl.php,
comment.tpl.php, forum.tpl.php
21. 3 Common
block.tpl.php Template Files
Navigation
Blog Post 1
Who’s Online node.tpl.php
Syndicate Blog Post 2
page.tpl.php
22. Each Template Handles
A Region of Your Site
• page.tpl.php - Entire Page
• front-page.tpl.php - Just Front Page
• block.tpl.php - Blocks
• comment.tpl.php - Comments
• forum.tpl.php - Forums
23. Template Hierarchy -
Specific before General
Home Page Nodes
page-front.tpl.php node-type.tpl.php
page.tpl.php node.tpl.php
Comments
Pages comment.tpl.php
page-node-edit.tpl.php
page-node-1.tpl.php
page-node.tpl.php Blocks
page.tpl.php block-module-delta.tpl.php
block-module.tpl.php
Boxes block-region.tpl.php
block.tpl.php
box.tpl.php
27. Acquia Drupal
Localhost Installation
Download the Acqiua Drupal Stack Installer
Unzip
Run installation GUI
Set up Database name and click through to see your
new Drupal Site!
28. Installation
Localhost:
Acquia Drupal Stack Installer
WampServer
XAMPP
MAMP
3rd Party Server: Make sure host supports Drupal
stack, upload files and create database on server.
29. Other Installation Options
XAMP - Windows, Does not work well with Mac.
WAMP - Windows
MAMP - I use this on Mac OS X
WampServer - This is the one we will use if the Acquia
Stack Installer does not work out.
30. Installing on 3rd Party
FTP
Shell/ SSH / Command Line
wget
tar -xvzf
DATABASE
Database name
User name and password
Host (localhost on your machine)
32. admin_menu
Administration menu module provides a theme-independent administration
interface (aka. "navigation", "back-end") for Drupal. It's a helper for novice Drupal
users coming from other CMS, a real time-saver for Drupal site administrators, and
definitely a must for Drupal developers and site builders (keyword: Devel
integration).
The module renders all administrative menu items below 'administer' in a clean,
attractive and purely CSS-based menu at the top of your website. It contains not
only regular menu items - local tasks are also included, giving you extremely fast
access to any administrative resource and function your Drupal installation
provides.
33. What You Can Do With Core
Enable your blog
Configure your site
Write content
Create roles
Create blocks & move them around
34. Site Configuration
Create the first user
Go to admin page - handle errors
Site configuration - file system
Enable clean URLs
Enable modules
Creat roles and 2nd user
36. Creating News (For example)
1. Create Vocabulary (administer>>categories>> add
vocabulary tab called “News” with “story” checked
under “Types:”, “Hierarchy:”, set to “Disabled”, uncheck
“Multiple select” and check “Required”
2. Create terms (administer>>categories>>add terms)
Under this “News” Vocabulary as follows: “News,”
“Media Releases” and “Events”
38. Where to Get More Modules
http://drupal.org/project/Modules
How to figure out which modules are best
Read “Using Drupal” from O’REILLY
Go to www.drupalmodules.com
40. CCK Module
Allows you to add custom fields to nodes using a web
browser.
Drupal comes with core content types like story and
blog. For each content type, I can go to 'create
content' and submit a new story, blog entry, etc. That's
great if I can tailor my content needs to fit those models
of pure chunks of text with or without attachments.
41. Views Module
Provides a flexible method for Drupal site designers to control how lists and tables
of content (nodes in Views 1, almost anything in Views 2) are presented.
Traditionally, Drupal has hard-coded most of this, particularly in how taxonomy and
tracker lists are formatted.
This tool is essentially a smart query builder that, given enough information, can
build the proper query, execute it, and display the results. It has four modes, plus a
special mode, and provides an impressive amount of functionality from these
modes.
42. Bueditor Module
Editor interface and button functionality are completely
customizable through administration pages.
It supports role based editor interfaces.
It's possible to create image or text buttons.
Buttons can be customized to generate code snippets,
html tags, bbcode tags etc.
43. IMCE Module
Used as a file browser in many popular rich text editors
such as FCKEditor, TinyMCE, WYMEditor, Whizzywig
etc.
It can been also used for inline image/file insertion into
textareas. This is a built-in feature that can be used
stand-alone or with a text editor such as BUEditor.
44. Filefield Module
Configurable upload paths allow you to save files into
per-field or per-user directories
Per-field and per-node file size limits
Extensive API for extending field widgets and managing
files
Full revision/translation file management
Views support
45. SEO Checklist
Provides a checklist of good Drupal SEO (Search
Engine Optimization) best practices.
Provides a checklist that helps you keep track of what
needs to be done.
Looks to see what modules you already have installed.
Then, all you have to do is go down the list of
unchecked items and do them.
When all the items are checked, you're done!
46. More Modules
Spam Control - Mollom
Google Analytics - drupal.org/project/google_analytics
Pathauto - drupal.org/project/pathauto
Token - drupal.org/project/token
Update module - drupal.org/project/update_status
etc...
47. Best Practices
Don’t Hack Core!
Account and Roles
Plan for future upgrades
Back up both the database and the files regularly
Use sites/all/modules and sites/all/themes
Avoid spaces in any directory name
49. Self-Taught Drupal
http://www.drupal.org
www.learnbythedrop.com
www.lullabot.com
Books: Pro Drupal Development, Using Drupal,
Learning Module Development, Front-End Drupal, etc...
50. Multi-Language Support
You can have a site in three languages, or more:
English
Hungarian
Spanish
System is independent of the language, the author
defines it
51. IRC Is a Big Resource
- Support exhange
- Collaboration in ideas, code & events
- Local user groups
53. Me: Lauren N. Roth
512.461.5313, lauren@laurennroth.com
Assisting at Installation Fest Wednesday July 15th at
7:15pm - Union Park downtown
Speaking at Drupalcamp Dallas in early August
Introducing Drupal at Austin Developers and Designers
Meeting on August 11th