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;
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/harry would give you all posts by user harry, and http://yoursite.org/your-custom-view/tom 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.
Criticism
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;
<?php
$output = '<fieldset class="collapsible"><legend>'. $group['title'] .'</legend>';
?>
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.
Errata
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
FunnyMonkey.com. He also maintains
a Drupal distro for education; DrupalEd, and runs
a groups.drupal.org group for Drupal in Education.
Purchasing
Drupal for Education and E-learning costs USD 45 on Amazon.com,
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!
Disclaimer
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.
Comments
A couple thoughts here --
<?php$output = '<fieldset class="collapsible"><legend>'. $group['title'] .'</legend>';
?>
Thanks for your response!
- A list of links to Groups I manage
- A list of links to My groups (that I do not manage)
- A list of links to posts by users (of a particular role) in a group (a summary view for list of posts by user (an unspecified argument) in a group specified by argument or filter)
- A list of links to users in og groups, grouped-together by og-group, including duplicate rows/links for users in multiple groups (A user view, as opposed to a node view)
While all of these can recreate components of what the PHP snippet does (and the latter two are actually quite close to the desired functionality), they don't do exactly the same thing, combined or singly. The code snippet creates what I'd dare coin as a double-layered summary view – much like a regular summary view, that creates links to the one-dimensional list of possible permutations of a view that has ONE unspecified argument, a double-layered summary view has two unspecified arguments, and therefore a two-dimensional list of links, navigable by group and also by user. I'm fairly certain that views 2 does not do double-layered summary views, and therefore I agree that this would need at least some PHP code to pull together or modify some of the above views. It's likely that this code would be less lines, but more complicated, than the code snippet in the book, and therefore possibly not a better solution for this context. I agree this would make a useful module, or additional feature for Views 2 (albeit an almighty complex one!) I've made some changes to the blog post. I read it with the primary purpose of reviewing it, so I'm not 'reading' it anymore. Although I do hope to use with a local primary school in a pilot mentoring program I am involved in. Thanks so much for taking the time to respond to the view. I'm sure that readers of this review will appreciate input and time. And I'm glad to be able to correct my review so that it is not misleading! Bevan/Other thoughts