Drupal for Education and E-Learning - Bill Fitzgerald - E-Book

Drupal for Education and E-Learning E-Book

Bill Fitzgerald

0,0
34,79 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

In Detail



Social media in the classroom provide unique opportunities for teaching and learning. This book helps you break through the hype, and shows you how to build a site in Drupal that incorporates the Web in your class, on your terms, to achieve specific learning goals.



This book provides the essential details to get the most out of your Drupal site. In clear, step-by-step instructions, you will learn how to build a site that is easy to use, easy to navigate, and supports the teaching and learning you want to emphasize.



Drupal for Education and E-Learning provides a step-by-step overview of how to work with Drupal to build a feature-rich learning environment. In this book, you will learn how to configure the default Drupal installation, and how to extend your site to include social bookmarking, a podcasting and video sharing platform, image sharing, and interactive discussions around rich media content. You will also learn how to organize your site so that, as learning occurs over time, you and your students will be able to track their work history.

Create engaging learning experiences using Drupal. A friendly and clear guide from the creator of the DrupalEd distribution.Approach



The book focuses around creating educational activities in Drupal, with lots of examples of realistic courses and classroom ideas ⿢ and how to implement them.

Who this book is for



This book is for anybody looking to use Drupal to support teaching and learning; more generally, the examples given in this book can also be used by anybody looking to use Drupal to publish social media. This book is not a developer's manual; you do NOT need to know code, or HTML, or CSS, to benefit from this book. People new to Drupal will find clear examples describing how to set up their site. More experienced Drupallers will find tips and tricks for extending their site, and step-by-step instructions on how to make the most out of Drupal's flexibility.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 360

