Drupal Introduction and First Time User Guide

This page is developed based on information on Drupal.org and elsewhere in the net. External links to videos and drupal site is provided for additional informations.

Understand the system and unleash its potential

Drupal is a free and Open Source Content Management System (CMS) to maintain and publish an internet web site or a company/group intranet site.

If you are still thinking about whether drupal is best CMS out there then your search ends here. See it for yourself!

If you are an individual, thinking about Drupal for your website then you will identify various methods to approach drupal based on your skill set.
If you are comparing with other online website builders/editors then you can learn drupal and start using it on www.drupalgardens.com by Acquia. It is a visual way to theme and design drupal. If you don’t want to work with Drupal 7 on DrupalGardens due its beta status and limitation to get support from contributed modules which are not ready for Drupal 7 yet then you can download your copy of stable drupal release on www.drupal.org. Or you can download pre-selected set of modules for a certain site, see step B of this page.

If you are an individual interested in just a blog site or looking for simple point-n-click CMS then there are other options available such as WordPress (with Buddypress plugin), Ning, OpenJournal, Squarespace, etc. With Drupal you have advantage of structuring your site and building content with all the freedom you need to make it a unique experience for site visitors. However, you will require to learn and familiarize it before you can truly use it as a powerful CMS.

Drupal.org Links:

Drupal basics and terminology

  • Node or Content Type: A node in Drupal is the generic term for a piece of content on your web site. Each node on your site has a Content Type. It also has a Node ID, a Title, a creation date, an author (a user on the site), a Body (which may be ignored/omitted for some content types), and some other properties. Some examples of nodes are ‘Pages in books’, ‘Discussion topics in forums’, ‘Entries in blogs’, ‘News article stories’, etc. By using modules such as the contributed Content Construction Kit (CCK) module, the core Taxonomy module, and the contributed Location module, you can add fields and other properties to your nodes.
  • Comments: Comments are another type of content you can have on your site (if you have enabled the core Comment module). Each comment is a typically small piece of content that a user submits, attached to a particular node. For example, each piece of discussion attached to a particular forum topic node is a comment.
  • User, Permission, Role: Every visitor to your site, whether they have an account and log in or visit the site anonymously, is considered a user to Drupal. Each user has a numeric user ID, and non-anonymous users also have a user name and an email address. Anonymous users have a user ID of zero (0). The user with user ID one (1), which is the user account you create when you install Drupal, is special. Other users on your site can be assigned permissions via roles. To do this, you first need to create a role, which you might call “Content editor” or “Member”. Next, you will assign permissions to that role. Drupal permissions are quite flexible – you are allowed to assign permission for any task to any role.
  • Taxonomy: Drupal has a system for classifying content, which is known as taxonomy and implemented in the core Taxonomy module. You can define your own vocabularies (groups of taxonomy terms), and add terms to each vocabulary. Vocabularies can be flat or hierarchical, can allow single or multiple selection, and can also be “free tagging” (meaning that when creating or editing content, you can add new terms on the fly). Each vocabulary can then be attached to one or more content types, and in this way, nodes on your site can be grouped into categories, tagged, or classified in any way you choose.
  • Modules: A module is software (code) that extends Drupal features and/or functionality. Core modules are those included with the main download of Drupal, and you can turn on their functionality without installing additional software. Contributed modules are downloaded from the Modules download section of drupal.org, and installed within your Drupal installation. You can also create your own modules; this requires a thorough understanding of Drupal, PHP programming, and Drupal’s module API.
  • Themes: The theme controls how your site is displayed, including the graphic look, layout, and colors. A theme consists of one or more PHP files that define the HTML output of your site’s pages, along with one or more CSS files that define the layout, fonts, colors, and other styles.
  • Region, Block, Menu: Pages on your Drupal site are laid out in regions, which can include the header, footer, sidebars, and main content section; your theme may define additional regions.Blocks are discrete chunks of information that are displayed in the regions of your site’s pages. Blocks can take the form of menus (which are concerned with site navigation), the output from modules (e.g., hot forum topics), or dynamic and static chunks of information that you’ve created yourself (e.g., a list of upcoming events).There are three standard menus in Drupal: Primary Links, Secondary Links, and Navigation. Primary and Secondary links are built by site administrators, and displayed automatically in the page header of many themes (if not, you can enable their blocks to display them). Navigation is the catch-all menu that contains your administration menus, as well as links supplied by modules on your site. You can also create your own custom menus, and display them by enabling their blocks. In all cases a menu item will only be shown to a visitor if they have the rights to view the page it links to; e.g., the admin menu item is not shown to visitors who are not logged in.

