This page is written to help new drupal users to overcome the Drupal learning curve in a snap! I will update this page as I learn Drupal.
This page is developed based on information on Drupal.org and elsewhere in the net. External links to videos and Drupal sites are provided for additional informations.
- What is Drupal: Understand the system and unleash its potential
- Installation: Test driving Drupal on your PC
- Drupal Installation / Distribution Profiles to Jumpstart your full featured Drupal Site
- Drupal Information: Quick Links
- Learn Drupal: Drupal basics and terminology
- Learn Drupal: Core Modules and 50+ Example Contributed Modules
- Learn Drupal: How to find your set of Modules, Some Tips
- Learn Drupal: Steps to build your site
- Learn Drupal: Learning about important modules - Views, Panels and CCK
- Learn Drupal: Site structure and Layout using Taxonomy, Panels, Views, Menus, Blocks and Themes
- Learn Drupal: Advanced Topics: CCK Node Reference v/s Taxonomy
- Learn Drupal: Advanced Topics: Custom Content Types using CCK. Enhance with Views, Panels
- Learn Drupal: Advanced Topics: Custom Panel Page or Theme for Content Type
A. What is Drupal: 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 wondering whether drupal is the 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 Drupal with other online website builders/editors then you can start learning Drupal by using it on www.drupalgardens.com by Acquia. It uses a visual method of theming and designing Drupal. If you don't want to work with Drupal 7 on DrupalGardens due its beta status and limitation in get support from contributed modules which are not ready for Drupal 7 yet, then you can download your copy of a stable drupal release on www.drupal.org. Alternatively you can download pre-selected sets 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, Wix, Squarespace, Yahoo, etc. With Drupal you have the 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 be required to learn and familiarize yourself with it before you can truly use it to its full potential as a powerful CMS.
If you are a company or need more support then you can get support from sites such as www.acquia.com , www.lullabot.com , www.Palantir.net , www.phase2technology.com , www.developmentseed.org , www.chapterthree.com , www.advomatic.com , www.playgroundgroup.com , www.website-express.co.uk or find many more here http://drupal.org/paid-services. A typical website project may cost in excess of 10,000 or 15,000 USD with a duration of 12+ weeks or 150+hours.
B. Installing on your PC to test drive it
I recommend that you go ahead and install a Drupal copy on your local PC right now before reading any further!
Here are the steps:
- Download XAMPP Lite from http://www.apachefriends.org/en/xampp-windows.html#646 and install it on your C:\
- Download the latest copy of Drupal from www.drupal.org and Unzip it in C:\xampp\htdocs
- Copy & paste the file "default.settings.php" in "c:\xampp\htdocs\drupal\sites\default", under the drupal directory, and rename it to "settings.php"
- Run XAMPP Control Panel. Check “svc” box for Apache and click Apache Start. Do not click the “svc” box for MySql, but do click the START button for MySql. When both Apache and MySql change from “start” to “running”, click the “Admin” button next to MySql. Type a database name like "drupal" and create database. For added security you can browse to http://localhost/security/xamppsecurity.php and enter the MySQL username and password
- In your browser go to http://localhost/drupal/install.php and follow the instructions. Enter your database name with the username "root". You can verify your database details at http://localhost/phpmyadmin
For a more step by step instructions see, http://drupal.org/node/749846
Alternatively, you can install WAMP and run Drupal.
C. Drupal Installation / Distribution Profiles to Jumpstart your full featured Drupal Site
Before we get into the world of drupal and how to control it to acheive your dream site up and running, lets explore the power of drupal installation/distribution profiles.
Installation profiles are Customized "distributions" that enable and configure a set of modules, content types and other settings that work together for a specific kind of site.
Distribution profile is a Drupal distribution pre-packaged with essential contrib modules.
Check out some examples here:
- Acquia Drupal - A collection of essential Drupal software, packaged together to build dynamic community websites faster. Free Drupal with optional paid support. There is also a stack installer for test sites on PC. Check here, http://acquia.com/products-services/acquia-drupal
- Drupal Commons - a distribution coming to quickly build and customize external communities and social collaboration applications. Builds on Organic Groups module and sets up all social modules for you. Check here, http://acquia.com/products-services/drupal-commons
- OpenPublish - a packaged distribution tailored to the needs of online publishers. A media rich set up for you. Check here, http://openpublishapp.com/ If you have installation problems try increasing "php_value max_execution_time" in the .htacess file in your Drupal folder, to something say 600 seconds.
- Prosepoint - an online newspaper site for you. Check here, www.prosepoint.org
- Open Atrium - An intranet/extranet that allows teams to have their own conversations, weblogs, wiki pages, calendars, to-do lists, a shoutbox, and a dashboard to manage it all. Check here, http://openatrium.com/
- OpenScholar is a Drupal distribution pre-configured for higher education institutions. Universities and colleges are enabled to streamline the process of creating turnkey websites for professors, researchers, and students. Check here, http://openscholar.harvard.edu
- Openpublic - Open Government site install. Check here, http://openpublicapp.com/
- VoiceBox - an installation profile designed for use by community and grassroots media organizations; it also has uses within schools and learning organizations. Check here, http://code.funnymonkey.com/project/voicebox
- Drupal Gardens - not a distribution or installation profile but worth a mention here. Work on Drupal 7 through this online free web service from Acquia. You are limited to a set of contributed modules which is provided to all. You can visually theme and structure your website with the power of Drupal 7 (D7). You may at any time consider to migrate your website and enhance with further modules. However, most modules are not ready for D7 release yet. Check here, www.drupalgardens.com
- Drupal Camp, Conference, Meet-up Site distribution. This By Them worked with LA Drupal organizers to design and develop for http://2009.DrupalCampLA.com . Get the distribution from here, http://drupal.org/node/519100/#download
- Check here for more Drupal Distributions http://drupal.org/node/306267
- Check here for more Drupal Installations http://drupal.org/project/installation+profiles
D. Drupal Information: Quick Links
Here are some links to get you to drupal information quickly.
- Drupal Handbooks - Handbooks for Site Structure or Site Building
- Drupal Community Links: Drupal Discussion Forum - Search or Ask a query. Drupal IRC - Chat with drupallers for quick help and mentoring.
- Drupal Modules - Search by 'relevancy' or 'most installed'
- Drupal Events - You may visit a drupal event or attend a webinar
- Drupal Case Studies and Drupal Showcases - Check out these drupal case studies of some great websites and learn how they utilised drupal to develop their website. Know which modules they used and how did they structure and theme their site. Some examples are http://drupal.org/node/858914 and http://drupal.org/node/763304
Drupal Video Tutorials:
- Lullabot Videos (Recommended) - A better way to start your drupal experience by buying these excellent videos developed by the Lullabot Team. Useful videos for beginners would be "Understanding Drupal", "Site Building+Administering" & "CCK+Views".
- Learn By The Drop Videos - Well described series of drupal videos. You can view the bigginer videos and buy for premium videos.
- Drupal.org Videos : Getting Started With Drupal video series from Learn By The Drop
- BuildAModule.com : Great series of videos By Chris Shattuck on a variety of topics, from basic site configuration to building modules.
- MustardSeed : Excellent videos by Bob from Mustardseed.
- Drupal Therapy - Learn from these excellent free videos by Sean Effel, which are created to cover specific subjects.
- BoldSource - See this excellent workshop video on Views 2. Views will be the singlemost powerful drupal module that you will use!
- Got Drupal : Videos for every popular drupal topic by Matt Petrowsky
- Direct Links to Highest Quality Videos from Drupalcon DC 2009
- Drupal Love- 50 Drupal 6 videos to help you climb the Drupal learning curve. A structured list of drupal video tutorials from various sources of web.
Lesson #01: Installing Drupal On A Localhost
Lesson #02: Basic Site Configuration
Lesson #03: Installing A Contributed Theme
Lesson #04: Adding Important Contributed Modules
Lesson #05: Creating Content On Your Site
Lesson #06: Categorizing Content On Your Site
Lesson #07: Embedding Rich Media In Your Posts
Lesson #08: Customizing The Front Page Of Your Site
Lesson #09: Moving Localhost Site To The Web
Lesson #10: Site Administration Basics
Lesson #11: Configuring Comments And A Contact Form
Lesson #12: Content Ratings And Sharing Links
Lesson #13: Configuring User Profiles
Lesson #14: Multi-User Blog Setup
Lesson #15: Adding Community Features
E. Learn Drupal: 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.
F. Learn Drupal: Core Modules and 50+ Example Contributed Modules
- Content Construction Kit (CCK)
- Organic Groups
- Advanced Forum
- Case Tracker
- Messaging and Notifications
- Simple News
- Location + GMap
- Voting API + Fivestar
- Filefield (D6) / Filedepot (D6)
- Imagecache + Image Field (D6) OR Image (D6) + Image Assist
- Insert (to upload images as fields and insert as inline images into wysiwyg editor) + FileField Sources (to provide browse server for photos option to filefield/imagefield/insert) + IMCE(to use image browser with FileField Sources)
- Embedded Media Field
- Date module and Date API module
- Hierarchical Select
- Wysiwyg API + CKEditor
- Better Formats
- MIME Mail
- Panels / Context layouts
- Composite Layouts / Display Suite
- Activity / Heartbeat
- Administration Dashboard/Menu
- Author Pane
- Google Analytics / Clicky
- XML Sitemap
- Meta Tags (D7) / Nodewords (D6)
- Pathauto (automatically generates URL/path aliases)
- Global Redirect
- Add This button / Share This
- Facebook Connect / Drupal for Facebook
- Contact Importer + Invite
- Views Slideshow
- Flex Slider
- EasyAccordion for Views (Horizontal Accordion) / Views Accordion (Vertical Accordion)
- Nodequeue / DraggableViews / Flag (Flag Weights submodule)
- Quick Tabs
- Mollom (free+paid options)
- CAPTCHA + reCAPTCHA + Hidden CAPTCHA / Spamicide + BOTCHA (free)
- Webform (Creating various forms like Contact us, etc)
- Back-up and Migrate
- Printer, Email and PDF Versions
- Front Page
- Drupal Chat
- Chaos tool suite (ctools)
- Modal forms (with ctools)
- Omega (Responsive theme)
Creating new content/node types: Adding your own fields
Querying on various parameters (fields, arguments/conditions, relationship, sort criteria, filters etc) and presenting them
Triggering different Conditions+Reactions on various Events
Groups, Forums, Projects
Notifications, Subscriptions, Newsletters
E-commerce / Shopping Cart
Adding various fields types into your node/content types
Adding bits of text via placeholders generating automatic/dynamic texts in various Forms, Email, etc
Rich text user experience
Building dynamic layouts/web pages of various pieces of content
Dashboard, Activity Feeds, Aggregate RSS/Atom feeds
Analytics, SEO, Sharing, Bookmarking, Monetizing
Importing Contacts and Senging Invitation through Email / Social Channels
Galleries and Modal Windows
Content Ordering/ Arbitrary List of Articles
Other Utility Tools
Opening multiple Forms in Model window (Requires coding)
Copying various functionalities of one site to another
Themes (Not a Module)
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.
- 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.
- 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.
- FlashVideo: Video upload, encoding, and local or Amazon S3 storage/bandwidth options.
- Video: Video upload, encoding, and local or Amazon S3 storage/bandwidth options.
- Video Upload: Provides simple upload and embed features to users to Youtube.
- 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.
- Vimeo: Provides simple upload and embed features to users to Vimeo. Free account with 500MB per week limit.
- 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.
- Blue Droplet Video: Upload and embed option for external hosting yet to be posted for D6.
- Cincopa.com Multimedia Galleries: Provides upload and embed features to users to Cincopa.com Has both free and paid services with limited storage space.
- Viddler: Provides upload and embed features to users to Viddler.com at $100 for initial 50 GB.
- Kaltura: External Fully Hosted platform. Service offers start at $299 per month.
- MediaFront: Free media player solution.
G. Learn Drupal: Steps to build your site
Steps to build a basic site with dynamic content:
- Learn Drupal, Familiarize with drupal administration & basic terminology, Learn important drupal modules such as CCK, Views, Panels, Taxonomy, Skinr, Blocks, Menus, etc.
- 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.
- 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.
- 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
- Theme your site.
- 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.
- Plan your website homepage, sub-pages. Build complex page layouts with views, panels, blocks.
- 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.
- Set up WYSIWYG editor. Along with it you must set up allowed HTML filters ( admin/settings/filters) for it to work correctly.
- Check permissions after every module install.
- Set up primary Menu. You can also use Taxonomy Menu module to automate creating/updating your menu.
- 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.
- Set up user profiles, user registration workflow.
Optional: Additional features to enhance your site.
- Set up Invite and Contact Importer modules.
- Set up Voting API and Fivestar module.
- Set up Slideshow modules such as Views Slideshow.
- Set up Tabs module such as QuickTabs to fit more information in small space.
- Set up Featured posts to list in the order according to the administrator, like Nodequeue module.
- Set up Advertising modules like ‘Advertisement’ (Ad) module OR (Google) Adsense Module. Adsense modules is good for starters. Ad module is good for popular sites with ad marketing directly to advertisers.
- Set up Spam protection with external service like Mollom (free+paid options) OR CAPTCHA + reCAPTCHA + Hidden CAPTCHA / Spamicide + BOTCHA (free) OR Spam.
- Set up SEO related modules and site enhancements. (a) Set up XML Sitemap module. (b) Set up related posts module for more user activity on your site. (c) Set up 'Add This' module and PDF, Email & Print Module. (d) Set up site statistics module such as Google Analytics module. (e) Nodewords (D6) / Metatag (D7). (f) SEO Checklist. (f) WordFilter (creates an Input Filter to filter out bad words being posted on site).
- Set up Apache Solr or Faceted Search module.
- 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.
- Set up externally or internally hosted Video in your site.
- Set up Contact Us form using Webform Module
- Set up date and time module, create calenders and Events (you can try drupal distribution/installation profiles for pre-setup).
- Chat room / Conferencing using DrupalChat / XMPP modules.
Further steps to build a more complex site:
- Using Views Arguments and Panels Pane Context to automate creation of your site sub-pages. Check out this great tutorial by DrupalEasy.
- Using Hierarchical Select (module) for Taxonomy to allow site users to create Taxonomy Terms from Level 2 onwards, in community managed sites.
- 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
- Set up Messaging and Notifications Modules (required for Organic Gorups module).
- Internationalize with Drupal and extend its core multilingual capabilities with additional modules
H. Learn Drupal: Learn important modules
1. Learn Views Module: Video
Check this learning session on Views. http://drupal-la.blip.tv/file/2183112/
2. Learn Panels Module: Video
Check this video from GotDrupal to get you started with Panels. http://gotdrupal.com/videos/drupal-panels
3. Understanding CCK: Video
Learn CCK Basics. http://gotdrupal.com/videos/understanding-drupal-content-types-cck
I. User Management Modules
- Content Profile(D6): Use this module to make profiles as nodes. It supports separate profiles for different roles. Will provide some sort of upgrade path to Profile 2 in D7. Content Profile also works with Auto Asign Roles Module, which provides various options for role/profile selection/assignment.
- Profile 2(D7): Users get two separate menu links "My account" and "My profile". Profile2 allows for creating multiple profile types, which may be assigned to roles. Supports private profile fields, which are only shown to the user owning the profile. Optionally, profile forms are shown during user account registration. With the new concept of entities in Drupal 7, this module supersedes content profile as general solution. However for any situations where profiles as nodes might be preferable, content profile for Drupal 7 will build upon profile2.
- Advanced Profile Kit(D6): Provides building blocks for putting together fancy user profile pages with Page Manager & Panels. Makes use of panels and views (Note: You can create Profile pages using either Panels or Context/Context Layouts, without this module. Refer Drupal Commons v2.0 distribution for a sample). Module maintainer says that there won't be a 7.x version unless someone else wants to take it over. Also that Profile2 and Page Manager don't play nice together so porting isn't even possible until that happens.
- Homebox (D6/D7): Allow users to have dashboards with blocks as widgets. Blocks in a Homebox page are resizeable, and reorderable by dragging. Homebox is currently used on Drupal.org for the 'Your Dashboard' feature. Integrates with Views 2 and its exposed Ajax filters.
User Login and Registration:
- Admin >> User Management >> Profiles (D6): Select which fields you want 'visible in user registration'.
- LoginToboggan(D6/D7): Allow users to login using either their username OR their e-mail address. Allow users to login immediately. Provide a login form on Access Denied pages. Customize the registration form. Redirect the user to a specific page. Integrates with Rules module to do various tasks.
- Pageroute(D6): Use the module to create a "route" which leads users through multiple pages, which can be e.g. a node creation form or a node display (using Content Profile module in D6). Profile setup for Drupal 6 works along side the pageroute module to provide additional page types.
- Multi-step user registration form using CTools form wizard: If the above pageroute+profile_setup modules doesn't work for, and if you know PHP programming then you can make use of Drupal's Form API (FAPI) and Ctools Form wizard API to build multi-step user registration form. See here.
- modal_forms (D7) / ajax_register (D6) / modalframe_contrib (D6): Enable user registration in a lightbox / ajax pop-up
- Register with Picture (D6) / user_reg_picture module (D6) / Profile pictures (D6): Enable user picture upload during registration
Social integration with User registration/Sending invites:
- Drupal for Facebook OR Similar other modules (D6/D7): Allow new users to login/register using their Facebook login. These modules provide much more than this functionality.
- Contact Importer (D6/D7) + Invite (D6) : Use this free solution to allow new users to send invites to their email contacts in Gmail/Yahoo, etc. Invite module can work along with User Relationships to automatically asign friend relation to users accepting the invite with the user inviting them.
- Gigya - Social optimization (D6/D7): Allow new users to login/register usign GIGYA's API which provides integration with many social websites such as Facebook/Twitter/etc. You can allow your users to send invites to their contacts as well. GIGYA provides upto 1000 members free, after which it is a commercial service with reportedly high costs (see here, http://drupal.org/node/769272).
- Janrain Engage (formerly RPX) (D6/D7): Allow new users to login/register usign JANRAIN's API which provides integration with many social websites such as Facebook/Twitter/etc. It is not clear whether you can allow users to send invites or not. It is a commercial service, e.g. $10/mo./5000users, $1000/yr./10000users.
Asign role / different profile to users:
- Auto Asign Roles Module (D6): Provides various options for role/profile selection/assignment.
- Profile role (D6/D7): Relate profile field categories to particular roles, instead of all fields being related to all roles.
- Profile 2(D7): Profile2 allows for creating multiple profile types, which may be assigned to roles.
User Taxonomy in User Profiles:
- User Terms (D6): Allows a site administrator to assign taxonomy vocabularies to users (If you are using core profile in D6 and not Content profile), from which terms can be applied to users and shown on account pages.
- Profile Taxonomy (D6): Profile Taxonomy enables the assignment of taxonomy terms to user profiles. Same as User Terms module.
- Content Profile(D6): Since this module makes profiles as nodes, you can associate taxonomy to this node type.
- Profile 2(D7): This module provides a new, fieldable 'profile' entity - leverage the power of fields. In D6, taxonomy had to be associated to node types. However, in D7, taxonomy is a field and can be added to node/entity.
J. Publishing Workflow
How to set up publishing workflow so that admin / role-with-appropriate-permissions approves all content before being published.
- You may turn off "Published" option in your content type settings under workflow tab and create a (moderator) role able to publish, then create a View (only visible for moderators) with handy Fasttoggle integration for rapid moderation. If publishing needs to be available only for the site admin (user 1) then simply go to >> Site building >> Content >> Sort by unpublished content (you may want to enable Actions+Trigger or Rules to fire an email to admin when an unpublished content is created and send an email to contributor when it is published by admin).
- Using Workflow module (Tutorial: http://answers.oreilly.com/topic/1549-how-to-setup-a-drupal-publishing-w...)
- Using Rules module (Tutorial: http://drupal.org/node/550716)
- Using Actions+Trigger modules (part of core in D6)
- Custom modules like: save_as_draft (for any user with adminster type permissions) / revision_moderation (for admins only) / modr8 / content_moderation
- Custom module like: 'revisioning' module (recommended by revision_moderation) - integrates with Rules / Workflow / Trigger / Module_Grants - See Tutorial here, http://drupal.org/node/408968
Example Workflow Scenario:
- User creates content, Saves as Draft (no action is taken). Keeps editing content until it is ready.
- User Clicks on 'Send to Admin for Review & Publsihing'. User may edit / may not edit until content gets published
- Admin/Moderator logs in and views Pending Approval Content List in the Dashboard or some path. Optionally Admin gets an email when new unpublished content is created.
- Admin/Moderator reviews and approves it as published. User gets email message that content is published (requires some condition & reaction or custom module to send email).
- Alternatively Admin/Moderator promts User that the Content Needs Work with log message / some message. User gets email to re-submit for publishing (requires some condition & reaction or custom module to send email).
- Optionally Admin may use Diff module to view changes from previous revisions submitted by User.
- Set up which Content Types/ Nodes require approval/publishing workflow.
Some preferred solutions:
- For simple workflow requirements like above (e.g. for Admin) you may consider Actions+Triggers modules
- For a more flexible and powerful solution use Rules module (Tutorial: http://drupal.org/node/550716)
Publishing Workflow Using RULES and CCK
Refer attached file (see bottom of this article) for instructions.
K. Drupal Website Hosting
Types of hosting:
- Shared web host (CPU, RAM, resources shared with 100s-1000s others on a single server). E.g. Godaddy, HostGator, A2Hosting, Yahoo Web Hosting (provides 1000emails @yoursite), etc.
- VPS web host (Guaranteed CPU, RAM. One server shares multiple Virtual machines)
- Cloud web host (Guaranteed CPU, RAM. Resources expandable, and not limited to one server). E.g. Rackspace, Amazon EC2, MediaTemple, GoGrid, etc.
- Dedicated web host (A single or series of multiple server dedicated to your use). E.g. FDC server, LeaseWeb, Burst.net etc.
Types of hosting services:
- Fully managed - LAMP/Kernel with updates, Security patches/updates, Optional control panel, Site installation/performance basic support. E.g. HostGator, Acquia, etc. Note: Check whether your need is supplied with Fully managed hosting package or not.
- Fully managed with Performance enhancement - Tools such as Varnish+APC+Memcache+ApacheSolr+Pressflow. E.g. GetCadre.com, GetPantheon.com, Network Redux Enterprise VPS, Unixy.net, Acquia, DrupalConcept, Omega8.cc, Drupion.com, etc. Mercury LAMP image iso install available with Voxel.net, Linode.com though updates & security will be hard to manage.
- Partly managed - LAMP/Kernel with updates, Security patches/updates, Optional control panel, Optional initial site migration assistance
- Fully unmanaged - No software/LAMP install, Optional initial LAMP setup with optional cPanel/Plesk control panel, No LAMP/kernel updates, No security setup/updates, No site assistance, Full control over server. E.g. Linode, FDC server, LeaseWeb, etc.
- CPU/Cores: Processor speed.
- RAM: Depends upon site activity/authenticated users, Database queries, etc. 1GB+ recommended for starting sites.
- Hard disk space: Depending on your site requirements. Text is stored in the MySql database, Images/videos/docs take up maximum space. Consider external hosting with embed option, e.g. Blip.tv/Vimeo for video hosting, GoogleDocs/Slideshare/Scribd for Docs hosting. See attachment for some estimation information. Type of Hard Disk option varies from normal HDD or enterprise level SSD/SAS drives, with option for software/hardware RAID-0/1/5/10 (stripping/mirroring) options. RAID can be used to combine number of hard disks or/and use for complete backup/redundancy of your site data to protect site data from disk failures.
- Bandwidth: Depends upon number of site visitors - anonymous & authenticated. See above/ attached file. Option of Metered (limited by GB. e.g. 200GB, 1TB, 10TB, 100TB) or Unmetered (shared/dedicated 10Mbps/100Mbps/1000Mbps/2000Mbps port speeds).
See attached file for website resources estimate and comparison of website hosting service providers.
More to Come...
Experienced drupal users are welcome to edit / correct this page and make it more useful for new drupal users.
|Site storage and bandwidth estimate.xls||1.12 MB|
|Publishing Workflow Using RULES and CCK.txt||3.84 KB|