Veröffentlichungsjahr: 2008

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Drupal for Education and E-Learning
Credits
About the Author
About the Reviewers
Preface
What This Book Covers
What You Need for This Book
Who This Book Is For
Conventions
Reader Feedback
Customer Support
Errata
Piracy
Questions
1. Introduction
What is Drupal
Drupal—A Short Historical Overview
What Drupal Can Do For You
Drupal Terminology
Taking Notes
Summary
2. Installing Drupal
Assumptions
The Domain
The Web Host
Web Server
PHP version
MySQL version
FTP and Shell Access to Your Web Host
A Local Testing Environment
The Most Effective Way versus The Easy Way
Installing Drupal—The Quick Version
Installing Drupal—The Detailed Version
Getting the Codebase
Creating the Database and the Database User
Completing the Install
Enabling Core Modules
Assigning Rights to the Authenticated User Role
Summary
3. Getting Started
The Core Install
Core User Functionality
My Account
Create Content
Log Out
Administrative Functionality
Content Management
Site Building
Site Configuration
User Management
Reports
Next Steps: Building the Foundation
Installing Modules and Themes
Files
Directories
Core Modules and Themes
The Sites Directory
Adding Modules and Themes: The Steps
Step 1: Download
Step 2: Decompress
Step 3: Upload
Step 4: Enable
Configuring Modules and Themes
Modules
Themes
Modules and Themes: A Summary
Creating Roles
Creating Content Types
Step 1: Creating the Content Type
A: Identification
B: Submission Form Settings
C: Workflow Settings
D: Comment Settings
Step 2: Adding Fields
Step 3: Assigning Taxonomies
Identification
Content Types
Settings
Step 4: Assigning Privileges
The Result
Creating Content Types: A Summary
Creating Views
Step 1: Add a View
Step 2: Set the Defaults
Step a: Adding Fields
Node Fields
Content Fields
Taxonomy Fields
Configuring the Fields
Step b: Adding Filters
Step c: Adding Arguments (optional)
Step d: Setting Style
Step e: Setting Additional Configuration Options
Step 3: Add a Display Type
Adding Multiple Display Types and Overriding Default Values
Save Your View!
Creating Views: A Summary
Summary
4. Creating a Teacher Blog
Installing the Text Editor
Uploading and Enabling FCKeditor
Configuring FCKeditor
Assigning Permissions
Assigning User Rights via Roles
Understanding Roles and How They Work
Editing the Advanced Profile
Editing Visibility Settings in the Global Profile
Setting the Proper Input Formats
Creating Content Types for the Teacher Blog
The Blog Post Content Type
Add Fields
Assign Taxonomy
Assign Permissions
Hey! Why Not Use the Blog Module?
The Assignment Content Type
Getting Started: Installing Modules
The Assignment Content Type
Add Fields
Ordering Fields
Assign Taxonomy
Assign Permissions
Sample Users and Testing
Adding New Users
Section Summary
Adding Sample Content
Views for the Teacher Blog and Assignments
The Teacher Blog View
Add a View
Set the Defaults
Add Fields to the View
Add Filters
Add Arguments
Set Style
Set Additional Configuration Options
Add a Display Type
The Assignment View
Editing the Default Values
Modifying the Date Field
Removing the Default Date
Add Filters
Edit the Argument
Adding a Title and Header
Edit the Calendar Page Display
Setting the Path and Menu
Summary
5. Enrolling Students
Understanding Roles, and Assigning Rights
Assigning Rights
Rights for the Student Role
Creating Student Accounts
Method 1: Students Create their Own Accounts
Student Sign-in
Retrieving the Confirmation Email
Promoting New Members into the Student Role
Method 2: You Create the Student Accounts
Customizing the Registration Process
The User Settings Page
User Registration Settings
User Email Settings
Signatures
Pictures
Additional Modules for Creating User Accounts
Summary
6. Creating the Student Blog
Setting Up the Student Blog
Assigning Permissions
Clone the Teacher Blog
Getting Interactive
Seeing Who's Discussing What
Enabling and Cloning the Backlinks View
Editing the Default Display
Remove the Page Display
Edit the Block Display
Enabling the Block
Seeing It Work
Summary
7. Bookmarks
Assign Rights to Use Bookmarks
Using Bookmarks in the Classroom
Sharing a Bookmark
Bookmark to Blog
Learning Goals
Bookmarks and Media Literacy
Bookmarks as Part of Ongoing Student Research
Learning Goals
Summary
8. Podcasting and Images
Getting Started with Podcasts
Audio Module
Install the getID3() Module
Install the getID3() Libraries
Install the Token Module
Install and Enable the Audio Module
Configure the Audio Module
The Audio Tab
A Brief Explanation of Tokens
The Metadata Tags Tab
The Players Tab
Assign Rights to the Audio Module
Adjust Existing Views
Editing the student_blog View
Editing the teacher_blog View
Editing the conversations View
Uploading an Audio File
Using Podcasts in the Class
Creating Podcasts—Notes on Hardware and Software
Software
Hardware
Everyday Uses of Podcasts
Podcasts as a Tool in Project-Based Learning
Ideas for Podcasting Projects
Some General Examples
iTunes or Not
Images and Image Galleries
Sharing Images with the Image Module
Configuring the Image Module
Step 1: Adjusting the Default Settings
Step 2: Adjusting the Image Module Settings
Image Gallery
Step 3: Using the Keyword Taxonomy and Creating Galleries
Galleries
Step 4: Assign Permissions
Step 5: Adjusting Views
Creating Images
Summary
9. Video
Setting up the Video Content Type
Install the Embedded Media Field Module
Configure Embedded Media Field
Configuring the General Settings
Configuring the Embedded Media Field Settings
Creating the Video Content Type
Step 1: Create the Content Type
Step 2: Add the Video Field
Configuring the Field
Configuring the Global Settings
Ordering the Fields
Step 3: Assign a Taxonomy
Step 4: Assign Permissions
Embedding Videos
Embedding from an External Site
Embedding from the Local Site
Adjusting the Student and Teacher Blogs
Hardware and Software to Create Videos
Hardware
Cameras and Video Capturing Equipment
Microphones and Audio Quality
Lighting Equipment and Editing Stations
Copying Videos from YouTube/Google Video
Software to Create and Edit Videos
Desktop Software
Online Tools
Using Videos in the Classroom
Student Projects
Teaching with Video
Drupal as a Video Hosting and Processing Platform
Summary
10. Forums and Blogs
Install the Forum Module
Configure Forums
Containers and Forums
Displaying Multiple Content Types in a Forum
Assign Permissions to Forums
The Relationship between Forums and Blogs
Forums
Strengths
Concerns
Blogs
Strengths
Concerns
Summary
11. Social Networks and Extending the User Profile
Identifying the Goals of Your Profile
Using the Core Profile Module
Customizing the Core Profile
Add a Last Name
Add a Birthday
Form Options
Managing Your Profile Fields
Adding Content to a Profile Created Using the Core Profile Module
Moving Beyond the Core Profile Module
When to Look Beyond the Profile Module
Extending Profiles Using the Content Profile Module
Building the Profile
Edit the Settings of the Profile Content Type
Configure the Base Content Profile Settings
Add Fields to the Profile Content Type
Add the Brief Bio Field
Adjusting the Profile Settings
Adjusting the Global Settings
Adding the Full Bio Field
Adjusting the Field Display
Add Taxonomy Terms to the Profile Content Type
Adding the Interest Vocabulary
Assign Rights to Profile Nodes
Creating an Extended Profile
Including Fields from the Profile Node on the Registration Form
Additional Options for Social Networking and User Profiles
Summary
12. Supporting Multiple Classes
Install and Configure Organic Groups
Useful Links for Organic Groups
Administrative Links
Navigation Links
Finding Groups and Navigating Group Content
My Unread Posts
Adjusting Your Site to Work with Organic Groups
Create Group Types
Creating the Class Content Type
The Organic Groups Fieldset
Creating the Club Content Type
Assign Permissions to Group Nodes
For Class Nodes
For Club Nodes
Create a Menu for Groups
Setting the Defaults for Organic Groups
Setting OG Configuration Options
Content Types
Group Details
Groups Directory Control
Registration Form Control
Group Email Notifications
Audience Checkboxes
Audience Required
Email Settings
Remember: Save Your Settings!
Setting Organic Groups Access Configuration Options
Visibility of Posts
Private Groups
Creating and Using Groups
Creating a Group
Enabling Group-specific Blocks
Adding Users/Managing Subscriptions
Creating Additional Group Managers
Adding Group-specific Taxonomies
Creating Content in a Group
Summary
13. Tracking Student Progress
Getting an Overview of Student Work
Using the Core Tracker Module
Replacing the Tracker Module with Views
Using Code Snippets to Track Student Progress
Enabling PHP Snippets
Embedding a PHP Snippet in a Page
Explaining the Snippet
Using Views and PHP Snippets Together
Creating the View
Adjusting the Defaults Display
Adding Fields
Adding an Argument
Adjusting the Page Display
Embedding the Snippet
Explaining the Snippet
Tracking Responses to Specific Assignments
Editing the Argument
Restrict Access
How it Works
Private Communication with Students
Getting Started
Configuring Coherent Access
Using Coherent Access
Tracking Posts Created and Shared Using Coherent Access
Summary
14. Theming and User Interface Design
Basic Principles
Keep it as Simple as Possible
Hide Unnecessary Options
Setting the Home Page
Menus, Blocks, and Primary Links
Primary and Secondary Links
Creating Customized Menus
Create a Separate Administration Menu
Adding New Menus
Enabling the Block
Adding items to the Menu
Create a Separate "Add Content" Block
Adding New Menus
Enabling Blocks
Adding Menu Items into the Menu
Populate the Primary Links
Adding a Post Directly to a Menu
Adding a New Menu Item
Blocks and Block Placement FAQ
What is a Block? How is it Different than a Menu?
What is a Region?
What Else can I do with a Block?
Can I Make a Block Visible to Specific Roles or on Specific Pages?
Changing Settings via the Admin Menu
The Site Information Page
Theme Settings
Enabling Themes
Global Theme Settings
Display Post Information on
Toggle Display
Logo Image Settings
Shortcut Icon Settings
Theme-Specific Settings
Looking Under the Hood
Drupal's Theme Structure
css Files
tpl.php Files
Custom tpl.php Files
CSS and JavaScript Aggregation
Additional Resources
Summary
15. Backup, Maintenance, and Upgrades
Setting Up Cron Jobs
Backup and Maintenance Overview
Backing Up the Codebase
Automating Backups Using DB Maintenance
Configuring the Database Optimization Options
Configuring the Database and Files Backup Options
Summary: Using DB Maintenance to Automate Backup and Maintenance
Caring For Your Database
Using PHPMyAdmin as a Maintenance and Backup Tool
Optimizing Tables Using PHPMyAdmin
Manually Backing Up the Database
Backing up the Database via PHPMyAdmin
Backing Up Your Database via the Command Line
Command Line Database Backups—The Short Version
Command Line Database Backups—The Full Explanation
Command Line Backups of Core Codebase, Contributed Modules, and Files
The Master Backup
Details on the Command Line
Backing up Contributed Modules and Themes
File Backups
Putting it all Together
OK. What Should I Back Up, and When Should I Do It?
Verifying that your Backup Works
Before We Begin: Web Space for Testing Your Backup
Creating the Backup Database
Recreate the Database via PHPMyAdmin
Recreate the Database via the Command Line
Uploading the Backup Codebase
Edit settings.php
The Test Site
Disaster Recovery
Updating Your Site
Upgrading Core
Upgrading Core—The Short Version
Upgrading Core—The Detailed Version
Preparing the Upgraded Site
Preparing the Codebase—Additional Notes
Bringing the Upgrade Live
Upgrading Contributed Modules
Upgrading Your Theme
Summary
16. Working Effectively in the Drupal Community
Getting Started
Researching on Drupal.org
Searching Effectively
Handbooks
Browsing the Issue Queue
Asking Questions
Support Forums
Support Mailing List
Groups.drupal.org
IRC
Giving Support
Summary
Index