Core Modules and 50+ Example Contributed Modules

  2. Content Construction Kit (CCK) :
  3. Panels :
  4. Composite Layouts :
  5. Organic Groups :
  6. Advanced Forum :
  7. Front Page :
  8. Ubercart :
  9. Location :
  10. Simple News :
  11. Google Analytics :
  12. Advanced Profile Kit :
  13. Activity :
  14. Heartbeat :
  15. Wysiwyg API :
  16. Dashboard :
  17. Administration Dashboard :
  18. Embedded Media Field :
  19. Printer, Email and PDF Versions :
  20. Date module and Date API module :
  21. Calender :
  22. Add This button :
  23. Facebook Connect :
  24. Contact Importer :
  25. Invite :
  26. Author Pane :
  27. XML Sitemap :
  28. Galleria :
  29. Views Galleria :
  30. Views carousel :
  31. Voting API :
  32. Fivestar :
  33. Filefield :
  34. Filedepot :
  35. Imagecache + Image Field OR Image + Image Assist :
  36. Lightbox2 :
  37. Ping.fm :
  38. Rules :
  39. Token :
  40. Messaging and Notifications :

Video hosting (External or Internal) Modules:
Depending whether you need to host your videos on your own server and use your own bandwidth, or host externally, you can use the modules in the way you need. There are cheap external space and bandwidth providers like Amazon S3. Where as there are free external video hosting sites for you like Blip.tv, Dailymotion, Youtube, and commercial ones as well. Note that in D7 there is an attempt to combine the needs of all media types such as image, video, audio, documents, etc in one combined Media module. However, it is only available for D7 version only.

  1. Embedded Media Module: Provides embed code options for users with a CCK filed in your content type. Provides embed code filter for various video/audio/image/presentation sharing sites including Blip.tv , Dialy Motion, YouTube, Slideshare, Odeo and many others.
  2. Media Mover: Video upload, encoding, and local or Amazon S3 storage/bandwidth options. Amazon S3 provide low cost external per GB storage rate and per GB bandwidth rates. Check pricing here, http://aws.amazon.com/s3/pricing/ . Can be used along with ‘Embedded Media Field’ Module and ‘Media: Youtube’ module to upload videos and host them on Youtube (Aaron guided me out here in the Video Group in Drupal). Similar framework is available for ‘Media: Blip.tv’, ‘Media: Dailymotion’ but yet to implemented.
  3. FlashVideo: Video upload, encoding, and local or Amazon S3 storage/bandwidth options.
  4. Video: Video upload, encoding, and local or Amazon S3 storage/bandwidth options.
  5. Video Upload: Provides simple upload and embed features to users to Youtube.
  6. CDN2 Video: Video upload and embed for users, and provides external encoding and storage/bandwidth options with their servers at WorkHabit.com. Offers Transcoding at $2.50/GB for all regular videos $4.00/GB for all hd videos; and Delivery at $0.50/GB for all data transferred.
  7. Vimeo: Provides simple upload and embed features to users to Vimeo. Free account with 500MB per week limit.
  8. Media: Provides all media related features for audio/video/image/document files, but only for D7. Has integration for external hosting provider plug-in but i guess with with embed code option.
  9. Blue Droplet Video: Upload and embed option for external hosting yet to be posted for D6.
  10. Cincopa.com Multimedia Galleries: Provides upload and embed features to users to Cincopa.com Has both free and paid services with limited storage space.
  11. Viddler: Provides upload and embed features to users to Viddler.com at $100 for initial 50 GB.
  12. Kaltura: External Fully Hosted platform. Service offers start at $299 per month.
  13. MediaFront: Free media player solution.

