There's a Module for That Fast and Easy Websites with Drupal

stovenumerousInternet and Web Development

Dec 4, 2013 (3 years and 6 months ago)

68 views



There’s a Module for That
Fast and Easy Websites with Drupal
Emma Jane Hogbin
HICK Tech
@emmajanedotnet
emma@hicktech.com


I am IAM


Sorry
A boot
eh?




www.bar5.com
Know your cattle


Know your pumpkin
photo credit: calliope


How we chuck 'em


How you chuck 'em
Jack o lantern: 2040 feet


Drupal
drupal.org/user/1773
Photo: morten.dk
Legs: walkah


</me>


Scenario
http://www.flickr.com/photos/35237098471@N01/28726053/
http://www.flickr.com/photos/13380295@N08/2607310371/
http://www.flickr.com/photos/22221172@N00/1215596106/
It’s Wednesday.
You’re sort of tired.
The phone rings.


http://www.flickr.com/photos/22746515@N02/2951202881/
It's better than Farmville.


I need a Web site.
Pronto.
My buddy said you
can make it happen.
I got $500.


And you’re like … “Sure.”
Drupal Developer heyrocker.


Fast and Easy with Drupal
Topics

Creating ideal conditions

Multisite Drupal

Drush

Must-Have Modules

Dev Staging Deploy→ →

New site ready in 30 minutes
or it’s free.
http://www.flickr.com/photos/25299470@N00/3642425935/


Create the
Conditions
You Need
For Success
http://www.flickr.com/photos/38284047@N00/71034227/


www.bar5.com
Know your clients


Successful Drupal Shops...

Re-use code (and contribute it back where possible).

Automate repetitive procedures (such as upgrades).

Have a test/development site.

Train their clients on how to update their own sites.

Use version control.

Know a key set modules really, really well.

Interact with the Drupal community.


Find and use appropriate tools.
http://www.flickr.com/photos/26170836@N05/4731018653/


Collect Useful Modules


Must-Have Modules by Category

Everyone Must-Have

SEO

Ecommerce & Marketing

Administrative helpers

Access Control

Navigation / UI

Visual Awesome Sauce


Get your digital cameras ready
50+
modules
will be listed.
And I’m not waiting for you to write them all down.
www.slideshare.net/emmajane


http://www.flickr.com/photos/10101046@N06/3452774704/
Ready?


Modules for Everyone

Mollom, Comment Closer, Comment Mail

Markdown, CKEditor, WYSIWYG

Views

Link, Email, Date, Location, References, Field Group

Media

Webform

Backup and Migrate

D6: Image Cache, ImageField, Imagefield Import

D6: CCK, emfield, filefield


Modules for SEO

SEO Checklist, SEO
Friend

Page Title (and Token)

Node Words

Breadcrumb fixer-
uppers

XML Site Map, Index
Page, URL List

Pathauto, Token

Global Redirect

Path Redirect

RobotsTxt

Search 404

Link Checker


Modules for
Ecommerce & Marketing

D6: Ubercart

uc_coupon

uc_free_order

uc_views

uc_who_bought_what

FusionDrupalThemes
case study
http://drupal.org/node/
858914

D7: Commerce

Mailchimp, Constant
Contact (etc)

Mass Contact

Simple News, mimemail

Google Analytics, Piwik


Admin Helpers

Views Bulk Operation

Features

Scheduler

Rules

Notifications

Migrate

Devel and Devel
Themer

Flag

Masquerade

Abuse, Plus1, VotingAPI

D6: Total Control

D7: Workbench

Domain Access


Access Control

ACL

Forum Access

Content Access

Taxonomy Access
Control

Field Permissions

Organic Groups

Advanced Forum

Workbench


Modules for (better) Navigation

Menu Breadcrumb

Taxonomy Breadcrumb

Custom Breadcrumb
s

Menu Block

Superfish

Nice Menus


Visual Awesome Sauce

Views Slideshow

Typekit