Drupal for Education and E-Learning

Bill Fitzgerald

Drupal for Education and E-Learning

Copyright © 2008 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. The author, Packt Publishing, and its dealers and distributors will not be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: November 2008

Production Reference: 1181108

Published by Packt Publishing Ltd.

32 Lincoln Road

Olton

Birmingham, B27 6PA, UK.

ISBN 978-1-847195-02-9

www.packtpub.com

Cover Image by Vinayak Chittar (<[email protected]>)

Credits

Author

Bill Fitzgerald

Reviewers

Joel “Senpai” Farris

Michael Peacock

Peter M. Wolanin

Senior Acquisition Editor

David Barnes

Development Editor

Swapna V. Verlekar

Technical Editor

Dhiraj Chandiramani

Editorial Team Leader

Akshara Aware

Project Manager

Abhijeet Deobhakta

Project Coordinator

Brinell Lewis

Lata Basantani

Indexer

Monica Ajmera

Proofreader

Dirk Manuel

Production Coordinator

Shantanu Zagade

Cover Work

Shantanu Zagade

About the Author

Bill Fitzgerald was born in 1968, and worked as a teacher for 16 years. During that time, he taught English and history, and worked as a Technology Director at the K12 level. Bill began using technology in his own teaching in the early '90s; from there, he moved on to database design and systems administration. During that time, Bill began developing strategies to support technology integration in 1:1 laptop systems, and in desktop computing environments.

