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:
- Acquia DAMP or XAMPP
- MAMP
- Installing Drupal 6 & 7
- Basics of configuring Drupal 6 & 7
- Resource:
- Configuring Drupal 7
- Admin Interface
- Core modules
- Field UI
- Resource:
- Creating Content Types in Drupal 7
- Field UI
- Contrib modules
- How to work out which contrib modules to use (maybe this goes in SBA?)
- How to install modules
- Resource:
- Installing modules in Drupal 7
- 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
- Resource:
- Intro to Views, Pt. 1
- 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
- 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
- Setting up Cygwin
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
- Resource:
- Basic Theming with Zen and CSS
- 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.
- http://www.lullabot.com/articles/creating-custom-cck-fields - Creating Custom CCK Fields by Karen Stevenson, lullabot.com
- http://drupal.org/node/173880 - About Overriding Themable Output - from the Drupal 6 Theme Guide - includes stuff on overriding themable output in modules
- http://state68.com/content/programming-basics-drupal-themers - Programming basics for Drupal themers
- http://drupal.org/node/225125 - sub-themes, their structure and inheritance.
- http://missingfeatures.com/2010/02/16/48-essential-drupal-development-ti... - amazing.
- http://www.barelyfitz.com/screencast/html-training/css/positioning/
Blogs etc that we can go through to find useful articles
- http://www.nicklewis.org/
- http://mydrupalblog.lhmdesign.com/
- http://www.garfieldtech.com/
- http://morten.dk/
- http://drewish.com/
- http://drupaldojo.com/
- http://www.masteringdrupal.com/
Stuff from lullabot.com that can be used
- IE iFrame Insanity - http://www.lullabot.com/blog/ie-iframe-insanity
- Using the VI editor - http://www.lullabot.com/blog/using-vi-editor
- Analyze This! Using the Google Analytics API - http://www.lullabot.com/articles/analyze-using-google-analytics-api
- User Management for Real World Groups - http://www.lullabot.com/articles/user-management-real-world-groups
- Drupal data imports with Migrate and Table Wizard - http://www.lullabot.com/articles/drupal-data-imports-migrate-and-table-w...
- Drupal Performance Tip: Block Visibility - http://www.lullabot.com/articles/drupal-performance-tip-block-visibility
- Installing Memcached on RedHat or CentOS - http://www.lullabot.com/articles/installing-memcached-redhat-or-centos
- Learning JavaScript from PHP - a Comparison - http://www.lullabot.com/articles/learning-javascript-php-comparison
- Great Tool for Webshots - http://www.lullabot.com/blog/great-tool-webshots
- My Aha! moments in Drupal theming - http://www.lullabot.com/articles/my-aha-moments-drupal-theming
- Hacking Views, Part 1: Basic Concepts - http://www.lullabot.com/articles/hacking-views-part-1-basic-concepts
- Creating Custom CCK Fields - http://www.lullabot.com/articles/creating-custom-cck-fields
- The Great Pretender: Making your data act like a field - http://www.lullabot.com/articles/great-pretender-making-your-data-act-field
- 5-Step Drupal Distributions - http://www.lullabot.com/articles/5-step-drupal-distributions
- Import/Export Large MYSQL Databases - http://www.lullabot.com/blog/importexport-large-mysql-databases
- Drupal Charting - http://www.lullabot.com/articles/drupal-charting
- Introduction to Calais - http://www.lullabot.com/articles/introduction-calais
- Making Attachments Appear Across Translations - http://www.lullabot.com/articles/making-attachments-appear-across-transl...
- Solving the permission denied error when updating Drupal via CVS - http://www.lullabot.com/articles/solving-permission-denied-error-when-up...
- "Classic" Web Problems, Solved - http://www.lullabot.com/articles/classic-web-problems-solved
- Beginning with Drupal 6 and PostgreSQL on OS X 10.5 Leopard - http://www.lullabot.com/articles/beginning-drupal-6-and-postgresql-os-x-...
- Drupal Community Philosophies - http://www.lullabot.com/articles/drupal-community-philosophies - not a tech tutorial but a very important fundamental tutorial about what Drupal is
- The Drupal Community Philosophies article is the last one I reviewed so that's where I need to start from when I start up again
- Avoiding the Template.php of Doom (or, Overriding Theme Functions in Modules) - http://www.lullabot.com/articles/overriding-theme-functions-in-modules
- Module-In-A-Box: We Built Admin Tools So You Don't Have To - http://www.lullabot.com/articles/module-in-a-box
- Theming Best Practices (Garland Gets a Cleanup) - http://www.lullabot.com/articles/theming-best-practices-garland-gets-a-c...
- Modifying Forms in Drupal 5 and 6 - http://www.lullabot.com/articles/modifying-forms-drupal-5-and-6
- Replace any string in Drupal (5/6), without Locale module - http://www.lullabot.com/articles/replace-any-string-drupal-5-6-without-l...
- Setup a Memcached-Enabled MAMP Sandbox Environment - http://www.lullabot.com/articles/setup-memcached-mamp-sandbox-environment
- A Drupal Module Developer's Guide to SimpleTest - http://www.lullabot.com/articles/drupal-module-developer-guide-simpletest
- Drupal 6: The Mashup Toolbox - http://www.lullabot.com/articles/6-mashup-toolbox
- Hiding content from Drupal's search system - http://www.lullabot.com/articles/hiding-content-drupals-search-system
- Moving CCK Field Changes from Dev to Live - http://www.lullabot.com/articles/moving-cck-field-changes-from-dev-to-live
- Drupal ahah.js in Core, more than just form elements - http://www.lullabot.com/blog/ahah-js-in-core
- Use Dynamic DNS to host websites from home (Or "How to set up localhost to test Facebook applications") - http://www.lullabot.com/articles/use-dynamic-dns-host-website-your-laptop
- From this point on we're getting into D5 stuff, but there are some generic tutorials that are valuable
- How do you backup your webserver? - http://www.lullabot.com/blog/how_do_you_backup_your_webserver
- How to install memcache on Debian Etch - http://www.lullabot.com/articles/how_install_memcache_debian_etch
- How Drupal Will Save The World - http://www.lullabot.com/articles/how-drupal-will-save-world (another non-tech but interesting article nonetheless)
- CVS Annotate, or "What the heck were they thinking?" - http://www.lullabot.com/articles/cvs_annotate_or_what_the_heck_were_they...
- The Bitchin' Search Box - http://www.lullabot.com/articles/bitchin_search_box
- Strategies for Patch Management - http://www.lullabot.com/articles/strategies_for_patch_management
- Quick-and-Dirty Debugging - http://www.lullabot.com/articles/quick_and_dirty_debugging
- Great video on how to create patches - http://www.lullabot.com/videocast/great_video_on_how_to_create_patches
- Best practices in open source development - http://www.lullabot.com/articles/best_practices_in_open_source_development
- CVS quick reference - http://www.lullabot.com/articles/cvs_quick_reference
- I think that's it! - go ahead and add any newer articles
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:
- Let me sell stuff, i.e. be an online store
- Be an online community where other hobbyist could share info and come together
- 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:
- Installing Drupal issues
- Issues figuring out how to install modules
- So many settings!
- Installing Ubercart issues
- i18n: the bane of my existence
- Advanced Forums
- Themes, Acquia Marina
- WYSIWYG + tinyMCE
- Creating a cutom content type, CCK fields
- Location
- GMap
- Views
- Setting up a GMap view
- Replacing the default Blog page with a custom View
- And lots more ...