Steps to build your site
Steps to build a basic site with dynamic content:

  1. Learn Drupal, Familiarize with drupal administration & basic terminology, Learn important drupal modules such as CCK, Views, Panels, Taxonomy, Skinr, Blocks, Menus, etc.
  2. Plan your site. This should be the most important and time consuming step. Draw the functionalities (not the modules required) that is needed in your site.
  3. Plan your site structure, using Taxonomy / Organic Groups / NodeReference modules. You may use either one of them or a combination of them. Taxonomy is a preferred option since it is part of core and brings with itself inbuilt Views pages for each Taxonomy Term, apart from being truly scalable option. If you need to combine a group of content types to relate to a group of content then you can consider using CCK NodeReference. You can use Taxonomy Acess Control or Node Access Control to restrict certain user roles. If need to group some content types and provide community options such as mailing list, then consider Organic Groups module which has inherent feature to work with Messaging and Notifications module. With Organic Groups module you can create and associate any number of content types, For eg. Blog, Wiki, Events/Calender, To-do list, Documents, Discussion, Chat/Conference, etc.
  4. Make a live checklist to list and update of all activities you plan to implement in your drupal site. This will help you keep track of where you are in completing your site, and gives you a know-how of your site for future upgrades/changes
  5. Theme your site.
  6. Consider using a distribution/installation profile, if one of them matches your needs, or if you are starting for first time. This will also help to avoid a lot of media handling/ management activities, which can be confusing and cumbersome for first timers.
  7. Plan your website homepage, sub-pages. Build complex page layouts with views, panels, blocks.
  8. Create a new Content Type or use one of the existing ones like Page, Story. If creating new content types add fields as required. Note the fields you create are list able in your Views listings. You can also reference other Content Types / Nodes, in your new Content Type using CCK NodeReference.
  9. Set up WYSIWYG editor. Along with it you must set up allowed HTML filters ( admin/settings/filters) for it to work correctly.
  10. Check permissions after every module install.
  11. Set up primary Menu. You can also use Taxonomy Menu module to automate creating/updating your menu.
  12. Keep a checklist of things to do before going from an under construction site to a production site. Eg. Back and Migrate Module to migrate your site database, Site Testing, Set up caching to enable site to handle high page loads, Change localhost to your site name for some APIs like Google Maps in Gmaps module, Remove any dummy content created with Devel module, Remove switch user block created by devel module, etc.
  13. Set up user profiles, user registration workflow.

Optional: Additional features to enhance your site.

  1. Set up Invite and Contact Importer modules.
  2. Set up Voting API and Fivestar module.
  3. Set up Slideshow modules such as Views Slideshow.
  4. Set up Tabs module such as QuickTabs to fit more information in small space.
  5. Set up Featured posts to list in the order according to the administrator, like Nodequeue module.
  6. Set up Advertising modules.
  7. Set up Spam protection with external service like Mollom.
  8. Set up SEO related modules and site enhancements. Set up XML Sitemap module. Set up related posts module for more user activity on your site. Set up Add This module and PDF, Email & Print Module. Set up site statistics module such as Google webpage statistics module.
  9. Set up Apache Solr or Faceted Search module.
  10. Build a more media rich site with Location+GMap Module (Check this tutorial by DrupalTherapy), Embedded Media Field Module, etc. Add fields in your content types. Use GMap in Views to display Map with particular content types over a region in the map.
  11. Set up externally or internally hosted Video in your site.
  12. Set up date and time module, create calenders and Events (you can try drupal distribution/installation profiles for pre-setup).

Further steps to build a more complex site:

  1. Using Views Arguments and Panels Pane Context to automate creation of your site sub-pages. Check out this great tutorial by DrupalEasy.
  2. Using Hierarchical Select (module) for Taxonomy to allow site users to create Taxonomy Terms from Level 2 onwards, in community managed sites.
  3. Using Rules or Actions+Trigger to automate site workflow. Eg. On new user registration assign groups, send notification. Use Pageroute module or Rules to automate workflow during user registration
  4. Set up Messaging and Notifications Modules (required for Organic Gorups module).
  5. Internationalize with Drupal and extend its core multilingual capabilities with additional modules
This entry was posted in Getting Started - Drupal. Bookmark the permalink.

Comments are closed.