Tabs, Vertical Tabs

Lightbox 2, Colorbox

D6: CCK Fieldgroup
Tabs

Panels, Context or
Display Suite

Nodes in Block, Node
as Block

Skinr v2

Base themes (Zen →
Fusion?)


http://www.flickr.com/photos/70099148@N00/145270356/
Where do they go?


Installing [Modules] with Drush
$ cd drupal/sites/
example.com
$ drush dl
module_name
Project menu_block (6.x-2.3) downloaded to
[success]
/home/emmajane/websites/drupal/sites/all/modules/menu_block.
$ drush en
module_name
The following projects will be enabled: menu_block
Do you really want to continue? (y/n): y
menu_block was enabled successfully.
[ok]


Dev Staging Deployment→ →
Dev Staging Deployment→ →
http://www.flickr.com/photos/88448902@N00/457428714/


Find and Use Appropriate Tools
Three Drupal bacon savers:

Install profiles.

Feature server.

Exportables.
Photo by: chrys. All rights reserved. Permission not obtained. I'm going to copyright hell.
You can rat me out at: http://www.flickr.com/photos/chrys/2329243533/#/


Install Profile
http://www.flickr.com/photos/22801406@N06/2211020136/


Feature Server
http://www.flickr.com/photos/71018547@N00/3547111423/


Feature server with cherries on top.
http://www.flickr.com/photos/27577455@N05/4465238124/


Exportables
http://www.flickr.com/photos/sebbisuperstar/2470560831


Sanity Tips for Dev Deploy→

Version control everything you can.

Export what’s in the database and put it under version
control.

Use helper modules to stage changes: Features, Deploy.

Create db snapshots with Backup and Migrate.

Create sandboxes with Demo (or WebEnabled).

Test themes with real data before launching changes.

Document everything.


Summary
Now that you have your Drupal toolkit you can build that $500
Web site in 30 minutes:
1.
Choose an Install Profile based on client needs.
2.
Create a new sub-dir in your Drupal
sites
folder.
3.
With Drush:
1.
Install the new site.
2.
Enable relevant modules and/or features.
3.
Choose and enable “contributed” theme.
4.
Create a client account so they can add content.
Total time: About 30 minutes.


emma@hicktech.com
emma@hicktech.com
@emmajanedotnet
@emmajanedotnet
Thank you!
Thank you!


Multisite Drupal

All themes and site-specific modules into:

/sites/
example.com
/themes

/sites/
example.com
/modules

Sandbox on your own domain:

/sites/example.hicktech.com

Use a separate database for each client.

Sort client files into different directories

admin/settings/file-system


Create a common code base
1.
Download and unpack Drupal in a Web-accessible
directory.
2.
Download and unpack common modules into:
/sites/all/modules


For each new domain name:
1.
Add domain information to host configuration files as
appropriate
(or use your Web admin panel)
2.
Add configuration information to Apache's config file
using the main Drupal directory for all domains.


For each new Web site:
1.
Create a new database.
2.
Create a new directory in
/sites
which exactly
matches your domain name
.
3.
Copy the default
settings.php
file into:
/sites/yourdomainname.com
4.
Unpack site-specific themes into:
/sites/yourdomainname.com/themes
5.
Install Drupal using the new domain name.


Installing Drupal

http://localhost

Pre-configured:

Drupal 6 downloaded

Apache configured

MySQL database created: fosdem


Apache Conf.
/etc/apache2/sites-enabled/000-default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot
/home/emmajane/websites/drupal/drupal6/current-cvs
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory
/home/emmajane/websites/drupal/drupal6/current-cvs>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
</VirtualHost>


Gotchas...

Set directory for new files in the admin area:

admin/settings/file-system

For domain aliases use a symbolic link in the
directory /sites.
Use a single, canonical domain
name for better SEO.

After updating core files, run update.php for each
domain name in the
/sites
folder.

Offer free group training for all clients at a time that
suits your schedule.