Front cover of Drupal for Education and E-LearningDrupal for Education and E-learning is a must-have for any teacher, school or education institution considering a new school website, or technology-centric project in the classroom. Whether the reader has heard of Drupal or not, the book provides valuable insights, empowering ideas and simple instructions to help get any teacher or school on their way to having a powerful, useful and valuable learning resource. The book is littered with Learning Goals which help inspire teachers to find useful and innovative ways of using their website as a learning device for their students. The chapters and sections are well ordered for the target audience. Basic concepts about Drupal, websites and the internet are introduced in the early chapters. Followed quickly by clear instructions to get your first Drupal website set up including important but non-Drupal tools and services like web hosting, FTP and phpMyAdmin. These step-by-step instructions and most instruction sets in the book have an overview or summary of the steps, often called The Short Version which precedes The Detailed Version. This is important for exploratory Drupal users since they are likely to be missing conceptual understandings of many critical components, tools and ideas. The summaries help the reader understand generally what is being introduced, how it fits into the larger picture of their goals and helps them to understand the concepts rather than just how to manipulate the tool. The book also goes beyond Drupal and covers topics such as hardware and desktop software for creating podcasts, integrating with iTunes and creating video. Learning goals and many useful tips are included to help make these successful classroom activities. The book also highlights often-missed features such as garland theme's tabs (aka local tasks) and admin > by module. Views 2 is explained very well and the author's description of views arguments on page 78 is very clear and simple yet complete enough for this introductory purpose;
Arguments allow you filter the content returned in a view through a value in the URL; for example, using arguments you can filter for content created by a specific user based on their username – would give you all posts by user harry, and would give you all posts by tom. Adding arguments is not necessary for all views, and views can function perfectly well without arguments. Used effectively, however, arguments can add a level of flexibility not possible with filters. Arguments are covered in Chapter 13.


On the whole the book is excellent and highly recommendable to any educator or education institution – especially primary, middle and secondary schools. However I did find some room for improvement in a few areas. See comment below from the author, Bill Fitzgerald. Installation steps are misleading and could be simpler. The book suggests that as part of the install process the user needs to make a copy of default.settings.php called settings.php (pages 15 and 17). Most of the time this is not necessary – Drupal takes care of this when install.php executes (if filesystem permissions allow it to). Also in the installation steps, the author suggests that a MySQL user and privileges should be created with a SQL snippet that the reader needs to retype (pages 16 and 18). Retyping code is highly error-prone, and this same task can be achieved via phpMyAdmin while introducing the user to MySQL's model of databases, users and privileges. phpMyAdmin is used previously in the instructions to create the database. Bill builds mental models of the website components quite well throughout most of the book. However the section on content types and fields on page 47 is lacks in this aspect. This is a shame, since it is one of the more difficult yet most important concepts for Drupal newbies to grasp. Simpleviews module is a very useful and powerful way to introduce views to Drupal newbies. Bill does not mention it – although I expect this is because it did not exist until after the book went to print. Some screenshots are referenced multiple times in the text but it was often difficult to match textual references to images. Clearly numbered images would have facilitated this. Annotations on screenshots were also often subtle and easy to miss. Though this is a difficult problem to solve without printing in color. See comment below from the author, Bill Fitzgerald. In my opinion the integrity of the book is compromised a little on page 285, where Bill suggests typing out a long PHP snippet into a node body to create two lists of links to views with arguments. Typing copied code is hard work, error prone and extremely frustrating to those who are not familiar with the code syntax. It is also very difficult to manage PHP errors in nodes and generally bad practice to have more than trivial amounts of PHP code in nodes or any text field stored in the database. (Find out how to use PHP on Drupal settings pages safely). The example solution is a bad solution to the problem anyway – two summary views could have done this with no PHP code snippets and introduced some of Views module's more advanced and empowering features. The sample PHP code is also of an unnerving quality. It doesn't use theme() functions for fieldsets, but hard-codes the html markup;
$output = '
'. $group['title'] .'';
In my opinion, it is a responsibility of Drupal users to contribute something back to the Drupal community. Similarly it is the responsibility of those who introduce Drupal to others to encourage those people to contribute something and suggest what and how. Bill fails to encourage his readers to contribute. There is just one very small section on the last page of the book about giving support. There are many ways which Drupal users can contribute back to the community, many of which are probably more viable for teachers and schools than giving support. As with most of the books from Packt Publishing that I have reviewed, the index leaves much to be desired. It is missing many of the technical terms I would expect a non-technical user would need to look up, such as panels, arguments, aggregation, field.


It is very easy to make technical mistakes when writing a book, and I usually find several when reviewing Drupal books. However I found just one minor error in this book; in Upgrading Core – The Short Version on page 361, running update.php is in the first step, when it should be the last step.

About the Author

The author, Bill Fitzgerald, is a long-time contributor to the Drupal project and community. He has recently been featured in interviews on both the Lullabot podcast and Acquia podcast series about his work with Drupal and this book. Bill is the co-founder of FunnyMonkey, a Drupal development shop working primarily within education. He blogs on He also maintains a Drupal distro for education; DrupalEd, and runs a group for Drupal in Education.


Drupal for Education and E-learning costs USD 45 on, GBP 28 on Packt Publishing's (the publisher) website and is similarly priced in other online and street-stores. Now to convince New Zealand's Ministry of Education to send copies to every New Zealand school and conquer young people's misconceptions about computer science!


Packt Publishing requested me to review a number of their Drupal books. I agreed to do so in exchange for free copies of the reviewed books. I am receiving no other compensation from Packt Publishing in exchange for these book reviews. See more reviews of Drupal books.