Drupalversity (original wiki page)

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

We've been booted out of our own group (the reasons given made sense) so I'm re-posting to this to other groups.


This is the original Drupalversity wiki page that was originally at http://groups.drupal.org/node/44418. I fully expect it to be broken up into subpages at some point.


This page will contain a few trial Drupalversity courses.

Tracks

Tracks are broad subject areas which Drupal can be divided into. Much like a degree in Mathematics might be divided into tracks in algebra, analysis, mathematical methods and medhanics, Drupal can be divided into three tracks: site building and administration, theming and development. In addition to this, a separate foundation track, Beginning Drupal can broadly be compared to a pre-university course in Mathematics that teaches the basics, and can then be relied upon in the other tracks.

Courses

Each track is subdivided into courses, much like how the analysis track in a Mathematics degree might be divided into courses titled Analysis 1, Analysis 2, Analysis 3: Complex Analysis, Analysis 4: Real Analysis, and so on. While tracks are designed to be indepent (but with some inevitable overlap), courses build on each other.

Each course will make use of existing material as often as possible. It is not the intention of this project to create new learning materials: there are plenty of those already. Instead, Drupalversity will organise these materials to make them more accessible, and to make learning Drupal more proactive (what should I learn next?) than reactive (this project has to be finished by the end of today and I need to know how Views Bulk Operations works).

Course numbers are made up of three letters followed by three numbers. The three letters indicate the track that the course is part of:

  • BEG for beginners' courses
  • SBA for site building and administration
  • THM for theming courses
  • DEV for development courses

The three numbers are, for the moment, arbitrary. I'm sure we'll be able to come up with some sort of classification system if we need one later.

Beginners' courses

Course codes for this track start BEG.

Stuff that definitely needs to be covered in the BEG track:

  • Drupal Concepts and Terminology
    • This should be some kind of subsection, so we can get all the terminology sorted out in one place: a glossary, I guess.
  • Setting up a local server:
  • Installing Drupal 6 & 7
  • Basics of configuring Drupal 6 & 7
  • Admin Interface
  • Core modules
  • Contrib modules
  • Creating a page
  • Menus
  • Core themes
  • How to install and enable themes
  • Content types
  • Blocks
  • Aliases (do you mean URL aliases?)
  • Roles and Permissions

Potential courses for the BEG track

Site building and administration courses

Course codes for this track start SBA.