In 2003, Bill and Marc Poris founded FunnyMonkey, a Drupal development shop working primarily within the education industry. Bill started, and manages the Drupal in Education group on http://groups.drupal.org, and is active in various educational and open source communities. Bill blogs about education and technology at http://funnymonkey.com/blog.

When Bill is not staring deeply into computer screens, he can be found riding his fixed gear bicycle through Portland, OR, or spending far too much time drinking coffee.

This book took nearly six months to write, and I would not have been able to complete it without the support of numerous people. First, my wife Isabelle gave unending support and understanding throughout the entire process—when I was stressed, she helped me laugh, and that was a gift beyond words.

Additionally, Marc Poris and Jeff Graham, compatriots at FunnyMonkey, provided support of a different kind: when I was stressed, they wrote code, and their snippets and modules grace the pages of this text.

Finally, the team of people I worked with at Packt provided a great blend of guidance and support. David Barnes, Brinell Lewis, and Swapna Verlekar all worked with me to keep the project on track, and I thank them for the opportunity to write this book.

About the Reviewers

An avid user of the Drupal framework since 2006, Joel "Senpai" Farris is highly active in the Drupal Community as a Document Maintainer, Patch Tester, core and contributed modules Patch Creator, and an expert in the support of and care for new Drupalites.

Under the monicker Senpai (http://groups.drupal.org/user/4009), Joel co-led the charge for the Drupal Dojo training sessions (http://drupaldojo.net) for over a year, and was joined in that endeavor by some of the community's most famous personas, including Josh Koenig (http://groups.drupal.org/user/429) of Chapter 3, LLC (http://www.chapterthree.com), Addison Berry (http://groups.drupal.org/user/1607) of Lullabot (http://www.lullabot.com), Squidster (http://groups.drupal.org/user/3763), Dmitri Gaskin (http://groups.drupal.org/user/1322), and many, many others who gave freely of their time so that all people could learn ninja Drupal tactics in a cutting-edge and edifying environment.

Joel currently functions as the Chief Operations Officer for the new San Diego WorkHabit offices, and is passionate about any opportunity to get the company's staff involved in outreach operations. He is responsible for implementing and maintaining the WorkHabit Community Fridays, in which qualified individuals take an entire payday to work on one selected core or contrib patch in order to further Drupal's progress.

Thanks go to my parents, who were both lifelong educators and enabled me to begin learning computers from the dawn of personal computing, and my sister who's currently teaching grade school and loving it. Thanks also to Bill Fitzgerald, who's devotion to Excellence In Drupal has far surpassed what even he thought was possible only a year ago. Go, Bill, go!

Michael Peacock (http://www.michaelpeacock.co.uk) is a web developer from Newcastle, UK, and has a degree in Software Engineering from the University of Durham. After meeting his business partner whilst studying at Durham, he co-founded Peacock Carter (http://www.peacockcarter.co.uk) a Newcastle-based creative consultancy specializing in web design, web development, and corporate identity.

Michael loves working on web-related projects, and when he isn't working on client projects he is often tinkering in a web application of his own invention. He has been involved with a number of books, having written two books himself (and is working on his third!): Selling online with Drupal e-Commerce (Packt), Building websites with TYPO3 (Packt), and acted as a technical reviewer for Mobile Web Development (Packt) and Drupal Education & E-Learning (Packt).

You can follow Michael on Twitter: www.twitter.com/michaelpeacock.

Peter Wolanin has been programming since elementary school. He attended Princeton University and went on to earn his Ph.D. in Physics at the University of Michigan. Following his biophysics thesis work, Peter returned to Princeton University and conducted post-doctoral work in the Department of Molecular Biology. At Michigan and Princeton, Peter taught lab and seminar courses for undergraduate students.

Peter became interested in using Drupal through a friend who learned of it through its use by the Howard Dean Presidential campaign. He started contributing to Drupal core development in 2006, helped to rewrite the menu system, rewrote the book module for Drupal 6, is actively participating in Drupal 7 development, is a member of the Drupal security and documentation teams, and maintains several contributed modules.

Peter started working for Acquia, Inc., in the summer of 2008, as a senior engineer.

Preface

Drupal has its roots in building and supporting online communities. These roots have helped Drupal meet the needs of schools, teachers, and students in countless countries, and in countless different learning contexts. Compared to a traditional Learning Management System, Drupal can feel less restrictive; Drupal has been designed to interact with the Web, and to make the most of the array of possibilities offered by the Internet.

Drupal allows site administrators to set up as closed or as open a site as they desire. Using Drupal, a site administrator can create a learning environment where no content is visible outside of the site, and where all courses are entirely private. At the other end of the spectrum, a site administrator can create a learning environment where students and teachers have complete control over the content they share with classmates, other site members, and/or the entire Internet community. The purpose of this book is not to recommend one approach to teaching and learning over another, but rather to highlight the freedom that comes with having choices. In this text, we will cover the technical approaches to crafting the ideal social learning environment for your specific goals.

What This Book Covers

Chapter 1: Introduction provides an overview of Drupal, including a brief section on Drupal terminology.

Chapter 2: Installing Drupal covers how to install Drupal. This chapter takes you through the installation process, and covers how to enable some of the core modules you will use in this book.

Chapter 3: Getting Started begins by going through the options enabled in the core installation. From there, you will learn how to install additional modules and themes. Using these instructions, you will then install and configure two commonly-used modules: the Content Construction Kit (also referred to as CCK) and views. This chapter includes detailed instructions for creating new content types, adding fields to those content types, and displaying content using views. The foundation provided in this chapter is referenced extensively throughout the rest of the book.

Chapter 4: Creating a Teacher Blog describes how to set up a blog. This chapter includes instructions for setting up a text editor (also known as a WYSIWYG editor), and instructions for adding two new content types: one for blog posts, and a second for assignments. The chapter continues by covering how to create custom views to display content, and closes by showing how to clone an existing view to create a calendar to display assignments.

Chapter 5: Enrolling Students covers how to add users to your site. This chapter provides details on creating roles, and using roles to create granular permissions for the people who will use your site.

Chapter 6: Creating the Student Blog includes more details on using roles effectively to structure your site. Additionally in this chapter, more advanced techniques with views are covered, as we begin to use views to track student and teacher blog posts.

Chapter 7: Bookmarks describes some of the uses in the classroom of social bookmarking. In Chapter 3, we created a content type for storing and categorizing bookmarks, and this chapter goes through various methods of using bookmarks to support student learning.

Chapter 8: Podcasting and Images covers how to use your site to publish audio and images. In addition to covering the technical details of publishing a podcast, this chapter covers various uses of audio in the classroom. In particular, the chapter focuses on skills that can be honed through creating podcasts.

Chapter 9: Video describes how to embed media that is shared on the Web. As part of this chapter, we examine how to integrate video production into a curricula, and how video production can relate to other types of content stored on the site. As with podcasts, the emphasis in this chapter is on what can be learned through video production, and on how to use the medium of video effectively.

Chapter 10: Forums and Blogs describes how to set up and configure forums in Drupal. The chapter also explains the similarities and differences between forums and blogs.

Chapter 11: Social Networks and Extending the User Profile gives an overview of building user profiles. The chapter begins with the core profile module, and then goes deeper to show how to extend user profiles using the flexible Content Construction Kit and custom fields.

Chapter 12: Supporting Multiple Classes describes how to set up the Organic Groups module to support formal and informal learning spaces. The chapter covers using different privacy settings, group wikis, email notifications, and varying group types.

Chapter 13: Tracking Student Progress shows how people can find content created by other users within the site. The chapter starts by examining the core Tracker module, and then looks at using views and short code snippets to group users and make their work easier to find.

Chapter 14: Theming and User Interface Design provides some introductory details of how to create an intuitive navigational structure. The techniques described in this chapter are predicated on keeping your site as simple as possible by using customized menus. The chapter also introduces Drupal's theming layer, and describes how to get started modifying a theme.

Chapter 15: Backup, Maintenance, and Upgrades gets into one of the most commonly-overlooked aspects of running a website: making sure that you have a working backup, and keeping your codebase up-to-date. The goal of this chapter is to take the sting out of site maintenance. This chapter describes how to use the DB Maintenance module to automate the core tasks required for backup, as well as backing up using browser-based and command line tools.

Chapter 16: Working Effectively in the Drupal Community provides an overview of how to begin working with the Drupal community. One of the primary benefits of working with Drupal is the community of users and developers associated with the software. This chapter points out some of the methods of getting involved with and contributing back to the project.

What You Need for This Book

This book describes how to build websites using Drupal. To use this book effectively, you will need Internet access, to be able to download Drupal and the contributed modules we describe in this book.

Additionally, you will need a place to host your website. Setting up a hosting environment is covered in Chapter 2: Installing Drupal.

Who This Book Is For

This book is intended for teachers building a website to support their classes, and site administrators and technology integrators working within schools or training organizations. This book is also intended for technology directors at either the school or district level. The examples given in this book are appropriate for students and teachers at all levels, from elementary school, through higher education, to adult education and vocational training.

A secondary audience of this book includes people working to deliver curricula via online training or blended learning (a combination of online teaching and face-to-face meetings), or people interested in using social media in education. This text will also be of interest to general web developers looking to learn more about configuring Drupal without writing new code.

By design, this book is not a development manual. This text is intended to support people with little to no knowledge of PHP. No knowledge of development in PHP is required to use the explanations and tutorials in this text.

Reader Feedback

Feedback from our readers is always welcome. Let us know what you think about this book, what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply drop an email to <[email protected]>, making sure that you mention the book title in the subject of your message.

If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or email <[email protected]>.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer Support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Errata

Although we have taken every care to ensure the accuracy of the content of this book, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or in the sample code—we would be grateful if you would report this to us. By doing this you can save other readers from frustration, and help to improve subsequent editions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the let us know link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata added to any existing list of errata. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately, so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Chapter 1. Introduction

Welcome to Using Drupal in Education and E-Learning!

The last several years have seen an incredible upswing in the popularity and adoption of Drupal. The size of the Drupal community, as of May, 2008, is approaching 300,000 registered users, and Drupal is used to power everything from personal blogs to online stores to learning platforms to sites for record labels.

This book provides details of how to install Drupal, and how to customize Drupal to support teaching and learning. This initial chapter provides a high-level overview of Drupal, along with details of how to get the most from this book.

What is Drupal

A concise definition of Drupal is difficult to come by, as many people use Drupal for many different things. The following definitions provide an incomplete cross-section of how different people use Drupal. Our working definition is the final one in the list.

Drupal is a database-driven web application written in PHP.Drupal is an open-source Content Management System (CMS) freely available under the GPL.Drupal is a community-building platform.Drupal is a web development framework. You can use Drupal as a platform to build a broad range of web applications.

Note

The above definitions, however, can also benefit from further explanation. For those interested in additional reading and background, the following links provide a more detailed overview, and some background information:

PHP: http://php.net/

Web content management system, defined: http://en.wikipedia.org/wiki/Web_content_management_system

The GPL, or the Gnu Public License: http://www.gnu.org; Drupal is covered under version 2 of the GPL: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Web development framework, defined: http://en.wikipedia.org/wiki/Web_application_framework

Background information on Open Source: http://www.opensource.org

Overview section, from the Drupal handbook: http://drupal.org/node/21951

Our definition: Drupal is a tool that helps people build interactive websites. It is free to download, install, customize, and use.

Drupal—A Short Historical Overview

Drupal was started in 2000 by Dries Buytaert when he was a student at the University of Antwerp. Dries, along with some friends at the university, wanted a way to communicate about the various details of their lives. To meet that need, Dries wrote a web-based application that allowed people to share notes. In January 2001, Dries decided to release the source code, and the Drupal project was born.

The Drupal handbook provides a more detailed overview: http://drupal.org/node/769

What Drupal Can Do For You

Drupal is not a traditional Learning Management System. Drupal started as a community-building platform, and these community-centered roots inform the range of possibilities available within Drupal today.

Drupal provides a wide variety of useful tools for educators. For the instructor, Drupal can serve as a blogging platform, allowing teachers to communicate directly with students, parents, and the larger school and internet community.

Drupal also offers a flexible range of privacy options that allow users to keep some—or all—of the content within a site private. However, a Drupal site can be used for far more than a secure blogging platform. Within a single Drupal site, you can set up social bookmarking, podcasting, video hosting, formal and informal groups, rich user profiles, and other features commonly associated with Social Web Communities. Building your site in Drupal allows you to start with precisely the features you want, and expand as needed. This book provides the information needed to build, maintain, and grow your site.

Drupal Terminology

Drupal, like most software applications, has a specific lexicon. Mastering Drupal jargon is useful for many reasons, not the least of which is that using Drupal-specific terminology can help you search for information more effectively. The glossary in this chapter will give you an overview of commonly used Drupal terms, and what they mean.

This list of terminology will cover our common tasks and features. For a glossary that delves into some of the technical aspects of Drupal, the Glossary page in the Drupal handbook is a useful resource: http://drupal.org/node/937.

Node: A node is a piece of content that has been created on your site. For example, if you create a page, you have created a node.

Content Type or Node Type: On your Drupal site, you will have different types of nodes, or content. The default install comes with two content types, Page and Story. As we progress through this book, we will create a variety of other node types, such as bookmarks, student blogs, audio nodes, and so on. While all types of nodes are content, different node types can have different functions on your site.

Post: A post is a piece of content of any content type. For example, if a user creates a page node, they have created a post.

Core: Core refers to the base install of Drupal. The core install consists of the essential modules and some basic themes for Drupal. Although any person who has an account on drupal.org can suggest a change to the core codebase, most changes to core are thoroughly reviewed by developers within the community, and only a small number of people have the rights to actually make changes to core. As a result, the core codebase is stable and secure. The core codebase can be downloaded from http://drupal.org/project/drupal.

Contributed Modules: These have been written and shared by members of the Drupal community. Unlike core, which represents the work of several hundred contributors, most contributed modules have been written by individuals, or small teams working together. Contributed modules extend the functionality of Drupal, and this book describes how to use various contributed modules effectively. However, you should be cautious when installing a new contributed module. Contributed modules have not been reviewed as thoroughly as core. An overview of all contributed modules is available at http://drupal.org/project/Modules.

Theme: Themes control the look and feel of your site. The core install comes with several base themes, and you can download a range of contributed themes from http://drupal.org/project/themes.

Menu: Menus provide lists of links, and can be used to create an organizational and navigational structure for your site. All menus can be seen and edited at admin/build/menu; additionally, all menus create blocks.

Block: A block displays content within a specific place on the page. All menus create blocks, but you can also embed HTML or PHP code within a block. Blocks can be administered at admin/build/block.

Region: Every theme defines specific regions; blocks can be placed into these different regions using the administrative menu at admin/build/block.

Note

Menus, Blocks, and Regions are covered in Chapter14: Theming and User Interface Design.

Taxonomy: Taxonomy can be used to organize content within a Drupal site. Drupal permits site administrators to create different taxonomy categories to organize posts. For example, when posting an assignment, an instructor might want to create two taxonomies: one for the type of assignment, and another for the subject of the assignment.

Term: Terms, or tags, are specific items within a taxonomy. For example: a Physics instructor creates two taxonomies to organize assignments. The first is 'Type of Assignment' and the second is 'Subject'. If the instructor assigns his or her students to read an explanation of the Theory of Relativity, this assignment could be tagged with Reading (for Type of Assignment) and Relativity (for Subject).

User: This is the technical term for people using your site.

Role: All site users belong to one or more roles. Site administrators can assign different rights to different roles.

Anonymous user: Any person who visits your site and is not a member of your site is considered an anonymous user. The Anonymous user role allows you to specify how people who are not site members can interact with content and members of your site.

Note

It is possible to remove all rights from anonymous users, making the content of your site fully private, or a 'walled garden'.

Authenticated user: All site members are authenticated users, and belong to the default authenticated user role. This default role can be used to assign a base level of rights to all site members. Then, other roles can be used to assign more advanced privileges to users.

Note

Roles and access control are covered in more detail in Chapter 5: Enrolling Students.

UID1: This stands for User ID 1, or the first user on a Drupal site. UID1, by design, has full rights over your entire site. As a matter of best practice and security, UID1 should only be used as a back-up administrator account. Often, problems with your configuration will not be visible when logged in as UID1 because UID1 has more rights than other users.

Taking Notes

A final piece of advice before we launch into building your Drupal site: buy a notebook, and keep it next to your computer. Use this notebook in the same way a ship's captain uses her log: take brief notes on what you do, and why.

In the process of building your site, you will make decisions about module configurations, user roles, design tweaks, and so on. As you are making these decisions, you will be fully convinced that you will remember each decision you made, and why.

Unless you are the exception that proves the rule, however, you won't remember. And this is where your notebook comes in. Use the notebook to record the changes you make. A useful entry will include the URL where you made the change, and a brief description of why you made the change.

For example, if I am adjusting user privileges for the authenticated user role, I would enter the following in my notes:

At admin/user/access/2—adjust user privileges so that the authenticated user role needs to have comments approved.

This way, when you are trying to remember why you made a specific change, you will have a record of your decision making process.

Summary

This chapter provided an overview of Drupal, and of the functionality you will be able to include on your site. Now that we have covered the general details, it's time to begin working directly with the software. In the next two chapters, we will install Drupal, and start exploring the core functionality you will use to build your learning community.

So, keep your notebook handy, and let's start building your site!

Chapter 2. Installing Drupal

This chapter describes how to install the base Drupal application, called Drupal core. By the end of this chapter, you will have a new Drupal site installed and ready to use.

Assumptions

To get Drupal up and running, you will need all of the following:

A domainA web hostFTP access to your web host

OR

A local testing environment

For building sites, either a web host or a local testing environment will meet your needs. A site built on a web-accessible domain can be shared via the internet, whereas sites built on local test machines will need to be moved to a web host before they can be used for your course. The process of backing up and moving sites is covered in Chapter 15: Backup, Maintenance, and Upgrades.

Note

In these instructions, we are assuming the use of phpMyAdmin, an open-source, browser-based tool, for administering your database. A broad range of similar tools exist, and these general instructions can be used with most of these other tools. Information on phpMyAdmin is available at http://www.phpmyadmin.net; information on other browser-based database administration tools can be found at http://dev.mysql.com/downloads/gui-tools/.

The Domain

The domain is the address on the Web at which people can access your site. If you are building this site as part of your work, you will probably be using the domain associated with your school or organization. If you are hosting this on your own server, you can buy a domain for under US $10.00 a year. Enter purchase domain name into Google, and you will have a plethora of options.

The Web Host

Your web host provides you with the server space on which to run your site. Within many schools, your website will be hosted by your school. In other environments, you might need to arrange for your own web host by using a hosting company. In selecting a web host, you need to be sure that they run software that meets or exceeds the recommended software versions.

Web Server

Drupal is developed and tested extensively in an Apache environment. Drupal also runs on other web servers, including Microsoft IIS.

PHP version

Drupal 6 will run on PHP 4.3.5; however, many contributed modules require PHP 5.2. For this reason, PHP 5.2 is recommended. The Drupal 7 release will require PHP 5.2.

MySQL version

Drupal 6 will run on MySQL 4.1 or higher; 5 is recommended. The Drupal 7 release will require MySQL 5.0.

FTP and Shell Access to Your Web Host

Your web host should also offer FTP access to your web server. You will need FTP (or SFTP) access in order to upload the Drupal codebase to your web space. Shell access, or SSH access is not essential for basic site maintenance. However, SSH access can simplify maintaining your site, so contracting with a web host that provides SSH access is recommended.

A Local Testing Environment

Alternatively, you can set up a local testing environment for your site. This allows you to set up Drupal and other applications on your computer. A local testing environment can be a great tool for learning a piece of software. Fortunately, open-source tools can automate the process of setting up your testing environment.

PC users can use XAMPP (http://www.apachefriends.org) to set up a local testing environment; Mac users can use MAMP (http://www.mamp.info).

If you are working in a local testing environment set up via XAMPP or MAMP, you have all the pieces you need to start working with Drupal: your domain, your web host, the ability to move files into your web directory, and PHPMyAdmin.

The Most Effective Way versus The Easy Way