The Seattle Drupal Users Group met for a Drupal Camp yesterday. It was an all day affair, with Drupal developers hiding out in one room learning about such things as theming and jviews with Robin Barre and noobs like me in a larger room with Gregory Heller from CivicActions doing a so-called Barn Raising. Donald Lobo from CiviCRM also happened to be there and we took adantage of the opportunity to sign a contract and review the specs for the CiviCRM component of the Kabissa African Voices project. It feels good to be implementing CiviCRM at long last, after years of planning and false starts with other vendors, and I very much like the way we are doing it.
Back to the Drupal Camp: I found the Barn Raising to be very helpful – we basically learned all about Drupal, a leading open source content management system, by planning and implementing a Drupal site in a day. I was able to get alot of my questions answered which will help me a great deal in finalizing the migration of the Kabissa site from Joomla to Drupal (keep your eyes peeled on http://www.kabissa.org for a new site appearing shortly!). Roland Taglao from bryght.com came down from Vancouver. Roland took loads of photos which presumably he will upload to his DrupalCamp Seattle 2007 set on flickr and recorded video which is currently available, in rather raw form, at http://ustream.tv/roland. The Seattle DUG is a lively group, and I very much enjoyed and appreciated the open, friendly atmosphere. I hope to make sense of my notes here, but for the moment have just pasted them in below. Read on at your own risk!
Oh, and before you go: yes, I did go watch Candy Mountain on YouTube as strongly recommended by Gregory. What is it, a morality story teaching about the perils of peer pressure?
10,000 foot overview of drupal
Gregory Heller gave us what he called a “10,000 foot overview of drupal”, in a nutshell: Drupal is a Content Management System that runs on LAMP (Linux, Apache, Mysql, PHP).
The main new Drupal words we need to know to are: Node, Block, User, Theme.
- User – anonymous and authenticated. admin user is “super user”. When creating a Drupal site, the first first thing to do is create admin user and then create admin role.
- Core Drupal
- Core Modules
- Contributed Modules
Modules deliver distinct functionality, work with the core, core modules and maybe together with other modules. e.g. ecommerce has lots of modules that go along with it (e.g. shopping carts, billing APIs etc).
Particularly essential contributed modules are:
- CCK = content construction kit. allows you to create different types of content. very customizable with pluggable widgets for radio buttons, multiple select boxes, date/time fields etc.
- Views = allows construction of pages
- Panels = custom panel templates for different sections of website – give good control over where things show up
Roland commented about modules: with the above, you can do all this without a database administrator, developer or web designer. you can do all this yourself just through the UI.
Tips on how to identify the best modules on drupal.org:
- look to see when the latest release is (and if it works with 5.1).
- look at issues in the bug tracker, and consider how active the module maintainer is.
- look at what others have said about modules. some reliable sources are:
- drupal dojo
- groups.drupal.org (both forums and monthly meetings)
- top 40 list of modules
Roland pointed out that bryght has preconfigured drupal profiles that can be downloaded and installed for different purposes – apparently reachable via SVN: svn.bryght.com
Cool note re panels: you can pass a url argument to panels.
lullabot has top 40 modules – groups.drupal.org -> austin has ratings of best modules – handbook.drupal.org – IRC I related my experience with my joomla->drupal migration and lack of support/help in all of these venues. Pro Drupal DEvelopment book by Lullabot Lullabot does professional-level trainings drupaltherapy.com taxonomy
Celia is a poet and involved in poetry jams – wants to create a new social networking website right now to enable young teenagers to share their poems and to spark their creativity. She and Gregory had talked it over before hand and already had worked out the requirements for the site.
Set up types of content and roles
Types of content:
|Super Admin (Celia)||Admin||Poet (User)||Content type||Notes|
|x||Writing Prompt||One line that can be used to inspire/prompt a poem. Poems can be linked to prompts.|
|x||Featured Poets||MAke use of User relation field so we don’t have to type this all in manually|
|x||Suggested reading||Books to recommend that are worthwhile reading. May use GoodStorm to let her sell books|
|Writing Workshop||way to group content and group users. Organic Groups module. Use simple OG functionality without all the modules. users can be associated to a group, content can be associated to a group. OG is a node access and node relationship module. Not just about groups.|
Important truth about Drupal: keep it simple. ECONOMY. Be conservative in turning on modules, creating types of content. e.g. you could have 5 types of poetry events, but don’t create 5 content types – just one type but use taxonomy/vocab to distinguish between them. [Vocab Perms is a module to limit permission by taxonomy!]
Taxonomy – is a module. consists of vocabularies. vocabularies have terms. vocabulary can apply to content types (one or multiple). Terms can be hierarchical/related to each other (parent/child) or not – e.g. freetagging. Terms can link content across the site. (sometimes called orthagonal/faceted). You can offer people lots of ways to navigate around. Alison says: it’s like an index of content. Built into the system. But you can use views/panels to define what you see when browsing the taxonomy.
Search and search index
Tagadelic – tag cloud module.
[Gregory Youtube recommendation: candy mountain]
- email to friend
- print friendly view
- filter inappropriate words
- flag content as inappropriate/spam
- send messages to you through site
- bookmark content
- notified by email when certain content has been created (e.g. subscribe to writing prompts about love or every time a new poem is published by a poet about love)
- buddy list
- instant messaging (needs additional server resources)
- ajax live chat (needs additional server resources)
- profiles – this is me, a picture of me. emerging as
- anonymity. no real names (use nom de plume), no pictures (user pictures are avatars), no photographs of people, no real details, no “my city” feature. no direct email (onsite messaging)
- why is there no “check all” to set permissions in user roles? why are related permissions not grouped together?
- passwords – notification sends it in clear text. there is no way to require them to change their password the first time they log in – but you can contact them separately and make them go to the site and request a new password.
- account on dreamhost – $10/month
- set up empty mysql database in dreamhost
- upload files and navigate to install interface
- put in mysql details
- set up initial details
- site information
- use generic email address
- nice footer
- clean urls – get rid of ugly questionmarks in urls
- run test to test .htaccess file
- either it will work or not – if not, get someone to help
- if it works, then enable cleanurls
- set up admin role
- user 1 is superuser – can do everything!!!!
- create new admin role that can do everything
- create new user for yourself and add yourself to admin role
- admin – can do everything
- anonymous user (not logged in)
- authenticated user (logged in)
- note: as you dd content types and modules, new tickboxes appear to assign permissions
- note: if you delete a user all their content will be assigned to the anonymous user – so block the user instead of deleting them!
- note: if you send notificaiton, it will send the email to them in clear text (set easy password and tell them to go in and change their password)
- he uses multisites so modules are already available – installed in modules directory, but not enabled on this site.this means database tables for modules are not created yet.
- tip: click on every link in the admin page every day for a week as you are installing new modulesyet
- note: no installer module yet -hoped that the “profiles” will fix this by offering the right mix of modules by default for different purposes
- note: on list, you can see description ofmodule, required by,
- CCK: content construction kit.
- core – optional: available by default
- core – required: available by default
- ecommerce – core
- ecommerce – payment methods
- ecommerce – product types
- ecommerce – uncategorized
- node reference
- user reference
- keep database backups
- keep testing environment – copy database and files over to that for experimenting.
- complex set of fields, people can fill it out and email it.
close comments module
Note: panels might ignore “sticky” or “promote to front page” so you can be certain what will be on the frontpage. can also use exclusion filter ot make sure eg that poem on
frontpage doesn’t get listed in a news feed on the frontpage.
Note: revisions – good for pages, e.g. about page, but not on stuff that does not need revisions like blogs. there is a database burden (lots of records being created that could have performance implications)