Title: Drupal 6 Bootcamp
1Drupal 6 Bootcamp
- Cary Gordon, MLIS
- The Cherry Hill Company
- www.chillco.com
http//www.chillco.com/lita4drupal
2Agenda
- A short chat about Drupal
- Installing and configuring Drupal 6
- Understanding the Drupal workflow and terminology
- Basic site configuration
- Setting up roles and permissions
- Modules - where to start
- Adding content
- Using taxonomy to organize content
- Using blocks
- Using menus
- An overview of theming - setting your site's look
and feel
3A Small Corner of the CMS Universe
And about 918 others (http//www.cmsmatrix.org/mat
rix)
4Drupal is different
- Free and Open Source
- Simple based on the blogging idiom
- Content Management Framework
- Designed to as a development platform
- The hook system
- Drupal CVS contributions
5Drupal Principles
- Modular and extensible. Drupal aims to provide a
slim, powerful core that can be readily extended
through custom modules. - Quality coding. High quality, elegant,
documented code is a priority over roughed-in
functionality. - Standards-based. Drupal supports established and
emerging standards. Specific target standards
include XHTML and CSS. - Low resource demands. To ensure excellent
performance, Drupal puts a premium on low-profile
coding (for example, minimizing database
queries). Drupal should also have minimal,
widely-available server-side software
requirements. Specifically, Drupal should be
fully operational on a server with Apache web
server, PHP, and either MySQL or Postgresql. - Open source. Drupal is based on the open source
philosophy of collaborative free software
development and is licensed under the GPL.
Drupal is itself open source and builds on and
supports other open source projects.
Specifically, Drupal is coded in the open source
scripting language PHP and supports as primary
data sources the open source database formats
MySQL and Postgresql. - Ease of use. Drupal aims for a high standard of
usability for developers, administrators, and
users. - Collaboration. Drupal development supports open,
collaborative information sharing systems and
approaches.
http//drupal.org/principles
6Drupal Lingo
- Node
- Comment
- Block
- Page
- Path
- Taxonomy its back!
7Drupal Technology Stack
PresentationHelpers
Drupal
LAMP/???P
8What works with Drupal 6
- Internet Explorer 6.x or later
- Firefox 2.x or later
- Opera 7 or later
- Safari 1.x or later
- Camino 1.x or later
http//drupal.org/node/61509
9Best Practices
- Plan your site.
- Drupal provides a good toolset to help you build
your site but you still need to plan. Good
wireframes and proper planning can avoid
significant misunderstandings and problems later. - Plan for the future.
- You should revisit and reevaluate your site each
time there is a major version release of Drupal.
This does not mean you have to upgrade it, but
you should evaluate and plan for an upgrade
approximately each 12-24 months. - Get involved in the community.
- This will help you follow development trends and,
while helping others, you may just come across a
cool idea that solves your own problem. - Back up your site.
- Back up both the database and the files on the
web server. Test your backups! If you don't test
them, you have no idea if you are doing it right. - Test your php snippets.
- Drupal gives you a great deal of power and
flexibility when using PHP code in blocks.
Unfortunately, a stray character or a missing
semi-colon breaks PHP. Drupal then attempts to
evaluate this broken code on any requested page,
the PHP interpreter chokes on it and therefore
your whole site is broken. Fortunately, there is
a very simple and easy solution. Instead of
writing and testing your code inside the
administer gt blocks page, go to create content
and create a new story or page node. Use PHP
input format, write the code, and the Preview to
debug your code. When you are satisfied that your
code is working, copy and paste the code into the
block.
http//drupal.org/best-practices
10Drupal CVS
- 3143 Total contributed modules and themes as of
7/22 - 608 Drupal 6 contributed modules
- The caveat
- Although Drupal core and contributed modules are
tested, they are not tested in every possible
combination and configuration. That is on you.
11Installing and Configuring Drupal 6Server
Environment
- Apache 2.x
- PHP 5.2 or higher
- GD
- mysqli
- Settings
- session.cache_limiter nocache
- Template memory 32M
- MySQL 5.x
- Drupal 6.2
- Apache 1.3
- Mod Rewrite
- IIS 5 or higher
- No clean URLs
- PHP 4.3.5 or higher
- GD
- mbstring
- mysql (or pgsql)
- Settings
- session.save_handler user
- error_reporting set E_ALL E_NOTICE
- Template memory 16M
- MySQL 4.1 or higher or
- PostgreSQL 7.4 or higher
http//drupal.org/requirements
12Installing and Configuring Drupal 6Quick Setup
On nix
- http//drupal.org/download
- tar zxf drupal-6.2.tar.gz
- mv drupal-6.2
- cd /var/www
- mv html html.bak (or rm -Rf html)
- chown Rf apache html
- mkdir html/files
- If necessary, set appropriate write permissions
on sites/default/settings.php - ls al html
- If you dont see .htaccess, something is wrong
13Installing and Configuring Drupal 6CPanel Hosts
- Do NOT use a Fantastico installation!
- Download from http//drupal.org/download to your
workstation - Create a temp directory using Filemanger gt New
Folder - Upload to host using Filemanger gt Upload
- Extract using Filemanger gt Extract
- Select all files and directories in the temp
directory and move to /www - Add files directory using Filemanger gt New Folder
- Change permissions on file directory to 0775
using dropdown menu - Create database and user with MySQL Wizard
write down the database name, user and password
as described by the wizard (might not be exactly
what you entered. - Configure cron with Cron jobs CP
14Installing Drupal on XAMPP(thats us!)
15XAMPP Status
16XAMPP - PHPMyAdmin
17XAMPP PHPMyAdminPrivileges
18XAMPP PHPMyAdminNew User
19XAMPP PHPMyAdminDone
20Installing and configuring Drupal 6PHP Settings
(php.ini)
Make sure you work on the correct php.ini file!
21Installing and configuring Drupal 6PHP Settings
(php.ini)
-
- Resource Limits
-
- max_execution_time 600 Maximum execution
time of each script, in seconds (for USB DRIVE
ONLY!) - max_input_time 60 Maximum amount of time each
script may spend parsing request data - memory_limit 32M Maximum amount of
memory a script may consume (8MB) -
- Error handling and logging
-
- error_reporting E_ALL E_NOTICE
If your site disappears, this is the first place
to look!
22Installing and configuring Drupal 6PHP Settings
(php.ini)
-
- Data Handling
-
-
- Maximum size of POST data that PHP will accept.
- post_max_size 16M
-
- File Uploads
-
- Whether to allow HTTP file uploads.
- file_uploads On
- Maximum allowed size for uploaded files.
- upload_max_filesize 16M
23Installing and configuring Drupal 6Apache
Settings (httpd.conf)
- This should be changed to whatever you set
DocumentRoot to. -
- ltDirectory "/Library/WebServer/Documents"gt
-
- Possible values for the Options directive are
"None", "All", - or any combination of
- Indexes Includes FollowSymLinks
SymLinksifOwnerMatch ExecCGI MultiViews -
- Options All
-
- AllowOverride controls what directives may be
placed in .htaccess files. - It can be "All", "None", or any combination of
the keywords - Options FileInfo AuthConfig Limit
-
- AllowOverride All
-
24Install Drupal on XAMPP
- Using Windows Explorer
- Navigate to /xampplite/htdocs
- Remove all files (not the folders!)
- Copy everything from the /drupal-6.2 directory to
/xampplite/htdocs - Using a browser
- http//localhost
- The XAMPP control panel is now at
http//localhost/xampp
25Cron(We wont be doing this on XAMPP)
- All scheduled Drupal services rely on cron.php
- Like Tron with a good watch.
- List with crontab l
- Edit with crontab e
- Retrieve with wget or curl (or even lynx)
- Use scheduler on Windows servers
- root_at_blah crontab -l
- 45 /usr/bin/wget -O - -q
http//foo.bar.com/cron.php
26Drupal Setup Choose Language
27Drupal Setup Database Configuration
28Drupal Setup Configure Site
29Drupal Setup Configure Site (2)
Random password generator http//www.pctools.com/
guides/password/
30Drupal Setup Configure Site (3)
If possible, use this on your staging server.
31The Stock Start PageTake a good look. Youll
never see it again.
32Drupal Core requiredThe Essential Drupal
These are here because they use the hook system,
like optional modules. You cannot deselect them.
33Drupal Core Optional Modules
- Aggregator
- Blog
- Blog API
- Book
- Color
- Comment
- Contact
- Content translation
- Database logging
- Forum
- Help
- Locale
- Menu
- OpenID
- Path
- PHP filter
- Ping
- Poll
- Profile
- Search
- Statistics
- Syslog
- Taxonomy
- Throttle
- Tracker
- Trigger
- Update status
- Upload
34Contributed Modules(Library Edition)
- Administration menu
- Advanced forum
- Apache Solr
- Backup
- Bibliography
- CAPTCHA
- CAS (single sign-on)
- CCK
- Content taxonomy
- Contemplate
- Contact forms
- Date
- Event
- External links
- FAQ
- FeedAPI
- File MIME type
- Filebrowser
- Fivestar
- Flexifilter
- Forum Thread
- Freelinking
- Front page
- Glossary
- Google Analytics
- Google CSE
- IMCE
- jQuery update
- jQuery UI
- LoginTobbogan
- Mailhandler/Listhandler
- MARC
- Modr8
- Mollum
- Nice menus
- Node clone
- Nodequeue
- Organic groups
- Pathauto
- PNG Fix
- Popup Modal Dialogs
- Resource Description Framework (RDF)
- Scheduler
- Secure Pages
- SimpleFeed
- Site map
- SPARQL
- Terms of Use
- TinyMCE WYSIWYG Editor
- Views
35Missing, So Far
- Panels
- Node Access Control
- Taxonomy Node Access
- Book review
- Millenium
- Z39.50
36From AADL
- http//www.aadl.org/devblog(not necessarily
ready for Drupal 6) - III-PatronAPI
- This is a PHP script that interfaces with III's
optional web-based PatronAPI module and makes
that data more easily available to PHP projects. - III-XMLOPAC
- This is a PHP5 Class that uses III's XMLOPAC to
return a bib record as a PHP array when passed
the bib number. - SOPAC Middleware source code
- SOPAC is what we call our social features on our
public catalog. It includes the ability to add
ratings, reviews, and tags to items in the
catalog and integrates with our drupal patron
account module.
37Modules Our Starting Point (1)
38Modules Our Starting Point (2)
39Modules Our Starting Point (3)
40Modules Our Starting Point (4)
41Modules Our Starting Point (5)
42Modules Next Steps
43Users and Roles
- Drupal comes with 2 built-in configurable roles
- Anonymous everyone who not logged in
- Authenticated everyone who is logged in
- And one fixed role for the superuser (user/1)
- Your roles may be
- Discrete
- Cascading
- Both
44Users
Administer User management User Settings
45Roles
Administer User management Roles
46Permissions
Administer User management Permissions
47Permissions
My account
Give the user/1 a role
48Site Configuration
- Why does my site do X?
- Because you told it to do X
- Or because you didnt tell it not to do X
49Site Information
Administer Site configuration Site information
50Clean URLs
Administer Site configuration Clean URLs
51Date and Time
Administer Site configuration Date and time
52Error Reporting
Administer Site configuration Error reporting
53File System
Administer Site Configurationgt File system
54Input Formats
Administer Site Configurationgt Input formats
55Input Formats
Administer Site Configuration Input formats
Add input format
56But I Want PHP!
- PHP filter module (Administer Site building
Modules) - PHP code input filter (Administer Site
Configuration Input formats)
57The Tab Trap
Here be tabs!
- Some people dont see these.
- Those people are shocked to find that they have
missed most of the settings.
58Performance
Administer Site configuration Performance
59Performance
Administer Site configuration Performance
60Performance
Administer Site configuration Performance
61Status Report
Administer Reports Status report
62Available Updates
Administer Reports gt Available updates
Relies on cron
63Content Types
- OOTB
- Page
- Story
- Core
- Book Page
- Forum
- Blog Post
- Poll
- Contributed
- Event
- Yours
- CCK
- Modules
64Organizing Content
- Front page
- Menus
- Taxonomy
- Views
- Blogs
- Nodequeue
- (Panels)
65Adding Content
66Adding Content
67Adding Content - Preview
68Adding Content - Settings
69Adding Content - Publishing
70Adding Content - Done
71Taxonomy
Administer Content management Taxonomy
72Taxonomy - Vocabulary (1)
Administer Content management Taxonomy
73Taxonomy - Vocabulary (2)
Administer Content management Taxonomy
74Taxonomy Terms (1)
Administer Content management Taxonomy List
terms
75Taxonomy Terms (2)
Administer Content management Taxonomy List
terms
76Taxonomy List Terms
Administer Content management Taxonomy List
terms
77Applying Taxonomy
Administer Content management Taxonomy List
terms
78Applying Taxonomy
79Viewing Taxonomy
80Viewing Taxonomy Combining Terms
81URL Aliases
Administer Site building URL aliases
82URL Aliases
Administer Site building URL aliases
83URL Aliases
Administer Site building URL aliases
84Menus
Administer Site building Menus
85Menus
Administer Site building Menus Add menu
Menus are blocks!
86Menus
Administer Site building Menus menu name
87Menus
Administer Site building Menus menu name
Add item
88Menus
Administer Site building Menus menu name
89Blocks
Administer Site building Blocks
90Blocks
Administer Site building Blocks
1
2
91Blocks
Administer Site building Blocks
92Blocks
Administer Site building Blocks
93Blocks
Administer Site building Blocks
94Blocks
95Themes
Administer Site building Themes
96Themes Configure (1)
Administer Site building Themes Configure
97Themes Configure (2)
Administer Site building Themes Configure
98Themes Configure (3)
Administer Site building Themes Configure
99Contact Form
Administer Site building Contact form
100Contact Form Add Category
Administer Site building Contact form Add
Category
101Contact Form Settings
Administer Site building Contact form
Settings
102Contact Form
103Primary Links
Administer Site building Menus Primary links
104Primary Links
Administer Site building Primary links Add
item
105Resources
- Websites
- http//drupal.org
- http//groups.drupal.org/library
- http//drupal.org/forum
- http//drupalib.interoperating.info
- Mailing lists
- http//lists.drupal.org/listinfo/security
- http//lists.drupal.org/listinfo/support
- http//listserv.uic.edu/archives/drupal4lib.html
- Feeds
- http//drupal.org/planet
- http//drupalib.interoperating.info
- IRC
- irc.freenode.net6667 drupal-support
drupal-themes