Stuff that definitely needs to be covered in the SBA track:

  • CCK
  • Views
  • Drush
  • Image handling
  • Input filters
  • WYSIWYG
  • Managing content (probably want to use a custom module like CMF for this)
  • Managing users (again, using a custom module- Advanced User?)
  • Menus
  • SEO? Using the SEO Checklist
  • Date and time settings
  • The file system?
  • Blocks
  • Taxonomy
  • Comments
  • Basic site settings (everything in the "Site Information" bit)
  • Reports (Watchdog etc)
  • The Command Line
    • Setting up Cygwin
    • Basic CLI stuff (there's a good Lullabot video tute on this)
    • Source control? git?
    • Setting up shortcuts with bashrc etc - based on the (non-free) peepcode tutorial
  • Monitoring performace (parts, or all, of this should go under DEV maybe):
    • The Devel Performance sub-module
    • Benchmarking and profiling Drupal: http://drupal.org/node/79237
      • Apache Bench
      • The standard performance testing environment
      • Profiling memory usage

Potential courses for the SBA track

  • Introduction to building sites with Drupal (take from the Drupal Cookbook)
    • Image handling
      • Image cache
  • Advanced Drupal site-building and administration
    • Drush
  • CCK
    • Introduction to CCK
    • Important field types and widgets
  • Views
    • Introduction to Views

Theming courses

Course codes for this track start THM.

Stuff that definitely needs to be covered in the THM track:

  • Creating sub-themes
  • Where to get good free Drupal themes (do we bother with paid-for themes? I'm thinking not)
  • Using templates to override Drupal's default HTML output
  • Preprocess functions
  • Themable functions
  • Basics of programming - done, see below
  • Adding regions
  • jQuery in Drupal theming
  • Javascript in Drupal theming

Potential courses for the THM track

Fundamentals of programming - THM901

Many graphic designers who want to become themers have never done any programming, but they need to understand conditional logic, variables and arrays to be able to use the theming system. No-one tells them this, though. I searched around on the net and couldn't find anything that did the job well enough, so I ended up writing something here. It covers:

  • Input, processing, output, and comments
  • Variables
  • Operators and concatenators
  • Arrays
  • Conditional logic
  • Functions
  • Objects

Development courses

Course codes for this track start DEV.

Stuff that definitely needs to be covered in the DEV track:

  • Introduction to Drupal development: following one of the standard example modules being built
    • block modules
    • node modules
    • behavior modules (javascript)
  • Drupal name spaces
  • Drupal and JQuery
  • Drupal and Flash
  • Token integration
  • Views integration
  • CCK integration
  • The Node Access system
  • Devel module
  • Coder module
  • Coding standards
  • CVS (or whatever source control Drupal ends up using)
  • Contributing your module to the community
  • Cointributing to Drupal core

Potential courses for the DEV track

Resource dump

If you find good resources that could be referenced by a course, add a link here. We can then build the resources into courses as they are written.

Blogs etc that we can go through to find useful articles

Stuff from lullabot.com that can be used

Drupal learning experiences

A really useful way that Drupal newbies can contributed to the Drupalversity project is to keep a record of their Drupal learning experience: what they knew about Drupal and web development and design when they started; what they wanted to be able to do; what resources they used; where they got stuck. This sort of narrative is invaluable when it comes to writing Drupalversity courses. Stick your learning experience record below!

totsubo's learning experience

In order to help contribute to the University here's a list of issues I faced when first starting with Drupal, some resources that helped me out, and things I learned along the way.

I wanted to set up an Internet site for a hobby that would have the following properties/functions:

  1. Let me sell stuff, i.e. be an online store
  2. Be an online community where other hobbyist could share info and come together
  3. Be bilingual English/Japanese

I started looking around the web for a free solution that would meet all three requirements. I mostly concentrated on #1 and #3 and didn't give much thought to #2. I was waffling between Zen cart and OsCommerce when someone on the Zen cart forums suggested I have a look at Drupal and a Drupal module called Ubercart. I looked and liked! The Drupal + Ubercart combination seemed to fill all my needs.

Resource #1: Ubercart http://www.ubercart.org/

Issue #1: What did I need in order to build a Drupal site

I'm an IT guy so anything I built was always for the company I worked for which meant I always had a server and the necessary infrastructure all set up for me. But when it came to building a personal web site I had no idea what was needed. Luckily I had friend who had a Wordpress site and he explained to me the basics of finding a hosting solution.

Even after this was all explained to me I was still really worried that I would pick the wrong hosting solution and I'd have spent money registering for a service that wouldn't fit my needs and wouldn't support Drupal.

Issue #2: What do you need in a hosting solution in order to support Drupal?

Now that I've been using Drupal for 2 months I have an idea what the answer to #2 is but I don't know the answer with 100% accuracy. In my case I might have just gotten lucky and picked a good hosting solution, who knows. One thing to point out is that some hosting site actually say they 'come with Drupal' or something like that. Mine did not, but it was listed on the list of hosting solutions that support Drupal. This I found confusing, why would Drupal list you as a host that is Drupal friendly but the host itself doesn't advertise this?

My advice, contact the hosting company directly and simply ask, do you support Drupal. Being new to all this I was very afraid of sounded like an idiot, but they were very friendly and helpful. Plus, if they aren't friendly and helpful, it might be a sign that you shouldn't do business with them :)

That's it for now. Coming later:

  1. Installing Drupal issues
  2. Issues figuring out how to install modules
  3. So many settings!
  4. Installing Ubercart issues
  5. i18n: the bane of my existence
  6. Advanced Forums
  7. Themes, Acquia Marina
  8. WYSIWYG + tinyMCE
  9. Creating a cutom content type, CCK fields
  10. Location
  11. GMap
  12. Views
    1. Setting up a GMap view
    2. Replacing the default Blog page with a custom View
  13. And lots more ...