Learning Drupal - version 0.1
Alright, here is version 0.1 of "Learning Drupal with Dave" haha 
This is as much as I have time for right now, though I'll add more later as I'm able - and will eventually be making a full Drupal learning section on absolutecross.com. The info listed below includes textual, audio, video, and printed learning resources for Drupal, and are all for Drupal 5.x and up.
General - Best Learning Resources
http://www.lullabot.com/articles
http://www.lullabot.com/lullablog
http://www.lullabot.com/audiocast
http://www.lullabot.com/videocast
http://www.drupaldojo.com (you can watch most of the past lesson videos, or participate live every Sunday)
http://theartlab.net/podcast/drupal-school
http://drupal.org/handbook/customization/videocasts
http://geeksandgod.com/search/node/drupal (they did an extensive podcast series on Drupal, and have a Drupal help forum)
http://www.apress.com/book/view/1590597559 ("Pro Drupal Development" book, searchable eBook version available for $22)
http://www.minezone.org/blog/2007/11/01/45-screencasts- ... ing-***-with-drupal/ (very cool organized listing of 45 Drupal screencasts covering a wide range of topics)
http://www.google.com/search?q=drupal+screencasts (many more screencast lessons out there - also check Google Video and YouTube).
Work/practice on a local server environment
Having a local server environment on "any" operating system is super easy these days (even for a complete newbie), and I cannot recommend it highly enough - you'll be able to quickly and easily install multiple copies of Drupal to go wild with and try anything and everything, make backups of your whole site and database with a simple copy and paste (and similarly restore from disaster just as easily, and be able to work with your demo site extremely fast compared to using your website on the Internet (no delays for uploading files, loading times between pages, etc).
http://www.lullabot.com/videocast/install_local_web_server_mac_osx
http://www.lullabot.com/videocast/install-local-web-server-windows-xp
General Concepts
http://www.lullabot.com/videocast/installing_drupal_5
http://www.lullabot.com/videocast/video_new_features_for_drupal_5
http://theartlab.net/drupal-school-configuring-your-system
http://theartlab.net/drupal-school-quick-tip-sites-all-folder
Understanding Input Formats and Filters
View Drupal's Input Formats at: yoursite.com/admin/settings/filters
By default Drupal uses a "safe" filter on content submission forms called "Filtered HTML". It removes all unapproved HTML from posts automatically. You'll want to pre-approve some standard HTML tags or you'll pull your hair out wondering why they don't display.
Click "Configure" for Filtered HTML, and click the "Configure" tab or button at the top.
Paste the following over what is currently in the "Allowed HTML tags" field:
<a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br> <blockquote> <span> <h1> <h2> <h3> <h4> <h5> <h6> <img>
Save the settings. Now all of the above tags will be allowed.
http://www.lullabot.com/articles/drupal_input_formats_and_filters
Theming
http://drupal.org/theme-guide
http://www.apress.com/book/downloadfile/3486 (free Theming chapter from "Pro Drupal Development" book)
http://www.nerdliness.com/article/2007/09/10/drupal-theming
http://drupal.org/node/131039#comment-275308 (HowTo: Theme Taxonomy Term listing pages using Views)
http://theartlab.net/drupal-school-themeing-zen
http://theartlab.net/drupal-school-zengaged-themeing
http://theartlab.net/drupal-school-adding-block-regions
http://drupal.org/node/136506
http://drupal.org/node/104319 (Custom per-block templates)
Drupal pre-made Themes
Either to use as a core/basis for a custom theme, or to learn how certain things are done by opening the template files and having a look around, pre-made Drupal themes are a great resource. You can also harvest useful snippets from various themes and use them in your own theme.
http://themegarden.org
http://drupal.org/project/Themes (make sure "Filter by Drupal Core compatibility" is set to 5.x)
Working with CCK & Views
CCK and Views are a pair of arguably the most powerful modules in Drupal. CCK will allow you to make custom "fields" in your content types (e.g. instead of just the basic Title and Body, you can also add a field for "Summary" or even more cool things like images, audio, video and more, by means of installing a variety of CCK add-ons. When you add a new page of this kind to your site, you'll be prompted to fill in these additional fields, and you can customize how each field is displayed when the page is viewed (for instance, maybe you want your Summary to be in a blue box to the right of the rest of the page's content).
Views on the other hand can "list" your content in a variety of ways. For instance you can make a View that finds all of your "News" content, grabs just the Title, Summary, and Date fields out of it, and then displays that in a box on your home page or in your side bar. Or you can make a whole page View as well, such as a blog-style listing of your latest photo, audio, and video additions to your site.
http://drupal.org/node/168752#comment-263585 (Create a CCK type and random block view)
http://theartlab.net/drupal-school-custom-content-types ... agefield-contemplate
http://www.lullabot.com/articles/an_introduction_to_the_content_construction_kit (unless you are interested, skip over the scary looking parts and focus on the the various screenshots and the nearby text that describes them)
http://drupal.org/node/63230 (20 Steps to Views Happiness)
http://drupal.org/node/114642 (A beginners Guide to Using Views with Screenshots)
Making a custom photo (or audio/video) gallery (also good CCK/Views practice)
http://theartlab.net/drupal-school-009-maintainable-gallery
http://drupal.org/node/144725
Ways of making a custom front/home page
The most basic "built-in" front/home pages in Drupal are to either 1) Leave it as default in a "blog style" format where your latest content is displayed automatically on the home page, or 2) Create any page and set it to show as your home page at yoursite.com/admin/settings/site-information (set the "Default front page" value to the address of that page). This isn't an ideal way if you want "dynamic" content on your home page though, so fortunately there are a number of better options available.
- Views module (make a Page view that displays a listing of content that you want, theme the View using the Views Theming Wizard if you want, and set the address of the View to your home page the same way as mentioned above).
- Panels module (make a new Panel page consisting of various content pages, views, blocks and any other data, and set it to be the home page as listed above).
- Regions and Blocks (Will explain better later, though if you want to go this route: in your template.php file, define a set of Regions for use only on your home page, and print these Regions out (php print $region_name) in your page.tpl.php file, and surround all of these regions with <?php if ($is_front) : ?> ... <?php endif; ?> so that they will only be displayed when the home page of the site is being viewed. Add custom or default blocks to the regions from the Blocks administration page, and these blocks will now appear on your home page).
http://drupal.org/node/65064 (HowTo: build your frontpage with regions)
Recommended modules: Must haves
I haven't had a chance to look up all of the links to each of these, however you can find them easily by copying the name and doing a Find (e.g. in Firefox) on the modules listing page on Drupal.org. Make sure you first set "Filter by Drupal Core compatibility" to 5.x...
http://drupal.org/project/Modules/name
- CCK (see Working with CCK & Views)
- Views (see Working with CCK & Views)
- Contemplate (this module lets you override how fields in CCK are displayed in your theme on a more granular level - usually I only use the module to learn what code it would suggest, then copy/paste that into my theme files, since I prefer to keep everything related to theming together in real files).
- Imagefield (Lets you add images as a field in CCK. For instance you could have a field requiring an image with every news post. Imagefield works hand-in-hand with Imagecache module, allowing you to control the size of the images that will be shown on the page
- Devel (for basic users this module's a bit overkill, though very useful if you're developing a custom module of your own. Recommended though since it lets you easily clear the caches in case something gets jammed up, view a page as if you were a different user instead of admin, etc).
- Imagecache (Imagecache is amazing. What it allows you to do is to create "presets" that you can process your uploaded images with, making an unlimited number of derivative (resized, cropped, etc) versions of your image and never actually editing the original version). For instance, you can have a Thumbnail preset that is shown on teasers and listings, a Normal preset for when the image is viewed inside the page, and a Large version to show full screen using Thickbox module).
- Custom Breadcrumbs (breadcrumbs work automatically if the page is listed in the Menu system, but if your page isn't in the menu - for instance a news post, video, etc, this module lets you setup some rules to ensure those pages get breadcrumbs too).
- Global Redirect (important for search engine optimization - Drupal's Path module (or the contributed Pathauto module) can make friendly paths instead of node/43 for example (each node has a unique number)... however the same page is then accessible from node/43 and articles/some-name (or whatever you call it). Global Redirect adds a setting to ensure that node/43 automatically sends you to articles/some-name, making it just a single path leading to that page).
- Paging (allows you to break content into multiple pages using a simple tag, or a "Drupalbreak" toolbar button if you use TinyMCE or FCKEditor).
- Pathauto (automatically adds "search engine friendly" URLs to all your pages, according to rules you set).
- Token (a prerequisite module that gives functionality to other modules, such as Pathauto above)
- SimpleMenu or Drupal Administration Menu (adds a dynamic hierarchical menu system to the top of the page. Drupal Administration Menu shows just the admin menu, while SimpleMenu can be used for that and show other "visitor accessible" menus as well. I used SimpleMenu because I add an admin-visible-only "Shortcuts" menu that I use to list all of my most commonly accessed pages and tools).
- Thickbox (a great way of automatically showing a full screen view of a photo when a visitor clicks on a thumbnail image on the page).
- Update status (will be part of Drupal 6 core... makes it super easy to keep your modules up to date, and notifies you whenever there are security patches available).
- Panels (lets you pull a wide variety of pages, views, blocks, and other content using a visual UI and arrange them as a single page using preset or custom layouts of columns and rows (the new alpha 2.x version even lets you drag and drop the content around between panels, among many other new features)... you can get a similar end result with manual coding in your theme, but this makes it sooo easy. This is handy not only for designing your site's home page, but also designing more complex section pages or other special pages on your site where you want to mix together and list a variety of content).
- JQuery Update (updates Drupal's version of jQuery so you can make use of more modern jQuery plug-ins).
Recommended Modules: Nice-to-have, or If you need 'em
- Image (not my favorite as I prefer Imagefield+Imagecache, but if you need images inline within your content, Image module plus the Img_Assist module are one of the best ways for now, since this is the one major shortcoming of Imagefield. Alternately you can always write the HTML img tags and avoid this issue).
- Img_Assist (as mentioned above, an add-on that facilitates adding images "inline" into content).
- IMCE (has a horrible interface, but worth giving a try - allows you to insert images inline into content without requiring Image module - the images are just normal files uploaded to your server).
- Printer-friendly pages (adds a customizable printer friendly version of every page).
- SmartyPants (converts plain text quotes and dashes into typographically-correct characters)
- Full WYSIWYG editors: TinyMCE, FCKEditor
- Basic code editors/helpers: BBCode with BBCode Formatting Bar, Quicktags (which adds buttons to insert basic HTML or BBCode),Textile, Texy
- Node Queue (allows you to select pages and queue them up in a certain order... you can then manually rotate through the list, or automatically using Actions module).
- Actions (will be part of Drupal 6 core)
- Workflow
- Javascript Tools (in particular, I'm a fan of the Active Menu sub-module)
- XML Sitemap (automatically generates a Google sitemap based on your site's content).
- Persistent Login (adds a "Remember me" checkbox to keep users logged in)
- Find URL Alias (helpful for locating a path alias when you have a large number of them)
- HTML Correcter (will be part of Drupal 6 core)
- Menu scout (helpful dynamic search to quickly find things in the Admin panel)
- JQuery Interface (adds support for the jQuery Interface add-on... only install this if other modules request it).
- Page title (custom control of page <title> instead of using the node title)
- Custom Pagers (adds previous and next links on content types of your choice, allowing visitors to cycle through the articles of that type).
- SimpleNews (a really nice integrated newsletter system, that ties in directly with your site's registered users and allows them to control their subscriptions through their account options).
... there are also a number of choices for modules dealing with audio/video, which I'll go into later.
Various common questions - will add more later
http://drupal.org/node/58562#comment-266358 (How to customize "Site offline" page with my logo?)
Special topics to cover in detail - will add later
- Recommended image handling based on use cases (e.g. personal site with knowledgeable user, site for clients, etc).
- Setting up TinyMCE "perfectly"
- Properly adding CSS and JS files using template.php so they override all system and module styles, as well as get included in Drupal's optional CSS aggregator/compressor (for Performance improvement).
- Personal recommended CSS tweaks for usability
- Taxonomy (Drupal's content categorization module)
Special groups of links on tricky issues - will add later
- Theming CCK forms (and how to make a variety of changes with nothing but plain CSS)
- Changing the "read more" and Links area
- Image form buttons
Tips and Tricks - will add
- Useful items for your Bookmarks Toolbar
- Making a "Shortcuts" menu with SimpleMenu for rapid access to your most used pages
___________________
-- Dave
Neverside Admin
absolutecross.com
Last edited by AbsoluteCross, November 7th, 2007 10:16 PM (Edited 8 times)