Drupal Demo: Creating a community site

For this Drupal walkthrough, you will need your own Drupal install.

  • Goal: Create a community website so that members may indicate their availability for group events as well as be notified about upcoming events. For this example, we will use 'Chowpatty Bhelpuri Lovers', an organisation that likes to prepare and share bhelpuri and other chats.
  • Functional Requirements:
    • The site will consist of the following pages:
      • About us
      • Events calendar
      • Join to participate
      • Group members
    • The content will be added/maintained only by the administrator
    • Member sign-ups will be used only for event organisation. During registration, members will indicate their interests and availabilities for event participation.
    • The member list will present tabulated results of responses during signup.
  • Technical Requirements:
  • Drupalspeak: The Drupal tasks accomplished during this walkthrough:
    • Configuring Drupal
    • Creating a new node type
    • Creating views to display filtered lists of nodes

* Installation steps described below

The following notation convention will be used to differentiate between navigating your file system (<folder>/<subfolder>) and navigating Drupal via a web browser (admin >> content).

Implementation steps:

  1. Enable URL paths that are representative of page contents (e.g. http://chowpatty.org.au/q=aboutus vs http://chowpatty.org.au/q=node/1). Enable the Path module: admin >> site building, select Path and Save configuration
  2. Create the About Us page, and add it to the main menu
    1. create content >> Story
      Title = About Us
      Menu Settings, Title = About us
      Menu Settings, Parent Item = Primary Links
      Menu Settings, Weight = 0
      URL path settings = aboutus
  3. Create the Events Calendar
    1. Download Date API, Event, Calendar, Usernode, Views
    2. Install Event, Calendar, and Views by decompressing each downloaded file into in <your install path>/xampp/htdocs/drupal-5.1/sites/all/modules/, resulting in:
      <your install path>/xampp/htdocs/drupal-5.1/sites/all/modules/date/*
      <your install path>/xampp/htdocs/drupal-5.1/sites/all/modules/event/*
      <your install path>/xampp/htdocs/drupal-5.1/sites/all/modules/calendar/*
      <your install path>/xampp/htdocs/drupal-5.1/sites/all/modules/usernode/*
      <your install path>/xampp/htdocs/drupal-5.1/sites/all/modules/views/*
    3. Turn these modules on: admin >> site building >> modules, make the following selections and Save Configuration:
       Enable CCK modules  Enable Date module  Enable Event module  Enable Views module
    4. Create a new event content type for use with the calendar view. The events module creates an event content type, however we're going to extend it for additional functionality*: admin >> content management >> content types, Add content type
      Name = Event bhel-session
      Type = event_bhel-session
      Show in event calendar, Only in views for this type = true
    5. Create the calendar for displaying your new event types: admin >> site building >> views. Scroll down to the list of default views, and override the calendar view:
       Calendar view

      Edit the calendar view in the list of Existing Views

      Fields, Add Field: Node Title
      Fields, Add Field: Event Start Time
      Fields, Add Field: Event End Time
      Arguments, Add Argument: Calendar Year
      Arguments, Add Argument: Calendar Month
      Arguments, Add Argument: Calendar Day
      Filters, Add Filter: Node Published = Yes
      Filters, Add Filter: Node Type = event_bhel-session

  4. Add the new calendar view to the main menu: admin >> site building >> menus, Add item to Primary Links menu
    Title = Events calendar
    Path = calendar
  5. Create the member signup form which is used to collect partipation availability information.
    1. Enable the profile module: admin >> site building >> modules, Select Profile and Save configuration.
    2. Configure the profiles: admin >> user management >> profiles
       Configuring profiles
      1. Add new fields:
        Category = Event participation
        Title = I am available to form a bhel-session oversight group
        Form name = profile_over
        Explanation = Check this box if you have the time and organisational skills to form the oversight group. The oversight group is responsible for organising the upcoming event, headcount, menu, venue, and preparers.
        Visibility = Public field, content shown on profile page and on member list pages.
        Page Title = oversight group
        Visible in user registration form = true
      2. Add new fields:
        Category = Event participation
        Title = I am available to purchase and drop off the ingredients for a bhel-session
        Form name = profile_shop
        Explanation = Check this box if you have the time and funds to purchase the ingredients for the upcoming bhel-session. Also, if there are more than chats, you may be asked to drop the shopping off at a volunteer cook's residence.
        Visibility = Public field, content shown on profile page and on member list pages.
        Page Title = shoppers
        Visible in user registration form = true
      3. Add new fields:
        Category = Event participation
        Title = I am available to purchase and drop off the ingredients for a bhel-session
        Form name = profile_shop
        Explanation = Check this box if you have the time and funds to purchase the ingredients for the upcoming bhel-session. Also, if there are more than chats, you may be asked to drop the shopping off at a volunteer cook's residence.
        Visibility = Public field, content shown on profile page and on member list pages.
        Page Title = cooks
        Visible in user registration form = true
      4. Add new fields:
        Category = Event participation
        Title = I volunteer to host the bhel-session
        Form name = profile_host
        Explanation = Check this box if you are able to host the bhel-session.
        Visibility = Public field, content shown on profile page and on member list pages.
        Page Title = hosts
        Visible in user registration form = true
    3. Add the registration page, to which the previous fields have been added, in the main menu: admin >> site building >> menus, Add item to Primary Links menu
      Title = Join to participate
      Path = user/register
  6. Create a new view to display all the organisation's members and which activities they are available for: admin >> site building >> views, Add a view:
    Title = Members
    Name = Members
    Provide Page View = true
    URL = members
    View Type = Table view
    Use pager = true
    Nodes per Page = 10
    Fields, add the following fields
     Editing members view
    Filters, add the following filters
     Editing members view, adding fields to a view
    URL path settings = aboutus
  7. Add the new members view to the main menu: admin >> site building >> menus, Add item to Primary Links menu
    Title = Group members
    Path = members
     Editing members view, adding filters to a view

Hillary:

Thanks for this...the calendar section was a great tutorial for me so I could get started on a project.