Drupal 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;
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
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
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 –
http://yoursite.org/your-custom-view/harrywould give you all posts by user harry, and
http://yoursite.org/your-custom-view/tomwould 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.
CriticismOn 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.
settings.php(pages 15 and 17). Most of the time this is not necessary – Drupal takes care of this when
install.phpexecutes (if filesystem permissions allow it to).
theme()functions for fieldsets, but hard-codes the html markup;
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.
$output = '. $group['title'] .'';
ErrataIt 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.phpis in the first step, when it should be the last step.