Oct 06 2014
Oct 06

One Drupalcon session of particular interest to many in the community, since the first “episode”, has been the “Q&A with Dries”, a core-conversation-track session in which Dries is joined by a panel of his initiative leads and others in the “inner circle” of Drupal 8 core development. Since I’d wished, in the past, that sessions like these had a video recording to show who was talking, I brought my DSLR and a shotgun microphone this time, thinking I’d contribute the resulting video. I don’t think the video I shot was technically perfect enough to share; perhaps I could fix that, but I also realized that one panel member prefers to limit her exposure on the Web—and respect that, of course; since it’s much easier to blur or block out a face in a few images than in a video, and since you can read this summary in much less time than the hour+ -length session, I decided to provide stills from the video, along with a summary of the questions and answers, which ranged from the whimsical (a bet on how long it would be till Drupal 8 would be released as “stable”), to various business and architecture questions, and other concerns.

Q and A with Dries and panelists, Drupalcon Amsterdam

(You’ll find a more serious answer to that question if you read on...). Of course, Dries began by asking each of his panelists to introduce themselves. Those present were:

intro_gabor.jpgGábor Hojtsy, who works for Acquia and introduced himself, first, as the Drupal 6 maintainer; he also leads the Multilingual initiative for Drupal 8.

Nathaniel CatchpoleNathaniel Catchpole (catch), a major core maintainer with special focus on optimizing performance.

intro_alexpott.jpgAlex Pott, who works for ChapterThree, and supports Drupal as a core maintainer, also contributes actively in the configuration management initiative for Drupal 8.

yched introduces himselfYves Chedemois (yched), a freelancer and volunteer contributor to Drupal core, especially active as the maintainer of the Drupal 8 Field API (he formerly maintained CCK).

Wim Leers, core maintainerWim Leers (of Acquia, who works on the Spark initiative and Drupal 8 performance

Jess (xjm), who was the major heavy lifter for getting Views into Drupal 8 core, alongside her very active community mentoring role, now is most active with release planning and other steps toward getting Drupal 8 to the community.

Dries jokes and introduces himself as 'Drice'

Dries made everyone laugh, then, by introducing himself… and pronouncing his name as if it rhymed with “rice”. He followed by submitting the first questions to the panelists; these initial questions were selected from those emailed to him before the day of the session. Everyone had something to say for the first question.

Q: Are there any lessons learned, so far, from the Drupal 8 release cycle?

Alex Pott pointed out that changing core is taking longer and longer as the complexity increases and the needs of the greater Drupal community become more varied. “It’s no longer a matter of developers having a good idea and putting a patch on Drupal.org”, he said. You have to get everything reviewed and tested and re-tested, usually through many iterations, before a patch finally makes it into core.

Yves Chedemois (yched) added that it really helped having a bigger team of people assisting in the Field API initiative, compared to how things have sometimes been in the past, before the initiatives, with only one or two people working on a particular sub-system; so now he might have five or six developers actively supporting him and who are all able to review each others work, and take over from one another if anyone is ill or leaves the team. He pointed out that, of course, finding five or six people who can keep active for the full 2-3 years that has been this development cycle has been one challenge; it’s just not realistic to expect.

Gábor weighed in with the fact that the whole extra communication with the community was something that hadn’t been so present before and has helped to find people identify their strengths and find ways to contribute to the development process. Extra communications on Drupal.org, the core conversations like this Q&A session, and the initiatives, themselves, helped to build a better level of involvement and ability to contribute.

Dries also added that people asked whether the initiatives, themselves, were a success, and wanted to say that he, indeed, found them very useful for the development cycle. It helped communicate a sort of roadmap for Drupal with the key areas that needed work. Having clearly communicated, specific goals, and teams working with specific areas of interest, in turn helped gather more people to help. He pointed out that the initiatives which were most successful in gathering a team to rally to their cause tended to be the ones with leaders with the best ability to communicate their goals; and of course they also had to have great technical skills and be skilled project managers. Dries added that, if he were to do it again, he would try to get a small team together for each initiative, from the start, with individuals able to bring all important strengths to work for each initiative. It’s a lot to ask from one person.

Q: How do you best prepare for Drupal 8?

Nathaniel Catchpole (catch), suggested that if you are a site-builder, experiment with building up a Drupal 8 version of a site you want to migrate to Drupal 8, or just begin building up a site; just remember that we are just at the first beta, so things might be changing. But if you just practice building up your site structure and learn what you can do, that can be very helpful as a first step to being comfortable with Drupal 8.

Wim Leers added that it’s a good time for the community to get the input from experienced site builders who have familiarity with how things work in Drupal 7 and might find some areas where performance or user experience have been affected in a negative manner; there might still be time to fix remaining issues identified now.

Jess recommended that users who need to migrate from Drupal 6, which is scheduled for “end of life” about six months after the release of a stable Drupal 8.0.0, practice building up the functionality they need in Drupal 8, determining any areas where core functionality doesn’t fill their requirements. A lot of functionality which was formerly only in contrib is now in core, but you can identify what contrib modules you still need to see ported. Keep your Drupal 6 site running, but you can locally test and practice the migration path from Drupal 6 to Drupal 8. Currently this path lacks a user interface and has some other rough areas, but there is documentation. Then you can follow and support the development of contrib modules that are blockers for your ideal upgrade.

Alex Pott added that if you are a PHP developer, it’s a good time to be learning about all the new object-oriented stuff in core; getting your head around that. He recommended looking at PHP: The Right Way for some good tips. Themers should work on learning Twig and a new base theme, Classy, just committed to Drupal 8. But beware, the others added: the theme layer will not be frozen until closer to the final release date, so there are still some things that will change. Also, there is now a full-featured Entity API in core, so when modeling your site, think in terms of entities and think about what is really content or not.

Gábor reminded us that even if you aren’t ready to dive into Drupal 8, there are a lot of good talks, blog posts, and development surrounding bringing a lot of “Drupal 8 improvements” into Drupal 7 sites, so you can learn your way around PHPUnit, Composer, etc, as a first step to getting comfortable with Drupal 8.

Dries then opened the floor to additional questions from the audience. The first participant actually asked two questions, one more serious than the other.

Q: If you had to bet on the release date for Drupal 8, what date would that be?

That guy who asked three questions...This question got a good laugh and perhaps more discussion time than was necessary. After skipping it to take his serious question, this one actually did get some answer time; Jess made some cogent points: that it’s not a good idea to base business decisions on any predictions around the release date of Drupal 8, but that the community is betting on it being soon and successful. She suggested that any really large projects which will take years to develop are good candidates for looking at the components of Drupal 8 as appropriate building blocks and starting work. His second question was one that, perhaps other developers who haven’t yet worked (much) with Drupal 8 code, could relate to.

Q: In the past, someone who doesn’t do a lot of development could still make a simple tweak to simple module. Now there is so much code for the new Symfony-based modules. Isn’t all this code scary?

catch pointed out that once you are familiar with it, there are still lots of places you can easily make the same kind of tweaks with Views in core, and with plugins and the configuration management. yched added that most of the hooks available in Drupal 7 are still available. Gábor said that he could remember a time, not so long ago, when he’d also been daunted by the complexity and differences between the way things are done in Drupal 8 versus how they were done in Drupal 7, but after starting to work with it, you will learn the new patterns and it starts to make sense and actually be easier, in many ways. Dries added that it’s common to be daunted by the “more-lines-of-code”, but that the object orientation actually reduces the complexity and makes it easier to extend and understand, once you are familiar with the design patterns. He also pointed out that in Drupal 7 you had to know all the hooks and that now, it’s more declarative and you can work with what you want to happen, based on events. So there is less you need to learn, and less “magic”.

Wim reminded us that Drupal 8 introduces greater strictness, which translates to an increase in verbosity, but also makes it easier to find and avoid problems.

Q: How does Drupal 8 architecture matter to clients? Why should they care about developing a site in Drupal 8?

Chris Amato, aka knectar on drupal.orgChris Amato (knectar) asked this question, to which Dries began by pointing out that there is a lot more support “out-of-the-box” for things like mobile content, with responsive designs and services deeply integrated. yched added that every entity type is now natively translatable and versionable and that every field can be manipulated with the same familiar tools. Gábor added that there are lot more Views and things that can be individually tweaked to a clients needs. Even admin pages are Views-based and the modules you use will also incorporate this flexibility, so there should be less need for hacks to work around what a client needs.

The next question had to do with decoupling in Drupal 8 and so-called “headless Drupal”

Q: (paraphrased) How does “headless Drupal” and decoupling fit in and is this something we will be seeing more of in Drupal 9?

The guy who asked about headless Drupal in Drupal 9Dries said that it was really too early to know what the focus of Drupal 9 would be, but that it would likely involve greater decoupling, yes. Others pointed out that it’s already possible to do a lot with headless Drupal and that we can look for a big growth in that direction coming from contrib and possibly making its way into core before Drupal 9.

The next question brought us to the issue of documentation.

Q: Will there be some books for Drupal 8 and better documentation?

That guy who asked about documentation...Gábor started by pointing out that there is already a Drupal 8 API section, a lot of which is pretty well fleshed-out. There are still places for people to get involved and help update since there have been so many changes since the initial pages were written. And Jennifer Hodgdon is already working on a book for Drupal 8 development. Dries pointed out that there are now about 50 or so books on Drupal 7, and that things are still changing enough it’s still too early for publication of Drupal 8 books, but that we can expect a variety of books on Drupal 8 soon after its release. The API documentation and other Drupal 8 usage documentation is in various stages of completion. xjm pointed out that we need help with the documentation on drupal.org and that this is a great way to get involved.

Q: “What is being done or can be done to help bring funding to Drupal development?” (heavily paraphrased)

Rudi van Es of the local Amsterdam Drupal community

Rudi van Es, an Amsterdam-based member of the local Drupal shop, limongroen, came with this question.

Dries indicated that the Drupal Association can sometimes help find parties who would also benefit from certain development to help find funding for some projects, but that this is part of what Large Scale Drupal is working to accomplish and that maybe we also need a “Small Scale Drupal” to work more directly with individual developers. Some of the funding that has already come out of Large Scale Drupal went into improving workflows for media and publishing companies on Drupal; this effort has been added to the Workbench project. Dries also reminded us of his keynote, where he discussed better incentivizing contribution. And some organizations might be more willing or able to donate than actual time and expertise to Drupal development. Dries acknowledged that there are limits to the number of companies who are actively funding Drupal projects and initiatives and this is one of the challenges facing the community. While Wikipedia has been able to successfully crowdfund, they have a unique advantage in being able to directly access the end users; Drupal end-users are largely unaware of Drupal.

Q: Is it possible for us to reach a point where we can remove the trouble of upgrading and Drupal is just Drupal, regardless of version number?

Matt Smith, aka smithworx on Drupal.orgThat question came from Matt Smith of Lingotek, who asked a question I have asked before; a tough question. catch started by discussing what they have planned for Drupal releases now, which is already a huge improvement, that Drupal 8.1.0 and 8.2.0 can bring new functional improvements without breaking the API and that by growing slowly, they can minimize the API breakage needed when when it finally is necessary, to re-think a way of doing something and that would be the point we move to 9.x development. We might not be able to avoid breaking the API, because avoiding this can put us in a place the we have to deal with stagnation, but we will make our best efforts to minimize this going forward and it may be that in the beginning of Drupal 9, modules that have worked with each progressive minor version will, mostly not be broken by the initial changes in Drupal 9. As the architecture becomes closer to ideal, we should be able to greatly improve this, as we move forward. xjm added that the release cycle they have adopted now is like Ubuntu and there will be long-term support for some releases.

The final question taken was about tools. In short, the question was…

Q: What development tools are you (core committers) using to manage your work?

That guy again... asking the third questionThis question came, again, from the same fellow (sorry, I didn’t quite get your name), who asked “stable release date”, and the “Isn’t the big, new code complicated and scary?” questions. As the code-base becomes more and more complex, people who used to simply work with a text editor are finding it harder to manage and more and more developers are using IDEs, in particular PHPStorm, which this guy felt seems to be so prevalent now as to be almost a “soft requirement” for Drupal development.

Here, Dries suggested each of the panelists provide a quick answer about their preferred editors of choice and then wrap up the session: xjm started by saying she still mostly uses Emacs, but has started “tasting the forbidden fruit of an IDE in the form of PHPStorm” and said that without 16 years of using Emacs, it wouldn’t be a tough decision. It does make your development life a bit more sane. Gábor said that he has adopted PHPStorm. catch said that he’s still using Vim and holding out as long as he can, but will probably give in at some point and start using PHPStorm. There was brief discussion then, about fear that if everyone adopts a commercial product like PHPStorm, that this could lead to JetBrains taking advantage of us with monopolistic behavior. (Personally, I'm not worried and have respect for the offer they continue to honor: free licenses for open-source contributors.) Moving back to the panel, Alex Pott confessed that he uses PHPStorm. yched also uses PHPStorm and added that it really just makes navigating a large object-oriented codebase so much simpler; navigating between the classes, implementations, overrides, and so on. Wim Leers said that he continued to use text editors until a few months ago and has now also started using PHPStorm. Dries joked that he uses email, then confessed that he doesn’t get to code that much these days, so shouldn’t be taken as a reference, but still uses vi when he needs to make some quick changes.

Final thoughts…

It may be late in the game, but it’s a good time to help with the final work to get all the biggest bugs resolved so that Drupal 8 can be considered stable. There are lots of way to help, from identifying issues (beta testing or areas where documentation is lacking, etc), to simply verifying that bugfixes do what they are supposed to do. And there are a lot of nice tools, now, for helping review tickets. If tickets can be reviewed right away, it is more likely they just get finished before they drag on for months, require “re-rolls”, and all those hassles, and many such tickets are not difficult to review. I’m glad I made it to the Drupalcon rather than just watching/listening when I had the time.

And I should probably say that it’s been far too long since I’ve written a Drupal-related blog post here. I’m not going to make excuses: the truth is that I’ve been pretty much inundated with OtherStuff™, including some work on a complex, semi-mature project which only involves Drupal and so stopped having time to contribute, look at much actual Drupal code, or spend much time learning about all the “new things” going on. So I didn’t feel qualified to write about what was going on in the Drupal world. But I came to Cocomore for the Drupal, so I’ll work on reaching a better balance and hope to find time between all the OtherStuff™ to see you again, soon. The sprint Friday and weekend got my Drupal-thirst going again; Randi and I are already looking at a vacation rental for the full week in Barcelona next year (woohoo!), so you can count on it at least not being too long.

Oct 05 2014
Oct 05

One Drupalcon session of particular interest to many in the community, since the first “episode”, has been the “Q&A with Dries”, a core-conversation-track session in which Dries is joined by a panel of his initiative leads and others in the “inner circle” of Drupal 8 core development. Since I’d wished, in the past, that sessions like these had a video recording to show who was talking, I brought my DSLR and a shotgun microphone this time, thinking I’d contribute the resulting video. I don’t think the video I shot was technically perfect enough to share; perhaps I could fix that, but I also realized that one panel member prefers to limit her exposure on the Web—and respect that, of course; since it’s much easier to blur or block out a face in a few images than in a video, and since you can read this summary in much less time than the hour+ -length session, I decided to provide stills from the video, along with a summary of the questions and answers, which ranged from the whimsical (a bet on how long it would be till Drupal 8 would be released as “stable”), to various business and architecture questions, and other concerns.

Q and A with Dries and panelists, Drupalcon Amsterdam

(You’ll find a more serious answer to that question if you read on...). Of course, Dries began by asking each of his panelists to introduce themselves. Those present were:

intro_gabor.jpgGábor Hojtsy, who works for Acquia and introduced himself, first, as the Drupal 6 maintainer; he also leads the Multilingual initiative for Drupal 8.

Nathaniel CatchpoleNathaniel Catchpole (catch), a major core maintainer with special focus on optimizing performance.

intro_alexpott.jpgAlex Pott, who works for ChapterThree, and supports Drupal as a core maintainer, also contributes actively in the configuration management initiative for Drupal 8.

yched introduces himselfYves Chedemois (yched), a freelancer and volunteer contributor to Drupal core, especially active as the maintainer of the Drupal 8 Field API (he formerly maintained CCK).

Wim Leers, core maintainerWim Leers (of Acquia, who works on the Spark initiative and Drupal 8 performance

Jess (xjm), who was the major heavy lifter for getting Views into Drupal 8 core, alongside her very active community mentoring role, now is most active with release planning and other steps toward getting Drupal 8 to the community.

Dries jokes and introduces himself as 'Drice'

Dries made everyone laugh, then, by introducing himself… and pronouncing his name as if it rhymed with “rice”. He followed by submitting the first questions to the panelists; these initial questions were selected from those emailed to him before the day of the session. Everyone had something to say for the first question.

Q: Are there any lessons learned, so far, from the Drupal 8 release cycle?

Alex Pott pointed out that changing core is taking longer and longer as the complexity increases and the needs of the greater Drupal community become more varied. “It’s no longer a matter of developers having a good idea and putting a patch on Drupal.org”, he said. You have to get everything reviewed and tested and re-tested, usually through many iterations, before a patch finally makes it into core.

Yves Chedemois (yched) added that it really helped having a bigger team of people assisting in the Field API initiative, compared to how things have sometimes been in the past, before the initiatives, with only one or two people working on a particular sub-system; so now he might have five or six developers actively supporting him and who are all able to review each others work, and take over from one another if anyone is ill or leaves the team. He pointed out that, of course, finding five or six people who can keep active for the full 2-3 years that has been this development cycle has been one challenge; it’s just not realistic to expect.

Gábor weighed in with the fact that the whole extra communication with the community was something that hadn’t been so present before and has helped to find people identify their strengths and find ways to contribute to the development process. Extra communications on Drupal.org, the core conversations like this Q&A session, and the initiatives, themselves, helped to build a better level of involvement and ability to contribute.

Dries also added that people asked whether the initiatives, themselves, were a success, and wanted to say that he, indeed, found them very useful for the development cycle. It helped communicate a sort of roadmap for Drupal with the key areas that needed work. Having clearly communicated, specific goals, and teams working with specific areas of interest, in turn helped gather more people to help. He pointed out that the initiatives which were most successful in gathering a team to rally to their cause tended to be the ones with leaders with the best ability to communicate their goals; and of course they also had to have great technical skills and be skilled project managers. Dries added that, if he were to do it again, he would try to get a small team together for each initiative, from the start, with individuals able to bring all important strengths to work for each initiative. It’s a lot to ask from one person.

Q: How do you best prepare for Drupal 8?

Nathaniel Catchpole (catch), suggested that if you are a site-builder, experiment with building up a Drupal 8 version of a site you want to migrate to Drupal 8, or just begin building up a site; just remember that we are just at the first beta, so things might be changing. But if you just practice building up your site structure and learn what you can do, that can be very helpful as a first step to being comfortable with Drupal 8.

Wim Leers added that it’s a good time for the community to get the input from experienced site builders who have familiarity with how things work in Drupal 7 and might find some areas where performance or user experience have been affected in a negative manner; there might still be time to fix remaining issues identified now.

Jess recommended that users who need to migrate from Drupal 6, which is scheduled for “end of life” about six months after the release of a stable Drupal 8.0.0, practice building up the functionality they need in Drupal 8, determining any areas where core functionality doesn’t fill their requirements. A lot of functionality which was formerly only in contrib is now in core, but you can identify what contrib modules you still need to see ported. Keep your Drupal 6 site running, but you can locally test and practice the migration path from Drupal 6 to Drupal 8. Currently this path lacks a user interface and has some other rough areas, but there is documentation. Then you can follow and support the development of contrib modules that are blockers for your ideal upgrade.

Alex Pott added that if you are a PHP developer, it’s a good time to be learning about all the new object-oriented stuff in core; getting your head around that. He recommended looking at PHP: The Right Way for some good tips. Themers should work on learning Twig and a new base theme, Classy, just committed to Drupal 8. But beware, the others added: the theme layer will not be frozen until closer to the final release date, so there are still some things that will change. Also, there is now a full-featured Entity API in core, so when modeling your site, think in terms of entities and think about what is really content or not.

Gábor reminded us that even if you aren’t ready to dive into Drupal 8, there are a lot of good talks, blog posts, and development surrounding bringing a lot of “Drupal 8 improvements” into Drupal 7 sites, so you can learn your way around PHPUnit, Composer, etc, as a first step to getting comfortable with Drupal 8.

Dries then opened the floor to additional questions from the audience. The first participant actually asked two questions, one more serious than the other.

Q: If you had to bet on the release date for Drupal 8, what date would that be?

That guy who asked three questions...This question got a good laugh and perhaps more discussion time than was necessary. After skipping it to take his serious question, this one actually did get some answer time; Jess made some cogent points: that it’s not a good idea to base business decisions on any predictions around the release date of Drupal 8, but that the community is betting on it being soon and successful. She suggested that any really large projects which will take years to develop are good candidates for looking at the components of Drupal 8 as appropriate building blocks and starting work. His second question was one that, perhaps other developers who haven’t yet worked (much) with Drupal 8 code, could relate to.

Q: In the past, someone who doesn’t do a lot of development could still make a simple tweak to simple module. Now there is so much code for the new Symfony-based modules. Isn’t all this code scary?

catch pointed out that once you are familiar with it, there are still lots of places you can easily make the same kind of tweaks with Views in core, and with plugins and the configuration management. yched added that most of the hooks available in Drupal 7 are still available. Gábor said that he could remember a time, not so long ago, when he’d also been daunted by the complexity and differences between the way things are done in Drupal 8 versus how they were done in Drupal 7, but after starting to work with it, you will learn the new patterns and it starts to make sense and actually be easier, in many ways. Dries added that it’s common to be daunted by the “more-lines-of-code”, but that the object orientation actually reduces the complexity and makes it easier to extend and understand, once you are familiar with the design patterns. He also pointed out that in Drupal 7 you had to know all the hooks and that now, it’s more declarative and you can work with what you want to happen, based on events. So there is less you need to learn, and less “magic”.

Wim reminded us that Drupal 8 introduces greater strictness, which translates to an increase in verbosity, but also makes it easier to find and avoid problems.

Q: How does Drupal 8 architecture matter to clients? Why should they care about developing a site in Drupal 8?

Chris Amato, aka knectar on drupal.orgChris Amato (knectar) asked this question, to which Dries began by pointing out that there is a lot more support “out-of-the-box” for things like mobile content, with responsive designs and services deeply integrated. yched added that every entity type is now natively translatable and versionable and that every field can be manipulated with the same familiar tools. Gábor added that there are lot more Views and things that can be individually tweaked to a clients needs. Even admin pages are Views-based and the modules you use will also incorporate this flexibility, so there should be less need for hacks to work around what a client needs.

The next question had to do with decoupling in Drupal 8 and so-called “headless Drupal”

Q: (paraphrased) How does “headless Drupal” and decoupling fit in and is this something we will be seeing more of in Drupal 9?

The guy who asked about headless Drupal in Drupal 9Dries said that it was really too early to know what the focus of Drupal 9 would be, but that it would likely involve greater decoupling, yes. Others pointed out that it’s already possible to do a lot with headless Drupal and that we can look for a big growth in that direction coming from contrib and possibly making its way into core before Drupal 9.

The next question brought us to the issue of documentation.

Q: Will there be some books for Drupal 8 and better documentation?

That guy who asked about documentation...Gábor started by pointing out that there is already a Drupal 8 API section, a lot of which is pretty well fleshed-out. There are still places for people to get involved and help update since there have been so many changes since the initial pages were written. And Jennifer Hodgdon is already working on a book for Drupal 8 development. Dries pointed out that there are now about 50 or so books on Drupal 7, and that things are still changing enough it’s still too early for publication of Drupal 8 books, but that we can expect a variety of books on Drupal 8 soon after its release. The API documentation and other Drupal 8 usage documentation is in various stages of completion. xjm pointed out that we need help with the documentation on drupal.org and that this is a great way to get involved.

Q: “What is being done or can be done to help bring funding to Drupal development?” (heavily paraphrased)

Rudi van Es of the local Amsterdam Drupal community

Rudi van Es, an Amsterdam-based member of the local Drupal shop, limongroen, came with this question.

Dries indicated that the Drupal Association can sometimes help find parties who would also benefit from certain development to help find funding for some projects, but that this is part of what Large Scale Drupal is working to accomplish and that maybe we also need a “Small Scale Drupal” to work more directly with individual developers. Some of the funding that has already come out of Large Scale Drupal went into improving workflows for media and publishing companies on Drupal; this effort has been added to the Workbench project. Dries also reminded us of his keynote, where he discussed better incentivizing contribution. And some organizations might be more willing or able to donate than actual time and expertise to Drupal development. Dries acknowledged that there are limits to the number of companies who are actively funding Drupal projects and initiatives and this is one of the challenges facing the community. While Wikipedia has been able to successfully crowdfund, they have a unique advantage in being able to directly access the end users; Drupal end-users are largely unaware of Drupal.

Q: Is it possible for us to reach a point where we can remove the trouble of upgrading and Drupal is just Drupal, regardless of version number?

Matt Smith, aka smithworx on Drupal.orgThat question came from Matt Smith of Lingotek, who asked a question I have asked before; a tough question. catch started by discussing what they have planned for Drupal releases now, which is already a huge improvement, that Drupal 8.1.0 and 8.2.0 can bring new functional improvements without breaking the API and that by growing slowly, they can minimize the API breakage needed when when it finally is necessary, to re-think a way of doing something and that would be the point we move to 9.x development. We might not be able to avoid breaking the API, because avoiding this can put us in a place the we have to deal with stagnation, but we will make our best efforts to minimize this going forward and it may be that in the beginning of Drupal 9, modules that have worked with each progressive minor version will, mostly not be broken by the initial changes in Drupal 9. As the architecture becomes closer to ideal, we should be able to greatly improve this, as we move forward. xjm added that the release cycle they have adopted now is like Ubuntu and there will be long-term support for some releases.

The final question taken was about tools. In short, the question was…

Q: What development tools are you (core committers) using to manage your work?

That guy again... asking the third questionThis question came, again, from the same fellow (sorry, I didn’t quite get your name), who asked “stable release date”, and the “Isn’t the big, new code complicated and scary?” questions. As the code-base becomes more and more complex, people who used to simply work with a text editor are finding it harder to manage and more and more developers are using IDEs, in particular PHPStorm, which this guy felt seems to be so prevalent now as to be almost a “soft requirement” for Drupal development.

Here, Dries suggested each of the panelists provide a quick answer about their preferred editors of choice and then wrap up the session: xjm started by saying she still mostly uses Emacs, but has started “tasting the forbidden fruit of an IDE in the form of PHPStorm” and said that without 16 years of using Emacs, it wouldn’t be a tough decision. It does make your development life a bit more sane. Gábor said that he has adopted PHPStorm. catch said that he’s still using Vim and holding out as long as he can, but will probably give in at some point and start using PHPStorm. There was brief discussion then, about fear that if everyone adopts a commercial product like PHPStorm, that this could lead to JetBrains taking advantage of us with monopolistic behavior. (Personally, I'm not worried and have respect for the offer they continue to honor: free licenses for open-source contributors.) Moving back to the panel, Alex Pott confessed that he uses PHPStorm. yched also uses PHPStorm and added that it really just makes navigating a large object-oriented codebase so much simpler; navigating between the classes, implementations, overrides, and so on. Wim Leers said that he continued to use text editors until a few months ago and has now also started using PHPStorm. Dries joked that he uses email, then confessed that he doesn’t get to code that much these days, so shouldn’t be taken as a reference, but still uses vi when he needs to make some quick changes.

Final thoughts…

It may be late in the game, but it’s a good time to help with the final work to get all the biggest bugs resolved so that Drupal 8 can be considered stable. There are lots of way to help, from identifying issues (beta testing or areas where documentation is lacking, etc), to simply verifying that bugfixes do what they are supposed to do. And there are a lot of nice tools, now, for helping review tickets. If tickets can be reviewed right away, it is more likely they just get finished before they drag on for months, require “re-rolls”, and all those hassles, and many such tickets are not difficult to review. I’m glad I made it to the Drupalcon rather than just watching/listening when I had the time.

And I should probably say that it’s been far too long since I’ve written a Drupal-related blog post here. I’m not going to make excuses: the truth is that I’ve been pretty much inundated with OtherStuff™, including some work on a complex, semi-mature project which only involves Drupal and so stopped having time to contribute, look at much actual Drupal code, or spend much time learning about all the “new things” going on. So I didn’t feel qualified to write about what was going on in the Drupal world. But I came to Cocomore for the Drupal, so I’ll work on reaching a better balance and hope to find time between all the OtherStuff™ to see you again, soon. The sprint Friday and weekend got my Drupal-thirst going again; Randi and I are already looking at a vacation rental for the full week in Barcelona next year (woohoo!), so you can count on it at least not being too long.

Nov 19 2013
Nov 19

Christian Lopez (Penyaskito) representing Drupal in the EBE13 CMS round table.

Penyaskito, aka Christian Lopez, Drupal developer at CocomoreThis past weekend was a busy one for some of our developers who attended EBE13, a major Spanish conference for digital marketing, blogging, social media, and online communication, held annually in Seville, not far from our Cocomore in Spain, which drew over 1000 developers this year. Christian Lopez (aka Penyaskito on Drupal.org and Twitter), participated as an expert panelist representing Drupal in a "round table" moderated debate, lending much credibility to our favorite popular open-source CMS and Web application framework. He spoke about typical use cases for Drupal, as well as some unusual places he has seen Drupal in action, such as in a POS system in McDonalds, among other odd uses. He was joined by Isidro Baquero, representing Joomla, and Rafael Poveda, representing Wordpress. The debate was moderated by Agile trainer and coach, Jeronimo Palacios.

What they learned was that, in the end, everyone who actively contributes to open-source is a winner, regardless of the technology! The benefits of being a part of a great open-source community turned out to be the most compelling reason for using each of these projects. Of course there are other strong reasons we, at Cocomore, favor Drupal, but involvement with a greater development community is a good way to become an expert in the CMS you use. So if you work with Drupal (or Wordpress or Joomla or any other open-source CMS), finding ways to contribute will help you grow as well as improving the code base that you use.

Nov 18 2013
Nov 18

Christian Lopez (Penyaskito) representing Drupal in the EBE13 CMS round table.

Penyaskito, aka Christian Lopez, Drupal developer at CocomoreThis past weekend was a busy one for some of our developers who attended EBE13, a major Spanish conference for digital marketing, blogging, social media, and online communication, held annually in Seville, not far from our Cocomore in Spain, which drew over 1000 developers this year. Christian Lopez (aka Penyaskito on Drupal.org and Twitter), participated as an expert panelist representing Drupal in a "round table" moderated debate, lending much credibility to our favorite popular open-source CMS and Web application framework. He spoke about typical use cases for Drupal, as well as some unusual places he has seen Drupal in action, such as in a POS system in McDonalds, among other odd uses. He was joined by Isidro Baquero, representing Joomla, and Rafael Poveda, representing Wordpress. The debate was moderated by Agile trainer and coach, Jeronimo Palacios.

What they learned was that, in the end, everyone who actively contributes to open-source is a winner, regardless of the technology! The benefits of being a part of a great open-source community turned out to be the most compelling reason for using each of these projects. Of course there are other strong reasons we, at Cocomore, favor Drupal, but involvement with a greater development community is a good way to become an expert in the CMS you use. So if you work with Drupal (or Wordpress or Joomla or any other open-source CMS), finding ways to contribute will help you grow as well as improving the code base that you use.

Mar 03 2013
Mar 03
Modules of the month story banner illustration.

Well, February is always a short month, but this year it seemed like it passed in just a couple of weeks… and now it’s already March and I’m only finally getting around to putting the final touches on this posting for the January “Modules of the Month”. How did that happen? Well, I won’t try to bore you or make excuses. It’s just been one of those months. I’m going to try to keep up my current momentum and evaluate and write up my favorites from February now… hopefully finishing that in the next week or so. If it’s not done by the 15th, it won’t be done till April since I’ll be taking off for my first trip to India in the middle of this month.

But I’m not here to write about myself. This is about some modules which I found might be worthy of notice… specifically those released in January 2013. It’s interesting to see the evolution of a Drupal version and what kinds of modules are being released these days. Almost no modules are being released for Drupal 6 and Drupal 8’s developer API is still far enough from maturity that there are very few modules being released for it, so almost all the focus is on Drupal 7. Almost anything really critical has already been done, so most modules now fit into areas of workflow improvement, integration of third-party libraries, developer tools, and addressing the needs of an increasingly mobile audience (responsive design). There are a lot of new modules for image display, for keeping a closer eye on site administration issues, creating better e-shops, deploying content from one site to another, and managing caching, among other trends. It’s clear that Drupal 7 is a mature product serving the needs of an extremely diverse community and it’s exciting to see all the new ways that, each month, developers encounter new needs and find inventive ways to further extend on the feature-set. So read on to see what new and fun stuff we got in January… (and I promise to try to get February’s review done in the next week or so).

*/ Access denied backtrace

The Access denied backtrace module helps track down the point where access rights are denied.How many times have you had to try to sort out access issues on a Drupal site? Sometimes this can be a pain, but the module, by Eduardo Garcia of Anexus IT, promises to help put an end to this senseless suffering; it helps track down the exact point at which a particular role is denied access for a particular node or path. Perhaps the screenshot here is a bit contrived; the only reason the basic "authenticated user" cannot create a new node of type "Article" is that they don’t have the appropriate permission checked. In a more complex site with lots of custom content and custom user-access code, this could be very useful. (My primary work is on a team where the access model for all content types and users would require a full article to explain.)

Status: There is a stable release available for Drupal 7.

Advanced help dialog

The module, by Dan Polant of Commerce Guys, allows developers to extend the popular Advanced Help module. By implementing the provided hook, you can add a link to the "Help" region of specific paths; the link opens a modal box with the relevant "advanced help" content. Nice.

Status: There is a development release available for Drupal 7.

Anonymous Redirect

The module, from Michael Strelan of Glo Digital, redirects anonymous users to another domain, but visitors can still reach /user or /user/login to authenticate. After logging in, users have normal access. This can easily be configured to limit access to a staging server and redirect users to your production site, the most typical use case for the module.

Status: There is a development release available for Drupal 7.

Boost Custom Expire Rules

The module, authored by Zyxware Technologies, allows setting different expiry times for content cached with Boost. Complex rules can be configured to fine-tune how long various content on your site is cached. Older nodes can have a longer cache lifetime, for instance. Rules can be configured for the URL path, node type, age, etc. This definitely looks like a must-have for sites which use Boost, especially if they actively add new content on a regular basis and retain older content.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Block Up Down

The Block Up/Down module allows you to easily disable or move blocks within a region without going into block administration.The module, coded by Pol Dell'Aiera of Trasys, is dead simple. Just activate it and you get three new contextual links on blocks so you don’t need to go into the block administration page just to disable a block or move it up or down within a region. I think this is great, since probably most of the time I go into the block administration page, which can take a while to load on a complex site with a lot of blocks and regions, moving one block up or down (or disabling a block) is all I really want to do, so allowing administrators to manage this from within the front-end is a really sweet feature.

Status: There is a stable release available for Drupal 7.

CKEditor Link File

The CKEditor Link File module, created by Devin Carlson, integrates (and requires) the CKEditor Link and File entity modules so that editors on your site can easily add links to existing files on your site. This definitely looks useful for sites which use CKEditor.

Status: There is a stable release available for Drupal 7.

Combined Termref

The module, written by Girish Nair, allows you to address up to three different vocabularies with one term-reference field; obviously only one vocabulary in the group can take “free tagging”. If new terms are added, they go into the first of the vocabularies selected for the Combined Termref field. There can be good reasons that you need different vocabularies, but the purpose can stay behind the scenes; content creation can be simpler by allowing entry with a single field. I think this looks cool.

Status: There is a beta release available for Drupal 7.

Commerce Cart Message

The Drupal Commerce Cart Message module displays a message in the cart.The module, authored by Aidan Lister, provides an option to add rules for displaying messages on your Drupal Commerce cart. This definitely looks useful.

Status: There is a stable release available for Drupal 7.

Views Contextual Range Filter

The module, written by Rik de Boer of flink, provides a Views plugin that allows you to filter views based on a range of values for any field where this might make sense. For instance, you might want to filter by price range, age range, etc. This kind of search is a pretty common use case, so I suspect this will become quite popular.

Status: There is a stable release available for Drupal 7.

Creative commons field

The module, by Ben Scott, defines a field type for attaching Creative Commons licence types, so you can add CC licences to files or any entity type. There are other modules which can add a CC license, but they only work with nodes; files are likely a most common use case. Cool!

Status: There is a stable release available for Drupal 7.

Entity Extras

Categories: Utility

The module, coded by Dave Hall, provides extra utility functions to extend the Entity API module. The idea is to share useful functions here and improve on them before proposing them for inclusion in Entity API or Drupal core. If you aren’t a developer, you’ll probably only enable this if another module requires it, but if you write your own modules which use the Entity API, this is probably worth taking a look at.

Status: There is an alpha release available for Drupal 7.

Facebook Album Fetcher

The module, written by Kaushal Kishore of OSSCube, allows you to import your Facebook albums and photo galleries. You can also import the images from your friends’ accounts, too, but be sure you ask your friends if it’s okay. Personally, I only allow friends to view my Facebook account, so people like me might be annoyed if the images they shared on Facebook were pulled into a public-facing album without their consent. That said, companies with a Facebook presence might like to pull the images from their Facebook galleries into a gallery on their main website, and I’m sure there are many other good use cases for this module.

Status: There is a stable release available for Drupal 7.

Field Collection Deploy

The module, created by Robert Castelo of Code Positive, provides a way to deploy content from the Field Collection fields from one site to another. It extends (and requires) Features, Field Collection (of course), UUID, Node Export, and Entity API. Getting this to work is clearly non-trivial, but if you need this functionality, you’ll be happy to find this module.

Status: There is a beta release available for Drupal 7.

File Entity Preview

Categories: Media

The module, contributed by Graham Bates of Catch Digital, provides a widget for file fields with previews of uploaded files, as configured with File Entity. It otherwise works like the “core” File widget.

Status: There is a stable release available for Drupal 7.

Graphviz

The module, written by Clemens Tolboom, renders a Graphviz text file for further processing; it hooks into Graph API to provide Views integration and can output an image file using the Graphviz Filter.

Status: There is a development release available for Drupal 7.

Graph Phyz

Graph Phyz helps display a nice relationships graph. is another graph-related module contributed by Clemens Tolboom. It renders an interactive graph using Graph API. Pretty cool, if your site calls for this, and I can think of at least one project where this might have saved some custom coding.

Status: There is a development release available for Drupal 7.

Hide PHP Fatal Error

The module, by B-Prod of MaPS System, redirects users to a configurable error page whenever a fatal error is thrown in PHP. Of course the error is also logged into the watchdog so you can work on eliminating the error for the next user. Nice.

Status: There is a stable release available for Drupal 7.

Hierarchical taxonomy

The module, by Marcus Deglos of Techito, is a developer module (you won’t need this, as a non-coder unless another module requires it) which provides a simple hierarchical_taxonomy_get_tree() function which renders an array of a vocabulary’s hierarchical structure. This should probably be in “core”.

Status: There is a development release available for Drupal 7.

Image Zoomer

The Image Zoomer module integrates various Javascript libraries for getting a closer look at an photo.The module, contributed by Tuan, integrates two image zoom-related JQuery plugins; Power Zoomer and Featured Zoomer and the developer of this module is adding support for other modules which provide image zooming. This could be cool for online “catalog” images or for commercial photography sites who want to provide a closer look at an image without making it too simple for users to download a higher-resolution version.

Status: There is a stable release available for Drupal 7.

Image Focus Crop

The module, contributed by Nguyễn Hải Nam of Open Web Solutions, helps find the focal center of an image you are scaling and cropping and includes advanced facial recognition algorithms. This looks interesting.

Status: There is a stable release available for Drupal 7.

Image formatter link to image style

image_formatter_link_to_image_style.pngThe module, developed by Manuel García, provides an additional formatter for the core image field so that you can create, for instance, a “thumbnail” which links to a larger, watermarked version of the image. This seems like a common enough need that this kind of functionality should probably be added to core. Until then, there’s this.

Status: There is a stable release available for Drupal 7.

jQuery UI Slider Field

The Jquery Ui Slider Field module provides a simple way “slide” between a range of integer values.The module, developed by Sina Salek integrates the jQuery UI Slider plugin so you can easily allow users of your site to utilize a graphical slider to quickly enter an integer value in a field. This looks handy, especially for users accessing your site without a normal keyboard.

Status: There is an alpha release available for Drupal 7.

Juicebox HTML5 Responsive Image Galleries

The Juicebox integration module for Drupal helps you display a beautiful responsive image gallery.The module, written by Ryan Jacobs integrates the beautiful Juicebox HTML5 responsive gallery library into your Drupal site. There’s a lot to this module; probably enough to have a whole article dedicated to ways you can use it, but it definitely looks nice if you want to provide image galleries that render well on a wide range of devices. Like many other such modules that integrate third-party code, it requires Libraries and adding the Juicebox code to your sites/all/libraries directory. We should note that there are both Lite (free) and Pro (commercial) versions of Juicebox (you’ll need to decide which is more appropriate for your use case) and the maintainers of this module are not affiliated with the developers of Juicebox, itself. This module will work to integrate either version of Juicebox.

Status: There is a beta release available for Drupal 7.

Lazy Entity

The module, written by James I. Armes of AllPlayers.com, allows field values for Drupal entities to be lazy-loaded rather than loaded at the time the entity loads, so can provide a boost to performance and memory usage. This module is for developers, so will not be useful to you unless you are a coder who needs to lazy-load fields. Otherwise you would only enable this module if another module requires it.

Status: There is a development release available for Drupal 7.

Linked Data Tools

The module, by Chris Skene of PreviousNext, is a developer module to help retrieve, cache, and work with linked data sources. It depends on EasyRDF and X Autoload and Guzzle is also recommended.

Status: There is an alpha release available for Drupal 7.

Library attach

The module, written by Dave Reid of Palantir.net, adds a Library reference field type so that libraries can be attached to individual entities when rendered, thus saving your site from loading lots of unnecessary Javascript for every page. It also adds an option to the Views UI so allows adding libraries for specific Views displays. This is a great idea!

Status: There is an RC release available for Drupal 7.

Lorempixel

The module, written by Fredric Bergström of Wunderkraut, provides “dummy images” which it fetches from the very slick lorempixel.com web service. Oh, and the module can also be used to get the placeholder images added to content by Devel generate.

Status: There is a development release available for Drupal 7.

MD WordCloud

The MD Wordcloud displays a cloud of all terms in a vocabulary, sized according to frequency of their use.The module, written by Neo Khuat, creates a block with a “cloud” of terms from a taxonomy. You’ll need to download and add some Javascript files to the module’s “js” folder. So you don’t need to save and replace the Javascript files, it might be better to symlink them to a directory in sites/all/libraries.

Status: There is a stable release available for Drupal 7.

Multisite wizard

The module, written by Alex Posidelov, helps simplify the process of converting a single site Drupal installation to multisite. A lot of the work is done for you with just one click of a button and it helps lead the administrator through the rest of the requirements. It depends on the Backup and Migrate module.

Status: There is a stable release available for Drupal 7.

Notify 404

, by teknic of Appnovation Technologies, provides a means to send notification emails to a site administrator when a configurable volume or frequency of 404 (page not found) errors have occurred.

Status: There is a stable release available for Drupal 7.

Photobox

The Photobox module integrates the jQuery-powered Photo-box gallery as a display format for images.The module, developed by Andrew Berezovsky of Axel Springer Russia, adds an Image field formatter for viewing images in a Photobox image gallery. You’ll need to use the jQuery Update module since Photobox requires jQuery 1.8. This does look nice.

Status: There is a development release available for Drupal 7.

RecommenderGhost

The Recommenderghost module integrates the free external recommender service to help show users other content of interest on your site.The module, coded by hhhc, integrates the free recommender services hosted by RecommenderGhost. It makes it easy to display recommendations for “other visitors bought…”, etc. This is much simpler than installing and integrating a separate server.

Status: There is a stable release available for Drupal 7.

Reference helper

Categories: Fields

The module, created by Kevin Miller of Cal State Monterey Bay, is a helper module for displaying recent or most relevant entities under an entity reference field and was a winner of the Module Off challenge. It definitely sounds useful.

Status: There is a development release available for Drupal 7.

Regcheck

The module, produced by Tobias Haugen of Wunderkraut, adds a hidden checkbox to your site’s registration form; if checked, the registration process is aborted. “Robot” users tend to check the box, so it can be a simple way to eliminate at least some of the unwanted registrations used for spamming your site or other nefarious purposes. There are other modules which help with protecting forms like this, but a wide variety of spam prevention methods are useful for keeping a step ahead of the bot coders.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Simple hierarchical select

The module, written by Stefan Borchert of undpaul, defines a new form widget for hierarchical taxonomy fields so you can simply navigate the structure of the taxonomy and select a term.

Status: There is a stable release available for Drupal 7.

Site Disclaimer

The module, by Ilya I, can add “Terms of Use”, “Privacy policy” or other agreements to the registration form. Visitors who want to register on your site need to agree to the terms of the “disclaimer” in order to register.

Status: There is a stable stable release available for Drupal 7.

Tablesorter

The Tablesorter module integrates a jQuery plugin to allow standard tables to be sorted by any column.The module, coded by Shoaib Rehman Mirza of Xululabs, integrates the tablesorter jQuery plugin so that any standard HTML table with THEAD and TBODY tags can be turned into a sortable table without even requiring a page refresh. Of course it’s not helpful if the data is paginated, but for normal tables with all the data on one page, this could be useful. Of course you need to download the Javascript libraries and install them in your sites/all/libraries directory, and of course that means this depends on Libraries API.

Status: There is a stable release available for Drupal 7.

Taxonomy Protect

The Taxonomy Protect helps prevent users with some administration rights from deleting vocabularies.The module, contributed by Jay Beaton allows administrators to select certain taxonomy vocabularies and prevent them from being deleted. That way, even if some users who need to be able to administer taxonomies don’t fully understand the system, they won’t make the mistake of deleting a critical vocabulary.

Status: There is a stable release available for Drupal 7.

Topbar Messages

The module, created by Mark Koester of Int3c.com: International Cross-Cultural Consulting, allows you to add a message in the top of your Drupal pages. The message can be dismissed with a click on a “close” link and can include links and other formatting. There are other such modules, but this one might be the best fit for your use case. It does look useful.

Status: There is a development release available for Drupal 7.

Views Ajax Fade

The module, authored by Thomas Lattimore of Classic Graphics, is a Views plugin which allows you to add a fade in/out effect for Ajax-enabled Views displays. This would be nice for some use cases.

Status: There is a stable release available for Drupal 7.

Webform Countdown

Categories: Content

The module, by Andrew Lindsay provides a textarea component for Drupal webforms which includes a configurable, Twitter-style dynamic word or character count to limit the length of submissions. Of course it requires the Webformmodule and Libraries module (as well as the word-and-character-counter.js in sites/all/libraries.

Status: There is a beta release available for Drupal 7.

Webform Postal Code

Categories: Content

The module, is another Webform-enhancing module contributed by Andrew Lindsay. It adds strong, configurable postal code validation which can even be set to handle multiple countries simultaneously. In addition to the obvious dependency on Webform, this also requires the Postal Code Validation module.

Status: There is a beta release available for Drupal 7.

Mar 02 2013
Mar 02
Modules of the month story banner illustration.

Well, February is always a short month, but this year it seemed like it passed in just a couple of weeks… and now it’s already March and I’m only finally getting around to putting the final touches on this posting for the January “Modules of the Month”. How did that happen? Well, I won’t try to bore you or make excuses. It’s just been one of those months. I’m going to try to keep up my current momentum and evaluate and write up my favorites from February now… hopefully finishing that in the next week or so. If it’s not done by the 15th, it won’t be done till April since I’ll be taking off for my first trip to India in the middle of this month.

But I’m not here to write about myself. This is about some modules which I found might be worthy of notice… specifically those released in January 2013. It’s interesting to see the evolution of a Drupal version and what kinds of modules are being released these days. Almost no modules are being released for Drupal 6 and Drupal 8’s developer API is still far enough from maturity that there are very few modules being released for it, so almost all the focus is on Drupal 7. Almost anything really critical has already been done, so most modules now fit into areas of workflow improvement, integration of third-party libraries, developer tools, and addressing the needs of an increasingly mobile audience (responsive design). There are a lot of new modules for image display, for keeping a closer eye on site administration issues, creating better e-shops, deploying content from one site to another, and managing caching, among other trends. It’s clear that Drupal 7 is a mature product serving the needs of an extremely diverse community and it’s exciting to see all the new ways that, each month, developers encounter new needs and find inventive ways to further extend on the feature-set. So read on to see what new and fun stuff we got in January… (and I promise to try to get February’s review done in the next week or so).

Access denied backtrace

Categories: Content Access Control, Developer, Site Navigation, User Access & Authentication, User Management, Utility

The Access denied backtrace module helps track down the point where access rights are denied.

How many times have you had to try to sort out access issues on a Drupal site? Sometimes this can be a pain, but the Access denied backtrace module, by Eduardo Garcia of Anexus IT, promises to help put an end to this senseless suffering; it helps track down the exact point at which a particular role is denied access for a particular node or path. Perhaps the screenshot here is a bit contrived; the only reason the basic "authenticated user" cannot create a new node of type "Article" is that they don’t have the appropriate permission checked. In a more complex site with lots of custom content and custom user-access code, this could be very useful. (My primary work is on a team where the access model for all content types and users would require a full article to explain.)

Status: There is a stable release available for Drupal 7.

Advanced help dialog

Categories: Administration

The Advanced help dialog module, by Dan Polant of Commerce Guys, allows developers to extend the popular Advanced Help module. By implementing the provided hook, you can add a link to the "Help" region of specific paths; the link opens a modal box with the relevant "advanced help" content. Nice.

Status: There is a development release available for Drupal 7.

Anonymous Redirect

Categories: Administration, Developer, Utility

The Anonymous Redirect module, from Michael Strelan of Glo Digital, redirects anonymous users to another domain, but visitors can still reach /user or /user/login to authenticate. After logging in, users have normal access. This can easily be configured to limit access to a staging server and redirect users to your production site, the most typical use case for the module.

Status: There is a development release available for Drupal 7.

Boost Custom Expire Rules

Categories: Developer, Performance and Scalability

The Boost Custom Expire Rules module, authored by Zyxware Technologies, allows setting different expiry times for content cached with Boost. Complex rules can be configured to fine-tune how long various content on your site is cached. Older nodes can have a longer cache lifetime, for instance. Rules can be configured for the URL path, node type, age, etc. This definitely looks like a must-have for sites which use Boost, especially if they actively add new content on a regular basis and retain older content.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Block Up Down

Categories: Administration, Content Display

The Block Up/Down module allows you to easily disable or move blocks within a region without going into block administration.

The Block Up Down module, coded by Pol Dell'Aiera of Trasys, is dead simple. Just activate it and you get three new contextual links on blocks so you don’t need to go into the block administration page just to disable a block or move it up or down within a region. I think this is great, since probably most of the time I go into the block administration page, which can take a while to load on a complex site with a lot of blocks and regions, moving one block up or down (or disabling a block) is all I really want to do, so allowing administrators to manage this from within the front-end is a really sweet feature.

Status: There is a stable release available for Drupal 7.

CKEditor Link File Combined Termref

Categories: Fields, Taxonomy

The Combined Termref module, written by Girish Nair, allows you to address up to three different vocabularies with one term-reference field; obviously only one vocabulary in the group can take “free tagging”. If new terms are added, they go into the first of the vocabularies selected for the Combined Termref field. There can be good reasons that you need different vocabularies, but the purpose can stay behind the scenes; content creation can be simpler by allowing entry with a single field. I think this looks cool.

Status: There is a beta release available for Drupal 7.

Commerce Cart Message

Categories: E-commerce

The Drupal Commerce Cart Message module displays a message in the cart.

The Commerce Cart Message module, authored by Aidan Lister, provides an option to add rules for displaying messages on your Drupal Commerce cart. This definitely looks useful.

Status: There is a stable release available for Drupal 7.

Views Contextual Range Filter

Categories: Content, Search, Views

The Views Contextual Range Filter module, written by Rik de Boer of flink, provides a Views plugin that allows you to filter views based on a range of values for any field where this might make sense. For instance, you might want to filter by price range, age range, etc. This kind of search is a pretty common use case, so I suspect this will become quite popular.

Status: There is a stable release available for Drupal 7.

Creative commons field Facebook Album Fetcher

Categories: Content, Third-party Integration

The Facebook Album Fetcher module, written by Kaushal Kishore of OSSCube, allows you to import your Facebook albums and photo galleries. You can also import the images from your friends’ accounts, too, but be sure you ask your friends if it’s okay. Personally, I only allow friends to view my Facebook account, so people like me might be annoyed if the images they shared on Facebook were pulled into a public-facing album without their consent. That said, companies with a Facebook presence might like to pull the images from their Facebook galleries into a gallery on their main website, and I’m sure there are many other good use cases for this module.

Status: There is a stable release available for Drupal 7.

Field Collection Deploy File Entity Preview

Categories: Media

The File Entity Preview module, contributed by Graham Bates of Catch Digital, provides a widget for file fields with previews of uploaded files, as configured with File Entity. It otherwise works like the “core” File widget.

Status: There is a stable release available for Drupal 7.

Graphviz Graph Phyz

Categories: Content Display

Graph Phyz helps display a nice relationships graph.

Graph Phyz is another graph-related module contributed by Clemens Tolboom. It renders an interactive graph using Graph API. Pretty cool, if your site calls for this, and I can think of at least one project where this might have saved some custom coding.

Status: There is a development release available for Drupal 7.

Hide PHP Fatal Error

Categories: Administration, Content Display, Security

The Hide PHP Fatal Error module, by B-Prod of MaPS System, redirects users to a configurable error page whenever a fatal error is thrown in PHP. Of course the error is also logged into the watchdog so you can work on eliminating the error for the next user. Nice.

Status: There is a stable release available for Drupal 7.

Hierarchical taxonomy

Categories: Taxonomy, Utility

The Hierarchical taxonomy module, by Marcus Deglos of Techito, is a developer module (you won’t need this, as a non-coder unless another module requires it) which provides a simple hierarchical_taxonomy_get_tree() function which renders an array of a vocabulary’s hierarchical structure. This should probably be in “core”.

Status: There is a development release available for Drupal 7.

Image Zoomer

Categories: JavaScript Utilities

The Image Zoomer module integrates various Javascript libraries for getting a closer look at an photo.

The Image Zoomer module, contributed by Tuan, integrates two image zoom-related JQuery plugins; Power Zoomer and Featured Zoomer and the developer of this module is adding support for other modules which provide image zooming. This could be cool for online “catalog” images or for commercial photography sites who want to provide a closer look at an image without making it too simple for users to download a higher-resolution version.

Status: There is a stable release available for Drupal 7.

Image Focus Crop Image formatter link to image style

Categories: Content, Content Display

image_formatter_link_to_image_style.png

The Image formatter link to image style module, developed by Manuel García, provides an additional formatter for the core image field so that you can create, for instance, a “thumbnail” which links to a larger, watermarked version of the image. This seems like a common enough need that this kind of functionality should probably be added to core. Until then, there’s this.

Status: There is a stable release available for Drupal 7.

jQuery UI Slider Field Juicebox HTML5 Responsive Image Galleries

Categories: Content, Content Display, Fields, JavaScript Utilities, Media, Mobile, Theme Enhancements, Third-party Integration, Views

The Juicebox integration module for Drupal helps you display a beautiful responsive image gallery.

The Juicebox HTML5 Responsive Image Galleries module, written by Ryan Jacobs integrates the beautiful Juicebox HTML5 responsive gallery library into your Drupal site. There’s a lot to this module; probably enough to have a whole article dedicated to ways you can use it, but it definitely looks nice if you want to provide image galleries that render well on a wide range of devices. Like many other such modules that integrate third-party code, it requires Libraries and adding the Juicebox code to your sites/all/libraries directory. We should note that there are both Lite (free) and Pro (commercial) versions of Juicebox (you’ll need to decide which is more appropriate for your use case) and the maintainers of this module are not affiliated with the developers of Juicebox, itself. This module will work to integrate either version of Juicebox.

Status: There is a beta release available for Drupal 7.

Lazy Entity

Categories: Developer, Performance and Scalability

The Lazy Entity module, written by James I. Armes of AllPlayers.com, allows field values for Drupal entities to be lazy-loaded rather than loaded at the time the entity loads, so can provide a boost to performance and memory usage. This module is for developers, so will not be useful to you unless you are a coder who needs to lazy-load fields. Otherwise you would only enable this module if another module requires it.

Status: There is a development release available for Drupal 7.

Linked Data Tools Library attach

Categories: Administration, Content, Performance and Scalability

The Library attach module, written by Dave Reid of Palantir.net, adds a Library reference field type so that libraries can be attached to individual entities when rendered, thus saving your site from loading lots of unnecessary Javascript for every page. It also adds an option to the Views UI so allows adding libraries for specific Views displays. This is a great idea!

Status: There is an RC release available for Drupal 7.

Lorempixel

Categories: Content, Media

The Lorempixel module, written by Fredric Bergström of Wunderkraut, provides “dummy images” which it fetches from the very slick lorempixel.com web service. Oh, and the module can also be used to get the placeholder images added to content by Devel generate.

Status: There is a development release available for Drupal 7.

MD WordCloud

Categories: Taxonomy

The MD Wordcloud displays a cloud of all terms in a vocabulary, sized according to frequency of their use.

The MD WordCloud module, written by Neo Khuat, creates a block with a “cloud” of terms from a taxonomy. You’ll need to download and add some Javascript files to the module’s “js” folder. So you don’t need to save and replace the Javascript files, it might be better to symlink them to a directory in sites/all/libraries.

Status: There is a stable release available for Drupal 7.

Multisite wizard

Categories: Multisite

The Multisite wizard module, written by Alex Posidelov, helps simplify the process of converting a single site Drupal installation to multisite. A lot of the work is done for you with just one click of a button and it helps lead the administrator through the rest of the requirements. It depends on the Backup and Migrate module.

Status: There is a stable release available for Drupal 7.

Notify 404 Photobox

Categories: Third-party Integration

The Photobox module integrates the jQuery-powered Photo-box gallery as a display format for images.

The Photobox module, developed by Andrew Berezovsky of Axel Springer Russia, adds an Image field formatter for viewing images in a Photobox image gallery. You’ll need to use the jQuery Update module since Photobox requires jQuery 1.8. This does look nice.

Status: There is a development release available for Drupal 7.

RecommenderGhost Reference helper Regcheck

Categories: Spam Prevention

The Regcheck module, produced by Tobias Haugen of Wunderkraut, adds a hidden checkbox to your site’s registration form; if checked, the registration process is aborted. “Robot” users tend to check the box, so it can be a simple way to eliminate at least some of the unwanted registrations used for spamming your site or other nefarious purposes. There are other modules which help with protecting forms like this, but a wide variety of spam prevention methods are useful for keeping a step ahead of the bot coders.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Share42 - social sharing buttons Simple hierarchical select Site Disclaimer

Categories: User Access & Authentication, User Management

The Site Disclaimer module, by Ilya I, can add “Terms of Use”, “Privacy policy” or other agreements to the registration form. Visitors who want to register on your site need to agree to the terms of the “disclaimer” in order to register.

Status: There is a stable stable release available for Drupal 7.

Tablesorter

Categories: Content Display, JavaScript Utilities

The Tablesorter module integrates a jQuery plugin to allow standard tables to be sorted by any column.

The Tablesorter module, coded by Shoaib Rehman Mirza of Xululabs, integrates the tablesorter jQuery plugin so that any standard HTML table with THEAD and TBODY tags can be turned into a sortable table without even requiring a page refresh. Of course it’s not helpful if the data is paginated, but for normal tables with all the data on one page, this could be useful. Of course you need to download the Javascript libraries and install them in your sites/all/libraries directory, and of course that means this depends on Libraries API.

Status: There is a stable release available for Drupal 7.

Taxonomy Protect

Categories: Taxonomy

The Taxonomy Protect helps prevent users with some administration rights from deleting vocabularies.

The Taxonomy Protect module, contributed by Jay Beaton allows administrators to select certain taxonomy vocabularies and prevent them from being deleted. That way, even if some users who need to be able to administer taxonomies don’t fully understand the system, they won’t make the mistake of deleting a critical vocabulary.

Status: There is a stable release available for Drupal 7.

Taxonomy tooltip

Categories: Content Display, Taxonomy, Third-party Integration

The Taxonomy tooltip module shows the term description when you hover over a word.

The Taxonomy tooltip module, developed by Kálmán Hosszu of Pronovix, shares some similarities with the Glossary module, but could be a bit less involved since it doesn’t involve any Glossary configuration. It’s also currently only for Drupal 7 and Glossary does not yet even have a release for Drupal 7. One other difference is that it uses jQuery Tooltip to display the term description instead of inserting it into a “title” attribute, which means that the display is a bit prettier and a straight quote in the term description won’t terminate the its output when viewed as a “tip”. Of course the jQuery dependency means you’ll need the Libraries API and the requisite Javascript in your sites/all/libraries directory.

Status: There is a stable release available for Drupal 7.

Topbar Messages

Categories: Community, Content, Content Display, Site Navigation

The Topbar Messages module, created by Mark Koester of Int3c.com: International Cross-Cultural Consulting, allows you to add a message in the top of your Drupal pages. The message can be dismissed with a click on a “close” link and can include links and other formatting. There are other such modules, but this one might be the best fit for your use case. It does look useful.

Status: There is a development release available for Drupal 7.

Views Ajax Fade Webform Countdown

Categories: Content

The Webform Countdown module, by Andrew Lindsay provides a textarea component for Drupal webforms which includes a configurable, Twitter-style dynamic word or character count to limit the length of submissions. Of course it requires the Webformmodule and Libraries module (as well as the word-and-character-counter.js in sites/all/libraries.

Status: There is a beta release available for Drupal 7.

Webform Postal Code

Categories: Content

The Webform Postal Code module, is another Webform-enhancing module contributed by Andrew Lindsay. It adds strong, configurable postal code validation which can even be set to handle multiple countries simultaneously. In addition to the obvious dependency on Webform, this also requires the Postal Code Validation module.

Status: There is a beta release available for Drupal 7.

Jan 02 2013
Jan 02
Modules of the month story banner illustration.

Closing out the year 2012 with a bang, December brought us quite a number of new modules which look promising enough to cover; a few that I’m covering this time are far from ready or even only at the “concept” stage and normally would not be included, but they seemed particularly interesting or unique, and I want to see how they develop. Anyway, this month there were quite a few modules released for mobile support/responsive content. There were also several search-related modules, anti-spam modules, a couple of novelty modules, some interesting commerce-related releases, a number of Features package modules customized for various special-purpose distributions, lots of new “Third-party Integration” modules, theme enhancements, and more… I only wish I had more time so I could actually try out more of them, but there are several I do plan to get back to.

As usual, this post is sorted alphabetically and only covers modules which had their first release, or at least a new project created, in December. Selection for the Modules of the Month is a completely arbitrary process, but normally excludes common or niche items like a new payment method for Commerce that provides connections for a payment system used in, e.g. Romania. We also don’t normally include commercial service integration modules (unless the service looks really cool and is reasonably priced).

Anyway, it seems like only last week that I was putting the final touches on the November “Modules of the Month” story… oh wait, it was only last week: nine days ago, as I write this. Well I promised to try to get December’s published in early January, so I pushed some days around to make this happen. Let’s take a look at the modules, then, shall we? …

*/ Activation Code

The module, brought to us by prolific über-contributor Bryan Ollendyke of Penn State University, provides a fieldable “activation_code” entity type with a number of fields for an ID, creation timestamp, redemption timestamp, username, etc. It’s used by the Course Information System distribution as another method for authorizing access to online course materials, etc, but for those who don’t need the module on their site, it could still provide a useful example for how to build a fieldable entity.

Status: There is a development release available for Drupal 7.

Apachesolr Link

Categories: Search

The module, produced by Michael Prasuhn of Shomeya, enables indexing a Link field’s “target”, along with the entity it is attached to, in the Apache Solr search index. It might be obvious, but this module depends on Link and Apache Solr Search Integration; the Apache Solr Attachments module will also be useful if some of the links you wish to index are to PDF files or other “non-plain-text” results which you wish to index.

Status: There is a development release available for Drupal 7.

Are You A Human PlayThru Are You a Human Playthru login

The module, written by Chris Keller of Commercial Progression, provides a more simple, fun, and intuitive means for a user to prove they are human than typical CAPTCHA options. It uses game mechanics which a user interacts with rather than having users try to interpret text in graphics. CAPTCHA fields can be frustratingly and tedious, so it’s nice to see people are working on interesting alternatives. Cool! I often skip over commercial third-party integration modules, but this seems interesting enough not to pass up, and they do provide free options which might be adequate for many sites.

Status: There is a beta release available for Drupal 7.

Backstretch Formatter

The module, written by Yannick Leyendecker of LOOM GmbH, provides a field formatter for jQuery Backstretch - A simple jQuery plugin that allows you to add a dynamically-resized, slideshow-capable background image to any page or element. Once you have everything (JavaScript libraries and the module, etc) correctly installed, if you select “Backstretch” as field formatter for an image field which allows more than one image you will get a slideshow. If your slideshow needs don’t require anything too fancy, this could be the ideal module to implement it. Cool!

Status: There is a development release available for Drupal 7.

Badbot

Because we wouldn’t want one CAPTCHA alternative to be lonely… the module, developed by Yuriy Babenko of Suite101, provides another method of CAPTCHA-free spam-prevention; it is currently limited to the user registration form, but comment forms are in the works. Visitors must have JavaScript enabled in their browsers for this system to work; it displays an error if JavaScript is disabled. Since spam bots generally do not parse JS, this helps avoid the need for CAPTCHAs, which are often solved by low-paid workers these days, anyway.

Status: There is a stable release available for Drupal 7.

BetterTip

The module, produced by Shoaib Rehman Mirza of Xululabs, is a lightweight jQuery plugin for clean, HTML5-valid tooltips which can provide a richer user experience than default tooltip text.

Status: There is a stable release available for Drupal 7 (and the project page includes a pledge to provide a Drupal 6 version).

Breakpoint Panels

The module, developed by Daniel Linn of Metal Toad Media, adds a Panel style called “Breakpoint Panel”. When selected, it will display checkboxes next to all of the breakpoints specified in that module’s UI. Unchecking any of these will “hide” it from that breakpoint. If you are lost by this description of the functionality, it probably helps to understand that “breakpoints” define different display-width ranges so that you can determine layout for content on different width devices or even eliminate some content from being displayed on, e.g. devices less than 480 pixels wide. Of course it depends on the Breakpoints module, whose functionality is going into Drupal 8 “core”, and Panels, but you’ll also need to download some Javascript files and enable them with Libraries. See the project page for further details, but this could definitely help improve mobile/responsive content and the roadmap looks good, too.

Status: There is a stable release available for Drupal 7.

Christmas Lights

The module, created by Andrew Podlubnyj, is, depending on your use case, of course, probably just a novelty module, but one that might be fun to enable in the right season. It adds decorative “Christmas lights” for you and your users to enjoy.

Status: There is a stable release available for Drupal 7.

CKEditor for WYSIWYG Module

When Nathan Haug of Lullabot-fame releases a new module, it’s always GoodStuff™, so it’s no surprise that there are already hundreds of sites using the after just one month. It provides a WYSIWYG editor (surprise, surprise!) using the CKEditor library (surprise, again!). This project aims to combine some of the best of the Wysiwyg-module integration with CKEditor with the best of the standalone CKEditor-integration module, with support for the Drupal Image and Drupal Image captioning plugins, compatibility with other WYSIWYG editors integrated through the Wysiwyg module, and no inline styles inserted into HTML… among other nice features either already implemented or in the “roadmap”. It requires the Wysiwyg module and is incompatible with the normal CKEditor integration module (which must be completely removed before using this module).

Status: There is a development release available for Drupal 7.

Coins wallet

The module, authored by ssm2017 Binder, is a Bitcoin wallet system to be used with a devcoin-compatible daemon. This module is a complete rewrite for Drupal 7 of the never-released original Drupal 6 version discussed here and uses the bitcoin-php library. While I confess that I’m a bit leery of how this all works, I’m also fascinated by the idea of alternative currencies which aren’t controlled and manipulated by bankers and other “white collar criminals”, so while the optimist in me is curious to see how this works, the pessimist in me worries that between human greed and governmental attempts to rein this in, well… interesting work, in any case.

Status: There is a stable release available for Drupal 7.

Collapsible fieldset memory

The module, written by David Herminghaus, solves a nice little UX issue for Drupal. If you have ever worked on a project where you had to enter content into Drupal forms with fieldsets which needed to be uncollapsed to access required fields, or where closing fieldsets to get them out of your way is part of your workflow, you might like this module. It allows everyone, even anonymous users, to have stored defaults for any Drupal form with collapsible fieldsets, so if a fieldset on a form was uncollapsed when you last used it, it will start out that way the next time you do. Nice! Of course it requires Javascript (as do collapsible fieldsets). The developer is open to feature requests and issues, so pitch in if you use this module and help make it better. There’s a bit you should know about before implementing it on your site, so be sure to peruse the project page.

Status: There are alpha releases available for both Drupal 6 and Drupal 7.

Commerce Check

Status: There is an alpha release available for Drupal 7.

Commerce Message

The module, produced by Bojan Živanović of Commerce Guys, provides Commerce-specific Message integration, including some default message settings for common order states, such as “order paid”, “product added to cart”, “order confirmation”, etc. It looks like a pretty well-thought-out module to help provide automated or custom messages to clients at appropriate stages in their order process. It’s integrated with Commerce Backoffice and Commerce Kickstart v2, so is already in use on quite a number of sites.

Status: There is a beta release available for Drupal 7.

Commons Polls

The module, by Ezra Barnett Gildesgame of Acquia, and the primary maintainer of Drupal Commons, integrates Drupal’s “core” Poll module as a group-enabled content type in Drupal Commons 3.0.

Status: There is a development release available for Drupal 7.

Content callback If you register a content callback via hook_content_callback_info() it will be available in the Content callback field options.

—Project description excerpt

The module, developed by Jasper Knops of Nascom, allows you to return any renderable array, created in code, via a field; it also contains a sub-module which provides a searchable Views display, as well as a context condition, among other features you should check out on the project page. If it’s not clear, though, I might mention this is not a simple add-and-enable module; it provides some tools for coders and advanced site builders.

Status: There is a stable release available for Drupal 7.

Context Breakpoint

The module, developed by Christoph, helps bridge Context and Breakpoints so that you can alter a page based on the visitor’s screen resolution, browser window size, or aspect ratio. Installing it adds a context condition for “Breakpoint”. This could definitely be useful, especially if your site already uses Context. Of course it’s a bit complex, so please see the project page and the module’s README file for information about how to install, configure, and make use of this.

Status: There is an alpha release available for Drupal 7.

Context code

The is another module by Jasper Knops of Nascom. It provides “a new context condition plugin which allows you to trigger contexts from code”. It should probably go without saying that it requires the Context module and is a module developed for other developers. See the project page for implementation examples, but I think this looks very useful, at least for advanced Drupalists and coders.

Status: There is a stable release available for Drupal 7.

CP2P2: Content Profile to Profile2

The module, written by Damien McKenna of Mediacurrent, is an add-on for Profile2 to convert Content Profile content types into Profile types. Note that there is no admin user interface for this; all functionality is provided by Drush commands run in the terminal, so this module is targeted toward experienced Drupalists and coders.

Status: There is a beta release available for Drupal 7.

Create and continue

The module, written by Dominique De Cooman of Ausy/DataFlow, simply adds a button to node forms which saves the current node and opens node/add/CONTENT_TYPE to create another instance of the same node type and help streamline the content creation process.

Status: There is a stable release available for Drupal 7.

Crossdomain

Categories: Media

The module, written by Adam Moore of Stanford Graduate School of Business, simply creates a crossdomain.xml file at the root of your Drupal site and provides configuration setting for which domains should be included. This is useful for certain web services which may require different domains to have access to your site content.

Status: There is a stable release available for Drupal 7.

Currency for Drupal Commerce

The module, produced by Bart Feenstra replaces the native currency-based price display in Drupal Commerce with locale-based display, using the Currency module. Because proper display depends on locale (language and country) and not on currencies, this module helps ensure that users see prices in a format they are used to.

Status: There is a beta release available for Drupal 7.

Field Quick Required

The module, written by Jelle Sebreghts of attiks, provides a simple overview of which field are required for a given content type, without having to enter the settings for that field. You can also change the “required” setting for any field. Nice! It does this by adding an extra column to the “manage fields” overview for your content types, e.g. for /admin/structure/types/manage/article/fields, where you would normally have columns for “Label”, “Machine name”, “Field type”, “Widget”, and “Operations”, you would also have a column labeled “Required” with a checkbox that can easily be changed if you decide a certain field should (or should not) be required for a particular content type. This could be especially useful during the initial phases of designing a site’s content types and logic.

Status: There is a stable release available for Drupal 7.

"File Metadata Table" Field Formatter

Categories: Fields

The module, written by Jeremy Thorson, with support from Derek Wright, looks interesting. It’s still in development, but it provides a customizable “File Metadata Table” field formatter for file fields. All of the options are a bit much to list here, but given the profiles of these two super-contributors, I think this will be an interesting module to check back on. I’m expecting something awesome here!

Status: There is a development release available for Drupal 7.

Foresight Images

The module, developed by Graham Bates of Catch Digital, provides a field formatter which integrates the foresight.js library to display image fields. Images are requested and generated at the exact size required. As with other such third-party Javascript library integrations, this will require Libraries and you install the additional JavaScript code in sites/all/libraries. I’m not convinced that this module offers enough benefits to select it rather than one of the other more-established responsive image modules; I’m also not convinced otherwise and the Foresight Images project page includes a list of other “similar” responsive images modules and some brief notes about how the approach or features differ from those provided by Foresight Images. So this project page could be worth looking at if you need an overview to help choose the appropriate module(s) or approach for your next project.

Status: There is a stable release available for Drupal 7.

Forum notifications

The module, created by David Snopek, extends the Notifications module to add some nice UI improvements for notifications involving forums based on the “core” Forums module. If you have a site with forums and wish to have a nice user experience for “subscribing” (and “unsubscribing”) to forums or individual threads, this module could help.

Status: There is a development release available for Drupal 7 and a beta release available for Drupal 6.

htaccess

The module, coded by giorgio79, autogenerates a Drupal root htaccess file based on your settings, including such configuration settings as automatic insertion of Boost htaccess settings, whether or not to use “www”, Followsymlinks or SymlinksIfOwnersMatch, etc. You simply configure these settings at /admin/config/system/htaccess if this module is enabled and of course you could only enable this module when upgrading Drupal, to replace the default .htaccess with one based on your settings. I don’t think it should be so dangerous to try this, but you might want to make your own backup copy of your current .htaccess file, just in case anything goes wrong (in theory, this module should also make a backup copy of your existing .htaccess file).

Status: There is a stable release available for Drupal 7.

Image optimize effect

The module, yet another contributed by Peter Droogmans of Attiks, adds two new image effects to optimize image files to reduce your average page size. Most websites do not have very well optimized images and images can be substantially reduced in size, even without noticeable change in quality. This module uses pngquant to optimize png files and imgmin, which can work on various formats, but is best for JPEG files. Of course it depends on the relevant libraries (see the project description). For more information, see this recent article on the Performance Calendar blog: Giving Your Images an Extra Squeeze

Status: There is a stable release available for Drupal 7.

Image Style Pregenerate

The module, developed by Gabor Szanto, helps you to generate all the images for a new image style before enabling the style; it’s designed for bulk image generation on production sites where the performance hit of switching the image style in your field formatter without already having the new images in place, could result in issues. It relies on Views Bulk Operations (VBO) and File Entity.

Status: There is a development release available for Drupal 7.

Insert image with text

Categories: Content

The module, developed by Esben von Buchwald of Reload!, extends the Insert module to modify the image markup to include caption text below the image. I don’t know how this compares to other methods of adding an image caption, but if you are already using Insert, and you want a simple way to include image captions, this module could be useful.

Status: There are dev releases available for both Drupal 6 and Drupal 7.

Joyride

The module, written by Mark Koester of Int3c.com: International Cross-Cultural Consulting, integrates the Joyride plugin to provide a simple way to give a tour of features or information on your Drupal-based site. This looks pretty cool. Of course you need to download the Javascript and install it in your sites/all/libraries directory… and of course that means it also requires the Libraries module.

Status: There is a development release available for Drupal 7.

jQuery Tabs Field

The module, contributed by Varun Mishra, allows you to create up to seven tab fields, each with a “body” and “tab title” on any node where this field is part of the content type. On viewing the node, the module will format the output to display each as horizontal tabs, which can make for more attractive output. This is relatively simple compared to options where you could have a number of fields in each tab, but if it fills the requirements of your use case, this simplicity would be ideal. There are already quite a few sites using this and it should become much more useful when the “body” of each tab supports HTML formats (currently it only accepts plain text, but the first issue for this module has elicited a promise to get HTML support in there.)

Status: There is a stable release available for Drupal 7.

Kazoo API

The module, contributed by Bevan Rudge of Drupal.geek.nz, integrates the Kazoo REST API telecommunications platform into Drupal-based sites. This is fairly complex and the use cases for this are somewhat limited, so I’m not going to bother going into great detail, but it’s interesting to know about, nonetheless.

Status: There is a development release available for Drupal 7.

Kim Jong-filter The Kim Jong filter is used to highlight specified words or phrases within content

The module, coded by the prolific Peter Lieverdink of Creative Contingencies, provides an input filter that wraps all occurrences of names of great leaders in a <span> element with a suitable class for easy highlighting. Of course you could use it for other purposes, so this might be more than an odd novelty module.

Status: There is a development release available for Drupal 7.

Language fallback

The module, written by Peter Droogmans, a very active contributor who has done a lot for multilingual functionality in Drupal, allows you to specify a fallback language for each language on your site, so if a string is found untranslated in the preferred language, you can get the next closest language translation file. Example use cases are for regional variants of a language, so if there is no translation in “nl-be” (Belgian Dutch), it would default to a translation found in Netherlands Dutch “nl-nl” and finally default to a standard translation found in “nl”, if available. This could certainly be useful and I believe this is a backport of functionality that’s already been built into Drupal 8 “core” (if not, I suspect it will be ported to Drupal 8 as a contrib module).

Status: There is a stable release available for Drupal 7.

Layouter - WYSIWYG layout templates The Layouter module helps create templates within content to facilitate columns or other layouts.

The module, from Alexander of ADCI, LLC, provides a simple way to select a particular “layout” (e.g. columns) for content. It already integrates with the CKEditor and the developer plans support for other popular editors, but it can apparently be used without a WYSIWYG editor, too.

Status: There is a stable release available for Drupal 7.

Lazyloader filter

The module, authored by Derek Webb of CollectiveColors, provides an input filter for lazy loading images as they may appear in textareas and relies on the Lazyloader project for the actual lazy-loading of images. This module only provides a filter that renders <img> tags in a manner consistent with the needs of the Lazyloader module, while allowing you to theme the image output to your liking and preserve original image attributes. This looks useful.

Status: There is a stable release available for Drupal 7.

Leaflet MapBox

The module, contributed by Jaime Herencia of WebPartners, provides integration between another Drupal contrib module, Leaflet (which integrates the Leaflet JavaScript mapping library), and MapBox. The Leaflet module’s project page actually links to an example which uses Mapbox: The Intertwine, which documents trails in the Portland-Vancouver metropolitan region. This site really looks cool, so if mapping functionality is important for your site, this might be useful for you.
Caveat: Mapbox is not a free service, but is reasonably priced and includes some pretty cool tools and features, not to mention distributed map hosting.

Status: There is a stable release available for Drupal 7.

Link CSS

The module, created by Graham Bates of Catch Digital, allows you to add CSS files using the <link> element instead of @import. This is useful for live refresh workflows such as CodeKit which do not support files loaded with @import.

Status: There is a stable release available for Drupal 7.

Local Foodhub Local Foodhub defines the commerce functionality to support a foodhub in a community, where producers and consumers attend a regular collection day where ordered products can be collected. Foodhubs are a convenient way to provide local produce for people in the community while giving producers more regular orders.

—Project description

The module, developed by Paul Mackay, is a project description which definitely looks interesting, although there is, as of this time, no code released. Normally I don’t include modules in this column if there aren’t at least some Git code commits, but there is enough information already, and I like the idea well enough that I’m making an exception here. We need to have more local food production and distribution… and infrastructure to support this if we want to live in a future with more environmentally sustainable practices, so on behalf of my future children and grandchildren, I give thanks for people working on projects like this.

Status: Check back. Currently no project code.

Mobile Switch (Varnish version)

The module, developed by Paul Maddern of ITV, provides a simple automatic theme switch functionality for mobile devices, utilising Varnish for detecting the user-agent and providing proper cacheable pages using the same URLs per mobile device group. This helps avoid bootstrapping Drupal while still presenting the appropriate, cached content for each device type. Nice! Of course getting this all right is not simple, so be sure to peruse the project page for more complete implementation details.

Status: There is a stable release available for Drupal 7.

Moodle Connector

The module, produced by Pere Orga, aims to provide a common interface for modules that integrate Drupal with the open-source Moodle e-learning system. It does not provide any end-user features and the initial release simple adds an admin configuration page for you to enter Moodle credentials, but there are plans for some other appropriate features. If you have a site that bridges Drupal and Moodle, this could be a worthwhile module for you.

Status: There is a stable release available for Drupal 7.

Multilingual Panels

The module, created by Valeriy Sokolov, provides support for making Panels panes translatable, which could definitely be useful for multilingual sites which make use of Panels.

Status: There is a development release available for Drupal 7.

Organic Groups formatters

The module, produced by Eric Mulder of LimoenGroen, extends Organic Groups by adding additional field formatters for the “Groups Audience” field. The “Group delimited list” formatter allows you to display Group names (labels) as a delimited list. Other formatters may be added if requested in the issue queue.

Status: There is a stable release available for Drupal 7.

Panels Image Link

The module, authored by Nick Piacentine of the Mars Space Flight Facility at Arizona State University, provides a simple Panels content type to display an uploaded image and link it to a provided url/path. There are already quite a few sites using this, considering its very recent release, so I suppose this could become quite popular for sites using Panels.

Status: There is a stable release available for Drupal 7.

Pants

The module, produced by Angie Byron of Acquia, is an actual module instead of just code used in a tutorial demonstration, but the purpose is the same. The previous version of the Pants “module” (not actually released) was for Drupal 5. This project updates it to Drupal 7 code and may be used as part of Angie’s DrupalCon Sydney core conversation presentation about “Upgrading your modules”, which will cover getting Drupal 7 code ready to run in Drupal 8.

Status: There is a development release available for Drupal 7.

PDF Forms API

The module, authored by Kevin Kaland of WizOne Solutions, is an API module which you should only install if another module requires it or if you are a developer and want to use its functions, which are initially focused on PDF form functionality.

Status: There is a development release available for Drupal 7.

Pinterest Verify Website

The module, written by Peter Lieverdink of Creative Contingencies, simplifies the verication process for pinterest by adding a verification tag or page to a Drupal site.

Status: There is a development release available for Drupal 7.

Polychotomous Keys

The module, written by Ed Baker of the Natural History Museum, “allows you to build polychotomous keys using Views”. At least that is the “project description”, but currently there is not even a single code commit. While that would normally mean I’d skip the project for inclusion here, I’m interested in modules being developed for academics and there could be a lot of use cases for such a module. I’m looking forward to seeing it in action.

Status: Check back. Currently no project code available.

Prelaunch

The module, written by Dominique De Cooman of Ausy/DataFlow, allows you to set one page of a Drupal site as “prelaunch page”. An example use case might be to display a webform to collect emails to notify interested parties when your site is launched, or page with information about what’s coming. Your site can essentially be “offline” without using maintenance mode; it prevents users from accessing any part of the site besides the prelaunch page (although assigned roles can access other areas). This definitely sounds useful.

Status: There is a stable release available for Drupal 7.

Pushtape Admin

is actually a Drupal distribution for musicians, which was initially released about 18 months ago. So why am I including it here? Well, I’m not really, but there are five new Features package modules which were released in December which are all geared toward improving support for building sites with Pushtape and which might be useful even if you aren’t using the distribution. All of the following modules were contributed by Farsheed of Zirafa Works:

  • contains admin views and menus.
  • adds a simple file field to the Track content type to allow uploading mp3 files.
  • configures an event content type, view, and menu link.
  • creates a news content type, view, and menu link.
  • creates a simple photo-set to share a group of photos. Content type, views, and menu link are bundled; this also uses Colorbox.

Status: For each of these modules, there are development releases available for Drupal 7.

Radix Layouts

The module, produced by Arshad Chummun, provides responsive panels layouts set to work with Panopoly and the Radix theme (also contributed by Arshad Chummun). If you are using Panopoly, you might like Radix and if you are using Radix, you might like this module, especially if you need responsive layouts for mobile devices.

Status: There is a development release available for Drupal 7.

Restaurant

is a new distribution, also developed by Arshad Chummun, which is based on Panopoly and designed to simplify hosting websites for restaurants. Several supporting modules were also released in December:

  • provides base configuration and structure.
  • adds a blog system.
  • provides structure for creating and managing events.
  • provides structure for creating and managing menus.
  • provides structure for creating and managing slideshows.
  • adds theming helpers.

Status: There are development releases available for Drupal 7 for the Restaurant distribution and each of the listed supporting modules.

Search API Stanbol

The module, written by Stéphane Corlosquet and Wolfgang Ziegler provides Drupal integration with Apache Stanbol, a new and exciting search technology for extracting information from “unstructured” text content. Getting into the full details of how this works is well outside the scope of this column, but this definitely does look interesting. This module requires the Search API and RDF Extensions modules.

Status: There is an alpha release available for Drupal 7.

Single Image Formatter

Categories: Fields

The module, created by Federico Jaramillo of SeeD, exposes a formatter that displays one image from a multi-value image field. It allows the same options as the original image formatter, but adds an option to choose which image to display. For some use cases, the Field multiple limit may be more suitable, but the Single Image Formatter might be more efficient for situations where there are many values in a multi-value image field.

Status: There is a stable release available for Drupal 7.

Sky field

The module, created by Leonid Mamaev and Alexander of ADCI, LLC, is sort of a new, improved version of the Node field module released a few months back by the same developers. It allows you to add unique custom fields to any single Drupal entity (node, user, comment, etc). You can add text fields, long text fields, links, radios, select, checkbox, taxonomy terms, among others and includes an API to add support for additional field types. This could be very useful for sites where an occasional instance might benefit from an extra field that isn’t normally used for that content type.

Status: There is a beta release available for Drupal 7.

Twitter Web Intents

Categories: Views

The module, developed by Francisco José Cruz Romanos of Hiberus, integrates Twitter’s Web Intents system to add extra Twitter links for replying, retweeting, adding to favorites, following, etc, into a view of Twitter messages. This allows users to interact with Twitter content from within the context of your site, without needing to leave the page or authorize an app just for this interaction.

Status: There is a stable release available for Drupal 7.

Twysi

The module, created by Tony Star of Acronis, is “an amazing Twitter Bootstrap WYSIWYG HTML5 editor”, at least that’s what the project description says. But it might be a bit early to tell about the module, itself. Currently, if I install the wysihtml5 library, I can select it as the editor for a given text format, but no buttons are present and no editor shows up on a text area. That said, this does sound like a project worth checking back on.

Status: There is a development release available for Drupal 7.

URL token URL token is an API module that provides token-based authentication for other modules, where the token can be used in URLs without requiring a Drupal user. Tokens can also be limited to a set number of uses or a fixed period of time.

—from the project’s README.txt

The module, by Marcus Deglos of Techito, is “an API module to make token-based access control simple”. Normal users should only install this module if another module requires it. Developers might want to take a look at the project page for some decent code examples of how to request a token and check that a token is valid. Note: in case this is not obvious, this module has nothing to do with the Token module. “Token”, in this context, is simply an access key.

Status: There is a development release available for Drupal 7.

Views OG cache

The module, from long-time contributor Amitai Burstein of Gizra, adds a Views time-based cache, configurable per group; uses OG-context to identify a group’s view to cache; includes OG-access integration: if the group is private, caching is done per-user instead of per-group… among other listed features. This definitely looks like it could be useful for sites using both Organic Groups and Views.

Status: There is a development release available for Drupal 7.

Welcome

The Welcome module displays a custom message when users log in.The module, from Blair Wadman displays a simple, configurable welcome message when a user logs in. Simply enable it at admin/config/people/welcome, and yes Token support is included. The example message displayed at left uses Tokens for both the site-name and username. (Of course the “Swachula” username is courtesy of “Devel generate” and “d7test” is my local Drupal 7 testing environment.)

Status: There is a development release available for Drupal 7.

Yet Another Yellow Box This is mostly being used to announce weather-related school closings on sites where I've been using it.

—from the project description

The module, authored by Micah Webner of Access-Interactive, provides a simple way to add a prominent “announcement” block of filtered text to any pre-configured region. The contents and visibility of the announcement block can then be managed by users who may not otherwise have permission to manage blocks. If you have a site where staff may need to make emergency announcements, this could be a useful module to set up. See the project page for further information about how to get everything working.

Status: There is a development release available for Drupal 7 and a stable release available for Drupal 6.

Zoundation Support

The module, written by Jeff Graham of FunnyMonkey, is designed to work with the responsive HTML5-based zoundation theme and its sub-themes. It provides custom menu builder functions and blocks for menus, a foundation navbar and topbar, a custom field formatter for orbit slideshow integration, improved placeholder integration for elements, and “other minor UI improvements” that work better in this module than in the zoundation theme, itself.

Status: There is a development release available for Drupal 7.

Jan 01 2013
Jan 01
Modules of the month story banner illustration.

Closing out the year 2012 with a bang, December brought us quite a number of new modules which look promising enough to cover; a few that I’m covering this time are far from ready or even only at the “concept” stage and normally would not be included, but they seemed particularly interesting or unique, and I want to see how they develop. Anyway, this month there were quite a few modules released for mobile support/responsive content. There were also several search-related modules, anti-spam modules, a couple of novelty modules, some interesting commerce-related releases, a number of Features package modules customized for various special-purpose distributions, lots of new “Third-party Integration” modules, theme enhancements, and more… I only wish I had more time so I could actually try out more of them, but there are several I do plan to get back to.

As usual, this post is sorted alphabetically and only covers modules which had their first release, or at least a new project created, in December. Selection for the Modules of the Month is a completely arbitrary process, but normally excludes common or niche items like a new payment method for Commerce that provides connections for a payment system used in, e.g. Romania. We also don’t normally include commercial service integration modules (unless the service looks really cool and is reasonably priced).

Anyway, it seems like only last week that I was putting the final touches on the November “Modules of the Month” story… oh wait, it was only last week: nine days ago, as I write this. Well I promised to try to get December’s published in early January, so I pushed some days around to make this happen. Let’s take a look at the modules, then, shall we? …

Activation Code

Categories: Developer, Examples, User Access & Authentication, Utility

The Activation Code module, brought to us by prolific über-contributor Bryan Ollendyke of Penn State University, provides a fieldable “activation_code” entity type with a number of fields for an ID, creation timestamp, redemption timestamp, username, etc. It’s used by the Course Information System distribution as another method for authorizing access to online course materials, etc, but for those who don’t need the module on their site, it could still provide a useful example for how to build a fieldable entity.

Status: There is a development release available for Drupal 7.

Apachesolr Link

Categories: Search

The Apachesolr Link module, produced by Michael Prasuhn of Shomeya, enables indexing a Link field’s “target”, along with the entity it is attached to, in the Apache Solr search index. It might be obvious, but this module depends on Link and Apache Solr Search Integration; the Apache Solr Attachments module will also be useful if some of the links you wish to index are to PDF files or other “non-plain-text” results which you wish to index.

Status: There is a development release available for Drupal 7.

Are You A Human PlayThru

Categories: Spam Prevention, User Access & Authentication

Are You a Human Playthru login

The Are You A Human PlayThru module, written by Chris Keller of Commercial Progression, provides a more simple, fun, and intuitive means for a user to prove they are human than typical CAPTCHA options. It uses game mechanics which a user interacts with rather than having users try to interpret text in graphics. CAPTCHA fields can be frustratingly and tedious, so it’s nice to see people are working on interesting alternatives. Cool! I often skip over commercial third-party integration modules, but this seems interesting enough not to pass up, and they do provide free options which might be adequate for many sites.

Status: There is a beta release available for Drupal 7.

Backstretch Formatter

Categories: Content Display, Third-party Integration

The Backstretch Formatter module, written by Yannick Leyendecker of LOOM GmbH, provides a field formatter for jQuery Backstretch - A simple jQuery plugin that allows you to add a dynamically-resized, slideshow-capable background image to any page or element. Once you have everything (JavaScript libraries and the module, etc) correctly installed, if you select “Backstretch” as field formatter for an image field which allows more than one image you will get a slideshow. If your slideshow needs don’t require anything too fancy, this could be the ideal module to implement it. Cool!

Status: There is a development release available for Drupal 7.

Badbot

Categories: Administration, Spam Prevention, User Access & Authentication

Because we wouldn’t want one CAPTCHA alternative to be lonely… the Badbot module, developed by Yuriy Babenko of Suite101, provides another method of CAPTCHA-free spam-prevention; it is currently limited to the user registration form, but comment forms are in the works. Visitors must have JavaScript enabled in their browsers for this system to work; it displays an error if JavaScript is disabled. Since spam bots generally do not parse JS, this helps avoid the need for CAPTCHAs, which are often solved by low-paid workers these days, anyway.

Status: There is a stable release available for Drupal 7.

BetterTip Breakpoint Panels

Categories: Content Display, Mobile

The Breakpoint Panels module, developed by Daniel Linn of Metal Toad Media, adds a Panel style called “Breakpoint Panel”. When selected, it will display checkboxes next to all of the breakpoints specified in that module’s UI. Unchecking any of these will “hide” it from that breakpoint. If you are lost by this description of the functionality, it probably helps to understand that “breakpoints” define different display-width ranges so that you can determine layout for content on different width devices or even eliminate some content from being displayed on, e.g. devices less than 480 pixels wide. Of course it depends on the Breakpoints module, whose functionality is going into Drupal 8 “core”, and Panels, but you’ll also need to download some Javascript files and enable them with Libraries. See the project page for further details, but this could definitely help improve mobile/responsive content and the roadmap looks good, too.

Status: There is a stable release available for Drupal 7.

Christmas Lights

Categories: Games and Amusements, Novelty

The Christmas Lights module, created by Andrew Podlubnyj, is, depending on your use case, of course, probably just a novelty module, but one that might be fun to enable in the right season. It adds decorative “Christmas lights” for you and your users to enjoy.

Status: There is a stable release available for Drupal 7.

CKEditor for WYSIWYG Module

Categories: Content, Third-party Integration

When Nathan Haug of Lullabot-fame releases a new module, it’s always GoodStuff™, so it’s no surprise that there are already hundreds of sites using the CKEditor for WYSIWYG Module after just one month. It provides a WYSIWYG editor (surprise, surprise!) using the CKEditor library (surprise, again!). This project aims to combine some of the best of the Wysiwyg-module integration with CKEditor with the best of the standalone CKEditor-integration module, with support for the Drupal Image and Drupal Image captioning plugins, compatibility with other WYSIWYG editors integrated through the Wysiwyg module, and no inline styles inserted into HTML… among other nice features either already implemented or in the “roadmap”. It requires the Wysiwyg module and is incompatible with the normal CKEditor integration module (which must be completely removed before using this module).

Status: There is a development release available for Drupal 7.

Coins wallet

Categories: E-commerce, Third-party Integration

The Coins wallet module, authored by ssm2017 Binder, is a Bitcoin wallet system to be used with a devcoin-compatible daemon. This module is a complete rewrite for Drupal 7 of the never-released original Drupal 6 version discussed here and uses the bitcoin-php library. While I confess that I’m a bit leery of how this all works, I’m also fascinated by the idea of alternative currencies which aren’t controlled and manipulated by bankers and other “white collar criminals”, so while the optimist in me is curious to see how this works, the pessimist in me worries that between human greed and governmental attempts to rein this in, well… interesting work, in any case.

Status: There is a stable release available for Drupal 7.

Collapsible fieldset memory

Categories: Administration, Content, Content Display, Site Navigation, Utility

The Collapsible fieldset memory module, written by David Herminghaus, solves a nice little UX issue for Drupal. If you have ever worked on a project where you had to enter content into Drupal forms with fieldsets which needed to be uncollapsed to access required fields, or where closing fieldsets to get them out of your way is part of your workflow, you might like this module. It allows everyone, even anonymous users, to have stored defaults for any Drupal form with collapsible fieldsets, so if a fieldset on a form was uncollapsed when you last used it, it will start out that way the next time you do. Nice! Of course it requires Javascript (as do collapsible fieldsets). The developer is open to feature requests and issues, so pitch in if you use this module and help make it better. There’s a bit you should know about before implementing it on your site, so be sure to peruse the project page.

Status: There are alpha releases available for both Drupal 6 and Drupal 7.

Commerce Check Commerce Message

Categories: E-commerce

The Commerce Message module, produced by Bojan Živanović of Commerce Guys, provides Commerce-specific Message integration, including some default message settings for common order states, such as “order paid”, “product added to cart”, “order confirmation”, etc. It looks like a pretty well-thought-out module to help provide automated or custom messages to clients at appropriate stages in their order process. It’s integrated with Commerce Backoffice and Commerce Kickstart v2, so is already in use on quite a number of sites.

Status: There is a beta release available for Drupal 7.

Commons Polls Commons Tooling

Categories: Community, Developer

The Commons Tooling module, is another contribution by Acquia’s Ezra Barnett Gildesgame; it’s a toolkit for setting up a Commons testing environment and then running tests on it.

Status: There is no release, yet, per se, but there is a repository you can clone (still only “master” branch).

Content callback

Categories: Content, Developer

If you register a content callback via hook_content_callback_info() it will be available in the Content callback field options.

—Project description excerpt

The Content callback module, developed by Jasper Knops of Nascom, allows you to return any renderable array, created in code, via a field; it also contains a sub-module which provides a searchable Views display, as well as a context condition, among other features you should check out on the project page. If it’s not clear, though, I might mention this is not a simple add-and-enable module; it provides some tools for coders and advanced site builders.

Status: There is a stable release available for Drupal 7.

Context Breakpoint

Categories: Content Display, Theme Enhancements

The Context Breakpoint module, developed by Christoph, helps bridge Context and Breakpoints so that you can alter a page based on the visitor’s screen resolution, browser window size, or aspect ratio. Installing it adds a context condition for “Breakpoint”. This could definitely be useful, especially if your site already uses Context. Of course it’s a bit complex, so please see the project page and the module’s README file for information about how to install, configure, and make use of this.

Status: There is an alpha release available for Drupal 7.

Context code

Categories: Developer

The Context code is another module by Jasper Knops of Nascom. It provides “a new context condition plugin which allows you to trigger contexts from code”. It should probably go without saying that it requires the Context module and is a module developed for other developers. See the project page for implementation examples, but I think this looks very useful, at least for advanced Drupalists and coders.

Status: There is a stable release available for Drupal 7.

CP2P2: Content Profile to Profile2 Create and continue Crossdomain

Categories: Media

The Crossdomain module, written by Adam Moore of Stanford Graduate School of Business, simply creates a crossdomain.xml file at the root of your Drupal site and provides configuration setting for which domains should be included. This is useful for certain web services which may require different domains to have access to your site content.

Status: There is a stable release available for Drupal 7.

Currency for Drupal Commerce Field Quick Required

Categories: Administration, Fields

The Field Quick Required module, written by Jelle Sebreghts of attiks, provides a simple overview of which field are required for a given content type, without having to enter the settings for that field. You can also change the “required” setting for any field. Nice! It does this by adding an extra column to the “manage fields” overview for your content types, e.g. for /admin/structure/types/manage/article/fields, where you would normally have columns for “Label”, “Machine name”, “Field type”, “Widget”, and “Operations”, you would also have a column labeled “Required” with a checkbox that can easily be changed if you decide a certain field should (or should not) be required for a particular content type. This could be especially useful during the initial phases of designing a site’s content types and logic.

Status: There is a stable release available for Drupal 7.

"File Metadata Table" Field Formatter

Categories: Fields

The "File Metadata Table" Field Formatter module, written by Jeremy Thorson, with support from Derek Wright, looks interesting. It’s still in development, but it provides a customizable “File Metadata Table” field formatter for file fields. All of the options are a bit much to list here, but given the profiles of these two super-contributors, I think this will be an interesting module to check back on. I’m expecting something awesome here!

Status: There is a development release available for Drupal 7.

Foresight Images

Categories: Mobile, Third-party Integration

The Foresight Images module, developed by Graham Bates of Catch Digital, provides a field formatter which integrates the foresight.js library to display image fields. Images are requested and generated at the exact size required. As with other such third-party Javascript library integrations, this will require Libraries and you install the additional JavaScript code in sites/all/libraries. I’m not convinced that this module offers enough benefits to select it rather than one of the other more-established responsive image modules; I’m also not convinced otherwise and the Foresight Images project page includes a list of other “similar” responsive images modules and some brief notes about how the approach or features differ from those provided by Foresight Images. So this project page could be worth looking at if you need an overview to help choose the appropriate module(s) or approach for your next project.

Status: There is a stable release available for Drupal 7.

Forum notifications

Categories: Community

The Forum notifications module, created by David Snopek, extends the Notifications module to add some nice UI improvements for notifications involving forums based on the “core” Forums module. If you have a site with forums and wish to have a nice user experience for “subscribing” (and “unsubscribing”) to forums or individual threads, this module could help.

Status: There is a development release available for Drupal 7 and a beta release available for Drupal 6.

htaccess

Categories: Administration

The htaccess module, coded by giorgio79, autogenerates a Drupal root htaccess file based on your settings, including such configuration settings as automatic insertion of Boost htaccess settings, whether or not to use “www”, Followsymlinks or SymlinksIfOwnersMatch, etc. You simply configure these settings at /admin/config/system/htaccess if this module is enabled and of course you could only enable this module when upgrading Drupal, to replace the default .htaccess with one based on your settings. I don’t think it should be so dangerous to try this, but you might want to make your own backup copy of your current .htaccess file, just in case anything goes wrong (in theory, this module should also make a backup copy of your existing .htaccess file).

Status: There is a stable release available for Drupal 7.

Image optimize effect

Categories: File Management, Media

The Image optimize effect module, yet another contributed by Peter Droogmans of Attiks, adds two new image effects to optimize image files to reduce your average page size. Most websites do not have very well optimized images and images can be substantially reduced in size, even without noticeable change in quality. This module uses pngquant to optimize png files and imgmin, which can work on various formats, but is best for JPEG files. Of course it depends on the relevant libraries (see the project description). For more information, see this recent article on the Performance Calendar blog: Giving Your Images an Extra Squeeze

Status: There is a stable release available for Drupal 7.

Image Style Pregenerate Insert image with text

Categories: Content

The Insert image with text module, developed by Esben von Buchwald of Reload!, extends the Insert module to modify the image markup to include caption text below the image. I don’t know how this compares to other methods of adding an image caption, but if you are already using Insert, and you want a simple way to include image captions, this module could be useful.

Status: There are dev releases available for both Drupal 6 and Drupal 7.

Joyride jQuery Tabs Field

Categories: Content, Content Display, Fields

The jQuery Tabs Field module, contributed by Varun Mishra, allows you to create up to seven tab fields, each with a “body” and “tab title” on any node where this field is part of the content type. On viewing the node, the module will format the output to display each as horizontal tabs, which can make for more attractive output. This is relatively simple compared to options where you could have a number of fields in each tab, but if it fills the requirements of your use case, this simplicity would be ideal. There are already quite a few sites using this and it should become much more useful when the “body” of each tab supports HTML formats (currently it only accepts plain text, but the first issue for this module has elicited a promise to get HTML support in there.)

Status: There is a stable release available for Drupal 7.

Kazoo API

Categories: Third-party Integration

The Kazoo API module, contributed by Bevan Rudge of Drupal.geek.nz, integrates the Kazoo REST API telecommunications platform into Drupal-based sites. This is fairly complex and the use cases for this are somewhat limited, so I’m not going to bother going into great detail, but it’s interesting to know about, nonetheless.

Status: There is a development release available for Drupal 7.

Kim Jong-filter

Categories: Content Display, Novelty

The Kim Jong filter is used to highlight specified words or phrases within content

The Kim Jong-filter module, coded by the prolific Peter Lieverdink of Creative Contingencies, provides an input filter that wraps all occurrences of names of great leaders in a <span> element with a suitable class for easy highlighting. Of course you could use it for other purposes, so this might be more than an odd novelty module.

Status: There is a development release available for Drupal 7.

Language fallback

Categories: Multilingual

The Language fallback module, written by Peter Droogmans, a very active contributor who has done a lot for multilingual functionality in Drupal, allows you to specify a fallback language for each language on your site, so if a string is found untranslated in the preferred language, you can get the next closest language translation file. Example use cases are for regional variants of a language, so if there is no translation in “nl-be” (Belgian Dutch), it would default to a translation found in Netherlands Dutch “nl-nl” and finally default to a standard translation found in “nl”, if available. This could certainly be useful and I believe this is a backport of functionality that’s already been built into Drupal 8 “core” (if not, I suspect it will be ported to Drupal 8 as a contrib module).

Status: There is a stable release available for Drupal 7.

Layouter - WYSIWYG layout templates

Categories: Content, Content Display

The Layouter module helps create templates within content to facilitate columns or other layouts.

The Layouter - WYSIWYG layout templates module, from Alexander of ADCI, LLC, provides a simple way to select a particular “layout” (e.g. columns) for content. It already integrates with the CKEditor and the developer plans support for other popular editors, but it can apparently be used without a WYSIWYG editor, too.

Status: There is a stable release available for Drupal 7.

Lazyloader filter

Categories: Filters/Editors, Media

The Lazyloader filter module, authored by Derek Webb of CollectiveColors, provides an input filter for lazy loading images as they may appear in textareas and relies on the Lazyloader project for the actual lazy-loading of images. This module only provides a filter that renders <img> tags in a manner consistent with the needs of the Lazyloader module, while allowing you to theme the image output to your liking and preserve original image attributes. This looks useful.

Status: There is a stable release available for Drupal 7.

Leaflet MapBox

Categories: Location

The Leaflet MapBox module, contributed by Jaime Herencia of WebPartners, provides integration between another Drupal contrib module, Leaflet (which integrates the Leaflet JavaScript mapping library), and MapBox. The Leaflet module’s project page actually links to an example which uses Mapbox: The Intertwine, which documents trails in the Portland-Vancouver metropolitan region. This site really looks cool, so if mapping functionality is important for your site, this might be useful for you.
Caveat: Mapbox is not a free service, but is reasonably priced and includes some pretty cool tools and features, not to mention distributed map hosting.

Status: There is a stable release available for Drupal 7.

Link CSS Local Foodhub

Categories: Commerce/Advertising, Features Package

Local Foodhub defines the commerce functionality to support a foodhub in a community, where producers and consumers attend a regular collection day where ordered products can be collected. Foodhubs are a convenient way to provide local produce for people in the community while giving producers more regular orders.

—Project description

The Local Foodhub module, developed by Paul Mackay, is a project description which definitely looks interesting, although there is, as of this time, no code released. Normally I don’t include modules in this column if there aren’t at least some Git code commits, but there is enough information already, and I like the idea well enough that I’m making an exception here. We need to have more local food production and distribution… and infrastructure to support this if we want to live in a future with more environmentally sustainable practices, so on behalf of my future children and grandchildren, I give thanks for people working on projects like this.

Status: Check back. Currently no project code.

Mobile Switch (Varnish version)

Categories: Mobile, Theme Enhancements

The Mobile Switch (Varnish version) module, developed by Paul Maddern of ITV, provides a simple automatic theme switch functionality for mobile devices, utilising Varnish for detecting the user-agent and providing proper cacheable pages using the same URLs per mobile device group. This helps avoid bootstrapping Drupal while still presenting the appropriate, cached content for each device type. Nice! Of course getting this all right is not simple, so be sure to peruse the project page for more complete implementation details.

Status: There is a stable release available for Drupal 7.

Moodle Connector

Categories: Third-party Integration

The Moodle Connector module, produced by Pere Orga, aims to provide a common interface for modules that integrate Drupal with the open-source Moodle e-learning system. It does not provide any end-user features and the initial release simple adds an admin configuration page for you to enter Moodle credentials, but there are plans for some other appropriate features. If you have a site that bridges Drupal and Moodle, this could be a worthwhile module for you.

Status: There is a stable release available for Drupal 7.

Multilingual Panels Organic Groups formatters

Categories: Organic Groups (OG)

The Organic Groups formatters module, produced by Eric Mulder of LimoenGroen, extends Organic Groups by adding additional field formatters for the “Groups Audience” field. The “Group delimited list” formatter allows you to display Group names (labels) as a delimited list. Other formatters may be added if requested in the issue queue.

Status: There is a stable release available for Drupal 7.

Panels Image Link Pants PDF Forms API

Categories: Developer, Third-party Integration

The PDF Forms API module, authored by Kevin Kaland of WizOne Solutions, is an API module which you should only install if another module requires it or if you are a developer and want to use its functions, which are initially focused on PDF form functionality.

Status: There is a development release available for Drupal 7.

Pinterest Verify Website Polychotomous Keys

Categories: Content, Utility

The Polychotomous Keys module, written by Ed Baker of the Natural History Museum, “allows you to build polychotomous keys using Views”. At least that is the “project description”, but currently there is not even a single code commit. While that would normally mean I’d skip the project for inclusion here, I’m interested in modules being developed for academics and there could be a lot of use cases for such a module. I’m looking forward to seeing it in action.

Status: Check back. Currently no project code available.

Prelaunch

Categories: Administration, Content Display, User Access & Authentication

The Prelaunch module, written by Dominique De Cooman of Ausy/DataFlow, allows you to set one page of a Drupal site as “prelaunch page”. An example use case might be to display a webform to collect emails to notify interested parties when your site is launched, or page with information about what’s coming. Your site can essentially be “offline” without using maintenance mode; it prevents users from accessing any part of the site besides the prelaunch page (although assigned roles can access other areas). This definitely sounds useful.

Status: There is a stable release available for Drupal 7.

Pushtape Admin

Categories: Features Package

Pushtape Music is actually a Drupal distribution for musicians, which was initially released about 18 months ago. So why am I including it here? Well, I’m not really, but there are five new Features package modules which were released in December which are all geared toward improving support for building sites with Pushtape and which might be useful even if you aren’t using the distribution. All of the following modules were contributed by Farsheed of Zirafa Works:

  • Pushtape Admin contains admin views and menus.
  • Pushtape Audio adds a simple file field to the Track content type to allow uploading mp3 files.
  • Pushtape Events configures an event content type, view, and menu link.
  • Pushtape News creates a news content type, view, and menu link.
  • Pushtape Photos creates a simple photo-set to share a group of photos. Content type, views, and menu link are bundled; this also uses Colorbox.

Status: For each of these modules, there are development releases available for Drupal 7.

Radix Layouts

Categories: Content Display, Theme Enhancements

The Radix Layouts module, produced by Arshad Chummun, provides responsive panels layouts set to work with Panopoly and the Radix theme (also contributed by Arshad Chummun). If you are using Panopoly, you might like Radix and if you are using Radix, you might like this module, especially if you need responsive layouts for mobile devices.

Status: There is a development release available for Drupal 7.

Restaurant Search API Stanbol Single Image Formatter

Categories: Fields

The Single Image Formatter module, created by Federico Jaramillo of SeeD, exposes a formatter that displays one image from a multi-value image field. It allows the same options as the original image formatter, but adds an option to choose which image to display. For some use cases, the Field multiple limit may be more suitable, but the Single Image Formatter might be more efficient for situations where there are many values in a multi-value image field.

Status: There is a stable release available for Drupal 7.

Sky field

Categories: Administration, Content, Content Construction Kit (CCK), Content Display, Fields

The Sky field module, created by Leonid Mamaev and Alexander of ADCI, LLC, is sort of a new, improved version of the Node field module released a few months back by the same developers. It allows you to add unique custom fields to any single Drupal entity (node, user, comment, etc). You can add text fields, long text fields, links, radios, select, checkbox, taxonomy terms, among others and includes an API to add support for additional field types. This could be very useful for sites where an occasional instance might benefit from an extra field that isn’t normally used for that content type.

Status: There is a beta release available for Drupal 7.

Twitter Web Intents

Categories: Views

The Twitter Web Intents module, developed by Francisco José Cruz Romanos of Hiberus, integrates Twitter’s Web Intents system to add extra Twitter links for replying, retweeting, adding to favorites, following, etc, into a view of Twitter messages. This allows users to interact with Twitter content from within the context of your site, without needing to leave the page or authorize an app just for this interaction.

Status: There is a stable release available for Drupal 7.

Twysi

Categories: Third-party Integration

The Twysi module, created by Tony Star of Acronis, is “an amazing Twitter Bootstrap WYSIWYG HTML5 editor”, at least that’s what the project description says. But it might be a bit early to tell about the module, itself. Currently, if I install the wysihtml5 library, I can select it as the editor for a given text format, but no buttons are present and no editor shows up on a text area. That said, this does sound like a project worth checking back on.

Status: There is a development release available for Drupal 7.

URL token

Categories: Content Access Control, User Access & Authentication, Utility

URL token is an API module that provides token-based authentication for other modules, where the token can be used in URLs without requiring a Drupal user. Tokens can also be limited to a set number of uses or a fixed period of time.

—from the project’s README.txt

The URL token module, by Marcus Deglos of Techito, is “an API module to make token-based access control simple”. Normal users should only install this module if another module requires it. Developers might want to take a look at the project page for some decent code examples of how to request a token and check that a token is valid. Note: in case this is not obvious, this module has nothing to do with the Token module. “Token”, in this context, is simply an access key.

Status: There is a development release available for Drupal 7.

Views OG cache

Categories: Organic Groups (OG), Performance and Scalability, Views

The Views OG cache module, from long-time contributor Amitai Burstein of Gizra, adds a Views time-based cache, configurable per group; uses OG-context to identify a group’s view to cache; includes OG-access integration: if the group is private, caching is done per-user instead of per-group… among other listed features. This definitely looks like it could be useful for sites using both Organic Groups and Views.

Status: There is a development release available for Drupal 7.

Welcome

Categories: Content Display, Utility

The Welcome module displays a custom message when users log in.

The Welcome module, from Blair Wadman displays a simple, configurable welcome message when a user logs in. Simply enable it at admin/config/people/welcome, and yes Token support is included. The example message displayed at left uses Tokens for both the site-name and username. (Of course the “Swachula” username is courtesy of “Devel generate” and “d7test” is my local Drupal 7 testing environment.)

Status: There is a development release available for Drupal 7.

WS Slideshow

Categories: Content Display, Third-party Integration

The WS Slideshow module, contributed by Svetoslav Stoyanov, integrates a Flash-based slideshow, generated by ws-slideshow as a node. I’m not a big fan of Flash, but you have to admit that ws-slideshow looks slick and is reasonably priced for commercial use (free for personal), so if you want a nice looking “Flashy” slideshow, this could be for you. Required contrib modules include: Filefield Sources, Plupload, FileField Sources Plupload, Transliteration, and, of course, Libraries.

Status: There is a development release available for Drupal 7.

Yet Another Yellow Box

Categories: Content Display

This is mostly being used to announce weather-related school closings on sites where I've been using it.

—from the project description

The Yet Another Yellow Box module, authored by Micah Webner of Access-Interactive, provides a simple way to add a prominent “announcement” block of filtered text to any pre-configured region. The contents and visibility of the announcement block can then be managed by users who may not otherwise have permission to manage blocks. If you have a site where staff may need to make emergency announcements, this could be a useful module to set up. See the project page for further information about how to get everything working.

Status: There is a development release available for Drupal 7 and a stable release available for Drupal 6.

Zoundation Support

Categories: Theme Enhancements, Utility

The Zoundation Support module, written by Jeff Graham of FunnyMonkey, is designed to work with the responsive HTML5-based zoundation theme and its sub-themes. It provides custom menu builder functions and blocks for menus, a foundation navbar and topbar, a custom field formatter for orbit slideshow integration, improved placeholder integration for elements, and “other minor UI improvements” that work better in this module than in the zoundation theme, itself.

Status: There is a development release available for Drupal 7.

Dec 23 2012
Dec 23
Modules of the month story banner illustration.

November 2012 was a busy month for a lot of people involved in Drupal contribution. It was the final weeks before the “feature freeze” for Drupal 8, so a lot of the focus was on new features for the next great release of Drupal. Many of the “new projects” were simply “namespace reservations” for new core modules or planned contrib modules which relate to Drupal 8; most of which had no project code committed at all (for some, presumably, it’s all in the main Drupal 8 repository). But there were also a number of new feature-enhancing modules released for Drupal 7 (and a few for Drupal 6), several which improve search functionality, a few for delivering mobile-friendly content from a Drupal site, some for commerce, others designed to help manage Drupal sites and ensure that nothing slips through the cracks when moving from “development” to “production”, among other new gems.

It’s fun, too, that we got a couple new “novelty” modules in November: one, Driesday, puts a “Happy Driesday!” message on your site every November 19th; another is a bit more insidious, with a fully-disclosed dependency on Bad judgement: Feature creep allows you to nostalgically hang onto the “good old days” when Features had a few more quirks. So if you want to remember that fun, just turn this module on and, as the module description says, “every time that you export or update a feature the Feature creep module will randomly add an extra component to your feature, what fun!”

Before we get into the module descriptions, of course, I should acknowledge the very late arrival of this month’s release of this column. It’s been one of those months… again. But let me try to hold onto my optimism that I’ll be seeing you with December’s write-up in just a couple weeks. I’ll be aiming for the first week of January. Now let’s have a look at the “new” modules.

*/ Apache Solr Term Proximity

The module, coded by the prolific Chris Pliakas of Acquia fame, should be of interest for sites using Apache Solr. It boosts the relevancy of documents in which the search terms appear closer together. In other words, if I’m searching for “data migration”, a document which has these two words together should rank higher than another document where they are separated by a few words, which should rank higher than one where these words appear in different paragraphs. Nice!

Status: There is an RC release available for Drupal 7.

bigint

Categories: Fields

It’s always nice when developers share modules which help to get around some of the native limits in Drupal. One such limit is the lack of a proper “BigInt” integer type, which might not be needed for most sites, but is certainly a limitation that developers have to work around for some use cases. The module, by Ryan Coulombe of NewMedia!, provides a true BigInt field, thus saving site builders from having to find creative ways to handle text or decimal values that they really want to be an integer. Cool!

Status: There is a stable release available for Drupal 7.

Block Group

Categories: Utility

An example “block group” to display the “user blocks”The module, by znerol, provides a taste of Drupal 8-like layouts by extending the Drupal block system with “block groups” which can be placed like a normal block, are nestable, and can have regions within them. A simple use case might be that you want all of your user-related blocks to be kept together in one “user blocks” block group, which you can then put into whatever theme region you wish, without having to always fix their order when adding them to a different theme or reorder them if you change the region. Very handy!

Status: There is an alpha release available for Drupal 7.

Book Touch

The module, which requires the Thumbnav module, is another innovation from Bryan Ollendyke of Penn State University, who has been contributing loads of great modules in recent months. It provides gestures and touch events for mobile navigation of an online book to help replicate the experience of a touch-sensitive e-book reader. Most awesome!

Status: There is a beta release available for Drupal 7.

Bounce reasons

The module, produced by Alexander of ADCI, LLC, may or may not be a good idea. It pops up a Webform in an overlay, when your site visitors attempt to close a window, where you can ask why they are leaving. Personally, I think I would just find this annoying and might likely avoid following future links to the site, but that’s just my initial reaction; maybe I’m not the typical web user and it’s possible that in some cultures people wouldn’t mind a site preventing a window from being closed to ask them why. That said, maybe it would be better to provide an “opt-in” for such an “exit poll” feature, i.e. ask visitors when they arrive to your site if they wouldn’t mind being asked about their experience when they leave. But perhaps you have a client who has asked you to build exactly this functionality? If so, rather than argue with them about why this might not be a good idea, you now know “there is a module for that”. And maybe using this for a while would help them improve their site. The project description page doesn’t specifically mention it, but it would seem to depend on Webform… and possibly also Bad judgement. Hmmm…

Status: There are stable releases available for both Drupal 6 and Drupal 7.

ckeditor_syntaxhighlighter

The module, by Jason Xie of VicTheme, integrates syntaxhighlighter into the CKEditor module by loading another yet another JavaScript project, ckeditor-syntaxhighlight. It depends on the CKEditor and SyntaxHighlighter modules, as well as the JavaScript libraries they require, installed in sites/all/libraries per installation directions (and the Libraries module, of course).

Status: There is a stable release available for Drupal 7.

Commerce Backoffice

The module, by Bojan Živanović of Commerce Guys, provides administration enhancements for Drupal Commerce and is already in use on over 2,000 sites less than a month after its release (perhaps largely since it’s a component of the latest release of the Commerce Kickstart distribution). It includes three sub-modules, each of which have a number of dependencies and the project page does a good job of explaining everything, so I won’t say more than this: if you are using Commerce and aren’t using the Kickstart distribution, you will probably benefit from adding and configuring this module.

Status: There is a stable release available for Drupal 7.

Commerce Price Extra

The module, from Marc ElBichon, adds extra features based on the price component in Drupal Commerce, including allowing ordering of price components in the cart pane, printing discounts on their own line, and other nifty features.

Status: There is a stable release available for Drupal 7.

Commerce Rules Extra

The module, also developed by Marc ElBichon, is a library of Rules events, conditions, and actions to support Drupal Commerce site building.

My wish is to merge all modules based on Rules and Drupal Commerce in a single one. It forks the apparently-unmaintained Commerce Extra Rules Conditions module. See the project page for more information about what this module already supports or to suggest additional features.

Status: There is an alpha release available for Drupal 7.

Commerce Search API

Categories: Search

The another module, contributed by Bojan Živanović of Commerce Guys, provides Commerce-specific Search API integration and fulfills a feature request that dates back to the early days of Commerce. It was covered on Commerce Module Tuesday and is part of the latest Commerce Kickstart, so is already used by many sites. If you don’t use Kickstart, and want improved search functions for your Commerce-based site, this is a good module to consider.

Status: There is an RC release available for Drupal 7.

Context Block Visibility

The module, coded by Peter Berryman, provides context for block visibility using the normal block admin page. This could be handy for certain use cases.

Status: There is an alpha release available for Drupal 7.

Dictionary Export

The module, coded by Ed Baker of the Natural History Museum, provides support for Microsoft Office-compatible dictionaries in (*.dic) format for any vocabulary on your site.

Status: There is a stable release available for Drupal 7.

Download Userpoints

The module, by Eugen, provides a way for you to allow access to private files via user points. This looks useful for communities which provide points for contribution and require points for downloads of community-contributed files (as one example use-case). It requires the Userpoints module.

Status: There is a beta release available for Drupal 7.

Drifter

The module, produced by Peter Anderson of PackWeb, allows fields to be floated to the left or right of content. While this kind of layout is normally provided by theme CSS, it can be useful for it to be theme-independent.

Status: There is a stable release available for Drupal 7.

EasyRdf

The module, from Chris Skene of PreviousNext, provides Libraries API compatibility for EasyRdf, which, in turn requires Libraries . It should only be installed if other modules require, but definitely looks useful.

Status: There is an alpha release available for Drupal 7.

Entity reference multiple display

The module, written by Jean Valverde of Linagora, provides a new field formatter for Entity Reference that let you configure different view modes for each referenced entity, for instance if you want the first elements to be displayed in full and subsequent elements to be displayed as teasers, this module could be your friend.

Status: There is a stable release available for Drupal 7.

Entity Reference Views Formatter

Categories: Fields

The module, authored by Maxim Podorov, provides a Views-based entity reference field formatter which allows you to use any view to show entity reference field value(s). It’s based on the Entity Reference View Field Formatter (sandbox) project from Katherine Bailey.

Status: There is a development release available for Drupal 7.

Facebook Autopost

The module, written by Mateu Aguiló Bosch of Human Bits, provides simple configuration to allow your site to automatically post to designated Facebook Pages. It includes a good developer API, integrates with Rules and the Entity API and includes Libraries integration for the Facebook Developer PHP SDK. It includes a Facebook app, which you authorize to make posts on the designated accounts’ behalf. There is a detailed video tutorial on the setup process linked on the project page.

Status: There is an alpha release available for Drupal 7.

Field Formatter CSS Class

The module, by Christian Zuckschwerdt, is perhaps a bit similar to the aforementioned Drifter module; it adds a CSS selector for fields so that you can select to, for example, use a class which floats an element left or right on a per-node basis. Of course you need to set up your theme for the classes and configure your fields, so it’s not a simple “add-and-activate” module, but it should give content authors a bit more control of display for individual nodes. The author invites the community to request additional features, so I think this will definitely be useful for a lot of sites (and there are already quite a few using it). Nice!

Status: There is a stable release available for Drupal 7.

Final Polish

Categories: Utility

The module, by Yannick Leyendecker of LOOM GmbH, helps take care of some of the last steps that are often forgotten when launching a Drupal site. It allows you to disable access to paths like /node, /rss.xml, etc; it uploads a “touch icon” to be used by mobile devices; it verifies the existence of /favicon.ico, /apple-touch-icon.png, etc, so that you don’t get a plethora of 404 errors in the logs, and the author invites input for additional features, but already has a nice development road-map to include checking recipients for Webform emails, checking the site email address, redirecting to the front page on errors (access denied / not found), etc. This can definitely streamline the last steps of getting our sites ready for use, so I’ll definitely be giving this a try.

Status: There is a development release available for Drupal 7.

Gumroad

The module, from Eric Peterson of Tableau Software, helps use Gumroad to sell products on a Drupal website. I normally skip over modules which integrate commercial services, but what Gumroad offers and what they charge for their services seems like a good deal. So if you want to, for instance, sell your self-produced music and don’t want to spend a lot of time (and/or money) building up e-commerce infrastructure, handling payments, and all that, this can be a simple way to collect a reasonable percentage of the incoming revenue, and start making sales, without a ton of work. Of course, if you have more involved needs for e-commerce functionality, you’ll probably want to use Drupal Commerce, but I think this module should be attractive for a lot of creatives who simply want to focus on the “fun stuff” and just sell a few things from their sites.

Status: There is a development release available for Drupal 7.

Hackpad

The module, contributed by Andrew Berry of Lullabot, integrates Hackpad into a Drupal site. Hackpad is a hosted service, based on Etherpad (but with a lot more cool, more modern features), which allows collaborative editing of documents; it’s very cool, fun, and can be used for a lot of purposes for teams, so I think the interest in Hackpad will definitely grow, as will the features supported by this module which is still new enough that the API for it has not yet been documented, but with Lullabot behind its development, you know it will be awesome!

Status: There is a development release available for Drupal 7.

Image Combination Effects (ICE)

The illustration image from the ICE project page with three pictures placed on an easel.The module, by Guy A. Paddock of Red Bottle Design, is too complex to succinctly summarize, but if you are building an image-centric site (e.g. a site to display your photography), this looks very useful for combining image effects or displaying multiple images at the same time (as one image), i.e., like “spriting” icons, but with larger images. It was designed to reduce the number of requests necessary for loading a slideshow, where they still wanted the client to be able to add new images or adjust the display order, but it looks like there could be a lot of potential use cases. It looks like this offers some pretty cool features that you might want to consider if image display is an important part of your planned site. I’ll certainly be playing with this.

Status: There is an alpha release available for Drupal 7.

jQuery Placeholder

An example of HTML5 placeholder text in a formThe module, written by James Silver of ComputerMinds, integrates the HTML5 Placeholder jQuery Plugin to provide backward compatibility, using a Javascript-only method, for older browsers which don’t support the HTML5 placeholder attribute. For those not so up on HTML5 attributes, the “placeholder” attribute provides the “placeholder text” you see in a form field before you click on it to, e.g. enter your name, but until HTML5-support improves, we need some fallbacks, so this looks like a useful module.) It requires jQuery 1.6+ and the Elements module.

Status: There is a beta release available for Drupal 7.

Legal Extras

Categories: Content

The module, contributed by Rafal W., adds additional features to the Legal module, including the option to allow a registered user to access your site with reduced permissions if they reject the “terms of use”, display the date each user accepted the terms of use, and a number of related features to help manage those annoying legal issues that might be a headache for you, too. I hope I won’t have to use this anytime soon, but it’s nice to know this module exists.

Status: There is a development release available for Drupal 6, but I suspect a Drupal 7 port will be in the works.

Mass Password Reset

The module, written by Mark Shropshire of Classic Graphics, allows a Drupal site administrator to reset the password on all user accounts (except user/1) and then notify all users. It’s good to know this module is available if there’s ever an emergency situation where we might need it.

Status: There is a stable release available for Drupal 7.

Meta tags: Panels

The module, contributed by Diogo Correia of DRI, extends the Meta tags module with support for Panels pages. It also has Features integration, so that if you export a panels page, the meta-tag configuration is exported with it. Cool!

Status: There is a beta release available for Drupal 7.

Mobile Switch Blocks

The module, written by Siegfried Neumann, extends Mobile Switch, a module contributed by the same author, to provide block visibility control for mobile devices. This sounds useful.

Status: There is an alpha release available for Drupal 7.

OG homepage

The module, produced by enzipher, allows you to configure an Organic group’s front-page as the default “home” for logged in members of the group; it also includes options to determine how a user is redirected if they belong to more than one group, among other nifty features. This could be useful for a lot of Organic Groups -based sites.

Status: There is a stable release available for Drupal 7.

Performance and Scalability Checklist

The module, contributed by Travis Carden, is similar to the popular SEO Checklist module, which he also helps maintain. It provides an interactive, step-by-step checklist to help manage the common tasks involved in launching or administering a Drupal site; in this case where it comes to optimizing your site’s software stack, from Apache to your Drupal theme.

The Performance and Scalability Checklist module interface for Drupal 7.

This module is still new and the topic it attempts to cover is so broad, that the module is sure to change and improve in time, but it already looks pretty darn useful. The author is actively seeking suggestions in the Performance and Scalability Checklist issue queue, so please give it a try, then add your 2¢ to help improve this module. Enabling this module requires the ChecklistAPI module.

Status: There is a beta release available for Drupal 7.

Performance data

The module, by Nathaniel Catchpole of Tag1 Consulting, is envisioned to be a UI for viewing and analyzing performance data that you’ve recorded and saved using other tools. When a key core maintainer starts a new project, there’s usually reason to take notice and expect there might be great things coming. That said, according to the project page, this is still in the early stages of development, so unless you have an interest in assisting the development process, you might want to wait a while to try it out.

Status: There is an alpha release available for Drupal 7.

Print Anything

The module, coded by Chris Desautels of R2integrated, helps you configure special rules for generating print-friendly output for any path. There is some work to getting it all working, but it has some nice features and helps you handle a lot of content that isn’t otherwise simple to print, as well as helps maintain your brand visibility by including your logo in the output, among other features.

Status: There is a stable release available for Drupal 7.

Quo.js

The module, created by Bryan Ollendyke of Penn State University, integrates the Quo.js mobile event library into Drupal. As with other such modules, you’ll still need to download and install the JavaScript code, separately. It provides a number of features, including environment detection, and event detection, such as reading “tap”, “hold”, “pinch”, “rotate” and other such mobile gesture events. It integrates well with, and enhances, the other modules recently released by the same prolific contributor, including the aforementioned Book Touch and Thumbnav modules, so it certainly looks useful and I expect it will grow in use as more sites start providing mobile-specific features.

Status: There is a beta release available for Drupal 7.

Search API Page Block

Categories: Search

The module, produced by Tobby Hagler of Phase2 Technology, uses the Search API Page module to perform a search using the currently viewed node’s title as keywords, displaying the results in a block, so you can direct users to related content.

Status: There is a beta release available for Drupal 7.

Simple Anti-Spam

Simple Anti-Spam user interface for Drupal 7.The module, by xandeadx, adds two new elements to designated forms: one checkbox, labeled “I’m not a spammer” and a hidden checkbox, “I’m a spammer”. If user does not check the first or (is a bot which) has checked the second checkbox, the form is not submitted and displays a warning message.

Status: There is a development release available for Drupal 7.

Simple Table of Contents

Categories: Content

The module, coded by Devin Carlson of Ontario’s Ministry of Northern Development and Mines, automatically adds a table of contents to all of your node content, as long as the content is within the node’s “body” field. It’s a simple add-and-enable module which presumably depends on normally-structured content (with headings, etc.)

Status: There is a stable release available for Drupal 7.

Speedboxes - Fast checkbox handling

The module, produced by Manuel Pistner of Bright Solutions GmbH, provides a Javascript-based method to easily check, uncheck, or invert the current setting of a selected range of checkboxes in a grid, e.g. the Drupal permissions page; simply click and drag over a selection of checkboxes and a toolbar appears which allows you to modify the state of all the selected checkboxes. Too cool!

As an alternative to the module, the Bright Solutions blog also includes post about how to use speedboxes as a browser plugin so you can benefit from this feature on any page you visit with your browser.

Status: There is a stable release available for Drupal 7.

Thumbnav

The module, yet another module produced by Bryan Ollendyke of Penn State University, provides a mobile-friendly framework for using a website on touch-driven devices, with support for a variety of navigation methods and an API for developers. It includes support for Quo.js, but doesn’t rely on Quo. See the project page for links to some nice demonstrations, but if you are looking for ways to improve your site’s mobile support, this could definitely be worth checking out.

Status: There is an alpha release available for Drupal 7.

Unit Conversion Formatters

The module, developed by Tony Rasmussen of Metal Toad Media, provides formatters for number fields to convert values between any unit supported by the Units API module. This could certainly be useful for some sites.

Status: There is a stable release available for Drupal 7.

Views Drupal 7 to Drupal 8 upgrade

Categories: Views

BACK UP YOUR DATABASE BEFORE ATTEMPTING TO USE THIS MODULE FOR AN UPGRADE. Really. We're not kidding.

—from the module’s project page description

The module, written by Jess of University of Wisconsin-Madison, a major force behind getting “Views in core” in Drupal 8, helps migrate Drupal 7 Views data to Drupal 8. It’s nice to see work on this is this far along.

Status: There is a development release available for Drupal 7 (really a Git repository you can check out).

Wunderstatus connector

The module, from Henri Hirvonen of Wunderkraut, sends information about installed modules as a JSON to a central service. This could be useful for monitoring a group of sites your company maintains, so I look forward to giving this a whirl and seeing how it develops.

Status: There are alpha releases available for both Drupal 6 and Drupal 7.

XSL Formatter

The module, developed by Dan Morrison of Sparks Interactive, provides a field formatter to process XML content through a defined XSL stylesheet for rendering. If that sounds useful, it’s probably best you just look at the well-written project page, because there is quite a lot of information there, which runs well outside the scope of this column.

Status: There are dev releases available for both Drupal 6 and Drupal 7.

Dec 22 2012
Dec 22
Modules of the month story banner illustration.

November 2012 was a busy month for a lot of people involved in Drupal contribution. It was the final weeks before the “feature freeze” for Drupal 8, so a lot of the focus was on new features for the next great release of Drupal. Many of the “new projects” were simply “namespace reservations” for new core modules or planned contrib modules which relate to Drupal 8; most of which had no project code committed at all (for some, presumably, it’s all in the main Drupal 8 repository). But there were also a number of new feature-enhancing modules released for Drupal 7 (and a few for Drupal 6), several which improve search functionality, a few for delivering mobile-friendly content from a Drupal site, some for commerce, others designed to help manage Drupal sites and ensure that nothing slips through the cracks when moving from “development” to “production”, among other new gems.

It’s fun, too, that we got a couple new “novelty” modules in November: one, Driesday, puts a “Happy Driesday!” message on your site every November 19th; another is a bit more insidious, with a fully-disclosed dependency on Bad judgement: Feature creep allows you to nostalgically hang onto the “good old days” when Features had a few more quirks. So if you want to remember that fun, just turn this module on and, as the module description says, “every time that you export or update a feature the Feature creep module will randomly add an extra component to your feature, what fun!”

Before we get into the module descriptions, of course, I should acknowledge the very late arrival of this month’s release of this column. It’s been one of those months… again. But let me try to hold onto my optimism that I’ll be seeing you with December’s write-up in just a couple weeks. I’ll be aiming for the first week of January. Now let’s have a look at the “new” modules.

Apache Solr Term Proximity

Categories: Search, Taxonomy

The Apache Solr Term Proximity module, coded by the prolific Chris Pliakas of Acquia fame, should be of interest for sites using Apache Solr. It boosts the relevancy of documents in which the search terms appear closer together. In other words, if I’m searching for “data migration”, a document which has these two words together should rank higher than another document where they are separated by a few words, which should rank higher than one where these words appear in different paragraphs. Nice!

Status: There is an RC release available for Drupal 7.

bigint

Categories: Fields

It’s always nice when developers share modules which help to get around some of the native limits in Drupal. One such limit is the lack of a proper “BigInt” integer type, which might not be needed for most sites, but is certainly a limitation that developers have to work around for some use cases. The bigint module, by Ryan Coulombe of NewMedia!, provides a true BigInt field, thus saving site builders from having to find creative ways to handle text or decimal values that they really want to be an integer. Cool!

Status: There is a stable release available for Drupal 7.

Block Group

Categories: Utility

An example “block group” to display the “user blocks”

The Block Group module, by znerol, provides a taste of Drupal 8-like layouts by extending the Drupal block system with “block groups” which can be placed like a normal block, are nestable, and can have regions within them. A simple use case might be that you want all of your user-related blocks to be kept together in one “user blocks” block group, which you can then put into whatever theme region you wish, without having to always fix their order when adding them to a different theme or reorder them if you change the region. Very handy!

Status: There is an alpha release available for Drupal 7.

Book Touch Bounce reasons

Categories: Community, Content, Content Display

The Bounce reasons module, produced by Alexander of ADCI, LLC, may or may not be a good idea. It pops up a Webform in an overlay, when your site visitors attempt to close a window, where you can ask why they are leaving. Personally, I think I would just find this annoying and might likely avoid following future links to the site, but that’s just my initial reaction; maybe I’m not the typical web user and it’s possible that in some cultures people wouldn’t mind a site preventing a window from being closed to ask them why. That said, maybe it would be better to provide an “opt-in” for such an “exit poll” feature, i.e. ask visitors when they arrive to your site if they wouldn’t mind being asked about their experience when they leave. But perhaps you have a client who has asked you to build exactly this functionality? If so, rather than argue with them about why this might not be a good idea, you now know “there is a module for that”. And maybe using this for a while would help them improve their site. The project description page doesn’t specifically mention it, but it would seem to depend on Webform… and possibly also Bad judgement. Hmmm…

Status: There are stable releases available for both Drupal 6 and Drupal 7.

ckeditor_syntaxhighlighter Commerce Backoffice

Categories: Administration, Commerce/Advertising, E-commerce, Views

The Commerce Backoffice module, by Bojan Živanović of Commerce Guys, provides administration enhancements for Drupal Commerce and is already in use on over 2,000 sites less than a month after its release (perhaps largely since it’s a component of the latest release of the Commerce Kickstart distribution). It includes three sub-modules, each of which have a number of dependencies and the project page does a good job of explaining everything, so I won’t say more than this: if you are using Commerce and aren’t using the Kickstart distribution, you will probably benefit from adding and configuring this module.

Status: There is a stable release available for Drupal 7.

Commerce Search API Context Block Visibility Dictionary Export

Categories: Taxonomy

The Dictionary Export module, coded by Ed Baker of the Natural History Museum, provides support for Microsoft Office-compatible dictionaries in (*.dic) format for any vocabulary on your site.

Status: There is a stable release available for Drupal 7.

Download Userpoints

Categories: File Management

The Download Userpoints module, by Eugen, provides a way for you to allow access to private files via user points. This looks useful for communities which provide points for contribution and require points for downloads of community-contributed files (as one example use-case). It requires the Userpoints module.

Status: There is a beta release available for Drupal 7.

Drifter

Categories: Content Display, Fields

The Drifter module, produced by Peter Anderson of PackWeb, allows fields to be floated to the left or right of content. While this kind of layout is normally provided by theme CSS, it can be useful for it to be theme-independent.

Status: There is a stable release available for Drupal 7.

EasyRdf Entity reference multiple display

Categories: Content Display

The Entity reference multiple display module, written by Jean Valverde of Linagora, provides a new field formatter for Entity Reference that let you configure different view modes for each referenced entity, for instance if you want the first elements to be displayed in full and subsequent elements to be displayed as teasers, this module could be your friend.

Status: There is a stable release available for Drupal 7.

Entity Reference Views Formatter Facebook Autopost

Categories: Community, Rules, Third-party Integration

The Facebook Autopost module, written by Mateu Aguiló Bosch of Human Bits, provides simple configuration to allow your site to automatically post to designated Facebook Pages. It includes a good developer API, integrates with Rules and the Entity API and includes Libraries integration for the Facebook Developer PHP SDK. It includes a Facebook app, which you authorize to make posts on the designated accounts’ behalf. There is a detailed video tutorial on the setup process linked on the project page.

Status: There is an alpha release available for Drupal 7.

Field Formatter CSS Class

Categories: Content Display, Fields, Theme Enhancements

The Field Formatter CSS Class module, by Christian Zuckschwerdt, is perhaps a bit similar to the aforementioned Drifter module; it adds a CSS selector for fields so that you can select to, for example, use a class which floats an element left or right on a per-node basis. Of course you need to set up your theme for the classes and configure your fields, so it’s not a simple “add-and-activate” module, but it should give content authors a bit more control of display for individual nodes. The author invites the community to request additional features, so I think this will definitely be useful for a lot of sites (and there are already quite a few using it). Nice!

Status: There is a stable release available for Drupal 7.

Final Polish

Categories: Utility

The Final Polish module, by Yannick Leyendecker of LOOM GmbH, helps take care of some of the last steps that are often forgotten when launching a Drupal site. It allows you to disable access to paths like /node, /rss.xml, etc; it uploads a “touch icon” to be used by mobile devices; it verifies the existence of /favicon.ico, /apple-touch-icon.png, etc, so that you don’t get a plethora of 404 errors in the logs, and the author invites input for additional features, but already has a nice development road-map to include checking recipients for Webform emails, checking the site email address, redirecting to the front page on errors (access denied / not found), etc. This can definitely streamline the last steps of getting our sites ready for use, so I’ll definitely be giving this a try.

Status: There is a development release available for Drupal 7.

Gumroad

Categories: E-commerce, Third-party Integration

The Gumroad module, from Eric Peterson of Tableau Software, helps use Gumroad to sell products on a Drupal website. I normally skip over modules which integrate commercial services, but what Gumroad offers and what they charge for their services seems like a good deal. So if you want to, for instance, sell your self-produced music and don’t want to spend a lot of time (and/or money) building up e-commerce infrastructure, handling payments, and all that, this can be a simple way to collect a reasonable percentage of the incoming revenue, and start making sales, without a ton of work. Of course, if you have more involved needs for e-commerce functionality, you’ll probably want to use Drupal Commerce, but I think this module should be attractive for a lot of creatives who simply want to focus on the “fun stuff” and just sell a few things from their sites.

Status: There is a development release available for Drupal 7.

Hackpad

Categories: Content, Fields, Third-party Integration

The Hackpad module, contributed by Andrew Berry of Lullabot, integrates Hackpad into a Drupal site. Hackpad is a hosted service, based on Etherpad (but with a lot more cool, more modern features), which allows collaborative editing of documents; it’s very cool, fun, and can be used for a lot of purposes for teams, so I think the interest in Hackpad will definitely grow, as will the features supported by this module which is still new enough that the API for it has not yet been documented, but with Lullabot behind its development, you know it will be awesome!

Status: There is a development release available for Drupal 7.

Image Combination Effects (ICE)

Categories: Content Display, Media, Performance and Scalability

The illustration image from the ICE project page with three pictures placed on an easel.

The Image Combination Effects (ICE) module, by Guy A. Paddock of Red Bottle Design, is too complex to succinctly summarize, but if you are building an image-centric site (e.g. a site to display your photography), this looks very useful for combining image effects or displaying multiple images at the same time (as one image), i.e., like “spriting” icons, but with larger images. It was designed to reduce the number of requests necessary for loading a slideshow, where they still wanted the client to be able to add new images or adjust the display order, but it looks like there could be a lot of potential use cases. It looks like this offers some pretty cool features that you might want to consider if image display is an important part of your planned site. I’ll certainly be playing with this.

Status: There is an alpha release available for Drupal 7.

jQuery Placeholder

Categories: JavaScript Utilities, Third-party Integration

An example of HTML5 placeholder text in a form

The jQuery Placeholder module, written by James Silver of ComputerMinds, integrates the HTML5 Placeholder jQuery Plugin to provide backward compatibility, using a Javascript-only method, for older browsers which don’t support the HTML5 placeholder attribute. For those not so up on HTML5 attributes, the “placeholder” attribute provides the “placeholder text” you see in a form field before you click on it to, e.g. enter your name, but until HTML5-support improves, we need some fallbacks, so this looks like a useful module.) It requires jQuery 1.6+ and the Elements module.

Status: There is a beta release available for Drupal 7.

Mass Password Reset

Categories: Security, User Management

The Mass Password Reset module, written by Mark Shropshire of Classic Graphics, allows a Drupal site administrator to reset the password on all user accounts (except user/1) and then notify all users. It’s good to know this module is available if there’s ever an emergency situation where we might need it.

Status: There is a stable release available for Drupal 7.

Meta tags: Panels

Categories: Search, SEO

The Meta tags: Panels module, contributed by Diogo Correia of DRI, extends the Meta tags module with support for Panels pages. It also has Features integration, so that if you export a panels page, the meta-tag configuration is exported with it. Cool!

Status: There is a beta release available for Drupal 7.

Mobile Switch Blocks OG homepage

Categories: Administration, Organic Groups (OG)

The OG homepage module, produced by enzipher, allows you to configure an Organic group’s front-page as the default “home” for logged in members of the group; it also includes options to determine how a user is redirected if they belong to more than one group, among other nifty features. This could be useful for a lot of Organic Groups -based sites.

Status: There is a stable release available for Drupal 7.

Performance and Scalability Checklist

Categories: Administration, Performance and Scalability

The Performance and Scalability Checklist module, contributed by Travis Carden, is similar to the popular SEO Checklist module, which he also helps maintain. It provides an interactive, step-by-step checklist to help manage the common tasks involved in launching or administering a Drupal site; in this case where it comes to optimizing your site’s software stack, from Apache to your Drupal theme.

The Performance and Scalability Checklist module interface for Drupal 7.

This module is still new and the topic it attempts to cover is so broad, that the module is sure to change and improve in time, but it already looks pretty darn useful. The author is actively seeking suggestions in the Performance and Scalability Checklist issue queue, so please give it a try, then add your 2¢ to help improve this module. Enabling this module requires the ChecklistAPI module.

Status: There is a beta release available for Drupal 7.

Path metatags

Categories: Path Management, SEO

The Path metatags module, by Maslouski Yauheni, helps to create metatags for any page with any selection rules and loads any entity from the URL; it supports all tokens from the Entity tokens module (a sub-module of Entity), supports import and export via Features and Chaos Tools, and allows for full translatability of path meta-tag values, among other nice features—you should really have a look at the project page to get a better overview. It looks well thought-out, so I suspect this may well become a quite popular module in time.

Status: There is a beta release available for Drupal 7.

Performance data

Categories: Performance and Scalability

The Performance data module, by Nathaniel Catchpole of Tag1 Consulting, is envisioned to be a UI for viewing and analyzing performance data that you’ve recorded and saved using other tools. When a key core maintainer starts a new project, there’s usually reason to take notice and expect there might be great things coming. That said, according to the project page, this is still in the early stages of development, so unless you have an interest in assisting the development process, you might want to wait a while to try it out.

Status: There is an alpha release available for Drupal 7.

Print Anything

Categories: Content Display

The Print Anything module, coded by Chris Desautels of R2integrated, helps you configure special rules for generating print-friendly output for any path. There is some work to getting it all working, but it has some nice features and helps you handle a lot of content that isn’t otherwise simple to print, as well as helps maintain your brand visibility by including your logo in the output, among other features.

Status: There is a stable release available for Drupal 7.

Quo.js

Categories: JavaScript Utilities, Mobile, Theme Enhancements, Third-party Integration, Utility

The Quo.js module, created by Bryan Ollendyke of Penn State University, integrates the Quo.js mobile event library into Drupal. As with other such modules, you’ll still need to download and install the JavaScript code, separately. It provides a number of features, including environment detection, and event detection, such as reading “tap”, “hold”, “pinch”, “rotate” and other such mobile gesture events. It integrates well with, and enhances, the other modules recently released by the same prolific contributor, including the aforementioned Book Touch and Thumbnav modules, so it certainly looks useful and I expect it will grow in use as more sites start providing mobile-specific features.

Status: There is a beta release available for Drupal 7.

Search API Page Block Simple Anti-Spam

Categories: Spam Prevention

Simple Anti-Spam user interface for Drupal 7.

The Simple Anti-Spam module, by xandeadx, adds two new elements to designated forms: one checkbox, labeled “I’m not a spammer” and a hidden checkbox, “I’m a spammer”. If user does not check the first or (is a bot which) has checked the second checkbox, the form is not submitted and displays a warning message.

Status: There is a development release available for Drupal 7.

Simple Table of Contents Speedboxes - Fast checkbox handling Thumbnav

Categories: JavaScript Utilities, Mobile, Site Navigation, Theme Enhancements

The Thumbnav module, yet another module produced by Bryan Ollendyke of Penn State University, provides a mobile-friendly framework for using a website on touch-driven devices, with support for a variety of navigation methods and an API for developers. It includes support for Quo.js, but doesn’t rely on Quo. See the project page for links to some nice demonstrations, but if you are looking for ways to improve your site’s mobile support, this could definitely be worth checking out.

Status: There is an alpha release available for Drupal 7.

Unit Conversion Formatters Views Drupal 7 to Drupal 8 upgrade

Categories: Views

BACK UP YOUR DATABASE BEFORE ATTEMPTING TO USE THIS MODULE FOR AN UPGRADE. Really. We're not kidding.

—from the module’s project page description

The Views Drupal 7 to Drupal 8 upgrade module, written by Jess of University of Wisconsin-Madison, a major force behind getting “Views in core” in Drupal 8, helps migrate Drupal 7 Views data to Drupal 8. It’s nice to see work on this is this far along.

Status: There is a development release available for Drupal 7 (really a Git repository you can check out).

Wunderstatus connector

Categories: Security, Third-party Integration

The Wunderstatus connector module, from Henri Hirvonen of Wunderkraut, sends information about installed modules as a JSON to a central service. This could be useful for monitoring a group of sites your company maintains, so I look forward to giving this a whirl and seeing how it develops.

Status: There are alpha releases available for both Drupal 6 and Drupal 7.

XSL Formatter

Categories: Content Display, Fields, Import/Export

The XSL Formatter module, developed by Dan Morrison of Sparks Interactive, provides a field formatter to process XML content through a defined XSL stylesheet for rendering. If that sounds useful, it’s probably best you just look at the well-written project page, because there is quite a lot of information there, which runs well outside the scope of this column.

Status: There are dev releases available for both Drupal 6 and Drupal 7.

Nov 23 2012
Nov 23
Modules of the month story banner illustration.

October 2012 brought us a nice batch of interesting new modules. Of course I wanted to tell you all about them weeks ago, but without going into excuses and details, I’m afraid getting this published didn’t go as planned. I’d like to get back on schedule to release the next installation of this series in early December, though. Anyway, it’s great to see all of the innovations that have been introduced in the past month. You can tell that Drupal 7 has truly reached maturity by the kind of modules that are being released now. Many, if not most, of the new modules integrate with and extend the functionality of other contributed modules—for example, there are three new modules which provide plugins for the Facet API—or integrate exciting new jQuery plugins to bring a bit of sizzle to your site.

As usual, the list is in alphabetical order and I haven’t tried all of these modules (although I have experimented with quite a few of them and even eliminated a few from consideration since they seemed a bit too “broken” at this point.) Some of these modules might not be ready for use yet, but just show good promise and look worth keeping an eye on. Creating this monthly list is as much for me as it is for you, but I do hope that the modules I select work well for you, if you give them a try, and I look forward to seeing your comments about any of these modules.

*/ Adminimal Administration Menu It adds a nice and simple minimalist look and provides some tweaks to improve your Drupal administration experience. The menu hierarchy is now simpler and easier to understand […] The shortcuts fit nicely and have a small icon that separates them from the normal admin menu links.

(Adminimal Administration Menu project description)

The module, by Andonis Ratsos, changes the style of the popular module’s menu bar.

The adminimal_admin_menu look and feel

Whether or not you like the way it restyles the Admin menu is likely a matter of personal taste, but I do observe that even with only the default shortcuts in the menu (no custom shortcuts added) the larger font of the menu makes it take up a lot space at the top of the window and it starts to wrap to a second line if the window is narrower than about 1,100 pixels, so it’s possible that people administering Drupal sites from smaller devices (netbooks or tablets, not to mention smartphones) might find this modification less appealing. On the other hand, the larger links should make easier targets for a finger-tip… six of one, half a dozen of another.

adminimal_menu shortcuts

Personally, I like the theme change and I like the Adminimal Adminimal Theme admin theme, too, so for my personal testing sites, I’ll go ahead and leave these active. I’m hoping to see some simple customization available in the future… I think I would want to see that before recommending it for client sites.

Status: There is a development release available for Drupal 7.

Autocache

The module, by Teemu Merikoski of Wunderkraut simplifies caching of Views and Panels and has some support for appropriate clearing of Varnish caches, too. It’s still new and the roadmap is perhaps a bit longer than the current features list, but I’m sure that this will be worth keeping an eye on.

Status: There is a development release available for Drupal 7.

Bootstrap optimizer

The module, by Maslouski Yauheni, has only been released for a couple of weeks and there are already over 150 sites using it, so it must be worth a try! On the other hand, if you don’t “improperly delete” modules, perhaps it’s not so useful for you. It appears that its primary functionality is to remove modules from the system table which no longer exist in the modules directory, so if all your sites are well-maintained, this might not do much for you. It looks like Drupal 8 should hopefully resolve this issue. But until this is really fixed in core, there is a place for modules like this, especially for older projects that might not be very actively maintained and might have had some modules deleted over the time. For such sites, this module claims to provide a several-fold increase in the bootstrap time, and provides screenshots as evidence.

Status: There is a beta release available for Drupal 7.

Bulk User Delete

The module, produced by Mark Theunissen of Four Kitchens, provides with a text area where you can enter a list of email addresses for users you wish to “bulk delete”. Normally, it’s probably easier to simply check the boxes next to the names of a group of users you wish to delete and select the action “Cancel the selected user accounts”. But I can imagine scenarios, especially scripted ones, where using this module might be a simpler solution, e.g. when creating a number of test users en masse, users with various combinations of roles and/or other custom relationships, and then removing them after the tests have been run. This could be useful if you want to run such tests on a busy production site without needing to take special care that you select only the right users for deletion or when you have so many test users that they wouldn’t all be visible on one page of users.

Status: There is a stable release available for Drupal 7.

Cache Lifetime Options

The module, from giorgio79, provides additional cache-time options which can be selected on admin/config/development/performance, with cache lifetimes up to a year. This is especially useful for sites with a lot of static content. Boost is a recommended companion.

Status: There is a stable release available for Drupal 7.

ceaZine

The module, written by Carlos Espino Angulo, allows you to display PDFs in a Colorbox overlay with “page flip” effects and everything. If you want a nice effect for showing off your books, this is a great module. Setting it up is a bit involved, though, so be sure to check the project page for full details. It requires a few of jQuery libraries, and (of course) a recent version of the Libraries module, Views (for an included display of all your online magazines, if you wish to use it), and PDF to ImageField which, in turn, requires ImageMagick, but it uses only CSS, JS, and HTML—no Flash. Nice!

Status: There is a stable release available for Drupal 7.

CkEditor Plugin: Google Doc embedded iframe

The module, authored by Sergio García Fernández, is an extension for the popular CKEditor module, which provides a simple editor button for easily embedding Google Docs iframes in your content.

Status: There is a stable release available for Drupal 7.

Cloze

The module, written by Sivaji Ganesh of KnackForge, provides Cloze question type for the Quiz module. Cloze questions are the type of question where blanks are inserted in the middle of questions, a question type commonly used in language assessments.

Status: There is an alpha release available for Drupal 6.

CodeMirror editor

The module, developed by Darren Mothersele, adds syntax highlighting directly to your Wysiwyg editor experience, using the Codemirror Javascript library, among other nice features. If you have a site where writing and displaying code is important, this could well be useful. It doesn’t even require WYSIWYG (although there are, perhaps, more fully developed alternatives if you simply want syntax highlighting for code entered in a basic text area), much less any particular editor. It’s still under active development, but the plans look interesting, so this is definitely worth keeping in mind for projects which involve presenting code.

Status: There is a development release available for Drupal 7.

Collapsible comment threads

The module, developed by Manuel Garcia, uses jQuery to collapse and expand comment threads, thus helping remove the “visual noise” of deeply threaded comment conversations. This could be especially useful for sites with a forum or very active discussion in blog comments.

Status: There is a beta release available for Drupal 7.

Content Access Admin

The module, by Peter Lieverdink of Creative Contingencies, lists all node grants in a simple table. This is especially handy since special access grants, provided by the Content Access module, are otherwise only visible on the individual nodes.

Content Access Admin displays a table with some filters to see just what you want to, with links on each node title to help you jump right to each node and manage the access.

Status: There is a development release available for Drupal 7.

Date Facets

The module, contributed by Chris Pliakas of Acquia, provides date range facets similar to major search engines so that you can look for search results within a defined date range. Too cool! It integrates with the range of search modules available for Drupal, including Apache Solr, among others. Of course it’s search technology, so implementing it is not as simple as activating the module.

Status: There is a beta release available for Drupal 7.

Dates

The module, created by Chris Charlton of XTND.US, is not actually part of the Date module, but provides a range of additional advanced date formats. This could be especially handy, but beware that disabling or uninstalling this module does not remove the packaged date types and formats which are stored in the Drupal database when the module is enabled.

Status: There is an alpha release available for Drupal 7.

Devel Input Filter

The module, contributed by Garrett Albright of PINGV, aids development of input filters; it provides a page where you can enter test input to see filtered input, without caching. It’s really only for developers who are debugging text filters.

Status: There is a development release available for Drupal 7.

Email Log

The module, authored by Mikael Kundert of Wunderkraut, allows site maintainers to get email notification when there are critical log entries. Log entry tokens would need to be supported for this to be done by Rules, but even so, it greatly simplifies staying on top of important site updates. The user interface and options are almost exactly the same as the Watchdog Digest module’s, except that this module will send you an alert whenever there is a watchdog entry of a given severity level, so you might wish to send only the most critical alerts with this module and use Watchdog Digest to send an email which includes all the other log entries in one email.

Status: There is an RC release available for Drupal 7.

Entity Translation Tabs

The module, contributed by Ryan Weal of Kafei Interactive, gives site editors an edit tab for each enabled language. For the time-being, it only supports nodes, but the roadmap includes support for other entity types, e.g. taxonomy and user entities, among others. This should be great for multilingual sites! It is currently in active development, so I won’t list the potential caveats. Please see the project page for recommended usage.

Status: There is a stable release available for Drupal 7.

Facet API Collapsible The search facet links from Facet API Collapsible

The module, by Peter Droogmans of Attiks, is a “full project” release of a sandbox project created by Acquia’s Katherine Bailey. If the name doesn’t make things especially clear, it probably helps to understand that the Facet API is another Drupal project, which this one extends (although the project description leaves that part out). Faceted search (e.g. searching within a range of pre-selected terms or dates) is what the Facet API does and this widget provides a slick interface for single-click searches.

Status: There is a stable release available for Drupal 7.

Facet API tabs

Categories: Search

When it rains facets, it pours facets. The module is another widget for the Facet API, written by Erno Kaikkonen of Exove Ltd in Finland. It allows you to display search facets in tabs and the project description indicates you’ll want to do “some CSS work to style the tabs”. If a sidebar isn’t what you need, this might be the ticket.

Status: There is a beta release available for Drupal 7.

Field collection feeds

The module, contributed by Howard Ge, provides feeds integration for field collections and also requires Feeds. This could well be useful.

Status: There is an alpha release available for Drupal 7.

Field Collection Tab formatter

Field Collection Tab Formatter imageThe module, written by Lee Rowlands of Australia’s PreviousNext gives us a nifty output for field collections in a tab-set. I can think of at least one place I’d personally like to use this and apparently I’m not the only one since there are already more than 50 sites using the module, barely a month after its release… a pretty solid start! Of course it requires the Field Collection module.

Status: There is a stable release available for Drupal 7.

Field formatter conditions

The module, written by Kristof De Jaeger of Wunderkraut, adds conditions to field formatters. The “Manage Display” tab for each entity type provides per-field configuration of field conditions. It supports fields from the Field API and Display Suite with a number of included conditions and it requires Field formatter settings

Status: There is an alpha release available for Drupal 7.

Flipcard - nodes made into flashcards

The module, by Hugh, helps you create node-based flashcards where the node title is the “answer”. Users can sort based on custom taxonomies and can record whether they knew the answer to each card, so questions they are still having trouble with will show up more often. I used to cut up index cards to make actual paper flashcards to study for exams and more recently, but still some years ago, made them to study on an old Palm device, with great success, so I know the usefulness of flashcarding, but this even offers jPlayer support to use automatically-played audio recordings for the questions. Very cool! You can see the demo site, where you can also learn a bit of Thai, to get an idea of the usefulness this module already offers. There are always new things I’m trying to memorize, so I’ll be a likely candidate to give this module a try. The only thing I’m really hoping it will offer (that I didn’t notice in the demo) is the ability to use the “question” as the “answer” (i.e. to practice both directions), but I doubt that would be too hard to manage. The demo site already offers the option to “view words” (clicking on each word in English takes you to the audio recording of its equivalent in Thai, whereas in practice mode, you hear the word and check to see if you know what it means). Personally, I think the current mode is better for the initial phase of passive comprehension, but for learning to actively speak a language, it’s better to work from “mother tongue” to “other tongue”. So ideally, the module should support working in both directions and keeping track of your answers in both directions, too, but maybe all this is already in the development roadmap.

Status: There is a development release available for Drupal 7.

Invites

The module, developed by Raz Konforti of Linnovate, allows you and/or your site members to invite new members to your site and includes an OG module to provide for inviting people to a particular group; it provides for the creation of a custom, fieldable Invites type and for custom invitation emails with Rules integration, among other interesting features. Google has proven the power of viral campaigns to build a community around a new product with “invitation-only” access… so this could definitely be a good idea for your community site, too. Note: Administrators of OG sites might, alternatively, wish to use the OG Invite People module, which eliminates the registration process for invitees.

Status: There is an alpha release available for Drupal 7.

jQuery selectBox Styles of SELECT element provided by the jQuery selectBox module.

The module, produced by Henry Umansky, provides multiple Javascript-enhanced styling options for SELECT elements. It integrates Cory LaViska's selectBoxjQuery library plugin, so like most such integration modules, it requires the Libraries module as well as the afore-mentioned and eponymous selectBox jQuery library installed in sites/all/libraries, according to the nicely detailed directions on the project page. The selectBox demo is really freakin' cool! There are various options for slick effects in addition to the various ways of building a SELECT box for improved UX.

Status: There is a beta release available for Drupal 7.

JS Watchdog

The module, coded by Bevan Rudge provides Drupal.watchdog() in Javascript to log errors to the database. It’s really mostly a developer tool for people working on Javascript code, but this should be useful. It provides a number of nice features, though, so if you are working on JS code, you might want to take a look at this. Unfortunately, there isn’t a Drupal 7 version (yet), but according to the project page, creating one should be “trivial”, so hopefully we’ll have a nice D7 version ready for use before long, too.

Status: There is a beta release available for Drupal 6.

Leaflet Widget for Geofield Simple geometries supported by the Leaflet Widget

The module, developed by Tom Nightingale of Affinity Bridge, a Geofield widget that provides a Leaflet map and uses the Leaflet widget plugin to work with geometries, making it possible to, for example, mark up web-based maps with the outline of a real estate propery or city district. Of course it requires Libraries and configuring any kind of mapping is never as simple as just activating a module, so be sure to check the project page for more details.

Status: There is a beta release available for Drupal 7.

Logo Block

The module, authored by Kristofer Tengström, provides flexibility in how you display your site logo, including applying an image style, and provides a block you can place anywhere, thus circumventing the limitations of the Drupal logo configuration.

Status: There is a stable release available for Drupal 7.

MC Hammer

The module, written by Nils destoop of Wunderkraut, provides tools and templates for sending sophisticated email newsletters from your Drupal site. There is only a development release, so far, but it already has an impressive feature-set, so if you plan want to produce a newsletter, this could be a great tool to look at, and with Wunderkraut behind this, we can bet this will develop nicely.

Status: There is a development release available for Drupal 7.

Nice Date This is the kind of date display provided by Nice Date

The module, written by Nicholas Thompson of Turner Broadcasting Systems, provides a nicely formatted date to display the publication date of nodes, e.g. blog posts, and comments. It uses a CSS Sprite with all the months, days and years to generate a 41x40px block with the date in it.

Status: There is a stable release available for Drupal 7.

Node Display Field

The module, contributed by Christian Biggins of PreviousNext, provides an alternative teaser display mode which can be enabled for any node, e.g. a “promo” mode. This could be useful.

Status: There is a development release available for Drupal 7.

No term pages

The module, written by Gaël Gosset of Insite, provides an extra option for a vocabulary which blocks the terms in that vocabulary from ever being displayed as a page. With all the different ways that terms are used in a typical Drupal site, not wanting term pages for some vocabularies is a pretty common use case, so now you know—there’s a module for that! This functionality should probably be in “core”.

Status: There is a stable release available for Drupal 7.

OG Invite People

The module, developed by Aleš Rebec, has some features in common with the previously-mentioned Invites module, but it’s only for Organic Groups. One interesting feature of this module is the complete elimination of the registration process. A user entity is during the invitation process and the invitees receive a one-time login link in their invitation emails.

Status: There is a development release available for Drupal 7.

Panels Content Cache

The module, developed by Graham Taylor of Capgemini, provides a content-aware cache plugin which supports caching Panels and other Ctools displays, until their content changes. Isn’t that how caching should work? Caching strategies and the technologies that support them are not trivial and there are a number of options, but this module looks promising for those who are working with Panels content.

Status: There are dev releases available for both Drupal 6 and Drupal 7.

Permissions Grid The simple permissions UI provided by the Permission grid module Links to the Permissions grid on the general permissions page.

The module, by Joachim Noreiko, provides a per-role grid of permissions for modules which declare structured permissions. These permissions can be viewed, on a separate page for each role, with the entity types in rows and permission verbs in columns. Of course it doesn’t eliminate the normal sea of permissions… but for the basics related to your site content, this helps simplify things. This is very nicely done and I’ll be sure to use it.

Status: There is a stable release available for Drupal 7.

Retina Images

The module, contributed by Michael Prasuhn, provides the option for core image styles to output a high resolution version of images for high DPI or retina displays. It can be used to return high resolution images for all devices. There can be very little difference in file-size between a low-resolution, high-quality image and a high-resolution, low-quality image. But the high-resolution image will work better on high-resolution devices and still look fine when scaled down for display on a normal-resolution monitor. This module already has a strong user-base, considering its recent release and the developer seems to be doing a great job managing the issues, so if improving mobile UX is important for your site, this module might well be worth considering.

Status: There is a beta release available for Drupal 7.

Rich Snippets

The module, developed by Chris Pliakas of Acquia, enhances the search results to provide nicer “snippets” of content returned in search results, much like those displayed by major search engines. Instead of just displaying the teaser or first characters of an article, it displays that with ellipses and the user’s search term within the context of the content. Very nice! Caveat: Be sure to read the “Usage” and “Gotchas” on the project page. Configuring a perfect site search is a non-trivial task, but this definitely looks helpful and works with core search and Apache Solr.

Status: There is a development release available for Drupal 7.

Role memory limit The simple configuration for the role_memory_limit module.

The module, developed by Kevin Yousef, is a small module which allows you to configure separate PHP memory limits, per role. For normal users, the memory limit could be set to 128MB, while the admin interface, which can require much more memory, can be allocated what it needs. Of course you need access to change the memory limit in your php.ini file. Since the memory limit is set per-user and this often has to be higher than normal for a Drupal site, just because of the greater needs for the site administrator, logical configuration with this module could, in theory, dramatically improve the number of concurrent users your site can handle. I’ll certainly be giving this a try.

Status: There is a stable release available for Drupal 7.

Scoville

The module, produced by Garrett Albright of PINGV, which gets its name from the “hotness” scale used for describing a variety of chili pepper’s level of spiciness, helps you easily display a block or page of your site’s “hottest” content. For more complicated use cases, you’ll probably want to use the Radioactivity module, instead, but since configuring it can be a bit of a chore, people who just want to get a basic “hot content” block into their site might want to give this one a try.

Status: There is a development release available for Drupal 7.

Search API Taxonomy

Categories: Search

The module, developed by Steven Jones of ComputerMinds, adds some extra features for integrating taxonomy into the Search API, including indexing the taxonomy term parents and display of a facet (using Facet API) for top-level terms. It’s still in development, so additional features could well be added, but this already looks very useful.

Status: There is a development release available for Drupal 7.

Taxonomy Freetag Detection

The module, by Leigh Morresi, extends Term reference fields of type Autocomplete term widget (free tagging) with an option to add a button to scan other fields (e.g. your node “body”) to and add words which it finds which match existing terms in that vocabulary. Of course you might need to eliminate any terms it adds, e.g. a word in your document might match an existing term, but have the wrong context for the meaning of the term (e.g. “Features” is a taxonomy term here on the Cocomore Drupal site, but if I simply talk about the features of a module, I’m not going to tag the article with that term). This looks pretty simple and very useful, especially if your site uses the standard autocomplete “tagging” widget, which is the only widget this module complements. See the project page for configuration tips.

Status: There is an alpha release available for Drupal 7.

Twitter Profile The Twitter Profile module in demo use.

The module, created by Rishikesh Bhatkar, provides a nice, very configurable, Twitter profile block which can show any or all of: your Twitter profile info, counts for Tweets, Favorites, Listed, Followers, and Following, and avatars for your Followers and Following, with a configurable size and number of avatars displayed. It also includes some theming presets for the block. This is much more configurable than many of the other Twitter blocks. What would be nice for community sites would be allowing each user to display their Twitter profile on their user profile page, but it looks like the block only supports one Twitter account.

Status: There is a stable release available for Drupal 7.

User Pic Kit

The module, written by Daniel Phin, allows your site’s users to choose a user image (avatar) to represent their account, from any of a number of providers, while still supporting a Drupal core image upload option. Each user can choose which provider they wish to use. The included third-party image host providers include Gravatar (which requires the Gravatar integration module) and Robohash, but with the add-on User Pic Kit Extras! module, you can add Twitter, Facebook, and other avatar hosts. You can also locally cache the remote pictures (such as Gravatar) and use Drupal image styles on the downloaded pictures! There is even a documented API which allows you to implement other image hosts. This looks like fun and can certainly improve the user experience for configuring a new user account profile for users who already have an established online persona.

Status: There is an alpha release available for Drupal 7.

User Search to People Administration

The module, developed by Benjamin Melançon of Agaric, removes the user search functionality from your site (for normal users) and moves it into /admin/people/search (a tab on the /admin/people). Most sites probably have no need for visitors to search user accounts, but administrators can still find such a search useful. By moving the user search tab into the “admin realm”, this also opens up the option of allowing people to view user profiles without also providing the “search users” functionality (since, by default in Drupal 7, if you want to block access to /user/search for a particular role, you need to leave the permission to “access user profiles” unchecked. So in addition to moving the user search functionality into a tab where it’s convenient for site administrators, it also breaks this unnecessary relationship between access to user profiles and to using the user search feature. This looks useful for many common use cases, perhaps even more ideal for most sites than the Drupal default.

Status: There is a stable release available for Drupal 7.

View mode per Role

The module, developed by Edouard Cunibil allows site administrators to set a view mode for content depending on the user role, with configuration in the content type edit form. This can be useful when you want your content to be displayed differently, to different user roles, but do note that this is not a content access module, so if you must prevent certain roles from being able to gain any kind of access to certain fields, you should consider the Field Permissions module.

Status: There is an alpha release available for Drupal 7.

Watchdog digest

Configuration for the Watchdog digest module.The module, created by Edgár Prunk-Éger, sends watchdog entries by email in a digested format, so you don’t get a separate email for each entry (of a type where you might want to send a message to a site administrator). This looks very useful, but the current project page is very lacking in detail and there is no link to the configuration, so it took looking at the code to figure out where to adjust settings for this. It adds a fieldset to the “Logging and errors” configuration page (/admin/config/development/logging), where you can configure the number of messages per e-mail, the e-mail address(es), and the severity level threshold, which can be set anywhere between “debug (all)” and “emergency”, although probably for anything that extreme you might want a Rules-triggered action to immediately email the site administrator.

Status: There is an alpha release available for Drupal 7.

WYSIWYG Configuration with TinyMCE and Shortcodes

The module, coded by Jurriaan Roelofs, is a Features-generated module which helps streamline a particular Wysiwyg configuration which is rather sophisticated. If it happens that you want all the features included here, it could be a nice way to get it all configured. But if you want something simpler or wish to use a different editor, etc, this is probably not for you. It includes Media integration and all kinds of things that a lot of sites won’t use, but which are notoriously tricky and time-consuming to work out, so if this kind of rich configuration is what you want, then all you need to do is download all the dependencies (see the project page, there are a ton!) and then simply enable this module to have it automatically enable and configure all its dependencies. This looks very useful if it happens to be exactly what you need; if not, it could be also be useful as a quick route to experimenting with a lot of modules and features that you might want to use.

Status: There is a beta release available for Drupal 7.

Nov 22 2012
Nov 22
Modules of the month story banner illustration.

October 2012 brought us a nice batch of interesting new modules. Of course I wanted to tell you all about them weeks ago, but without going into excuses and details, I’m afraid getting this published didn’t go as planned. I’d like to get back on schedule to release the next installation of this series in early December, though. Anyway, it’s great to see all of the innovations that have been introduced in the past month. You can tell that Drupal 7 has truly reached maturity by the kind of modules that are being released now. Many, if not most, of the new modules integrate with and extend the functionality of other contributed modules—for example, there are three new modules which provide plugins for the Facet API—or integrate exciting new jQuery plugins to bring a bit of sizzle to your site.

As usual, the list is in alphabetical order and I haven’t tried all of these modules (although I have experimented with quite a few of them and even eliminated a few from consideration since they seemed a bit too “broken” at this point.) Some of these modules might not be ready for use yet, but just show good promise and look worth keeping an eye on. Creating this monthly list is as much for me as it is for you, but I do hope that the modules I select work well for you, if you give them a try, and I look forward to seeing your comments about any of these modules.

Adminimal Administration Menu

Categories: Administration

It adds a nice and simple minimalist look and provides some tweaks to improve your Drupal administration experience. The menu hierarchy is now simpler and easier to understand […] The shortcuts fit nicely and have a small icon that separates them from the normal admin menu links.

(Adminimal Administration Menu project description)

The Adminimal Administration Menu module, by Andonis Ratsos, changes the style of the popular Administration menu module’s menu bar.

The adminimal_admin_menu look and feel

Whether or not you like the way it restyles the Admin menu is likely a matter of personal taste, but I do observe that even with only the default shortcuts in the menu (no custom shortcuts added) the larger font of the menu makes it take up a lot space at the top of the window and it starts to wrap to a second line if the window is narrower than about 1,100 pixels, so it’s possible that people administering Drupal sites from smaller devices (netbooks or tablets, not to mention smartphones) might find this modification less appealing. On the other hand, the larger links should make easier targets for a finger-tip… six of one, half a dozen of another.

adminimal_menu shortcuts

Personally, I like the theme change and I like the Adminimal Adminimal Theme admin theme, too, so for my personal testing sites, I’ll go ahead and leave these active. I’m hoping to see some simple customization available in the future… I think I would want to see that before recommending it for client sites.

Status: There is a development release available for Drupal 7.

Autocache Bootstrap optimizer

Categories: Performance and Scalability

The Bootstrap optimizer module, by Maslouski Yauheni, has only been released for a couple of weeks and there are already over 150 sites using it, so it must be worth a try! On the other hand, if you don’t “improperly delete” modules, perhaps it’s not so useful for you. It appears that its primary functionality is to remove modules from the system table which no longer exist in the modules directory, so if all your sites are well-maintained, this might not do much for you. It looks like Drupal 8 should hopefully resolve this issue. But until this is really fixed in core, there is a place for modules like this, especially for older projects that might not be very actively maintained and might have had some modules deleted over the time. For such sites, this module claims to provide a several-fold increase in the bootstrap time, and provides screenshots as evidence.

Status: There is a beta release available for Drupal 7.

Bulk User Delete

Categories: Administration, User Management

The Bulk User Delete module, produced by Mark Theunissen of Four Kitchens, provides a path with a text area where you can enter a list of email addresses for users you wish to “bulk delete”. Normally, it’s probably easier to simply check the boxes next to the names of a group of users you wish to delete and select the action “Cancel the selected user accounts”. But I can imagine scenarios, especially scripted ones, where using this module might be a simpler solution, e.g. when creating a number of test users en masse, users with various combinations of roles and/or other custom relationships, and then removing them after the tests have been run. This could be useful if you want to run such tests on a busy production site without needing to take special care that you select only the right users for deletion or when you have so many test users that they wouldn’t all be visible on one page of users.

Status: There is a stable release available for Drupal 7.

Cache Lifetime Options

Categories: Content, Performance and Scalability

The Cache Lifetime Options module, from giorgio79, provides additional cache-time options which can be selected on admin/config/development/performance, with cache lifetimes up to a year. This is especially useful for sites with a lot of static content. Boost is a recommended companion.

Status: There is a stable release available for Drupal 7.

ceaZine

Categories: Content Display, Third-party Integration

The ceaZine module, written by Carlos Espino Angulo, allows you to display PDFs in a Colorbox overlay with “page flip” effects and everything. If you want a nice effect for showing off your books, this is a great module. Setting it up is a bit involved, though, so be sure to check the project page for full details. It requires a few of jQuery libraries, and (of course) a recent version of the Libraries module, Views (for an included display of all your online magazines, if you wish to use it), and PDF to ImageField which, in turn, requires ImageMagick, but it uses only CSS, JS, and HTML—no Flash. Nice!

Status: There is a stable release available for Drupal 7.

CkEditor Plugin: Google Doc embedded iframe Cloze CodeMirror editor

Categories: Developer, Fields, JavaScript Utilities, Third-party Integration

The CodeMirror editor module, developed by Darren Mothersele, adds syntax highlighting directly to your Wysiwyg editor experience, using the Codemirror Javascript library, among other nice features. If you have a site where writing and displaying code is important, this could well be useful. It doesn’t even require WYSIWYG (although there are, perhaps, more fully developed alternatives if you simply want syntax highlighting for code entered in a basic text area), much less any particular editor. It’s still under active development, but the plans look interesting, so this is definitely worth keeping in mind for projects which involve presenting code.

Status: There is a development release available for Drupal 7.

Collapsible comment threads Content Access Admin

Categories: Administration, Content, Content Access Control

The Content Access Admin module, by Peter Lieverdink of Creative Contingencies, lists all node grants in a simple table. This is especially handy since special access grants, provided by the Content Access module, are otherwise only visible on the individual nodes.

Content Access Admin displays a table with some filters to see just what you want to, with links on each node title to help you jump right to each node and manage the access.

Status: There is a development release available for Drupal 7.

Date Facets

Categories: Content Display, Search

The Date Facets module, contributed by Chris Pliakas of Acquia, provides date range facets similar to major search engines so that you can look for search results within a defined date range. Too cool! It integrates with the range of search modules available for Drupal, including Apache Solr, among others. Of course it’s search technology, so implementing it is not as simple as activating the module.

Status: There is a beta release available for Drupal 7.

Dates

Categories: Content, Utility

The Dates module, created by Chris Charlton of XTND.US, is not actually part of the Date module, but provides a range of additional advanced date formats. This could be especially handy, but beware that disabling or uninstalling this module does not remove the packaged date types and formats which are stored in the Drupal database when the module is enabled.

Status: There is an alpha release available for Drupal 7.

Devel Input Filter

Categories: Developer, Filters/Editors

The Devel Input Filter module, contributed by Garrett Albright of PINGV, aids development of input filters; it provides a page where you can enter test input to see filtered input, without caching. It’s really only for developers who are debugging text filters.

Status: There is a development release available for Drupal 7.

Email Log

Categories: Administration, Mail

The Email Log module, authored by Mikael Kundert of Wunderkraut, allows site maintainers to get email notification when there are critical log entries. Log entry tokens would need to be supported for this to be done by Rules, but even so, it greatly simplifies staying on top of important site updates. The user interface and options are almost exactly the same as the Watchdog Digest module’s, except that this module will send you an alert whenever there is a watchdog entry of a given severity level, so you might wish to send only the most critical alerts with this module and use Watchdog Digest to send an email which includes all the other log entries in one email.

Status: There is an RC release available for Drupal 7.

Entity Translation Tabs

Categories: Multilingual

The Entity Translation Tabs module, contributed by Ryan Weal of Kafei Interactive, gives site editors an edit tab for each enabled language. For the time-being, it only supports nodes, but the roadmap includes support for other entity types, e.g. taxonomy and user entities, among others. This should be great for multilingual sites! It is currently in active development, so I won’t list the potential caveats. Please see the project page for recommended usage.

Status: There is a stable release available for Drupal 7.

Facet API Collapsible

Categories: Content Display, Search

The search facet links from Facet API Collapsible

The Facet API Collapsible module, by Peter Droogmans of Attiks, is a “full project” release of a sandbox project created by Acquia’s Katherine Bailey. If the name doesn’t make things especially clear, it probably helps to understand that the Facet API is another Drupal project, which this one extends (although the project description leaves that part out). Faceted search (e.g. searching within a range of pre-selected terms or dates) is what the Facet API does and this widget provides a slick interface for single-click searches.

Status: There is a stable release available for Drupal 7.

Facet API tabs

Categories: Search

When it rains facets, it pours facets. The Facet API tabs module is another widget for the Facet API, written by Erno Kaikkonen of Exove Ltd in Finland. It allows you to display search facets in tabs and the project description indicates you’ll want to do “some CSS work to style the tabs”. If a sidebar isn’t what you need, this might be the ticket.

Status: There is a beta release available for Drupal 7.

Field collection feeds Field Collection Tab formatter

Categories: Content Display, Fields

The Field Collection Tab formatter module, written by Lee Rowlands of Australia’s PreviousNext gives us a nifty output for field collections in a tab-set. I can think of at least one place I’d personally like to use this and apparently I’m not the only one since there are already more than 50 sites using the module, barely a month after its release… a pretty solid start! Of course it requires the Field Collection module.

Status: There is a stable release available for Drupal 7.

Field formatter conditions Flipcard - nodes made into flashcards

Categories: Content, Content Display, Media

The Flipcard module, by Hugh, helps you create node-based flashcards where the node title is the “answer”. Users can sort based on custom taxonomies and can record whether they knew the answer to each card, so questions they are still having trouble with will show up more often. I used to cut up index cards to make actual paper flashcards to study for exams and more recently, but still some years ago, made them to study on an old Palm device, with great success, so I know the usefulness of flashcarding, but this even offers jPlayer support to use automatically-played audio recordings for the questions. Very cool! You can see the demo site, where you can also learn a bit of Thai, to get an idea of the usefulness this module already offers. There are always new things I’m trying to memorize, so I’ll be a likely candidate to give this module a try. The only thing I’m really hoping it will offer (that I didn’t notice in the demo) is the ability to use the “question” as the “answer” (i.e. to practice both directions), but I doubt that would be too hard to manage. The demo site already offers the option to “view words” (clicking on each word in English takes you to the audio recording of its equivalent in Thai, whereas in practice mode, you hear the word and check to see if you know what it means). Personally, I think the current mode is better for the initial phase of passive comprehension, but for learning to actively speak a language, it’s better to work from “mother tongue” to “other tongue”. So ideally, the module should support working in both directions and keeping track of your answers in both directions, too, but maybe all this is already in the development roadmap.

Status: There is a development release available for Drupal 7.

Invites

Categories: Community, User Management

The Invites module, developed by Raz Konforti of Linnovate, allows you and/or your site members to invite new members to your site and includes an OG module to provide for inviting people to a particular group; it provides for the creation of a custom, fieldable Invites type and for custom invitation emails with Rules integration, among other interesting features. Google has proven the power of viral campaigns to build a community around a new product with “invitation-only” access… so this could definitely be a good idea for your community site, too. Note: Administrators of OG sites might, alternatively, wish to use the OG Invite People module, which eliminates the registration process for invitees.

Status: There is an alpha release available for Drupal 7.

jQuery selectBox

Categories: Content Display, JavaScript Utilities, Theme Enhancements

Styles of SELECT element provided by the jQuery selectBox module.

The jQuery selectBox module, produced by Henry Umansky, provides multiple Javascript-enhanced styling options for SELECT elements. It integrates Cory LaViska's selectBoxjQuery library plugin, so like most such integration modules, it requires the Libraries module as well as the afore-mentioned and eponymous selectBox jQuery library installed in sites/all/libraries, according to the nicely detailed directions on the project page. The selectBox demo is really freakin' cool! There are various options for slick effects in addition to the various ways of building a SELECT box for improved UX.

Status: There is a beta release available for Drupal 7.

JS Watchdog

Categories: Developer, Utility

The JS Watchdog module, coded by Bevan Rudge provides Drupal.watchdog() in Javascript to log errors to the database. It’s really mostly a developer tool for people working on Javascript code, but this should be useful. It provides a number of nice features, though, so if you are working on JS code, you might want to take a look at this. Unfortunately, there isn’t a Drupal 7 version (yet), but according to the project page, creating one should be “trivial”, so hopefully we’ll have a nice D7 version ready for use before long, too.

Status: There is a beta release available for Drupal 6.

Leaflet Widget for Geofield Simple geometries supported by the Leaflet Widget

Categories: Fields, Location

The Leaflet Widget for Geofield module, developed by Tom Nightingale of Affinity Bridge, a Geofield widget that provides a Leaflet map and uses the Leaflet widget plugin to work with geometries, making it possible to, for example, mark up web-based maps with the outline of a real estate propery or city district. Of course it requires Libraries and configuring any kind of mapping is never as simple as just activating a module, so be sure to check the project page for more details.

Status: There is a beta release available for Drupal 7.

Logo Block

Categories: Administration

The Logo Block module, authored by Kristofer Tengström, provides flexibility in how you display your site logo, including applying an image style, and provides a block you can place anywhere, thus circumventing the limitations of the Drupal logo configuration.

Status: There is a stable release available for Drupal 7.

MC Hammer

Categories: Content, Content Display, Mail

The MC Hammer module, written by Nils destoop of Wunderkraut, provides tools and templates for sending sophisticated email newsletters from your Drupal site. There is only a development release, so far, but it already has an impressive feature-set, so if you plan want to produce a newsletter, this could be a great tool to look at, and with Wunderkraut behind this, we can bet this will develop nicely.

Status: There is a development release available for Drupal 7.

Nice Date

Categories: Content Display, Theme Enhancements

This is the kind of date display provided by Nice Date

The Nice Date module, written by Nicholas Thompson of Turner Broadcasting Systems, provides a nicely formatted date to display the publication date of nodes, e.g. blog posts, and comments. It uses a CSS Sprite with all the months, days and years to generate a 41x40px block with the date in it.

Status: There is a stable release available for Drupal 7.

Node Display Field No term pages

Categories: Content, Content Display, Taxonomy

The No term pages module, written by Gaël Gosset of Insite, provides an extra option for a vocabulary which blocks the terms in that vocabulary from ever being displayed as a page. With all the different ways that terms are used in a typical Drupal site, not wanting term pages for some vocabularies is a pretty common use case, so now you know—there’s a module for that! This functionality should probably be in “core”.

Status: There is a stable release available for Drupal 7.

OG Invite People

Categories: Community, User Access & Authentication

The OG Invite People module, developed by Aleš Rebec, has some features in common with the previously-mentioned Invites module, but it’s only for Organic Groups. One interesting feature of this module is the complete elimination of the registration process. A user entity is during the invitation process and the invitees receive a one-time login link in their invitation emails.

Status: There is a development release available for Drupal 7.

Panels Content Cache

Categories: Performance and Scalability

The Panels Content Cache module, developed by Graham Taylor of Capgemini, provides a content-aware cache plugin which supports caching Panels and other Ctools displays, until their content changes. Isn’t that how caching should work? Caching strategies and the technologies that support them are not trivial and there are a number of options, but this module looks promising for those who are working with Panels content.

Status: There are dev releases available for both Drupal 6 and Drupal 7.

Permissions Grid The simple permissions UI provided by the Permission grid module

Categories: User Access & Authentication

Links to the Permissions grid on the general permissions page.

The Permissions Grid module, by Joachim Noreiko, provides a per-role grid of permissions for modules which declare structured permissions. These permissions can be viewed, on a separate page for each role, with the entity types in rows and permission verbs in columns. Of course it doesn’t eliminate the normal sea of permissions… but for the basics related to your site content, this helps simplify things. This is very nicely done and I’ll be sure to use it.

Status: There is a stable release available for Drupal 7.

Retina Images

Categories: Mobile, Theme Enhancements, Utility

The Retina Images module, contributed by Michael Prasuhn, provides the option for core image styles to output a high resolution version of images for high DPI or retina displays. It can be used to return high resolution images for all devices. There can be very little difference in file-size between a low-resolution, high-quality image and a high-resolution, low-quality image. But the high-resolution image will work better on high-resolution devices and still look fine when scaled down for display on a normal-resolution monitor. This module already has a strong user-base, considering its recent release and the developer seems to be doing a great job managing the issues, so if improving mobile UX is important for your site, this module might well be worth considering.

Status: There is a beta release available for Drupal 7.

Rich Snippets

Categories: RDF, Search, Theme Enhancements

The Rich Snippets module, developed by Chris Pliakas of Acquia, enhances the search results to provide nicer “snippets” of content returned in search results, much like those displayed by major search engines. Instead of just displaying the teaser or first characters of an article, it displays that with ellipses and the user’s search term within the context of the content. Very nice! Caveat: Be sure to read the “Usage” and “Gotchas” on the project page. Configuring a perfect site search is a non-trivial task, but this definitely looks helpful and works with core search and Apache Solr.

Status: There is a development release available for Drupal 7.

Role memory limit

Categories: Administration, Developer, Performance and Scalability

The simple configuration for the role_memory_limit module.

The Role memory limit module, developed by Kevin Yousef, is a small module which allows you to configure separate PHP memory limits, per role. For normal users, the memory limit could be set to 128MB, while the admin interface, which can require much more memory, can be allocated what it needs. Of course you need access to change the memory limit in your php.ini file. Since the memory limit is set per-user and this often has to be higher than normal for a Drupal site, just because of the greater needs for the site administrator, logical configuration with this module could, in theory, dramatically improve the number of concurrent users your site can handle. I’ll certainly be giving this a try.

Status: There is a stable release available for Drupal 7.

Scoville

Categories: Community, Content, Statistics

The Scoville module, produced by Garrett Albright of PINGV, which gets its name from the “hotness” scale used for describing a variety of chili pepper’s level of spiciness, helps you easily display a block or page of your site’s “hottest” content. For more complicated use cases, you’ll probably want to use the Radioactivity module, instead, but since configuring it can be a bit of a chore, people who just want to get a basic “hot content” block into their site might want to give this one a try.

Status: There is a development release available for Drupal 7.

Search API Taxonomy

Categories: Search

The Search API Taxonomy module, developed by Steven Jones of ComputerMinds, adds some extra features for integrating taxonomy into the Search API, including indexing the taxonomy term parents and display of a facet (using Facet API) for top-level terms. It’s still in development, so additional features could well be added, but this already looks very useful.

Status: There is a development release available for Drupal 7.

Taxonomy Freetag Detection

Categories: Content, Taxonomy

The Taxonomy Freetag Detection module, by Leigh Morresi, extends Term reference fields of type Autocomplete term widget (free tagging) with an option to add a button to scan other fields (e.g. your node “body”) to and add words which it finds which match existing terms in that vocabulary. Of course you might need to eliminate any terms it adds, e.g. a word in your document might match an existing term, but have the wrong context for the meaning of the term (e.g. “Features” is a taxonomy term here on the Cocomore Drupal site, but if I simply talk about the features of a module, I’m not going to tag the article with that term). This looks pretty simple and very useful, especially if your site uses the standard autocomplete “tagging” widget, which is the only widget this module complements. See the project page for configuration tips.

Status: There is an alpha release available for Drupal 7.

Twitter Profile The Twitter Profile module in demo use.

Categories: Community, Third-party Integration

The Twitter Profile module, created by Rishikesh Bhatkar, provides a nice, very configurable, Twitter profile block which can show any or all of: your Twitter profile info, counts for Tweets, Favorites, Listed, Followers, and Following, and avatars for your Followers and Following, with a configurable size and number of avatars displayed. It also includes some theming presets for the block. This is much more configurable than many of the other Twitter blocks. What would be nice for community sites would be allowing each user to display their Twitter profile on their user profile page, but it looks like the block only supports one Twitter account.

Status: There is a stable release available for Drupal 7.

User Pic Kit

Categories: Media, User Management

The User Pic Kit module, written by Daniel Phin, allows your site’s users to choose a user image (avatar) to represent their account, from any of a number of providers, while still supporting a Drupal core image upload option. Each user can choose which provider they wish to use. The included third-party image host providers include Gravatar (which requires the Gravatar integration module) and Robohash, but with the add-on User Pic Kit Extras! module, you can add Twitter, Facebook, and other avatar hosts. You can also locally cache the remote pictures (such as Gravatar) and use Drupal image styles on the downloaded pictures! There is even a documented API which allows you to implement other image hosts. This looks like fun and can certainly improve the user experience for configuring a new user account profile for users who already have an established online persona.

Status: There is an alpha release available for Drupal 7.

User Search to People Administration

Categories: Administration, Search, Site Navigation, User Management

The User Search to People Administration module, developed by Benjamin Melançon of Agaric, removes the user search functionality from your site (for normal users) and moves it into /admin/people/search (a tab on the /admin/people). Most sites probably have no need for visitors to search user accounts, but administrators can still find such a search useful. By moving the user search tab into the “admin realm”, this also opens up the option of allowing people to view user profiles without also providing the “search users” functionality (since, by default in Drupal 7, if you want to block access to /user/search for a particular role, you need to leave the permission to “access user profiles” unchecked. So in addition to moving the user search functionality into a tab where it’s convenient for site administrators, it also breaks this unnecessary relationship between access to user profiles and to using the user search feature. This looks useful for many common use cases, perhaps even more ideal for most sites than the Drupal default.

Status: There is a stable release available for Drupal 7.

View mode per Role

Categories: Content Display

The View mode per Role module, developed by Edouard Cunibil allows site administrators to set a view mode for content depending on the user role, with configuration in the content type edit form. This can be useful when you want your content to be displayed differently, to different user roles, but do note that this is not a content access module, so if you must prevent certain roles from being able to gain any kind of access to certain fields, you should consider the Field Permissions module.

Status: There is an alpha release available for Drupal 7.

Watchdog digest

Categories: Administration, Statistics, Utility

Configuration for the Watchdog digest module.The Watchdog digest module, created by Edgár Prunk-Éger, sends watchdog entries by email in a digested format, so you don’t get a separate email for each entry (of a type where you might want to send a message to a site administrator). This looks very useful, but the current project page is very lacking in detail and there is no link to the configuration, so it took looking at the code to figure out where to adjust settings for this. It adds a fieldset to the “Logging and errors” configuration page (/admin/config/development/logging), where you can configure the number of messages per e-mail, the e-mail address(es), and the severity level threshold, which can be set anywhere between “debug (all)” and “emergency”, although probably for anything that extreme you might want a Rules-triggered action to immediately email the site administrator.

Status: There is an alpha release available for Drupal 7.

WYSIWYG Configuration with TinyMCE and Shortcodes

Categories: Features Package, Third-party Integration

The WYSIWYG Configuration with TinyMCE and Shortcodes module, coded by Jurriaan Roelofs, is a Features-generated module which helps streamline a particular Wysiwyg configuration which is rather sophisticated. If it happens that you want all the features included here, it could be a nice way to get it all configured. But if you want something simpler or wish to use a different editor, etc, this is probably not for you. It includes Media integration and all kinds of things that a lot of sites won’t use, but which are notoriously tricky and time-consuming to work out, so if this kind of rich configuration is what you want, then all you need to do is download all the dependencies (see the project page, there are a ton!) and then simply enable this module to have it automatically enable and configure all its dependencies. This looks very useful if it happens to be exactly what you need; if not, it could be also be useful as a quick route to experimenting with a lot of modules and features that you might want to use.

Status: There is a beta release available for Drupal 7.

Oct 11 2012
Oct 11
Modules of the month story banner illustration.

Once again, I’ve surveyed the looong list of modules from the past month (September 2012). This article highlights and summarizes the features of some I found most notable. As usual, the selection and any opinions are my own and the order of appearance here is strictly alphabetical. Category terms are links to Drupal.org projects categorized with the terms. I’ve added terms for modules whose description lacked appropriate categories or might have been missing categories I thought were appropriate.

This month, while we didn’t get any new novelty modules which require bad judgment, there was one which I thought was funny and which otherwise serves no real purpose, other than perhaps to provide an example of object oriented PHP design with interfaces, etc: the module, written by Jess of University of Wisconsin-Madison and Drupal.org’s reigning IRC queen. Its very short (non)description is sure to make you smile:

Q: You’re a vegetarian; why do you get to have the blt project namespace?

A: The BLT is actually a base implementation; a properly architected interface does not mandate bacon.

Now let’s get on to the serious modules…

*/ Apache Solr Exclude Node

Categories: Search

The module, by Jens Beltofte of Propeople, helps to exclude individual nodes from Apache Solr, which can be useful when you have indexed a specific content type, and want to exclude a few nodes of that type. A checkbox, “Exclude from Apache Solr” is added to the node edit forms for selected content types. It requires Apache Solr Search.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Apache Solr Field Collection

Categories: Search

The module, created by David Rothstein of Advomatic, allows content stored within a Field Collection to be indexed by Apache Solr search as part of the entity that the field collection is attached to. Enabling the Facet API module allows fields attached to the field collection to be available to add as search facets.

Status: There is an alpha release available for Drupal 7.

Architecture

The module, by Sheldon Rampton of DrupalSquad, provides reports documenting how your Drupal site is architected. These reports include “Site Entities”, which lists all content types, taxonomies, and other Drupal entities that have been defined for your website with a list of all fields for each fieldable entity; “Site Taxonomies” lists all taxonomies and their associated terms; and “Site Variables” lists all variables and their values. The purpose of this module is to provide some easy-to-read documentation of how your site is put together.

It looks like there are a number of other interesting features in the development roadmap, but this already looks very useful for documenting the way a complex Drupal project is put together.

Status: There is a development release available for Drupal 7.

Attribution

The module, written by Marcus Deglos of Techito, adds configurable attribution text at the bottom of your site content’s body field, so that if it’s scraped, attribution will normally be included.

Status: There is a development release available for Drupal 7.

Better 404

The module, contributed by Yvan Marques, is based on an article from A List Apart. It aims to provide more useful information when a visitor reaches your 404 page.

Status: There is a stable release available for Drupal 6. This looks very promising, so I’m hopeful there will also be a Drupal 7 release and that perhaps functionality like this could be part of Drupal 8 “core”.

Commons Like

The module, by Ezra Barnett Gildesgame of Acquia, allows users to “like” content and comments using the Commons “Like” widget and the Rate module and VotingAPI and has a stated goal to be expanded to be useful on sites that are not on the Drupal Commons distribution.

Status: There is a development release available for Drupal 7.

Commons Radioactivity

The module, also contributed by Acquia’s Ezra Barnett Gildesgame provides integration with the Radioactivity module to help identify the most active content and includes Views displays to accelerate the site-building process.

Status: There is a development release available for Drupal 7.

Conditional Flags

The module, coded by Sebastian of Taller, provides additional API features for the Flag module, for custom conditions between flags, so that logically, if, when one flag is set, another flag should be unset, this can be done automatically. There are also plans to build a user interface for site builders.

Status: There is a beta release available for Drupal 7.

Content Tab

The module, coded by Ashish Thakur of Srijan Technologies, India, makes it easy for site administrators or other users with appropriate permissions to view the content written by a particular user; it provides a page with sub-tabs for each content type created by a given user and a tab on each user page which lists all content written by that user and eliminates the need to build up this kind of functionality with Views. It also provides a admin UI to configure various display options, among other features lacking in the core “Tracker” module.

Status: There is a stable release available for Drupal 7.

Context Get

The module, created by Peter Vanhee of Marzee Labs, provides a Context condition plugin for $_GET arguments. It allows you to activate contexts with arguments like local?context=home or local?context=pro and was created to fill a feature request for Context.

Status: There is a stable release available for Drupal 7.

Deploy Services Client

The module, by David Rothstein of Advomatic, provides a Services client which communicates with Deployment endpoints and helps perform other operations on the content which the Deployment module does not directly support such as deleting or unpublishing content on an endpoint. Note that this is an API for developers only; there is no user interface.

Status: There is a beta release available for Drupal 7.

Drush Permissions

Categories: Drush

The module, created by Klaas Van Waesberghe of dotProjects, enables Drupal site administrators to easily query user permissions from the command line. It can display reports of all permissions with module and role filters, identify if a user has a given permission, or list all roles a permission is assigned to. It is not actually a module (but I’ve included it here since, like Drush, it’s on Drupal.org as a module and looks pretty darn useful). It should not be installed as a module, but as a Drush plugin, i.e. use drush dl drush_permissions to install, but from outside a Drupal root directory.

Status: There is a development release available for Drupal 7.

eKaay - QR Code Login

The module, written by Daniel Wehner of erdfisch, allows users of a Drupal website to log into their accounts by scanning a QR code on the PC screen with a smartphone, thus streamlining the login process for users on devices where entering username and password tends to be less convenient.

Status: There is a development release available for Drupal 7.

Facetapi Multiselect

Categories: Search

The module, another contribution from David Rothstein, provides a multiselect widget plugin for the Facet API module which allows faceted searches to use a multiple select dropdown for drilling down into the search results. It’s primarily designed to help integrate faceted search with JavaScript plugins such as the jQuery UI MultiSelect Widget (where this module has primarily been tested), jQuery UI Multiselect, and Chosen.

Status: There is a beta release available for Drupal 7.

Field Orbit

The module, coded by Elliott Foster of Four Kitchens, provides an Orbit slideshow display mode for image fields and field collections with images and much of it is a Drupal 7 port of the Field Slideshow module.

Status: There is a stable release available for Drupal 7.

Field UI permissions

The module is yet another coded by David Rothstein. It provides independent permissions for managing fields attached to each type of entity so that you could, for example, give an “administrator” role permissions like “administer users” and “administer taxonomy” but reserve the rights to modify the underlying field structure for a “developer” role. This could certainly be handy for complex use cases.

Status: There is a beta release available for Drupal 7.

Godwin's Law

The module, by Tobby Hagler of Phase2 Technology, is helpful for managing online forums and allows you to automatically moderate threads and close the discussion when certain keywords are found. By default, the module is set to close comments when Godwin’s law is invoked, but other keywords can also be used as triggers.

Status: There is a stable release available for Drupal 7.

Hide Site

The module, developed by Barry Fisher of Real Life Design, provides a way to practically hide a particular version of a site from search engines even though it’s on a publicly-available development server without needing to patch your .htaccess or robots.txt files. Getting into the particulars of how it works is beyond the scope of this article, but it’s fairly simple to configure and should help keep a site out of the public eye until you are ready to officially release it.

Status: There is a beta release available for Drupal 7.

highlight js

The module, contributed by Juned Kazi of ICF International, integrates the highlight.js library to provide language-appropriate syntax highlighting for code examples on your site. It automatically detects the language, but you can also set the language for any block of code to ensure correct behavior. Of course it depends on the Libraries API highlight.js library, installed per the directions in this module’s README.txt file.

Status: There is a development release available for Drupal 7.

Image Field Cross Slide Slideshow

The module, created by David Whitchurch-Bennett of Drupology allows images uploaded into an image field to be displayed with the jQuery Cross Slide plugin as a display formatter for the image field within the “Manage Display” settings of your content type.

Status: There is a development release available for Drupal 7.

Image link to preset

The module, written by Gabor Szanto extends on the two core-provided options for setting link for an image field (i.e. “link to content” and “link to file”) to also allow you to link to any image preset for the image. It requires the Field formatter settings API module and definitely looks useful for many use cases involving sites with images.

Status: There is a development release available for Drupal 7.

Image or Video field formatter

The module, developed by Chris Cohen of Tigerfish Interactive, adds a field formatter for a media field that can either be an image or a video and allows for separate thumbnails depending on whether an image or a video is displayed, e.g. so that you can show a “play icon” over thumbnails for video. The shadowbox Javascript library is used to display the full image or video when the thumbnail is clicked. The media module is normally used in conjunction with this, but other configurations are possible. Setting this up is non-trivial and the full details from the module description and README file should be consulted.

Status: There is a stable release available for Drupal 7.

Live Feedback

The module, written by J. Renée Beach of Acquia, is similar to Google+’s feedback system; it leverages the html2canvas library to allow users to quickly report issues to site maintainers from within the context of the page where the issue occurred. By making it easier for users to report issues with all the detail needed for developers to replicate and resolve them, this module helps ensure that issues do get reported and resolved.

Status: There is a development release available for Drupal 7 and given that Acquia is behind this work, we can hope that Drupal 8 might actually include such functionality in core.

Masonry

Masonry is a dynamic grid layout plugin for jQuery. Think of it as the flip-side of CSS floats. Whereas floating arranges elements horizontally then vertically, Masonry arranges elements vertically, positioning each element in the next open spot in the grid. The result minimizes vertical gaps between elements of varying height, just like a mason fitting stones in a wall.

The module, written by Peter Anderson of PackWeb, makes the jQuery Masonry plugin available to Drupal as a library. It contains sub-modules for integrating with fields and Views; its field formatter allows you to display multi-value fields in a Masonry grid layout and integrates with existing formatters so existing formatter-specific options, e.g. Colorbox settings, are retained. It currently supports the field types: image, “long text” and “long text with summary”, and like most modules which integrate a Javascript library, it relies on the Libraries module. The Field formatter settings module is also required for the Masonry field formatter and of course Views is required for Masonry views. Add the Masonry javascript and configure according to the directions on the project page.

Status: There is a development release available for Drupal 7.

Memory profiler

The module, written by Tim Hilliard of Acquia, logs peak PHP memory usage to the Drupal watchdog and is light-weight enough it shouldn’t add to the memory errors you would be trying to resolve when you activate it. It can be used in a production environment, where enabling Devel would not be appropriate. Knowing this is available when we need it will make all Drupal developers sleep easier.

Status: There is a stable release available for Drupal 7.

Mobile Switch Block

The module, coded by Siegfried Neumann, extends the Mobile Switch module with a theme switch block with links to manually switch between your mobile or desktop theme and is compatible with Mobile jQuery. Of course it requires Mobile Switch (version 7.x-1.4+) and Respond.js is recommended. The block could be especially useful for people testing the site, but can also provide better options for users of mobile devices who might, for whatever reason, prefer to use your site’s desktop theme rather than the automatically-selected mobile theme.

Status: There is a beta release available for Drupal 7.

Mozilla Persona

The module, coded by Daniel Pepin of Digital Bungalow, adds Mozilla Persona functionality to your site so users with a Persona account can authenticate without need for a site-specific password; you can still require registration. It should nicely enhance the usability of most sites which require login. It depends on the Session API module.

Status: There is a beta release available for Drupal 7.

Panels Ajax Tabs

The module, developed by Patrick Hayes of HighWire Press / Stanford University, provides the ability to have a tabbed panel-pane that displays mini-panels within it and allows you to pass context from the “master” panel to the mini-panels via AJAX.

Status: There is a development release available for Drupal 7.

Password Field

Categories: Fields

The module, created by James Sinclair of OPC IT, provides for creating fields that store passwords, stored in encrypted format and (by default) will not display them on the website. This is useful, for example, if you are creating a website that integrates with other services and you would like users to be able to store their password more securely than using a text field, so could certainly be useful in unusual use cases. That said, the module description also bears a strong reminder not to use this module if you have any alternative.

Status: There is a beta release available for Drupal 7.

Passwordless This is still an experimental module, and using it on production sites is not recommended.

The module, written by Antonio Savorelli of Communikitchen, provides a replacement for the standard Drupal login form to allow logging in without using a password. Instead, every login is done via a “one-time login” link, as if the user had forgotten their password. This could be useful on sites where users are not expected to log in very often, but there are still a few things about the way this works that makes me nervous; e.g., currently you need to confirm a change of email address at the new address, but not at the old address, which would make it simple for someone who jumps on your computer, while you are logged in and your back is turned, to take over your (Drupal site) account. That said, as it’s still considered experimental and not for use on production sites, we can hope such issues are addressed by the time this module is released as “stable”. Once that’s true, I can certainly imagine using this for some sites.

Status: There is a development release available for Drupal 7.

PDF Archive

The module, authored by Brian Gilbert of Realityloop, allows you to generate PDF archives of any entity; generation is triggered by Rules actions and you can configure the entity view mode and role of the simulated user for each rule. It includes a Feature as an example for configuration and otherwise requires the Libraries API module, with TCPDF library installed, and the Rules module.

Status: There is an RC release available for Drupal 7.

Permissions per Webform

The module, written by Daniel Imhoff of UW-Platteville, lets you set standard (normally global) Webform permissions for each individual Webform, e.g. “Access webform results”, “Edit all webform submissions”, “Delete all webform submissions”, “Access own webform submissions ”, etc. It adds a “Permission settings” fieldset tab to each Webform node.

Status: There is a development release available for Drupal 7.

PixGather

The module, developed by Mike Kadin of Merlin Education, is a Drupal Module and PhoneGap application that allows users to easily upload photos to your Drupal site. It was developed so that guests at a wedding could share their pictures, but it’s suitable for a variety of use cases. Currently, the mobile app part of this is only for Android, but an iOS version is planned.

Status: There is an alpha release available for Drupal 7.

Plugin tools

The module, written by Chris Skene of PreviousNext, allows developers to browse the various plugins provided by different modules, information normally hidden in the code. The Drupal 7 versions supports Chaos Tools plugins, but it’s possible that a Drupal 8 version will work with “core” plugins. See the project page for more details, but this definitely looks useful for developers working with cTools.

Status: There is a beta release available for Drupal 7.

Render As

The module, by Stuart Clark of Realityloop, allows you to see page elements as they will be displayed to various users or roles without needing to switch users. Using it is not easy to succinctly summarize, so you should check the project page for directions, but this definitely looks like a useful project for developers and site builders.

Status: There is a beta release available for Drupal 7.

Resumable Download

The module, authored by Sina Salek adds support in Drupal for resuming incomplete downloads, which could be very useful for users on slower connections or for larger downloads and provides a number of useful configuration options.

Status: There are beta releases available for both Drupal 6 and Drupal 7.

Session Cache API If you are not a Drupal programmer, then you may stop reading now. Just enable this module if another module tells you to.

The module, written by Rik de Boer of flink, is a simple two-function API for programmers to cache and retrieve pieces of user/session -specific information, and works well even with anonymous users in a cached environment. It is not for caching large amounts of information or content, nor should it be used for anything sensitive, but definitely looks interesting as a replacement for the $_SESSION variable, which may not an option with Varnish or similar caching engines. Developers who find this short summary of interest should definitely read the directions on the project page because using this is not exactly trivial.

Status: There is an alpha release available for Drupal 7.

Session cookie lifetime

The module, created by Kornel Lugosi of Pronovix, provides an admin interface for setting the lifetime of the session cookie. This could definitely be useful for sites where convenience is more important than absolute security.

Status: There is a stable release available for Drupal 7.

StatsD

The module, developed by Owen Loy of Acquia, provides Drupal integration for StatsD and is intended for sites that have an existing StatsD / Graphite setup. It’s preconfigured to send statistics for Watchdog entries, user logins, page views, and active user sessions, but developers can also configure it to send custom statistics. It definitely looks useful.

Status: There are beta releases available for both Drupal 6 and Drupal 7.

Suggested Modules

The module, written by Kevin Quillen of Inclind allows module maintainers to enter a “suggests” property to their module info file, with a link to a relevant module project page. This is a step down from “required” modules; it simply suggests other modules one might normally wish to use in conjunction with your module. Of course, for this to work, modules both need to have “suggests” entries on their .info pages, and users need to have this module installed and enabled. I think this is a great idea and could well be an improvement in “core”; otherwise, until it’s widely used by both site builders and coders, it won’t be very useful. Actually, combining this with Module supports (which still needs a Drupal 7 release) is a more likely future development; in any case it would be helpful if we got such functionality into Drupal core.

Status: There is a stable release available for Drupal 7.

System Status AJAX

The module, contributed by Chris Pliakas of Acquia, a small module which loads the system status check via AJAX so that the admin/config page is rendered more quickly, even when some of the status checks are delayed. Nice! I’m hoping this functionality is going into the System module in Drupal 8; in the meantime, this should definitely improve the user experience for Drupal 7 site administrators.

Status: There is a stable release available for Drupal 7.

Textbook

The module, coded by the prolific Bryan Ollendyke, of Penn State University as part of the ELMS Initiative, provides Features which include CSS styles, WYSIWYG settings, and CSS3 page templates to help any theme provide consistent textbook styling for the production of online course materials. Users don’t need to be expert in CSS / HTML, but even experts should find this helps streamline their development. If you are producing an online learning site, this module, along with many others by this fine contributor, should be very useful.

Status: There is a beta release available for Drupal 7.

Timezone Picker The timezone picker module from Nate Haug.

The module, written by Nathan Haug of Lullabot, provides a JavaScript-based timezone picker to replace the default Drupal timezone list with a clickable world map to select a user’s timezone and Geolocation support for compatible browsers, so setting a timezone is greatly simplified. Enabling it replaces the default timezone list on the site’s “Regional settings” page and user profile pages. All Javascript is included; no libraries need to be downloaded and quicksketch also wrote this to be mobile-friendly. Very cool!

Status: There is a stable release available for Drupal 7.

Typo The Typo module’s user interface

The module, developed by Roman Arkharov, provides a simple way for site visitors to report typographical errors in your site content; all they need to do is select text which includes a typo and press Ctrl + Enter to automatically notify the site administrator. It includes preset Rules events you can use, as well as Views for administrators to see a list of reported typos, among other useful integrations. This could definitely be worth checking out.

Status: There is a development release available for Drupal 7.

Views fields combine

The module, contributed by Stefan Borchert of undpaul, allows you to combine the output of Views fields, separated by any desired custom text. Normally you would do this with "Global: Custom text", however if one field is optional, your output would include an unwanted separator. Once this module is enabled, you’ll have access to a new field type, "Global: Combined fields", where you can select the fields you would like to combine.

Development on Views fields combine is sponsored by undpaul.

Status: There is a stable release available for Drupal 7.

Weather block

The module, developed by Antti Alamäki of Soprano Brain Alliance, provides blocks and pages in which you can display forecasts from Yahoo Weather, World Weather Online, or weather.com and may include additional future service integrations. Drupal 7 needed more support for weather forecast integration, so it’s good to see this and I’ll certainly be giving this a try on sites where I might want a Weather block.

Status: There is a stable release available for Drupal 7.

Oct 10 2012
Oct 10
Modules of the month story banner illustration.

Once again, I’ve surveyed the looong list of modules from the past month (September 2012). This article highlights and summarizes the features of some I found most notable. As usual, the selection and any opinions are my own and the order of appearance here is strictly alphabetical. Category terms are links to Drupal.org projects categorized with the terms. I’ve added terms for modules whose description lacked appropriate categories or might have been missing categories I thought were appropriate.

This month, while we didn’t get any new novelty modules which require bad judgment, there was one which I thought was funny and which otherwise serves no real purpose, other than perhaps to provide an example of object oriented PHP design with interfaces, etc: the BLT module, written by Jess of University of Wisconsin-Madison and Drupal.org’s reigning IRC queen. Its very short (non)description is sure to make you smile:

Q: You’re a vegetarian; why do you get to have the blt project namespace?

A: The BLT is actually a base implementation; a properly architected interface does not mandate bacon.

Now let’s get on to the serious modules…

Apache Solr Exclude Node

Categories: Search

The Apache Solr Exclude Node module, by Jens Beltofte of Propeople, helps to exclude individual nodes from Apache Solr, which can be useful when you have indexed a specific content type, and want to exclude a few nodes of that type. A checkbox, “Exclude from Apache Solr” is added to the node edit forms for selected content types. It requires Apache Solr Search.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Apache Solr Field Collection Architecture

Categories: Administration, Developer, Project management, Utility

The Architecture module, by Sheldon Rampton of DrupalSquad, provides reports documenting how your Drupal site is architected. These reports include “Site Entities”, which lists all content types, taxonomies, and other Drupal entities that have been defined for your website with a list of all fields for each fieldable entity; “Site Taxonomies” lists all taxonomies and their associated terms; and “Site Variables” lists all variables and their values. The purpose of this module is to provide some easy-to-read documentation of how your site is put together.

It looks like there are a number of other interesting features in the development roadmap, but this already looks very useful for documenting the way a complex Drupal project is put together.

Status: There is a development release available for Drupal 7.

Attribution

Categories: Content, SEO

The Attribution module, written by Marcus Deglos of Techito, adds configurable attribution text at the bottom of your site content’s body field, so that if it’s scraped, attribution will normally be included.

Status: There is a development release available for Drupal 7.

Better 404

Categories: Site Navigation

The Better 404 module, contributed by Yvan Marques, is based on an article from A List Apart. It aims to provide more useful information when a visitor reaches your 404 page.

Status: There is a stable release available for Drupal 6. This looks very promising, so I’m hopeful there will also be a Drupal 7 release and that perhaps functionality like this could be part of Drupal 8 “core”.

Commons Like

Categories: Community, Content, Evaluation/Rating

The Commons Like module, by Ezra Barnett Gildesgame of Acquia, allows users to “like” content and comments using the Commons “Like” widget and the Rate module and VotingAPI and has a stated goal to be expanded to be useful on sites that are not on the Drupal Commons distribution.

Status: There is a development release available for Drupal 7.

Commons Radioactivity Conditional Flags

Categories: Content, Evaluation/Rating

The Conditional Flags module, coded by Sebastian of Taller, provides additional API features for the Flag module, for custom conditions between flags, so that logically, if, when one flag is set, another flag should be unset, this can be done automatically. There are also plans to build a user interface for site builders.

Status: There is a beta release available for Drupal 7.

Content Tab

Categories: Administration, Content, Utility

The Content Tab module, coded by Ashish Thakur of Srijan Technologies, India, makes it easy for site administrators or other users with appropriate permissions to view the content written by a particular user; it provides a page with sub-tabs for each content type created by a given user and a tab on each user page which lists all content written by that user and eliminates the need to build up this kind of functionality with Views. It also provides a admin UI to configure various display options, among other features lacking in the core “Tracker” module.

Status: There is a stable release available for Drupal 7.

Context Get Deploy Services Client

Categories: Developer, Import/Export, Utility

The Deploy Services Client module, by David Rothstein of Advomatic, provides a Services client which communicates with Deployment endpoints and helps perform other operations on the content which the Deployment module does not directly support such as deleting or unpublishing content on an endpoint. Note that this is an API for developers only; there is no user interface.

Status: There is a beta release available for Drupal 7.

Drush Permissions

Categories: Drush

The Drush Permissions module, created by Klaas Van Waesberghe of dotProjects, enables Drupal site administrators to easily query user permissions from the command line. It can display reports of all permissions with module and role filters, identify if a user has a given permission, or list all roles a permission is assigned to. It is not actually a module (but I’ve included it here since, like Drush, it’s on Drupal.org as a module and looks pretty darn useful). It should not be installed as a module, but as a Drush plugin, i.e. use drush dl drush_permissions to install, but from outside a Drupal root directory.

Status: There is a development release available for Drupal 7.

eKaay - QR Code Login

Categories: Mobile, User Access & Authentication

The eKaay - QR Code Login module, written by Daniel Wehner of erdfisch, allows users of a Drupal website to log into their accounts by scanning a QR code on the PC screen with a smartphone, thus streamlining the login process for users on devices where entering username and password tends to be less convenient.

Status: There is a development release available for Drupal 7.

Facetapi Multiselect

Categories: Search

The Facetapi Multiselect module, another contribution from David Rothstein, provides a multiselect widget plugin for the Facet API module which allows faceted searches to use a multiple select dropdown for drilling down into the search results. It’s primarily designed to help integrate faceted search with JavaScript plugins such as the jQuery UI MultiSelect Widget (where this module has primarily been tested), jQuery UI Multiselect, and Chosen.

Status: There is a beta release available for Drupal 7.

Field Orbit Field UI permissions

Categories: Administration, Fields, User Access & Authentication

The Field UI permissions module is yet another coded by David Rothstein. It provides independent permissions for managing fields attached to each type of entity so that you could, for example, give an “administrator” role permissions like “administer users” and “administer taxonomy” but reserve the rights to modify the underlying field structure for a “developer” role. This could certainly be handy for complex use cases.

Status: There is a beta release available for Drupal 7.

Godwin's Law

Categories: Administration, Community, Content

The Godwin's Law module, by Tobby Hagler of Phase2 Technology, is helpful for managing online forums and allows you to automatically moderate threads and close the discussion when certain keywords are found. By default, the module is set to close comments when Godwin’s law is invoked, but other keywords can also be used as triggers.

Status: There is a stable release available for Drupal 7.

Hide Site

Categories: Administration, Developer, Utility

The Hide Site module, developed by Barry Fisher of Real Life Design, provides a way to practically hide a particular version of a site from search engines even though it’s on a publicly-available development server without needing to patch your .htaccess or robots.txt files. Getting into the particulars of how it works is beyond the scope of this article, but it’s fairly simple to configure and should help keep a site out of the public eye until you are ready to officially release it.

Status: There is a beta release available for Drupal 7.

highlight js Image Field Cross Slide Slideshow Image link to preset Image or Video field formatter

Categories: Content Display, Fields, Theme Enhancements

The Image or Video field formatter module, developed by Chris Cohen of Tigerfish Interactive, adds a field formatter for a media field that can either be an image or a video and allows for separate thumbnails depending on whether an image or a video is displayed, e.g. so that you can show a “play icon” over thumbnails for video. The shadowbox Javascript library is used to display the full image or video when the thumbnail is clicked. The media module is normally used in conjunction with this, but other configurations are possible. Setting this up is non-trivial and the full details from the module description and README file should be consulted.

Status: There is a stable release available for Drupal 7.

Live Feedback

Categories: Content, Community, Evaluation/Rating

The Live Feedback module, written by J. Renée Beach of Acquia, is similar to Google+’s feedback system; it leverages the html2canvas library to allow users to quickly report issues to site maintainers from within the context of the page where the issue occurred. By making it easier for users to report issues with all the detail needed for developers to replicate and resolve them, this module helps ensure that issues do get reported and resolved.

Status: There is a development release available for Drupal 7 and given that Acquia is behind this work, we can hope that Drupal 8 might actually include such functionality in core.

Masonry

Categories: JavaScript Utilities, Third-party Integration

Masonry is a dynamic grid layout plugin for jQuery. Think of it as the flip-side of CSS floats. Whereas floating arranges elements horizontally then vertically, Masonry arranges elements vertically, positioning each element in the next open spot in the grid. The result minimizes vertical gaps between elements of varying height, just like a mason fitting stones in a wall.

From masonry.desandro.com

The Masonry module, written by Peter Anderson of PackWeb, makes the jQuery Masonry plugin available to Drupal as a library. It contains sub-modules for integrating with fields and Views; its field formatter allows you to display multi-value fields in a Masonry grid layout and integrates with existing formatters so existing formatter-specific options, e.g. Colorbox settings, are retained. It currently supports the field types: image, “long text” and “long text with summary”, and like most modules which integrate a Javascript library, it relies on the Libraries module. The Field formatter settings module is also required for the Masonry field formatter and of course Views is required for Masonry views. Add the Masonry javascript and configure according to the directions on the project page.

Status: There is a development release available for Drupal 7.

Memory profiler

Categories: Developer, Performance and Scalability

The Memory profiler module, written by Tim Hilliard of Acquia, logs peak PHP memory usage to the Drupal watchdog and is light-weight enough it shouldn’t add to the memory errors you would be trying to resolve when you activate it. It can be used in a production environment, where enabling Devel would not be appropriate. Knowing this is available when we need it will make all Drupal developers sleep easier.

Status: There is a stable release available for Drupal 7.

Mobile Switch Block

Categories: Content, Content Display, Mobile, Theme Enhancements

The Mobile Switch Block module, coded by Siegfried Neumann, extends the Mobile Switch module with a theme switch block with links to manually switch between your mobile or desktop theme and is compatible with Mobile jQuery. Of course it requires Mobile Switch (version 7.x-1.4+) and Respond.js is recommended. The block could be especially useful for people testing the site, but can also provide better options for users of mobile devices who might, for whatever reason, prefer to use your site’s desktop theme rather than the automatically-selected mobile theme.

Status: There is a beta release available for Drupal 7.

Mozilla Persona Panels Ajax Tabs Password Field

Categories: Fields

The Password Field module, created by James Sinclair of OPC IT, provides for creating fields that store passwords, stored in encrypted format and (by default) will not display them on the website. This is useful, for example, if you are creating a website that integrates with other services and you would like users to be able to store their password more securely than using a text field, so could certainly be useful in unusual use cases. That said, the module description also bears a strong reminder not to use this module if you have any alternative.

Status: There is a beta release available for Drupal 7.

Passwordless

Categories: User Access & Authentication

This is still an experimental module, and using it on production sites is not recommended.

The Passwordless module, written by Antonio Savorelli of Communikitchen, provides a replacement for the standard Drupal login form to allow logging in without using a password. Instead, every login is done via a “one-time login” link, as if the user had forgotten their password. This could be useful on sites where users are not expected to log in very often, but there are still a few things about the way this works that makes me nervous; e.g., currently you need to confirm a change of email address at the new address, but not at the old address, which would make it simple for someone who jumps on your computer, while you are logged in and your back is turned, to take over your (Drupal site) account. That said, as it’s still considered experimental and not for use on production sites, we can hope such issues are addressed by the time this module is released as “stable”. Once that’s true, I can certainly imagine using this for some sites.

Status: There is a development release available for Drupal 7.

PDF Archive

Categories: Content, Rules, Utility

The PDF Archive module, authored by Brian Gilbert of Realityloop, allows you to generate PDF archives of any entity; generation is triggered by Rules actions and you can configure the entity view mode and role of the simulated user for each rule. It includes a Feature as an example for configuration and otherwise requires the Libraries API module, with TCPDF library installed, and the Rules module.

Status: There is an RC release available for Drupal 7.

Permissions per Webform

Categories: Content Access Control

The Permissions per Webform module, written by Daniel Imhoff of UW-Platteville, lets you set standard (normally global) Webform permissions for each individual Webform, e.g. “Access webform results”, “Edit all webform submissions”, “Delete all webform submissions”, “Access own webform submissions ”, etc. It adds a “Permission settings” fieldset tab to each Webform node.

Status: There is a development release available for Drupal 7.

PixGather

Categories: Content, Mobile, Rules, Third-party Integration

The PixGather module, developed by Mike Kadin of Merlin Education, is a Drupal Module and PhoneGap application that allows users to easily upload photos to your Drupal site. It was developed so that guests at a wedding could share their pictures, but it’s suitable for a variety of use cases. Currently, the mobile app part of this is only for Android, but an iOS version is planned.

Status: There is an alpha release available for Drupal 7.

Plugin tools

Categories: Developer, Utility

The Plugin tools module, written by Chris Skene of PreviousNext, allows developers to browse the various plugins provided by different modules, information normally hidden in the code. The Drupal 7 versions supports Chaos Tools plugins, but it’s possible that a Drupal 8 version will work with “core” plugins. See the project page for more details, but this definitely looks useful for developers working with cTools.

Status: There is a beta release available for Drupal 7.

Render As

Categories: Content Display, Developer, Utility

The Render As module, by Stuart Clark of Realityloop, allows you to see page elements as they will be displayed to various users or roles without needing to switch users. Using it is not easy to succinctly summarize, so you should check the project page for directions, but this definitely looks like a useful project for developers and site builders.

Status: There is a beta release available for Drupal 7.

Resumable Download

Categories: File Management, Media

The Resumable Download module, authored by Sina Salek adds support in Drupal for resuming incomplete downloads, which could be very useful for users on slower connections or for larger downloads and provides a number of useful configuration options.

Status: There are beta releases available for both Drupal 6 and Drupal 7.

Session Cache API

Categories: Developer

If you are not a Drupal programmer, then you may stop reading now. Just enable this module if another module tells you to.

The Session Cache API module, written by Rik de Boer of flink, is a simple two-function API for programmers to cache and retrieve pieces of user/session -specific information, and works well even with anonymous users in a cached environment. It is not for caching large amounts of information or content, nor should it be used for anything sensitive, but definitely looks interesting as a replacement for the $_SESSION variable, which may not an option with Varnish or similar caching engines. Developers who find this short summary of interest should definitely read the directions on the project page because using this is not exactly trivial.

Status: There is an alpha release available for Drupal 7.

Session cookie lifetime StatsD

Categories: Developer, Statistics, Utility

The StatsD module, developed by Owen Loy of Acquia, provides Drupal integration for StatsD and is intended for sites that have an existing StatsD / Graphite setup. It’s preconfigured to send statistics for Watchdog entries, user logins, page views, and active user sessions, but developers can also configure it to send custom statistics. It definitely looks useful.

Status: There are beta releases available for both Drupal 6 and Drupal 7.

Suggested Modules

Categories: Administration, Utility

The Suggested Modules module, written by Kevin Quillen of Inclind allows module maintainers to enter a “suggests” property to their module info file, with a link to a relevant module project page. This is a step down from “required” modules; it simply suggests other modules one might normally wish to use in conjunction with your module. Of course, for this to work, modules both need to have “suggests” entries on their .info pages, and users need to have this module installed and enabled. I think this is a great idea and could well be an improvement in “core”; otherwise, until it’s widely used by both site builders and coders, it won’t be very useful. Actually, combining this with Module supports (which still needs a Drupal 7 release) is a more likely future development; in any case it would be helpful if we got such functionality into Drupal core.

Status: There is a stable release available for Drupal 7.

System Status AJAX

Categories: Administration

The System Status AJAX module, contributed by Chris Pliakas of Acquia, a small module which loads the system status check via AJAX so that the admin/config page is rendered more quickly, even when some of the status checks are delayed. Nice! I’m hoping this functionality is going into the System module in Drupal 8; in the meantime, this should definitely improve the user experience for Drupal 7 site administrators.

Status: There is a stable release available for Drupal 7.

Textbook

Categories: Features Package, Theme Enhancements, Utility

The Textbook module, coded by the prolific Bryan Ollendyke, of Penn State University as part of the ELMS Initiative, provides Features which include CSS styles, WYSIWYG settings, and CSS3 page templates to help any theme provide consistent textbook styling for the production of online course materials. Users don’t need to be expert in CSS / HTML, but even experts should find this helps streamline their development. If you are producing an online learning site, this module, along with many others by this fine contributor, should be very useful.

Status: There is a beta release available for Drupal 7.

Timezone Picker The timezone picker module from Nate Haug.

Categories: Administration, Event, Location, Multilingual

The Timezone Picker module, written by Nathan Haug of Lullabot, provides a JavaScript-based timezone picker to replace the default Drupal timezone list with a clickable world map to select a user’s timezone and Geolocation support for compatible browsers, so setting a timezone is greatly simplified. Enabling it replaces the default timezone list on the site’s “Regional settings” page and user profile pages. All Javascript is included; no libraries need to be downloaded and quicksketch also wrote this to be mobile-friendly. Very cool!

Status: There is a stable release available for Drupal 7.

Typo

Categories: JavaScript Utilities

The Typo module’s user interface

The Typo module, developed by Roman Arkharov, provides a simple way for site visitors to report typographical errors in your site content; all they need to do is select text which includes a typo and press Ctrl + Enter to automatically notify the site administrator. It includes preset Rules events you can use, as well as Views for administrators to see a list of reported typos, among other useful integrations. This could definitely be worth checking out.

Status: There is a development release available for Drupal 7.

Views fields combine

Categories: Fields, Views

The Views fields combine module, contributed by Stefan Borchert of undpaul, allows you to combine the output of Views fields, separated by any desired custom text. Normally you would do this with "Global: Custom text", however if one field is optional, your output would include an unwanted separator. Once this module is enabled, you’ll have access to a new field type, "Global: Combined fields", where you can select the fields you would like to combine.

Development on Views fields combine is sponsored by undpaul.

Status: There is a stable release available for Drupal 7.

Weather block

Categories: Content, Content Display, Third-party Integration

The Weather block module, developed by Antti Alamäki of Soprano Brain Alliance, provides blocks and pages in which you can display forecasts from Yahoo Weather, World Weather Online, or weather.com and may include additional future service integrations. Drupal 7 needed more support for weather forecast integration, so it’s good to see this and I’ll certainly be giving this a try on sites where I might want a Weather block.

Status: There is a stable release available for Drupal 7.

Sep 28 2012
Sep 28
Florian Lorétan holds out the official DrupalCon Munich promotional beer coaster

Over the past weekend at DrupalCamp Essen, I had the opportunity to sit down with Florian Lorétan, who has been instrumental in organizing and coordinating all the work which goes into bringing the next European DrupalCon to Munich, Germany. Since the last time we’d spoken, at Drupal City (the Drupal Camp held in Berlin, September 2011, less than a month after the initial announcement in London), there had been a lot of new developments. I asked Florian to catch us up.

Lowell: I’m Lowell Montgomery from Cocomore and I’m here in the BoF room at DrupalCamp Essen, speaking with Florian Lorétan, Munich’s community representative and a co-founder of Wunderkraut, about new developments in the planning of DrupalCon Munich. So what’s the latest news, Florian?

Florian: There are a lot of things going on right now. One of the big things we have on our plates right now is just making all these developments communicable. There’s a lot of work being done on the website, both on content and also on making the content look good — so it’s styling all the content types, different views, new content types, different blogs — and making sure that the sponsors get the attention they deserve on the website and also preparing for the session poll results which will open in a few weeks. One of the things that needs to be communicated are the featured sessions. We have some very exciting speakers coming from the outside — some very exciting topics, too. This is not completely final; but we do have some sessions which are confirmed, so this will probably be going up on the website in the next couple of weeks.

Lowell: So before DrupalCon Denver, then?

Florian: If it’s ready before DrupalCon Denver, we’ll put it on the website then, but at the latest it will be there at Denver.

Lowell: And you mentioned that the sponsor slots are pretty much all filled?

[…] For Munich, we still have Silver (very limited), Bronze, Sponsor Lunch, Sponsor Coffee Break, Sponsor a contest (like Tropo's hackathan or Twilio contest) [ … ]

Florian: All the top ones are sold out; Diamond, Platinum, Gold, and I think Silver, too, is sold out. The day stage sponsors, the beer garden sponsor, the coffee sponsor; are also given away. With Wunderkraut, we’re also happy to get the contribution lounge and contribution sprint sponsorship slots, which is something that fits for us, but it’s also a one-of-a-kind sponsorship of our community. I think that it’s been going very quickly; we weren’t expecting things to go that fast. Megan Sanicki is responsible for all the finances and sponsorships for DrupalCon and she’s has been doing a fantastic job at it. I think it’s really great that the sponsors have shown such incredible enthusiasm. I think it’s an indicator of how much interest there is in the conference and I hope that the attendees show as much interest as the sponsors have.

Lowell: That’s great news. But there are still unlimited Bronze sponsorships available, though, right?

Florian: Indeed there are. And it’s still a great way for Drupal-related companies to help make this an event which everyone in the community can afford to attend, while also getting good value. I’m not sure of the exact pricing and details right now, but on the DrupalCon Munich website the sponsorship packages are fully described. There may also still be some other opportunities for special sponsorships, but the opportunities for getting a booth or table are getting very limited, if not completely sold out.

Lowell: So one thing I really wanted to ask you about is: how can people who aren’t already involved in the planning do something to help make sure this the most awesome DrupalCon Europe to date?

Florian: The best thing to do is really just to spread the word: blog about it, tweet about it, make a presentation about it at the local user group, to get people up to speed, to get people to know what it’s about. There’re still a lot of people who don’t know exactly what DrupalCon is, and what the goals of DrupalCon are. Many people think that it’s a for-profit event, which it’s not, it’s really an event that’s fully targeted at getting the Drupal people of all kinds together, whether they are business people, developers, designers; getting all these people from the Drupal world together and really also growing the Drupal community, so reaching out, outside all those who already do business with Drupal. And this is one of the main goals of this specific conference; our slogan is “Open up: Connecting systems and people” and behind this “open up”, we also want to reach out to related communities, so to people working with new Javascript technologies which can be combined with Drupal, reaching out to people from the Typo3 community, which is particularly strong in Germany; it’s also an open-source project — in some ways it’s a competitor, but we have a lot in common and I think it’s great to have that kind of open discussion, to really be able to have that as some positive and constructive exchange of ideas. So this is one of the things that we are looking for in our featured sessions: to reach out to people who would not normally be participating at DrupalCon, to get people from the outside so that we can have a wider range of topics and also have topics that are interesting for people who are not working exclusively with Drupal.

Lowell: For people who do know what a DrupalCon is and live far away, say in North or South America; it’s easier for them to get to Denver. What can you say to encourage them to come to DrupalCon Munich other being able to go to interesting beer gardens and see Germany?

Florian: Well, a lot of people travel to DrupalCons both for professional reasons and as tourists and a lot of people bring their families for the trip to DrupalCon, so we are planning all the special events and parallel activities with DrupalCon.

Lowell: For the “Drupalgängers”?

Florian: Right, Drupalganger outings and also making sure we have some cultural activities.

Florian: Besides that, Germany is probably the largest Drupal market in Europe and the market with the biggest potential. There is a lot of demand and a lot of growth potential. And so I think it’s inevitable that there will be a lot of interest from the outside to get some presence in the German market, so for large companies it’s really a very interesting market to open branches, do more business with Germany, and also for the European market: more and more we are seeing that we’re not dealing with local projects anymore. It’s not a local Drupal shop working for a local company; we’re seeing companies from all over the world doing projects for clients all over the world. Since the German market has a lot of weight in the global economy, I think it’s important to have connections there; it’s important to have a presence there. And also there are a lot of very important contributors to Drupal core and to contrib modules who are from Germany. There’s a very active community in Germany. So for people who are more interested in the community-contribution aspects, there’s a lot of activity in Germany and the rest of Europe, too. So one of the things we are particularly looking at is turning the contribution lounge into a place which really supports and encourages people to contribute, to work with each other, and to have conversations about improvements that can be made to Drupal, to contrib modules, to the way we do business, to the way we do marketing, to the way we do design. We want this conference to be a conference where people participate actively. It’s not a conference where people just go, watch awesome sessions and take notes, and then go home. It’s really a conference where people are active, they discuss things, they meet people, they make new connections, they do business, they write code; it’s really a hands-on conference.

Lowell: Right. So there’s a lot that takes place at a DrupalCon and a lot that goes on in the half-year between the DrupalCons, so if people only attend once-per-year at the conference closer to them, they are missing a lot and missing the opportunities to meet and connect with other members of the community who might not be able to make the longer trips to Europe or to North America.

So are there other ways that people outside of Germany could help support the preparation processes?

Florian: Actually for the teams doing the coordination and organization of the event before the start of the conference, we already have a pretty good team. We have about 30 people involved, split between the design team, the website building team, the track chairs, the people doing the coordination of various events; there are also people working on the marketing. We really actually have a very good team. We have a couple of positions coming up, but what we’re really looking for are people who can make a time commitment, and who can take up responsibility and say I’m going to dedicate myself to do that and we need people who are reliable, because when we are working with such a big team of people, if we have people who are not reliable, then we just spend more time looking after people and we just want people to get the things done. But there are couple of opportunities and if someone wants to get involved, they should just contact us directly through the contact page and say “Hey, I’m available and I have one day a week that I can dedicate to this cause.” And their contact will be forwarded to the correct person. Otherwise there’s going to be the possibility to be involved on-site maybe one or two days before the conference helping with registrations, with distributing T-shirts, with showing the way, helping by being a room monitor during the conference, just making sure that things start on time, and that the speakers have water and so on. But for this kind of volunteering, we’ll post a form on the website one or two months before the event. It’s currently too early to start working on that.

Lowell: Right. How does that work, anyway? If you want to help out at the event, can you do that just for part of the day, so that the rest of the time they can be in sessions and participate in other aspects of the conference?

Florian: Yes. This is generally done in half-day slots or something like that, so we generally have plenty of people who just want to help. I’ve done it before; it’s a lot of fun. You work with other people who are also really passionate about what they do. So it’s a fun experience. You normally get a T-shirt for it and that’s pretty much it, but it’s a great opportunity to start being involved. So sign up for our newsletter on the website and you’ll be notified when we have the call for volunteers.

Lowell: Okay. So is it time yet to register for the conference and buy a ticket or when does that happen?

Florian: It’s not open yet. There are still some things to do to finalize the budget and determine the ticket price. This will be coming soon; it will probably be open a couple of days before Denver, but the official announcement, when we expect a lot of people to register, will happen on the last day at Denver.So it should be ready in a couple of weeks.

Lowell: What are your expectations about how many people might be in attendance at DrupalCon Europe?

Lowell Montgomery, at left, interviews Florian Lorétan at DrupalCamp EssenFlorian: Well, we have enough space for 2500 people. This is bigger than other European conferences, but at the same time, well… there’s been steady growth in the community. Also Munich has a very central location in Europe. It’s very easily accessible from pretty much anywhere by either plane or train, so I’m expecting a lot of people to come. Also, since we want to reach out more to people outside the community, it’s not going to be an event that’s just for a niche group. We want to make it a great event that we hope will attract people from outside the community. I personally expect the conference to sell out. It might not be possible to buy tickets at the entrance. If we get as much interest from attendees as we got from sponsors, if it goes as quickly, then we will definitely be sold out.

Lowell: That’s great! Unfortunately, I’m not personally going to be able to get to Denver… between the cost of airfare, the cost of staying in a hotel for a week, and other expenses, it’s just not in my personal budget right now, so I’m wondering how the prices of hotel accommodations in Munich compare to the costs in London and in winter-tourist-season Denver?

Florian: In Munich, the conference is taking place at a hotel where they’ve offered conference attendees a special price which includes, among other things, free Wi-Fi in the rooms. There are various advantages. You can already make reservations by phone or by e-mail just by mentioning DrupalCon and there’ll be a special form for booking your hotel accommodations which should be ready soon. Otherwise, Munich is not a cheap city, but there are some budget priced hotels in the area and the local transportation is good, so it should be possible to stay at other hotels and easily get to and from the conference location. Public transportation there is great and I would certainly recommend anyone coming for the week, especially if they are staying at another hotel, to buy a public transportation ticket for the week. I think it’s 13 or 14 Euros.

Lowell: That’s a good deal. Do you have any final thoughts you’d like to share with us.

Florian: Well one of the things that we did in London is that when we announced the conference in Munich we handed out stickers. The logo for the conference is actually a beer coaster. And our design team from Cocomore came up with the idea, “Hey, the logo is a beer coaster, how about printing real beer coasters?” And so we looked into that, and then when we were looking at the quantities, we realized that we could actually use a lot of those. And so a couple of weeks ago they were printed and then just last week we received them in our office. It’s two very big and very heavy boxes full of beer coasters, and now we’re distributing those at various Drupal events. so we’re here at DrupalCamp Essen and people are very excited about them already and they’re taking them back to their respective user groups. We’re taking them to CeBIT, the largest IT conference in Europe, where Drupal has a booth. We are also taking many of them to DrupalCon Denver and to many other events. And so one of the things that were going to do with these is we’re going to have a contest for the most creative use of these coasters. So it’s going to be on Twitter; just post a creative use of your beer coaster. And, of course you first need to get your hands on one of them. So if you’re in Denver, be sure to get one. And if you’re not going to Denver, make sure you ask someone who’s going to Denver to get one for you. I’m sure it’s going to be a lot of fun, so more details will be coming up soon. Make sure you get your hands on one of those beer coasters. The design team from Cocomore really did a fantastic job! It’s been a pleasure working with them.

Lowell: I agree. I think the DrupalCon site really looks terrific, too.

Well, thank you for taking the time to talk with me today and I’m definitely looking forward to Munich.

Florian: You’re welcome, Lowell. I’m looking forward to it, too.

Sep 12 2012
Sep 12
Modules of the month story banner illustration.

There are tons of new Drupal modules that got released in August; almost 200 module project pages were created. Some of them aren’t listed here because they currently have no release; some don’t even have code (yet). But a lot of very promising modules were released in August, perhaps due to the extra community involvement around DrupalCon Munich. There were even a couple novelty modules, good for a laugh if not much else: the Honey Badger module (“Honey badger don't care. Honey badger always clears cache.”), contributed by Camilla Krag Jensen of the Danish news site, Dagbladet Information, is one such module worth looking at if you need something to make you smile. The module, by Sally Young of Lullabot, “randomly swaps values of the variable table around.” Well, maybe it would if there were actually any code behind the project. Both require Bad Judgement. I suppose the latter project page could have been created for a new Lullabot training, but I’m curious what inspired Ms Jensen. Anyway, the women of Drupal came through with some laughs.

A more useful looking set of modules was also released in August by French developer, Guillaume Viguier-Just: The module is required for any of its related modules, which include Base Page, Base Article, Base Link, Base Media, and Base Apps. These modules are “… meant to be a set of features that will provide the "lowest common denominator" for building Drupal apps and distributions.” The Base modules depend on Apps Compatible, another new module from August which I think will be in very wide use before long (Apps Compatible is covered below). There are also a couple new modules for the Spark distribution (listed below), several new Drush extensions, and a number of other modules which look good for boosting developer/themer productivity.

As with previous editions of this article, all modules are listed in alphabetical order. If categories were missing on the Drupal.org project page, I’ve added appropriate categories. Additional caveat: I have not tested all of these modules and have not fully tested any of them. They are new modules and some come with new bugs, so beware.

*/ Anonymous login

The module, authored by Mike Stefanello and sponsored by Workout Spots, provides a login page with redirect to the originally requested page if an anonymous visitor to your site follows a link which requires higher privileges. The example use case is your site sends out emails with links which require a user is logged in; but subscribers to your email list get an “Access denied” when following the links (if not already logged in); a usability nightmare. Anonymous login to the rescue! Very nice.

Status: There is a stable release available for Drupal 7.

Apps compatible As well as providing methods for shared components, Apps compatible includes a collection of methods handy for developing interoperable features and apps.

The module, by Nedjo Rogers, is already reported in use on 278 sites, which shows there must be a use case for this module that was only released a month ago; I anticipate a lot more sites will be using it shortly. It helps alleviate compatibility issues between different Apps and Features caused by conflicting dependencies, etc.

Status: There is an alpha release available for Drupal 7.

Backup and Migrate SFTP

The module, by Chad Robinson, extends the very popular Backup & Migrate module with SFTP, instead of simply FTP when setting up “Destinations”. This is a GoodThing™ for security. I’ll definitely be keeping an eye on this.

Status: There are dev releases available for both Drupal 6 and Drupal 7.

Better Statistics

The module, authored by Eric Peterson of Tableau Software, extends the core Statistics module and collects additional data such as cache status and user agent without adding a lot of extra performance overhead. This could certainly be useful.

Status: There are stable releases available for Drupal 6 and 7.

Block Upload

The module, created by Alexander of ADCI, LLC, provides a simple block with an uploader for the node being viewed, so users who don’t have full “edit” permissions for the content can still upload files and images (or if all you want to do is upload a new attachment, you don’t need to open the content in edit mode). Cool!

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Book Title Override

The module, written by Bryan Ollendyke of Penn State University, allows you to change the titles displayed in Drupal’s “Book” navigation so they don’t have to be an exact match to the constituent node titles. This eliminates one limitation that many might have been frustrated by.

Status: There are beta releases available for both Drupal 6 and Drupal 7.

Chamfer defaults

The module, also by Bryan Ollendyke maintains the default settings for the Chamfer theme, an Omega sub-theme with full HTML5 adaptive theme originally used for presenting online courses on the Penn State site (and another contribution from Ollendyke). It allows you to easily move defaults or your settings from one site to another.

Status: There is a beta release available for Drupal 7 and a development release available for Drupal 6.

Close Block

Categories: Content

The module, is another contribution by Alexander of ADCI, LLC. It allows users to close any block configured to be user-closable. Blocks can be configured to stay closed or reopen the next time a page with that block is displayed, be displayed a certain number of times before closing is permanent, or re-appear after a period of time. There are global settings, per-theme settings, and settings in the configuration for each block.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Configuration Interchange and Management

The module, coded by Thomas Fini Hansen of Reload!, is the first module I’ve seen which works with the new Drupal 8 Configuration Management system. Of course it’s still early for Drupal 8, so it goes without saying that all features are experimental, but this is intended to provide a simple way to save snapshots of configuration settings, roll back to snapshots, and deploy snapshots from one site to another. This could find a place in core by the time of “feature freeze”.

Status: There is a development release available for Drupal 8.

Cron Cache

The module, written by Will Vincent of Marker Seven, allows individual caches to be cleared at configurable intervals.

Status: There is a development release available for Drupal 7.

CSS Flipper

The module, written by Tsachi Shlidor, can automatically create and maintain a “flipped version” of any RTL or LTR CSS code, which can greatly streamline developing and maintaining themes. Nice!

Status: There is a beta release available for Drupal 7.

Dev Tools

The module, produced by Yuriy Babenko of Suite101, is “a collection of PHP classes and functions which help with and simplify Drupal module development”. From the looks of things, this could well be useful, perhaps especially for debugging.

Status: There is a development release available for Drupal 7.

Disable "Language neutral"

The module, written by rysmax, allows you to show only a sub-set of otherwise-allowable language options for each content-type, which means you can remove such nonsense as “language neutral” from the selectable languages for a Blog entry… Nice and simple, and most content types on most multilingual sites would probably benefit from this.

Status: There is a stable release available for Drupal 7.

Dismiss

The module, produced by Chris Ruppel of Four Kitchens, allows you to “click away” Drupal messages so that they are out of your way without a page refresh. It’s a simple module with no configuration, but it could be handy for when you are documenting the steps of a process and end up with Drupal messages displayed that might distract from a screenshot.

Status: There is a stable release available for Drupal 7.

Drupal-up

The module, written by Kosta Harlan of DesignHammer, is “a Drush extension that facilitates building virtual machines for local development of Drupal sites.” It includes blueprints for virtual machines for hosting Drupal 6–8 -based sites. Looks interesting.

Status: There is a beta release available “for Drupal 7” (presumably, like Drush, the Drupal version is not really applicable).

Drush Hosts

The module, written by Christopher Gervais of Koumbit.org, provides Drush commands for managing /etc/hosts, so you can easily add and remove entries. This definitely looks useful.

Status: There is a stable release available for Drupal 7.

Drush Issue Queue Commands

The module, produced by Greg Anderson, is a Drush extension which includes commands which help manage a Drupal project issue queue, making things simpler for beginners and faster for everyone. I’m sold!

Status: There is a stable release available for Drupal 7.

Entity RDF

The module, developed by Stéphane Corlosquet, the primary maintainer of Drupal’s core RDF, is a replacement for Drupal core RDF, which provides tight integration between the RDF mappings and Entity API and attempts to solve shortcomings of the Drupal 7 core RDF module. This is worth keeping an eye on.

Status: There is a development release available for Drupal 7.

Feeds YouTube Fetcher

The module, contributed by Travis Tidwell of AllPlayers.com and sponsored by Anglican TV, is a YouTube feeds fetcher which is able to overcome the situation where feeds are paginated, thus getting all of the videos in a feed rather than just the first 50. This could well be useful.

Status: There is a development release available for Drupal 7.

Flag expire

The module, by Joachim Noreiko, can use either the Date or Time period module to create flags which can be active for a preset period of time or which begin/end at specified times.

Status: There is a beta release available for Drupal 7.

Flatfish

The module, developed by Mike Crittenden of Drupal Connect, uses the Ruby gem, Flatfish, to help scrape HTML data and import it into a Drupal site, useful, for instance when migrating an older website into Drupal. It includes other code to help with the migration of the data. I know there are other popular modules for this kind of task, but this could also be worth keeping in mind.

Status: There is a beta release available for Drupal 7.

Icon fonts Icon Fonts can easily be changed for color, size, drop-shadows and other effects

The module, created by Gábor Hojtsy of Acquia as part of the Spark distribution definitely looks interesting. Icon fonts allow you to easily change size, shape, color, strokes and other attributes. See this CSS Tricks post about icon fonts for an example of how useful they can be as a replacement for standard icons.

Status: There is an alpha release available for Drupal 7.

Image CAPTCHA Refresh

The module, produced by Dmitry Drozdik of VolcanoIdeas, helps with one of the problems of Captcha; if the image is “too easy”, bots can parse the Captcha—too hard and humans have a hard time and might need to refresh the page a few times, which can be a real hassle if they have completely filled out a form. This brings in a feature that is missing in some Captcha plugins: the ability to get a new Captcha without refreshing the whole page and should result in less frustration for users and a lighter load on your server.

Status: There is a stable release available for Drupal 7.

Leaflet More Maps The Stamen watercolor effect and Thunderforest cycling maps are both options with Leaflet Maps

The module, created by Rik de Boer of flink, expands your mapping horizons beyond Google maps, allowing you to include maps from a variety of alternative map providers, such as the watercolor-effect maps from Stamen or the trail and cycling maps from Thunderforest. As its name implies, it also depends on the Leaflet Javascript library.

Status: There is a beta release available for Drupal 7.

LGP

The module, which stands for “Lazy Guinea Pig”, created by develCuy and sponsored by dilygent, is another developer toolset which will help you debug your Drupal code. It can write to a temporary log file, works in places where Devel’s dsm() won’t, and has a number of other features that make me think this is worth knowing about. It also includes a number of Drush commands.

Status: There are development releases available for Drupal 7 and Drupal 8.

Logic Block

The module, produced by Pat Lockley, provides a number of configuration options for blocks to allow site administrators to easily perform such actions as merging blocks, replacing one block with another in particular circumstances (e.g. if one block is empty or based on language, role, user ID, etc), and other nifty tricks. I’ve only just experimented with it a bit, but it definitely looks useful.

Status: There is a stable release available for Drupal 7.

Mobile friendly navigation toolbar

Categories: Mobile

The module, produced by Gábor Hojtsy of Acquia, is another module developed and released as part of the Spark distribution. As the name implies, it provides a better toolbar for mobile navigation. Like the rest of Spark, it provides a way for us to test and use awesome new Drupal 8 features in our Drupal 7 projects. Very nice!

Status: There is an alpha release available for Drupal 7.

Module configure links Module configure links opens the config page for a newly enabled module

The module, by Brad Erickson of ChapterThree, helps solve a typical Drupal problem, especially common when working on sites with a lot of modules: you enable a new module, but then need to search around to find its configuration page. This module presents obvious links for configuring any modules activated, for a smoother Drupal site-building workflow. If only one module is activated, it automatically redirects you to the configuration page for that module. I’ve tried it, I like it, and I’ll definitely be using it on more than just my local “module testing” site.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

OpenFolio Features OpenFolio is a distribution for photographers or other visual artists who want to create a web portfolio of their work.

The module, developed by Ted Bowman of Six Mile Tech, was released as part of the OpenFolio distribution, also released by Mr Bowman in August. it contains no custom code, but handy exported content types, Views displays, Panels, and other useful bits to help streamline the process of creating an online portfolio site to display visual art. Of course it depends on Features.

Status: There is a development release available for Drupal 7.

OpenLayers Filters

The module, by Pol Dell'Aiera, provides a text filter which replaces a token representing any OpenLayers map preset with the map, right within your content.

Status: There is a stable release available for Drupal 7.

Override css

The module, authored by Wim De Craene of Jeugdwerknet vzw, provides a simpler alternative to Sweaver or Livethemer which allows a client/administrator to make simple changes to site CSS, e.g. changing the color of H1 and H2 headings, through a simple UI, without even having to know any HTML or CSS.

Status: There is a development release available for Drupal 7.

Panels Extra Styles

The module, coded by Sean Dunaway provides additional region and pane styles for Panels with full HTML5 support. Since users are also encouraged to contribute their own styles, the options should increase with time. This looks well worth trying out if you are using Panels.

Status: There is a stable release available for Drupal 7.

Pathinfo

The module, authored by Cameron Tod of NBC Universal, is a Devel plugin which displays useful information about which module and function is responsible for the page you are viewing. It links the appropriate Drupal API pages, where applicable, and displays full Krumo output for page arguments. This looks handy for those times you need to fix some issues in a Drupal site, but have no idea where things are coming from.

Status: There are beta releases available for both Drupal 6 and Drupal 7.

Required by role Required By Role checkboxes on the Tags field configuration

The module, written by Alejandro Tabares, simply adds some extra checkboxes to each field configuration form so that you can not only specify that a field is required (for all roles), but can instead specify that a field is required only for particular roles. I suppose the use cases for this are not so common, but I’m sure I’ve had at least one situation where this would have been useful.

Status: There is a stable release available for Drupal 7.

Resolve IP

The module, by Yannis Karampelas of Netstudio, is simple, but very useful for understanding what’s going on in the system log (Watchdog) entries: it resolves the hostname for each IP address so you see (for example) crawl-66-249-66-212.googlebot.com alongside the IP address.

Status: There is a beta release available for Drupal 7.

Responsive Background Images

The module, is yet another contribution in the same vein as other modules recently released by Daniel Honrade of Promet Solutions. It provides a range of rules for background image sizes, which it loads based on the size of the browser window. Phones get a smaller background image than iPads, which get a smaller image size than a full-size browser window on an HD monitor. This, of course, helps conserve mobile bandwidth which helps make your whole site more “responsive”.

Status: There is a development release available for Drupal 7.

Search API Extended String Filter Did you ever want to be able to search partial string using the search API from within views, now you can, supports all the regular (exposed) filters and also 'Starts with', 'Contains', …

The module, contributed by Jelle Sebreghts of Attiks, enables searching for partial strings with the full Views search filters.

Status: There is a stable release available for Drupal 7.

Search API stats

The module, authored by Brandon Stone of ImageX Media, provides a block which allows users to see your site’s top search phrases. Of course there is a bit more to getting this working than simply adding and enabling the module, but for a search-related module, this looks relatively easy to get working.

Status: There is a stable release available for Drupal 7.

Searchcloud Block

The module, developed by Fabian de Rijk of Finalist, is similar to Search API Stats (above). Instead of a block with a simple list of most-searched terms, it provides a block with a “cloud” of those search terms.

Status: There is a development release available for Drupal 7.

Services Entity API

The module, created by Pedro Cambra of Commerce Guys, provides integration of Services and Entity API. It was developed with the needs of Drupal Commerce users in mind, but can be used for any Drupal entities.

Status: There is a development release available for Drupal 7.

Setup

Categories: Utility

The module, developed by Stuart Clark of Realityloop, gives developers and “adventurous site builders” a way to create a script for a client with a series of steps to enter their personal data (e.g. social networking accounts, Google Analytics tracking codes, etc); information which might not have been available during the development process.

Status: There is a beta release available for Drupal 7.

Simple Editor

The module, contributed by Ki H. Kim of Urban Insight, provides an almost-completely pre-configured WYSIWYG editor, based on TinyMCE. The aim is to give users a Wordpress-like, “ready-to-use”, editor, and not to be super-flexible, but if the common use case assumed applies to you, this could be a great time-saver.

Status: There is an alpha release available for Drupal 7.

Simple oEmbed

Categories: Media

The module, also by Ki H. Kim, integrates a simple setup of oEmbed with the Simple Editor, to make it easy to add videos and other rich media to content. Like the Simple Editor, it assumes a lot of the configuration, so for less typical use cases, you might want to use the full oEmbed project, which provides additional configuration options.

Status: There is a beta release available for Drupal 7.

Taxonomy Group Fields

, by Chris Albrecht of the National Renewable Energy Lab, is a taxonomy selection “widget” intended for larger vocabularies, currently those with two levels of hierarchy (parents and children, but no “grandparents” or “grandchildren”), however the project page indicates that there is an interest in expanding to multiple hierarchy levels, among a number of other useful features. Currently, if a parent is selected, all of its children are automatically included (parent acts as “select all” for children), but the developer also indicates he would like to provide this behavior as an option, rather than as the “only way”. This module is similar to one of my favorite, not-yet-for-D7 taxonomy selection/management tools, Taxonomy Super Select. What TGF lacks (a feature in TSS) is the ability to add new terms; I think it would be cool if it supported adding a new term into any group (with role-based limits on adding new terms). But there are so many use cases for Taxonomy widgets that it’s probably best to just create a limited module that does one thing well rather than trying to be everything for everyone.

Status: There is a development release available for Drupal 7.

Taxonomy Orphanage

The module, coded by Elliott Foster of Four Kitchens, is a module that helps resolve a rather painful bug in Drupal core. If you delete a taxonomy term, references to it still are retained in entities which used it. Taxonomy Orphanage provides interfaces for cleaning up such references. Nice work, Elliott!

Status: There is a stable release available for Drupal 7.

Theme Hider

The module, authored by Victor Quinn, provides a method for site administrators to hide particular themes on sites where users are allowed to select their preferred theme. Some enabled themes might only be for admin or for special purposes, so this is a good thing to have if you want your site to be displayed nicely for everyone.

Status: There is a stable release available for Drupal 6.

tinynav.js

The module is another contribution from Bryan Ollendyke. It integrates the tinynav.js jQuery library, which converts a typical list-based menu into a select-list drop-down if the browser window is narrow (e.g. on smaller displays). It’s extremely light-weight at only 362 bytes (minimized and gzipped). This module provides a number of configuration options and was designed for use with the Chamfer theme, but also should work well with other Omega-based themes (what it’s been tested with) and possibly other themes. Looks good!

Status: There is a beta release available for Drupal 7.

URL Alias Permissions

The module, written by Justin Phelan of Blackwood Media Group, “allows site administrators to set permissions to create and edit url path settings by content type”. This is certainly useful for particular use cases.

Status: There is a stable release available for Drupal 7.

User Import Framework Plus

The module, written by Deji Akala of JB Global, extends the User Import Framework to allow importing more than just the basic three fields (email, username, password) the UIF supports. This certainly looks like it could be useful.

Status: There is a development release available for Drupal 7.

Visual select file

The module, coded by Rudie Dirkx of ezCompany, is simpler than Media and easier to extend, plus it includes visuals (thumbnails) to help you select files. It uses Views and FileField Sources to help it work its magic. Nicely done!

Status: There is a beta release available for Drupal 7.

Webform Email Raw Emailing raw, unfiltered (filter_xss) data from a Webform submission can be risky, so only use this module if you absolutely require this behavior and understand the risks.

Categories: Mail

The module, contributed by Robert Bates of Phase2 Technology, provides a solution for sending raw, unfiltered XML from Webform submissions.

Status: There is an alpha release available for Drupal 7.

Webform Serial

Categories: Content

The module, developed by Peter Lieverdink of Creative Contingencies, simply “provides an auto-incrementing number field for webforms.”

Status: There is a development release available for Drupal 7.

WireDocs … a large legacy of documents in proprietary formats, such as MS Word or Excel, may discourage from moving to an online editor. Additionally, legal issues might arise if confidential files are hosted by a third party service provider.

The module, from Gottfried Nindl of OSCE, allows your Drupal site to host files in various office formats which can be opened (seamlessly downloaded and opened by a native, local application), edited, and saved (seamlessly uploaded back to the server) with a Java applet that bridges the gap between Drupal and the client operating systems. This looks like a pretty cool alternative to third-party document-hosting systems.

Status: There is a beta release available for Drupal 7.

Sep 11 2012
Sep 11
Modules of the month story banner illustration.

There are tons of new Drupal modules that got released in August; almost 200 module project pages were created. Some of them aren’t listed here because they currently have no release; some don’t even have code (yet). But a lot of very promising modules were released in August, perhaps due to the extra community involvement around DrupalCon Munich. There were even a couple novelty modules, good for a laugh if not much else: the Honey Badger module (“Honey badger don't care. Honey badger always clears cache.”), contributed by Camilla Krag Jensen of the Danish news site, Dagbladet Information, is one such module worth looking at if you need something to make you smile. The Heisenberg module, by Sally Young of Lullabot, “randomly swaps values of the variable table around.” Well, maybe it would if there were actually any code behind the project. Both require Bad Judgement. I suppose the latter project page could have been created for a new Lullabot training, but I’m curious what inspired Ms Jensen. Anyway, the women of Drupal came through with some laughs.

A more useful looking set of modules was also released in August by French developer, Guillaume Viguier-Just: The Base Core module is required for any of its related modules, which include Base Page, Base Article, Base Link, Base Media, and Base Apps. These modules are “… meant to be a set of features that will provide the "lowest common denominator" for building Drupal apps and distributions.” The Base modules depend on Apps Compatible, another new module from August which I think will be in very wide use before long (Apps Compatible is covered below). There are also a couple new modules for the Spark distribution (listed below), several new Drush extensions, and a number of other modules which look good for boosting developer/themer productivity.

As with previous editions of this article, all modules are listed in alphabetical order. If categories were missing on the Drupal.org project page, I’ve added appropriate categories. Additional caveat: I have not tested all of these modules and have not fully tested any of them. They are new modules and some come with new bugs, so beware.

Anonymous login

Categories: User Access & Authentication

The Anonymous login module, authored by Mike Stefanello and sponsored by Workout Spots, provides a login page with redirect to the originally requested page if an anonymous visitor to your site follows a link which requires higher privileges. The example use case is your site sends out emails with links which require a user is logged in; but subscribers to your email list get an “Access denied” when following the links (if not already logged in); a usability nightmare. Anonymous login to the rescue! Very nice.

Status: There is a stable release available for Drupal 7.

Apps compatible

Categories: Developer, Utility

As well as providing methods for shared components, Apps compatible includes a collection of methods handy for developing interoperable features and apps.

The Apps compatible module, by Nedjo Rogers, is already reported in use on 278 sites, which shows there must be a use case for this module that was only released a month ago; I anticipate a lot more sites will be using it shortly. It helps alleviate compatibility issues between different Apps and Features caused by conflicting dependencies, etc.

Status: There is an alpha release available for Drupal 7.

Backup and Migrate SFTP Better Statistics

Categories: Statistics

The Better Statistics module, authored by Eric Peterson of Tableau Software, extends the core Statistics module and collects additional data such as cache status and user agent without adding a lot of extra performance overhead. This could certainly be useful.

Status: There are stable releases available for Drupal 6 and 7.

Block Upload Book Title Override

Categories: Content, SEO, Utility

The Book Title Override module, written by Bryan Ollendyke of Penn State University, allows you to change the titles displayed in Drupal’s “Book” navigation so they don’t have to be an exact match to the constituent node titles. This eliminates one limitation that many might have been frustrated by.

Status: There are beta releases available for both Drupal 6 and Drupal 7.

Chamfer defaults

Categories: Features Package, Theme Enhancements

The Chamfer defaults module, also by Bryan Ollendyke maintains the default settings for the Chamfer theme, an Omega sub-theme with full HTML5 adaptive theme originally used for presenting online courses on the Penn State site (and another contribution from Ollendyke). It allows you to easily move defaults or your settings from one site to another.

Status: There is a beta release available for Drupal 7 and a development release available for Drupal 6.

Close Block

Categories: Content

The Close Block module, is another contribution by Alexander of ADCI, LLC. It allows users to close any block configured to be user-closable. Blocks can be configured to stay closed or reopen the next time a page with that block is displayed, be displayed a certain number of times before closing is permanent, or re-appear after a period of time. There are global settings, per-theme settings, and settings in the configuration for each block.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Configuration Interchange and Management

Categories: Administration

The Configuration Interchange and Management module, coded by Thomas Fini Hansen of Reload!, is the first module I’ve seen which works with the new Drupal 8 Configuration Management system. Of course it’s still early for Drupal 8, so it goes without saying that all features are experimental, but this is intended to provide a simple way to save snapshots of configuration settings, roll back to snapshots, and deploy snapshots from one site to another. This could find a place in core by the time of “feature freeze”.

Status: There is a development release available for Drupal 8.

Cron Cache CSS Flipper Dev Tools

Categories: Developer

The Dev Tools module, produced by Yuriy Babenko of Suite101, is “a collection of PHP classes and functions which help with and simplify Drupal module development”. From the looks of things, this could well be useful, perhaps especially for debugging.

Status: There is a development release available for Drupal 7.

Disable "Language neutral"

Categories: Content Display, Multilingual, Site Navigation, Utility

The Disable "Language neutral" module, written by rysmax, allows you to show only a sub-set of otherwise-allowable language options for each content-type, which means you can remove such nonsense as “language neutral” from the selectable languages for a Blog entry… Nice and simple, and most content types on most multilingual sites would probably benefit from this.

Status: There is a stable release available for Drupal 7.

Dismiss

Categories: JavaScript Utilities, Theme Enhancements, Utility

The Dismiss module, produced by Chris Ruppel of Four Kitchens, allows you to “click away” Drupal messages so that they are out of your way without a page refresh. It’s a simple module with no configuration, but it could be handy for when you are documenting the steps of a process and end up with Drupal messages displayed that might distract from a screenshot.

Status: There is a stable release available for Drupal 7.

Drupal-up

Categories: Developer, Drush, Utility

The Drupal-up module, written by Kosta Harlan of DesignHammer, is “a Drush extension that facilitates building virtual machines for local development of Drupal sites.” It includes blueprints for virtual machines for hosting Drupal 6–8 -based sites. Looks interesting.

Status: There is a beta release available “for Drupal 7” (presumably, like Drush, the Drupal version is not really applicable).

Drush Hosts Drush Issue Queue Commands

Categories: Developer, Drush, Utility

The Drush Issue Queue Commands module, produced by Greg Anderson, is a Drush extension which includes commands which help manage a Drupal project issue queue, making things simpler for beginners and faster for everyone. I’m sold!

Status: There is a stable release available for Drupal 7.

Entity RDF

Categories: Content, RDF

The Entity RDF module, developed by Stéphane Corlosquet, the primary maintainer of Drupal’s core RDF, is a replacement for Drupal core RDF, which provides tight integration between the RDF mappings and Entity API and attempts to solve shortcomings of the Drupal 7 core RDF module. This is worth keeping an eye on.

Status: There is a development release available for Drupal 7.

Feeds YouTube Fetcher Flag expire Flatfish

Categories: Developer, Import/Export, Media, Third-party Integration

The Flatfish module, developed by Mike Crittenden of Drupal Connect, uses the Ruby gem, Flatfish, to help scrape HTML data and import it into a Drupal site, useful, for instance when migrating an older website into Drupal. It includes other code to help with the migration of the data. I know there are other popular modules for this kind of task, but this could also be worth keeping in mind.

Status: There is a beta release available for Drupal 7.

Icon fonts Image CAPTCHA Refresh

Categories: Content Access Control, Security, Spam Prevention, User Access & Authentication, User Management

The Image CAPTCHA Refresh module, produced by Dmitry Drozdik of VolcanoIdeas, helps with one of the problems of Captcha; if the image is “too easy”, bots can parse the Captcha—too hard and humans have a hard time and might need to refresh the page a few times, which can be a real hassle if they have completely filled out a form. This brings in a feature that is missing in some Captcha plugins: the ability to get a new Captcha without refreshing the whole page and should result in less frustration for users and a lighter load on your server.

Status: There is a stable release available for Drupal 7.

Leaflet More Maps LGP

Categories: Developer

The LGP module, which stands for “Lazy Guinea Pig”, created by develCuy and sponsored by dilygent, is another developer toolset which will help you debug your Drupal code. It can write to a temporary log file, works in places where Devel’s dsm() won’t, and has a number of other features that make me think this is worth knowing about. It also includes a number of Drush commands.

Status: There are development releases available for Drupal 7 and Drupal 8.

Logic Block

Categories: Content Display

The Logic Block module, produced by Pat Lockley, provides a number of configuration options for blocks to allow site administrators to easily perform such actions as merging blocks, replacing one block with another in particular circumstances (e.g. if one block is empty or based on language, role, user ID, etc), and other nifty tricks. I’ve only just experimented with it a bit, but it definitely looks useful.

Status: There is a stable release available for Drupal 7.

Mobile friendly navigation toolbar

Categories: Mobile

The Mobile friendly navigation toolbar module, produced by Gábor Hojtsy of Acquia, is another module developed and released as part of the Spark distribution. As the name implies, it provides a better toolbar for mobile navigation. Like the rest of Spark, it provides a way for us to test and use awesome new Drupal 8 features in our Drupal 7 projects. Very nice!

Status: There is an alpha release available for Drupal 7.

Module configure links

Categories: Administration, Developer, Utility

Module configure links opens the config page for a newly enabled module

The Module configure links module, by Brad Erickson of ChapterThree, helps solve a typical Drupal problem, especially common when working on sites with a lot of modules: you enable a new module, but then need to search around to find its configuration page. This module presents obvious links for configuring any modules activated, for a smoother Drupal site-building workflow. If only one module is activated, it automatically redirects you to the configuration page for that module. I’ve tried it, I like it, and I’ll definitely be using it on more than just my local “module testing” site.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

OpenFolio Features

Categories: Content Display, Features Package

OpenFolio is a distribution for photographers or other visual artists who want to create a web portfolio of their work.

The OpenFolio Features module, developed by Ted Bowman of Six Mile Tech, was released as part of the OpenFolio distribution, also released by Mr Bowman in August. it contains no custom code, but handy exported content types, Views displays, Panels, and other useful bits to help streamline the process of creating an online portfolio site to display visual art. Of course it depends on Features.

Status: There is a development release available for Drupal 7.

OpenLayers Filters Override css

Categories: Theme Enhancements

The Override css module, authored by Wim De Craene of Jeugdwerknet vzw, provides a simpler alternative to Sweaver or Livethemer which allows a client/administrator to make simple changes to site CSS, e.g. changing the color of H1 and H2 headings, through a simple UI, without even having to know any HTML or CSS.

Status: There is a development release available for Drupal 7.

Panels Extra Styles

Categories: Content Display, Third-party Integration, Utility

The Panels Extra Styles module, coded by Sean Dunaway provides additional region and pane styles for Panels with full HTML5 support. Since users are also encouraged to contribute their own styles, the options should increase with time. This looks well worth trying out if you are using Panels.

Status: There is a stable release available for Drupal 7.

Pathinfo

Categories: Developer

The Pathinfo module, authored by Cameron Tod of NBC Universal, is a Devel plugin which displays useful information about which module and function is responsible for the page you are viewing. It links the appropriate Drupal API pages, where applicable, and displays full Krumo output for page arguments. This looks handy for those times you need to fix some issues in a Drupal site, but have no idea where things are coming from.

Status: There are beta releases available for both Drupal 6 and Drupal 7.

Required by role

Categories: Administration, Content Access Control, Fields, Utility

Required By Role checkboxes on the Tags field configuration

The Required by role module, written by Alejandro Tabares, simply adds some extra checkboxes to each field configuration form so that you can not only specify that a field is required (for all roles), but can instead specify that a field is required only for particular roles. I suppose the use cases for this are not so common, but I’m sure I’ve had at least one situation where this would have been useful.

Status: There is a stable release available for Drupal 7.

Resolve IP

Categories: Administration

The Resolve IP module, by Yannis Karampelas of Netstudio, is simple, but very useful for understanding what’s going on in the system log (Watchdog) entries: it resolves the hostname for each IP address so you see (for example) crawl-66-249-66-212.googlebot.com alongside the IP address.

Status: There is a beta release available for Drupal 7.

Responsive Background Images

Categories: Content Display, JavaScript Utilities, Media, Mobile, Performance and Scalability, Theme Enhancements, Third-party Integration, Utility

The Responsive Background Images module, is yet another contribution in the same vein as other modules recently released by Daniel Honrade of Promet Solutions. It provides a range of rules for background image sizes, which it loads based on the size of the browser window. Phones get a smaller background image than iPads, which get a smaller image size than a full-size browser window on an HD monitor. This, of course, helps conserve mobile bandwidth which helps make your whole site more “responsive”.

Status: There is a development release available for Drupal 7.

Search API Extended String Filter

Did you ever want to be able to search partial string using the search API from within views, now you can, supports all the regular (exposed) filters and also 'Starts with', 'Contains', …

Categories: Search, Views

The Search API Extended String Filter module, contributed by Jelle Sebreghts of Attiks, enables searching for partial strings with the full Views search filters.

Status: There is a stable release available for Drupal 7.

Search API stats

Categories: Search, Statistics

The Search API stats module, authored by Brandon Stone of ImageX Media, provides a block which allows users to see your site’s top search phrases. Of course there is a bit more to getting this working than simply adding and enabling the module, but for a search-related module, this looks relatively easy to get working.

Status: There is a stable release available for Drupal 7.

Searchcloud Block Services Entity API Setup

Categories: Utility

The Setup module, developed by Stuart Clark of Realityloop, gives developers and “adventurous site builders” a way to create a script for a client with a series of steps to enter their personal data (e.g. social networking accounts, Google Analytics tracking codes, etc); information which might not have been available during the development process.

Status: There is a beta release available for Drupal 7.

Simple Editor

Categories: Content, Filters/Editors, Media

The Simple Editor module, contributed by Ki H. Kim of Urban Insight, provides an almost-completely pre-configured WYSIWYG editor, based on TinyMCE. The aim is to give users a Wordpress-like, “ready-to-use”, editor, and not to be super-flexible, but if the common use case assumed applies to you, this could be a great time-saver.

Status: There is an alpha release available for Drupal 7.

Simple oEmbed

Categories: Media

The Simple oEmbed module, also by Ki H. Kim, integrates a simple setup of oEmbed with the Simple Editor, to make it easy to add videos and other rich media to content. Like the Simple Editor, it assumes a lot of the configuration, so for less typical use cases, you might want to use the full oEmbed project, which provides additional configuration options.

Status: There is a beta release available for Drupal 7.

Taxonomy Group Fields

Categories: Fields, Taxonomy

Taxonomy Group Fields, by Chris Albrecht of the National Renewable Energy Lab, is a taxonomy selection “widget” intended for larger vocabularies, currently those with two levels of hierarchy (parents and children, but no “grandparents” or “grandchildren”), however the project page indicates that there is an interest in expanding to multiple hierarchy levels, among a number of other useful features. Currently, if a parent is selected, all of its children are automatically included (parent acts as “select all” for children), but the developer also indicates he would like to provide this behavior as an option, rather than as the “only way”. This module is similar to one of my favorite, not-yet-for-D7 taxonomy selection/management tools, Taxonomy Super Select. What TGF lacks (a feature in TSS) is the ability to add new terms; I think it would be cool if it supported adding a new term into any group (with role-based limits on adding new terms). But there are so many use cases for Taxonomy widgets that it’s probably best to just create a limited module that does one thing well rather than trying to be everything for everyone.

Status: There is a development release available for Drupal 7.

Taxonomy Orphanage Theme Hider

Categories: Theme Enhancements

The Theme Hider module, authored by Victor Quinn, provides a method for site administrators to hide particular themes on sites where users are allowed to select their preferred theme. Some enabled themes might only be for admin or for special purposes, so this is a good thing to have if you want your site to be displayed nicely for everyone.

Status: There is a stable release available for Drupal 6.

tinynav.js

Categories: JavaScript Utilities, Third-party Integration

The tinynav.js module is another contribution from Bryan Ollendyke. It integrates the tinynav.js jQuery library, which converts a typical list-based menu into a select-list drop-down if the browser window is narrow (e.g. on smaller displays). It’s extremely light-weight at only 362 bytes (minimized and gzipped). This module provides a number of configuration options and was designed for use with the Chamfer theme, but also should work well with other Omega-based themes (what it’s been tested with) and possibly other themes. Looks good!

Status: There is a beta release available for Drupal 7.

URL Alias Permissions User Import Framework Plus Visual select file Webform Email Raw

Emailing raw, unfiltered (filter_xss) data from a Webform submission can be risky, so only use this module if you absolutely require this behavior and understand the risks.

Categories: Mail

The Webform Email Raw module, contributed by Robert Bates of Phase2 Technology, provides a solution for sending raw, unfiltered XML from Webform submissions.

Status: There is an alpha release available for Drupal 7.

Webform Serial WireDocs

Categories: Content, Content Access Control, Fields, File Management, Filters/Editors, Utility

… a large legacy of documents in proprietary formats, such as MS Word or Excel, may discourage from moving to an online editor. Additionally, legal issues might arise if confidential files are hosted by a third party service provider.

The WireDocs module, from Gottfried Nindl of OSCE, allows your Drupal site to host files in various office formats which can be opened (seamlessly downloaded and opened by a native, local application), edited, and saved (seamlessly uploaded back to the server) with a Java applet that bridges the gap between Drupal and the client operating systems. This looks like a pretty cool alternative to third-party document-hosting systems.

Status: There is a beta release available for Drupal 7.

Sep 07 2012
Sep 07

Drupal 8 Multilingual Initiative Code Sprint weekend

I took a train from Frankfurt (Germany) down to Munich the Saturday before the DrupalCon. When I joined the Multilingual Sprint on Sunday morning, many of them had already been sprinting for a full day and a number of issues were ready for review, so I dived in, observing the behavior of Drupal 8 before and after applying patches, proof-reading the patches for anything odd (e.g. typos in the documentation), discussing the issues in comments and in IRC with people who were sitting just across the room (other times actually speaking in person). By the end of the day, instead of the dozen or so people that Gábor Hojtsy, the Multilingual Initiative team lead, had expected, there were close to 50 people at the location, some joining us in the work on Multilingual issues, some working on other Drupal 8 tasks, and some who were just arriving in Munich and followed the Tweets to where we were. Luckily, the location rented for the Saturdays and Sundays before and after the DrupalCon week was big enough to accommodate all the extra arrivals.

While on the topic of the venue we used for those weekends, I’d like to personally thank Stephan Luckow and Florian (“Floh”) Klare of the Drupal-Initiative e.V. for all that they did to find a nice place that would still leave us with a budget for food and for their valiant work on stretching the food budget while still serving up excellent fare, in keeping with the fantastic meals we enjoyed the rest of the week. Instead of ordering delivery, they prepared almost everything themselves, including beautiful open-face sandwiches, fruit platters, and lovely grilled specialties at a club we went to where you can barbecue in the Biergarten.

…thanks for the huge help to the local organizers, especially Florian Klare and Stephan Luckow. They helped us manage collecting and spending sponsor money wisely with the Drupal Initiative e.V, prepared great sandwiches and fruit plates for us and even organized a sprinter party night with grill food. It was amazing to work with such helpful and flexible local organizers.
Gábor Hojtsy, September 5, 2012

Luckow and SirFiChi of the Drupal Initiative, organized the location and made us great food!

Since people were “fresh”, I think a lot of work got done on the first weekend and the Monday before the conference (more than 50 people joined us and worked on various core initiatives on Monday in the room we later used for core most conversations at the Sheraton), which also meant that issues were still fresh in our minds while we had days of sessions and conversations, so when we started sprinting again on Friday we had lots of new ideas for the tasks we were still working on. Friday’s sprints were at the Westin Grand, where there was great attendance both upstairs in the main room as well as a large room downstairs from it, where Drupalize.me hosted a core contribution workshop to ease people into the process of contributing to core. I decided to go to that workshop since I’m still pretty new to it all and found a few people sitting nearby who were I was also able to interest in some Multilingual tasks, so while the main group sprinted upstairs, we also worked downstairs. Later on, I came upstairs, and since there were not a lot of simpler tasks for “core newbies”, like myself, I took some time to sprint on a module I contributed some time back, before there was much of anything for Drupal 7 in the area of “multilingual”… and tried to make my module more multilingual-friendly. I got a few good commits and a new release out for Internal Links and also recruited a colleague to look at the code with me, provide some ideas, and become another maintainer. So I personally found Friday quite productive.

*/ First off, a sprint on this scale would not be possible without sponsors and significant on-site help. DrupalCon provided us with space on Monday and Friday, and some great food on Friday. The rest of the days would not have been doable without comm-press, dotProjects.be, Open8.se, OSINet and Acquia. The [ … ] financial sponsorships they provided paid for our weekend venue [ … ].

I continued sprinting with the Multilingual initiative at the Film Coop Saturday and Sunday, leaving mid-afternoon on Sunday to get back to the train station. When I left the other sprinters, Webchick was only finally getting some rest after her trip home and we had about 20 issues that were marked “RTBC”. In all, there were dozens of issues tackled over the weekend. For a complete overview of all the issues we made progress on, see Gábor’s post about the sprints, where you can also check out his excellent DrupalCon core conversation presentation, “Drupal 8’s Multilingual Wonderland”. There is still a lot to do in the time between now and the “feature freeze” deadline, but we made good progress in the DrupalCon sprints, so hopefully we can push on and get the rest of the critical tasks done in the time remaining.

One of the less trivial tasks I took on during the final sprint weekend was documenting the new language_select field type, which involved checking out the Drupal API (documentation) project, updating the Form API table to include a new Element column (language_select) and Property row (#languages), as well as information about these (below the table) and linking them in all the appropriate places. Currently, updating this page is a bit of a pain, but hopefully we will move to a better system for maintaining this information, perhaps even automated generation. While I’d worked on other Drupal documentation pages before, this was the first time I’d actually contributed patches to update the API, so it was a good learning experience.

If you’d like to help out with the Multilingual initiative or other core contribution, you might first want to take a look at the Drupal 8 Initiatives page, where announcements about coming IRC meeting can be seen. This page also has links to the news, roadmaps, filtered issues, and other pertinent information. Drupalladder.org is also a great place to go for lessons to help you work through the steps of being ready to contribute to Drupal core.

I look forward to seeing you all in IRC and in coming code sprints.

Sep 07 2012
Sep 07

I started writing this post at the DrupalCon and then continued work on it on the train back home after a long week, last Sunday after the code sprints—even now, more than a week later (after being ill for a week—I think I was burning the candle at both ends for a bit too long), it’s hard to believe that it’s finally over. I arrived the weekend before to participate in the pre-con code sprints and stayed for the Friday–Sunday after the conference to continue that effort. I’ll write about the sprints in another post. This one will cover the highlights of the actual DrupalCon, what I think worked well, and recommendations for those attending their first DrupalCon; with two new continents getting a ’con this year, I think there will be more than a few at their first.

The food at DrupalCon Munich was great

For me, one of the major highlights of this conference was the outstanding food quality. It was so good I was distracted enough I never pulled out my camera to take photos of i, but it was attractive, gourmet, and delicious and there was something for everyone, even a fantastic salad buffet as well as more desserts than anyone could try… and hot dishes with plenty of options for both vegetarians and omnivores, alike. In the closing plenary, it was revealed that the catering costs for the event were about €352,000 for the 1800+ of us in attendance; not surprising for the quality and abundant variety of fare they served us. Food service tables were put in place in all areas of the conference so that there was no crowding into one area and the same dishes were provided at both the Sheraton and the Westin Grand, which were a few minutes’ walk away from each other. The conference occupied the three conference center floors of the Westin Grand and a few smaller rooms in the Sheraton, which were primarily “core conversations”. One might think I would gorge myself, but most days I had simple salad items, walnuts, and seeds… and gave myself a break before finishing with some fresh fruit and a light mousse from the dessert buffet. Despite the fact that the days were hot and many of the rooms weren’t well conditioned, people were alert and in good spirits and I think the food had more than a bit to do with that.

To continue a moment in the vein of “food”, since I really do think it was notable at this DrupalCon, I hope this reflects some new recognition of the importance of good sustenance when organizing a successful event like this. And I hope that future Drupal events will also place emphasis on food quality. That said, I also think that the community would pull together if we had commercial kitchen space and quality ingredients—we could prepare similar gourmet meals without quite the budget we used for catering at this conference; on the other hand, such a model might work better at one of the large DrupalCamps (a few hundred attendees) than at a huge (North American or European) DrupalCon. Of course preparing our own food would provide another place for people to connect (food preparation and more volunteer service), which I think would offset the downsides (not being able to be someplace else whenever you have “kitchen duty”).

The Venue

munich_olympic-park.jpg

Munich is a beautiful city I’d never really visited before the DrupalCon. Public transportation was not too expensive, but I got to see a bit more of Munich by walking almost everywhere, so my walks back from the pre-conference sprints and out to dinner (beer) in the evening were mostly through parks where I got to see the huge Olympics installation and unusual sights like Munich’s famous river surfing.

Surfers have a man-made wave on the Eichbach

Sessions and participation

Choosing sessions

This was my second time attending a DrupalCon and I decided I wanted to primarily attend the “core conversations” track (with a few exceptions). For those who don’t know, the “core conversations” sessions are where plans for the future of Drupal are presented, discussed, and refined. It’s truly an amazing experience to sit in a room with dozens of top-notch developers as they hash out the architecture for new Drupal features or present the innovations they have already completed. Of course participating in the Drupal 8 (Multilingual initiative) sprints in Barcelona (a couple months ago) and before and after the DrupalCon session days probably also spurred my interest in the areas being covered by other initiatives, but it is definitely an interesting track if you are not sure what to attend. In the past, core conversations were often not fully recorded, another reason I chose to attend this track, but it looks like you can view most core conversations pretty well now, online. If you missed them and are interested in the future of Drupal (i.e. Drupal 8), there are many that you might want to watch.

Volunteering

Another first for me was helping the DrupalCon staff as a volunteer, mostly monitoring the rooms I was in and taking a head-count in mid-session. Other activities of a room monitor included being a bit early and making sure the speakers had everything they needed; I got to loan out a display adapter for one session and was prepared with multiple power adapters if anyone happened to be missing a way to plug in—we also tried to make sure that questions were recorded in session audio (either by having those with questions come to a microphone or the speaker repeating the question). I found volunteering rewarding and I thank Adam Hill, the DrupalCon Munich volunteer coordinator, for being a great guy to work with.

DrupalCon Munich Volunteers

Drupal 8 will be great!

Angie Byron’s current overview of Drupal 8 (aka “”) had not changed a lot since I last saw her similar presentation at the “Developer Days” in Barcelona a couple of months earlier, but it filled the largest session room, so there may have been close to 1,000 in attendance. Some features are more polished, some of the features are not yet written, but are better conceptualized than they were a couple of months ago, but the general ideas are mostly the same so in a presentation providing an overview of Drupal 8, while much has changed, it wasn’t much that affected the presentation. I’ve take the liberty to add a few specifics which were actually covered in separate sessions (sessions which covered each core initiative, for example), just for the sake of brevity and consolidation of information.

Webchick presents an overview of Drupal 8 features and initiatives

One key point that was made by all Drupal 8 core initiative leads is that we are only 3 months away from “Feature freeze” for Drupal 8 (December 1st, 2012), so it’s time to pitch in and try to help get all the great planned features into Drupal 8. All of the major initiatives need help and have areas where they are behind schedule as far as being ready for the freeze deadline with all the features the community would like to have in core.

Key Drupal 8 initiatives and components

- This finally ends the problem of having an evolving set of configuration on the development/staging sites which needs to be moved to production… but can’t be since the configuration (in Drupal 6 and 7) tends to be all over the place. Having a set of YAML documents stored in your sites “files” directory is a good way to manage and deploy common patterns to multiple sites, update configuration on production sites, etc. And it gets around the issue that pushing a database update from a development/staging server to production might overwrite actual content. So we now have a working configuration management system based on YAML files and a developers’ API, but no user interface for adjusting configurations; the UI still needs to be written. We also need ways to determine if configuration has been changed on the production server, have a range of multilingual configuration issues to still resolve, and performance issues, among other outstanding tasks. Join the #drupal-cmi IRC channel during the CMI meeting times and work on the issue queue if you want to help get the CMI full-featured for Drupal 8. Most active work is in the CMI sandbox repository.

deals with helping sort out inconsistencies and inflexibility in the core blocks functionality. It’s been described as, “Like panels in core, only better”… well at least that’s the goal. Everything on a page has context and is a block or layout/nested layout. Since blocks are rendered independently, caching is well-supported. A responsive layout designer from Spark can allow you to figure out your layouts for different screen sizes without a ton of divs complicating their HTML. If you would like to help with improving Drupal 8 layouts, there are office hours every Friday in Drupal IRC in the #drupal-scotch channel and you can read more about their current issues by looking at the “sandbox” project for the Drupal 8 Blocks and Layouts Everywhere initiative (it is not yet in the 8.x master branch of Drupal).

features will be in core and better than ever before. Interface translation, content translation, base language functionality and language configuration are all being greatly simplified so that it can all be in core with a nice, normal workflow. A lot of the real “pain points” with multilingual sites (or even simply non-English ones) have already been addressed and there is a ton that’s been done, but there is still a lot more to complete in the next three months if we want to really consider this a success. A lot of great progress was made during the code sprints before and after the conference. If you would like to help improve the Multilingual workflow in Drupal 8, there are lots of ways for anyone new to Drupal core development to still pitch in. There many open issues and many ways to move them forward without even writing a single patch. The best place to find active issues is probably to look at Gábor Hojtsy’s “focus issues” list. You can join the Drupal Multilingual initiative meetings in IRC (#drupal-i18n). See the meeting schedule on the main Drupal 8 initiatives’ help page.

is one of the biggest initiatives in terms of importance to Drupal 8’s success… ensuring that a site is responsive to the display size and has toolbars which nicely resize for device type is one of the major aspects of this work. We need good front-end performance for running on smaller, lower-powered devices; we need good, solid, clean, uncomplicated HTML5 code, and we need to be able to support easily using Drupal as a back-end for native mobile apps, purely responsive web design, web apps, or anything in between. There are some big parts of this which are not far along yet, so this is a great place for front-end developers and others interested in Drupal 8 mobile experience to get involved. One current obstacle to the Mobile initiative achieving its goals is greater completion of the Web Services initiative (WSCCI) also achieving its goals. Otherwise, John Albin Wilkins, the Mobile initiative project lead indicated two other areas which need a lot of work: front-end performance and the Drupal 8 mobile admin interface, likely designed with Spark’s Responsive Layout Builder. There are regular meetings on IRC (see meeting schedule on the mobile initiative’s official Drupal Groups page) and the Drupal 8 issue queue has a tag for "mobile" so it’s easy to jump in and help make mobile support rock in Drupal 8. You don’t need to be a rocket scientist to help move the issue queue along. As Dries and others have indicated, this might be the primary initiative for determining Drupal’s future success, given current trends.

: One of the highlights of DrupalCon Munich sessions certainly had to be Angie Byron and the Spark team’s presentation of all the awesomeness that comes from the Spark-distribution modules. Spark is only still in “alpha”, but you can already tell how amazing the features are. The idea is that while they design the perfect authoring experience for Drupal 8, the community can use, test, and help to refine the new functionality (in Drupal 7 via the Spark distribution) so that the feature-set will be well-tested and as awesome as possible when Drupal 8 is launched. Spark allows you to simply edit content, in-place (via the Aloha editor used by the Edit module) and also has a number of nice tools for designing responsive layouts, and has a tool palette which pulls out from the side and responsively adapts to the device. The goal is for the editor system to output only clean code without a mess of ugly divs and inline styling… and the editor is already living up to most of that promise. Words don’t really do Spark justice, so rather than take my word, you can try the demo. Note: Since anyone can make changes to the demo site that might be a bit weird, if things are really messed up, you can check back later. And of course reviewing patches in the Spark issue queue and creating new issues, where applicable, can help smooth the way to getting the envisioned “perfect” content authoring experience into Drupal 8.x core.

The Aquia Spark team prepare their presentation at DrupalCon Munich.

: Theming/Templating improvements in Drupal 8 include the use of Twig, a templating system also designed by Fabien Potencier of Symfony. It eliminates PHP from the theming layer for simpler code and removal of many security threats. The work on Twig does figure heavily into some of the initiatives, but is not an official core initiative on its own. Work is being done in a Twig sandbox led by Andreas Sahle of Wunderkraut. If you are interested in helping build this up, you can check out this sandbox and assist with the issues.

: Drupal 7 was released in January 2011, but it took over a year before there were enough of the important contrib modules ready enough for it that Drupal 6 was finally surpassed (in terms of numbers of Drupal 7 installations). Getting Views into core will hopefully help boost the uptake of Drupal 8 use as soon as it’s released. This will be a lot of work and there is a fund to help pay for development time. A lot of Drupal 8 Views features actually already work. Major parts of cTools are now in core. There is a funding request for getting Views into core (I threw 10 € into the donation box at the DrupalCamp in Barcelona), and the more we can donate, the more the Views team can allocate paid developer time to ensure that Drupal has a nice version of Views available when it ships. Of course you can also help with the Views for Drupal 8.x issues.

in core (only better). There is still a lot to do, but the idea is that the site can take any kind of request and send appropriate responses without a lot of headache. A lot of Symfony components being brought into Drupal are especially important here. Symfony integration helps bridge a gap between ours and the also-dynamic PHP-based developer community around Symfony, so should help provide a lot more experienced developers for Drupal. There is still a lot to do here; you can check out the current status via the WSCCI sandbox and help with the issue queue. See the core initiatives overview page for IRC meeting times and details. If you weren’t there for Larry Garfield’s Munich presentation, Web Services and Symfony Core Initiative, you can still watch it to get a good overview.

Automated testing in Drupal 8 is much faster and the Symfony components also help allow us to have more modular modules… ones which can more easily be unit-tested. In Drupal 8, PHPUnit will replace Simpletest although the latter may remain in core for a transition period.

The social side of the DrupalCon

What happens between sessions is the real reason that most of us go to DrupalCons. There is nothing quite like participating in code sprints with Webchick sitting across the room, committing the patches you’ve just been helping with. And of course you can take your favorite Drupal developer out for a beer or something. It’s great to be in an atmosphere where there are thousands of people who actually have an idea what you are talking about when you tell them your occupation—and of course it’s nice, for a change, to be able to leave out any explanation of Drupal. If you go to a DrupalCon, it’s a given that you will leave having made new friends—new friends who will feel a bit more like “old friends” the next time you see them.

More DrupalCons in the coming year than ever before

If you have never been to a DrupalCon, there are more DrupalCons coming in the next year than we’ve ever had in a year period, before. Granted, the two new (Australia / South America) cons are planned as smaller events that would actually be dwarfed by some of the larger DrupalCamps, but this is all a sign that Drupal is growing, world-wide. Note that the U.S. and European DrupalCons are both being held a bit later than in previous years. I look forward to seeing you all at a coming DrupalCon.

Sep 06 2012
Sep 06

Drupal 8 Multilingual Initiative Code Sprint weekend

I took a train from Frankfurt (Germany) down to Munich the Saturday before the DrupalCon. When I joined the Multilingual Sprint on Sunday morning, many of them had already been sprinting for a full day and a number of issues were ready for review, so I dived in, observing the behavior of Drupal 8 before and after applying patches, proof-reading the patches for anything odd (e.g. typos in the documentation), discussing the issues in comments and in IRC with people who were sitting just across the room (other times actually speaking in person). By the end of the day, instead of the dozen or so people that Gábor Hojtsy, the Multilingual Initiative team lead, had expected, there were close to 50 people at the location, some joining us in the work on Multilingual issues, some working on other Drupal 8 tasks, and some who were just arriving in Munich and followed the Tweets to where we were. Luckily, the location rented for the Saturdays and Sundays before and after the DrupalCon week was big enough to accommodate all the extra arrivals.

While on the topic of the venue we used for those weekends, I’d like to personally thank Stephan Luckow and Florian (“Floh”) Klare of the Drupal-Initiative e.V. for all that they did to find a nice place that would still leave us with a budget for food and for their valiant work on stretching the food budget while still serving up excellent fare, in keeping with the fantastic meals we enjoyed the rest of the week. Instead of ordering delivery, they prepared almost everything themselves, including beautiful open-face sandwiches, fruit platters, and lovely grilled specialties at a club we went to where you can barbecue in the Biergarten.

…thanks for the huge help to the local organizers, especially Florian Klare and Stephan Luckow. They helped us manage collecting and spending sponsor money wisely with the Drupal Initiative e.V, prepared great sandwiches and fruit plates for us and even organized a sprinter party night with grill food. It was amazing to work with such helpful and flexible local organizers.
Gábor Hojtsy, September 5, 2012

Luckow and SirFiChi of the Drupal Initiative, organized the location and made us great food!

Since people were “fresh”, I think a lot of work got done on the first weekend and the Monday before the conference (more than 50 people joined us and worked on various core initiatives on Monday in the room we later used for core most conversations at the Sheraton), which also meant that issues were still fresh in our minds while we had days of sessions and conversations, so when we started sprinting again on Friday we had lots of new ideas for the tasks we were still working on. Friday’s sprints were at the Westin Grand, where there was great attendance both upstairs in the main room as well as a large room downstairs from it, where Drupalize.me hosted a core contribution workshop to ease people into the process of contributing to core. I decided to go to that workshop since I’m still pretty new to it all and found a few people sitting nearby who were I was also able to interest in some Multilingual tasks, so while the main group sprinted upstairs, we also worked downstairs. Later on, I came upstairs, and since there were not a lot of simpler tasks for “core newbies”, like myself, I took some time to sprint on a module I contributed some time back, before there was much of anything for Drupal 7 in the area of “multilingual”… and tried to make my module more multilingual-friendly. I got a few good commits and a new release out for Internal Links and also recruited a colleague to look at the code with me, provide some ideas, and become another maintainer. So I personally found Friday quite productive.

First off, a sprint on this scale would not be possible without sponsors and significant on-site help. DrupalCon provided us with space on Monday and Friday, and some great food on Friday. The rest of the days would not have been doable without comm-press, dotProjects.be, Open8.se, OSINet and Acquia. The [ … ] financial sponsorships they provided paid for our weekend venue [ … ].

I continued sprinting with the Multilingual initiative at the Film Coop Saturday and Sunday, leaving mid-afternoon on Sunday to get back to the train station. When I left the other sprinters, Webchick was only finally getting some rest after her trip home and we had about 20 issues that were marked “RTBC”. In all, there were dozens of issues tackled over the weekend. For a complete overview of all the issues we made progress on, see Gábor’s post about the sprints, where you can also check out his excellent DrupalCon core conversation presentation, “Drupal 8’s Multilingual Wonderland”. There is still a lot to do in the time between now and the “feature freeze” deadline, but we made good progress in the DrupalCon sprints, so hopefully we can push on and get the rest of the critical tasks done in the time remaining.

One of the less trivial tasks I took on during the final sprint weekend was documenting the new language_select field type, which involved checking out the Drupal API (documentation) project, updating the Form API table to include a new Element column (language_select) and Property row (#languages), as well as information about these (below the table) and linking them in all the appropriate places. Currently, updating this page is a bit of a pain, but hopefully we will move to a better system for maintaining this information, perhaps even automated generation. While I’d worked on other Drupal documentation pages before, this was the first time I’d actually contributed patches to update the API, so it was a good learning experience.

If you’d like to help out with the Multilingual initiative or other core contribution, you might first want to take a look at the Drupal 8 Initiatives page, where announcements about coming IRC meeting can be seen. This page also has links to the news, roadmaps, filtered issues, and other pertinent information. Drupalladder.org is also a great place to go for lessons to help you work through the steps of being ready to contribute to Drupal core.

I look forward to seeing you all in IRC and in coming code sprints.

Aug 08 2012
Aug 08
Modules of the month story banner illustration.

July saw a bumper crop of interesting new modules contributed, many of them with already-stable Drupal 7 releases. The kind of modules being released now also seems to be indicative of Drupal 7’s level of maturity. We are no longer seeing the modules which fill gaping holes in the standard feature-set, but now we are seeing loads of performance-enhancements, accessibility improvements, productivity tools for Drupal developers, backports of Drupal 8 awesomeness, mobile theming augmentation, and integrations with non-PHP-based systems, just to name a few of the common categories that seem to be trending at this point in the release cycle. And the mainstay modules that have had some major issues have almost entirely been released in stable versions (but they are not within the remit of this article). Yes, things are looking good.

Indeed, there are so many interesting new modules this month, that it’s harder than ever to choose which ones are worthy of profiling here, so the list is quite a bit longer than normal. I hope you are as excited as I am to see all the cool stuff that’s now easier-than-ever to do with your Drupal-based site.

As usual, this list does not include most “integration modules” for fee-based commercial services and likewise leaves out modules which, at time of review, did not have an official release of any kind. Modules for very “niche” audiences (such as those for integration of regional services) are also omitted, among others which seemed a bit too complicated to provide a short explanation of what they bring to the table. It’s possible some of these more complex modules might be covered in separate articles, though.

Enough with the caveats and chit-chat… let’s look at the modules!

Accessible Skip Links Add link to copied text

Categories: JavaScript Utilities, SEO

The Add link to copied text module, written by Andrew Berezovsky of Axel Springer Russia, requires adding the jQuery addtocopy add-on to your site, but once that’s available and this module is enabled, text copied from your site will include a link to the page where it came from, so it will make it easier for would-be plagiarists to give credit where credit is due and for students and researchers to collect attribution along with information.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Alternative Database Cache

Categories: Performance and Scalability

If you know much about Drupal’s native caching system, you probably know there is room for improvement. The Alternative Database Cache module, written by Eric Peterson of Tableau Software helps fill the gaps by providing more options and enhancements, thus helping prevent the negative impact on performance that comes with the default core functionality.

Status: There is a beta release available for Drupal 7.

Apache Solr Config Generator Article Jump

Categories: JavaScript Utilities, Site Navigation

The Article Jump module, written by Bart Lantz, allows for configuration of hotkeys to scroll forward and backward through a list of articles; I could try to further describe how it works, but there is a very cool demo site linked on the project page. You’ll just need to add the Libraries module, if you aren’t already using it, drop in a small Javascript file, and this module should be ready for use.

Status: There is a stable release available for Drupal 7.

Awkward Showcase

Categories: Fields, JavaScript Utilities, Views

The Awkward Showcase module, written by Carson Black of BCI Interactive, integrates the oddly-named Awkward jQuery plug-in, which seems to be anything but awkward. The Awkward demo site is one of the coolest things I’ve seen! There are so many options for the slideshow and presentation of information that it’s sure to amaze even the most jaded web users. Once you try this, you’ll be wanting to make all kinds of awkward sites!

Status: There is a beta release available for Drupal 7.

Better Revisions

Categories: Administration, Content, Utility

The Better Revisions module, by Roy Baxter, is well worth using. It replaces the text area, where users are expected to explain their content revisions, with a simple select list to make it easy for people to consistently provide a simple reason for their edits. This should help boost your editorial staff’s productivity, too!

Status: There is a stable release available for Drupal 7.

Block ARIA Landmark Roles

Categories: Content, Content Display

The Block ARIA Landmark Roles module, produced by Oliver Davies, is yet another module aimed at improving Drupal’s support for accessibility standards. If you aren’t familiar with ARIA landmark roles, the article I’ve just linked from the W3C should help. In short, it provides better support for Drupal’s theming layer for people using assistive technologies and that’s definitely a GoodThing™!.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Blockexport

Categories: Features Package

The Blockexport module, written by Washim Ahmed of Ericsson India Global Services Pvt Ltd, is a Features add-on which helps gather all your custom blocks and makes them exportable. Cool beans!

Status: There is a stable release available for Drupal 7.

Block Lazyloader

Categories: Content Display, JavaScript Utilities, Mobile, Performance and Scalability, Theme Enhancements, Third-party Integration, Utility

The Block Lazyloader module, produced by Daniel Honrade of Promet Solutions, helps boost your page loads, but is best described with its demo. It’s one of the modules released this month which should help with your site’s performance and definitely has a coolness factor, too. It’s certainly worth giving a try.

Status: There is a development release available for Drupal 7.

Breakpoints

Categories: FieldsContent Display, Mobile

The Breakpoints module, written by Belgian star contributor Peter Droogmans of Attiks, provides support for responsive images and styles, setting minimum widths for various content elements and screens.

Status: There is a beta release available for Drupal 7.

Browscap Block & Browscap CTool

Categories: Content Display, Mobile, Utility

The Browscap Block and Browscap CTools modules, both contributed by Jeff Burnz of Adaptivethemes, give you the ability to show or hid blocks or panels, depending on the device. These modules fall squarely into the category of mobile theme enhancements.

Status: There is a stable release available for Drupal 7.

Class Loader

Categories: Developer

The Class Loader module, developed by Daniel F. Kudwien of unleashed mind, allows developers to take advantage of some of the benefits of lazy-loading classes provided by Symfony. It’s a direct back-port from Drupal 8.

Status: There is a stable release available for Drupal 7.

Clean missing modules Comments as Block

Categories: Content Display

As the name implies, the Comments as Block module, created by Solomon Gifford, allows you to put comments on content into a block which can be placed wherever you like, rather than placed with node content. This could be very handy!

Status: There is a stable release available for Drupal 7.

Commerce Donate

Categories: Commerce/Advertising

The Commerce Donate module, contributed by Stella Power of Annertech, perhaps best known by developers for her “stellar” work on the Coder module, but also a key figure behind the Lightbox2 and FAQ, among others, is a useful module for allowing visitors to make donations and manages them in a simple Commerce checkout process.

Status: There is a beta release available for Drupal 7.

Commerce Product Popularity Configuration builder Contact Info

Categories: Location

The Contact Info module, developed by Daniel Boulet, is a simple module which allows a Drupal site builder to fill in a form with their contact details and it provides an hCard-formatted block that you can place wherever you want. Looks pretty nifty!

Status: There is an RC release available for Drupal 7.

Context Disable Context Diskfree

Categories: Security, Utility

The Diskfree module, created by super-contributor David Norman of Classic Graphics, provides a warning if your Drupal server’s remaining drive space drops below a configurable level.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Drupal Hybrid Computing

Categories: Developer, Drush, Import/Export, Statistics, Third-party Integration, Utility

The Drupal Hybrid Computing module, written by Daniel Zhou of University of Michigan School of Information, gives your Drupal site an easy way to integrate non-PHP-based services, such to access JDBC-based data, Apache Mahout, or many other systems used for data mining, statistical analysis, visualization, etc. It’s fairly complex and still under active development, so it’s probably best to just look at the project page for more information, but this definitely does look like it could be a real winner!

Status: There is an alpha release available for Drupal 7.

Drush CTools Export Bonus Entity JSON

Categories: Content Display

The Entity JSON module, by Ian Carrico, provides an API for allowing Drupal entities, configurable per-entity, to be displayed as JSON output. This could certainly be useful.

Status: There is a stable release available for Drupal 7.

EPUB Export

Categories: Content

The EPUB Export module, written by Jeff Graham of FunnyMonkey, provides a method for allowing you to output EPUB 3.0 documents from content on your site. There are libraries to add and a number of configuration steps, so don’t expect this to be a simple drop-in-and-export process, but it does look very useful.

Status: There is a development release available for Drupal 7.

Exam

Categories: Content

The Exam module, coded by Svein-Tore Griff With, provides a method for allowing an educational site to be used in “exam mode” to test students. This looks particularly interesting for Drupal sites for universities or other educational institutions.

Status: There is an RC release available for Drupal 7.

Field instance cardinality

Categories: Fields

The Field instance cardinality module, created by Joachim Noreiko, allows fields with multiple options to be limited according to specific instances, so a field that might be a select list in one place could be displayed as a single option (checkbox), in another. It’s very useful, even if the purpose is not immediately clear by the module name—this should probably be in “core”.

Status: There is a stable release available for Drupal 7.

Field Rules

Categories: Fields, Rules

The Field Rules module, authored by Mitchell Tannenbaum, has such a simple description, it’s probably best I just quote it:

Provides Rules integration for creating fields, field instances, and node types.

I think I’ll have to try this out to really understand it, but the maintainer has been involved in the Rules project for a long time, so I suspect this is worthwhile, too.

Status: There is an alpha release available for Drupal 7.

fieldscheduler

Categories: Fields

The fieldscheduler module, written by Rajan Mayekar, allows individual fields, rather than just content, to have start and expiration dates, so you can control when a field will be visible.

Status: There is a dev release available for Drupal 7.

File Checker

Categories: File Management

The File Checker module, produced by Gottfried Nindl of OSCE, helps identify missing files in your Drupal files directory so that you can remedy the situation. Stuff happens and modules like this can help you to be aware of the problem.

Status: There is a beta release available for Drupal 6. And there is some discussion in the issue queue about a D7 port, too.

Flag Follow

Categories: ContentCommunity

The Flag Follow module, created by Chhavi Kaushik of Srijan Technologies, India, uses the Heartbeat and Flag modules to provide a system for tracking the activities of other authenticated users in a Drupal system.

Status: There is a stable release available for Drupal 7.

Form API Helper

Categories: Developer

The Form API Helper module, developed by Noah Lively, helps simplify the creation of forms with the Form API. It’s a developer productivity tool that certainly looks promising.

Status: There are alpha releases available for both Drupal 6 and Drupal 7.

Form Builder Field

Categories: Content, Content Display, Fields, Mail

The Form Builder Field uses the Form Builder module for the ability to build forms on a entity basis.

The Form Builder Field module, coded by Neil Hastings of Phase2 Technology, is another interesting module to help with forms. I’m not sure I really understand how this is supposed to work, but given Phase2’s involvement, I trust this is well worth experimenting with.

Status: There is an alpha release available for Drupal 7.

Geo-comments Geofield Gmap Grid builder

Categories: Administration

The Grid builder module, developed by Gábor Hojtsy of Acquia, is a part of Spark which has been made generic enough that it could be useful for other use cases. It helps with grid layouts. From what I’ve seen, anything in Spark is going to be awesome and I’m sure this is no exception!

Status: There is a development release available for Drupal 7.

Hide the Toolbar

Categories: Administration

The Hide the Toolbar module, created by Oliver Davies, is one I have not yet tried, but will certainly use since I’m a big fan of the Administrator Menu and this module automagically hides the built-in toolbar for anyone who has access to the Admin Menu. Normally, I just turn off the Toolbar module and activate Admin menu, but this module would be useful for the situations where you still want the Toolbar to be available to other users.

Status: There is a stable release available for Drupal 7.

Image Lazyloader

Categories: Content Display, File Management, JavaScript Utilities, Media, Mobile, Performance and Scalability, Theme Enhancements, Utility

The Image Lazyloader module is another release by Daniel Honrade of Promet Solutions. It helps your site load more quickly by lazy-loading images as they become visible in the browser window. In other words, a long page with lots of images will load the top images first and if you quickly jump to the bottom, it will load the images there, etc. Nice one… did I mention it looks very cool, too? It has a nice “loading” spinner in the spots for each image before they load up.

Status: There is a stable release available for Drupal 7.

Inference Rules

Categories: Content, RDF, Rules

The Inference Rules module, is another Rules-related module by Mitchell Tannenbaum and it definitely looks interesting, albeit complex. It provides a system for discovering relationships between between content; how this works and what it’s suited for is a topic suitable for a much longer article than this one, perhaps, but reading the project description might give you some ideas.

Status: There is an alpha release available for Drupal 7.

Interactive Information Bar Internet Defense League IP Geolocation Block Javascript Tool

Categories: Administration

The Javascript Tool module, written by Washim Ahmed of Ericsson India Global Services, uses the codemirror library to allow site administrators to directly edit any Javascript files on a Drupal site. Too cool! Of course this also requires the Libraries module, but you already use that, don’t you?

Status: There is a stable release available for Drupal 7.

JpGraph

Categories: Import/Export, Statistics

The JpGraph module, produced by Pol Dell'Aiera uses the Libraries module to integrate the JpGraph library into your Drupal site so that you can do all kinds of cool graphing.

Status: There is a stable release available for Drupal 7.

jQuery Countdown Timer

Categories: JavaScript Utilities

The jQuery Countdown Timer module, developed by Marcin Pajdzik, is a simple and light-weight module for displaying a block with a count-down for any significant event. It uses only jQuery and CSS (no images) and looks sharp. Take a look at the demo.

Status: There is a stable release available for Drupal 7.

JUpload

Categories: File Management, Media, Third-party Integration, Utility

The JUpload module, written by Kevin Reynen of makedatamakesense, allows you to upload HUGE files to your Drupal site and does so by integrating the GPL-licensed JUpload Java application, so you can upload massive video files that are larger than 2GB, for example. It uses FTP rather than HTTP post to eliminate issues with PHP’s maximum upload limits. Clearly this isn’t for every site, but it looks very useful for certain use cases.

Status: There is a development release available for Drupal 7.

Language Selection Page

Categories: Multilingual

This is useful in situations where you don't want to enforce a default language to users (e.g. because of political or corporate sensitivities) if they come to your website without a language preference available…

The Language Selection Page module, is another project from Pol Dell'Aiera. It provides a language selection landing-page on your site, based on any languages active in your Drupal installation. I like it.

Status: There are dev releases available for both Drupal 6 and Drupal 7.

Lazyloaded Linked Field

Categories: Content

The Linked Field module, developed by Yannick Leyendecker of LOOM GmbH, give you support for a link field, which can accept tokens or URLs to add a link to any image or text field. Nice!

Status: There is a stable release available for Drupal 7.

Marquee Block

Categories: Commerce/Advertising, Content, Content Display

The Marquee Block module, coded by Noah Lively, gives you a jQuery-based scrolling marquee block that you can place wherever you like and configure with your desired text or HTML. There are controls for speed, scroll direction and other behaviors. It requires the jquery.marquee.js script.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

MASt

Categories: Mobile

The MASt module, developed by Katherine Bailey of Acquia, provides endpoints for mobile app services so that any remote application, like a mobile app, can construct a content form.

Status: There is a development release available for Drupal 7.

Multiupload Filefield Widget

Categories: Fields, File Management

The Multiupload Filefield Widget module, developed by Czövek András of KYbest, allows you to upload groups of files at a time, using the HTML5 “multiple” attribute. Simply enable this module and the core File module and select the “Multiple” widget for any file field.

Status: There is a stable release available for Drupal 7.

Node Lazyloader Opinion Monitor

Categories: Content

The Opinion Monitor module, from Austin Goudge of Psycle Interactive, allows you to poll visitors for their opinion as they move through content nodes on your site. This could be very useful for certain use cases.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Pull up your pants Reference Delete

Categories: Content

The Reference Delete module, produced by Antonio Savorelli of Communikitchen, allows you to delete referenced dependent nodes added with the References module whenever a “parent” node or user is deleted, thus preventing you having a bunch of clutter left over that doesn’t make sense on its own.

Status: There is a development release available for Drupal 7.

Report spam

Categories: Spam Prevention

The Report spam module, written by Cameron Eagans of Advomatic, was created for Drupal.org and there are plans afoot to port it to Drupal 7, too. Basically, it integrates into the Spam module to allow site users to report comments or content as spam. Depending on the role of the user who reports the spam and number of reports, content receives a “spam value” which can trigger a rule or help you identify bad content and remove or unpublish it.

Status: There is a development release available for Drupal 7.

Role activity

Categories: Utility

The Role activity module, developed by Dave Reid, of Palantir, allows you to log the activity of users, on a per-role basis. This could be handy for a number of use cases on community portals or other sites with a number of authenticated users.

Status: There are dev releases available for both Drupal 6 and Drupal 7.

Rotating Slogan

Categories: Theme Enhancements

The Rotating Slogan module, from Edouard Fajnzilberg of Kernel 42, allows you to configure multiple site names and/or site slogans which are displayed randomly or cycle in a given order. You can see it in action on the demo site—simply refresh the page and watch the site slogan change.

Status: There is a stable release available for Drupal 7.

Services Rules Signed Nodes

Categories: Content, User Access & Authentication

The Signed Nodes module, by Muhammad Qandeel Aslam of Saudi Business Machine, allows you to require site users to agree to terms of use in order to access particular nodes. This is useful for non-disclosure agreements, and other such use cases and the agreements can be attached to any node of any type. Each node can have its own specific agreement for a given year.

Status: There is a stable release available for Drupal 7.

Solr Devel

Categories: Developer, Search

The Solr Devel module, developed by Chris Pliakas of Acquia provides developer tools for working with Apache Solr search. According to the module description, much is planned an there may never be a “stable” release since there will always be more features to add and implement.

Status: There is an alpha release available for Drupal 7.

Taxonomy Term Reference Sortable Widget Treewalk Previous / Next

Categories: Content Display

The Treewalk Previous / Next module, developed by Andreas Hennings of dqxtech.net, with sponsorship by TeakMoebel.com, provides hierarchical navigation (like a Drupal “book”) for any entity. The forward and backward links are provided by Display Suite, so this is a dependency. It was designed to be used in a Drupal Commerce situation but could b useful for any number of use cases.

Status: There is an alpha release available for Drupal 7.

Upload default avatar (user picture) Userpoints terms

Categories: TaxonomyCommunity

The Userpoints terms module, written by Eugen, encourages user participation in tagging of content and the creation of new terms for that purpose by awarding user points for these activities. Of course it uses the Userpoints API.

Status: There is a development release available for Drupal 7.

Views Chart Tools Views content DS

Categories: Content DisplayViews

The Views content DS module, is another one from Andreas Hennings of dqxtech.net. It uses Display Suite in integration with Views and helps take the pain out of achieving certain common tasks, such as displaying blocks of “related content” in a node’s sidebar, etc.

Status: There is an alpha release available for Drupal 7.

Views Grouped Table

Categories: Views

The Views Grouped Table module, authored by Joachim Noreiko, is simple but sweet. In the example image there are cities and countries with several cites from each country; these are grouped together with only one label for each country rather than saying Frankfurt, Germany; Munich, Germany; Germany, etc. It provides a nicer, less “busy” look.

Status: There is a stable release available for Drupal 7.

Webform Accordion

Categories: Content DisplayFields

The Webform Accordion module, coded by Shawn Smiley of Achieve Internet, provides jQuery accordion actions for groups of Webform fields. Each Accordion container can hold two or more Accordion tabs. The use of this module with Drupal 7 simply uses the Webform 3.x module. The Drupal 6 version also requires the jQuery UI module.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Webform Killswitch

Categories: ContentContent Display

The Webform Killswitch module, contributed by Ben Bunk of Acquia, provides a way to deactivate submission of Webforms when, for example, you wish to migrate a site, disable POSTs for a time, or allow staff to administer Webforms, but block any more submissions for the time-being.

Status: There is a development release available for Drupal 7.

XML Field

Categories: Fields

The XML Field module, by Aaron Klump of In the Loft Studios, provides a field where you can enter XML code. This field, like any other, can be added to any fieldable entity and it provides XML validation and sanitized output.

Status: There is a stable release available for Drupal 7.

YouTube Pull

Categories: Third-party Integration

The YouTube Pull module, authored by CK Ng of MyFineJob.com, provides a a simple way to pull the latest YouTube feeds of content interesting to your site visitors and add it into your Drupal site.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Aug 05 2012
Aug 05

New spam content posted

Rules is an especially useful Drupal module for all kinds of tasks. One use you might want to put it to is providing admin notifications of certain events on your site, e.g. user registrations (covered in the previous post) and the creation of new comments and content by “untrusted” users (assuming your use case allows them to create any content at all). For some use cases, you may wish to put strict limits on the creation of user accounts and content, but for the purposes of this article we are assuming you are administering a Drupal site where you want to encourage growth and community involvement, so you might allow anonymous users to comment on posts (albeit likely with the rel="nofollow"* attribute added to their links). And you might also allow users to create and confirm their own accounts and then create some types of content (e.g. forum posts, bug reports, etc). The downside is that you’ll need to be vigilant about squashing all the spam this policy invites (or the flow of new spam will quickly increase and be damaging to your SEO efforts), but on a site with only moderate traffic you should be able to manage this without a lot of trouble. This post covers using Rules to provide notifications of new comments and content. If you keep a close eye on user registrations and immediately block the user accounts which follow a pattern like other spam accounts you’ve removed (i.e. accounts likely created with the help of a “spambot”), you can eliminate almost all of the spam that requires use of an authenticated user account.

Adding rel equals nofollow to Drupal Links

*Adding rel="nofollow" to links posted in “Filtered HTML”, presumably the only text format you allow for “untrusted” users, is simple, but well worth doing if you allow “anonymous” or newly-registered “authenticated” users to make any kinds of posts on your site. In Drupal 6, go to admin/settings/filters/1/configure and select the “Spam link deterrent” checkbox. In Drupal 7, go to admin/config/content/formats/filtered_html and find the vertical tab near the bottom labeled “Limit allowed HTML tags”, where the same feature is enabled with a checkbox labeled “Add rel="nofollow" to all links”.

Getting back on topic, the three events we want to create Rules for are:

  1. New user registered (done, see previous article)
  2. New comment posted by “untrusted” user (described below)
  3. New content posted by “untrusted” user (also described below)

In each case, we simply want to send an HTML email* to notify at least one member of staff (anyone with the admin role and, in the case of comments on blog posts, we might want to also email the article’s author.) As with the past installment in this two-part series, this article does not cover configuring your server for sending mail nor setting up HTML mail, but we use Mime Mail for the “send HTML mail” versions of the exported code you’ll find attached. (See attachments to this article for code you can use to import these Rules into your own system—you’ll possibly need to tweak them a bit, but they could save you some time.) Where screenshots are included, we’ll display the Rules administration interface in both Drupal 6 and Drupal 7, side-by-side, since there are some differences that might otherwise lead to confusion. So this article should be helpful for administrators of both Drupal 6 and Drupal 7 sites.

In every case, creating a new rule starts by going to the “add rule” page:

D6: admin/rules/trigger/add
D7: admin/config/workflow/rules/reaction/add

This rule sends an (HTML or plain text) email which includes the comment title and body, along with a link to quickly edit it. Here at Cocomore, rather than delete comment spam, we’ve been unpublishing the comments so we can still observe patterns. So we don’t get an email for each of our own responses to comments, we configure the rule to only notify us when “untrusted” users (i.e. any users who don’t have a “staff” or admin role) post comments.

Adding a new rule to react to new comments

The first steps, picking a name and adding tags for it, then clicking “add action…”, are virtually identical in both Drupal 6 and Drupal 7 and for each rule. So if you wish to see illustrations of these steps, please look at part 1 of this article. The event we want to react to is called “After saving a new comment” in both the Drupal 6 and Drupal 7 versions of Rules. This is also simple enough that I will leave out any illustration here.

Click “Add condition”

Choose “user has role(s)” in the selector for “condition”

This is almost the same in Drupal 6 and Drupal 7. First select the “user has roles” condition. In the next part of adding the condition, we can select which roles the condition applies to. First we make sure that we select the right user for the “role condition”. In this case, the right user to select as the “argument” (Drupal 6) or “Data selector” (Drupal 7) is the author of the created comment, i.e. in Drupal 6 select “created comment author” and in Drupal 7, select “comment:author”.

Now we only want to send email when an anonymous user or basic authenticated user posts a comment. For the purposes of illustration, I have created a testing environment with two staff roles (one is “administrator” and the other is “editor”). Since both “staff” roles are also “authenticated” (whenever they are logged in, they have the “authenticated user” role, too), we want to use negation in our condition. The roles of the user who posted the comment should NOT include any of the privileged staff roles (or any other “trusted” role you would like to ignore here). So we select the two staff roles, the “Negate” checkbox, and “any” selected role. Then we need to remember to click “Save” for our new condition to be added.

The user who posted the comment should NOT have ANY staff role.

Add an action for “Send mail” or “Send HTML mail”

The “Add action” click pre-step is almost identical in Drupal 6 and Drupal 7, as is the selection of which action to perform (sending a mail); if you wish to see the illustration, please see the relevant screenshots in part 1 of this article.

For the purposes of this article, we will assume that we only want to send the administrator an email when people post comments, so it’s most appropriate to select the “Send (HTML) mail to all users of a role” option, then select “administrator” for the role to receive the email. That way, the administrator can choose to forward emails to the content author when she feels that the author should post a response to the comment. Alternatively, you could include your site’s content author(s) in the comment moderation process and allow them to also receive all the messages about comments by adding their email addresses to a comma-separated list of (in Drupal 6, “arbitrary”) email addresses. Or perhaps you have an “author” role and can select that. Or you could use the “token” to specifically send an email to the author of the commented content. If your site has multiple administrators, you might want to test your rule with an “arbitrary” email action, then copy the configuration for the “subject” and message “body” to a new action so that only you get the messages during the “testing phase”.

Send (HTML) email to all users of a role

Complete the email subject and body

Tokens available for use differ significantly between Drupal 6 and Drupal 7, but most are available in both or at least there is some way to achieve similar results for most output you might want to have. I’ve created some simple messages which you can use as a starting point (if you import the rules export code I’ve attached.) You might need to tweak the array code to fit your site’s configuration (e.g. role IDs, etc)

drupal6-new_comment_html_mail-subject_and_body.png

Download exported code for this rule

Rules allows you to export and import rules from saved code, so I have attached an export of this rule. Even if you don’t want exactly the same action, this could be useful as a starting point for a new rule on your site. There are four versions of the import code attached, two each for Drupal 6 and Drupal 7 (for each version of Drupal, there is one version of the rule which uses HTML mail for the admin notification email, and one which just sends a plain mail.)

Notify Admin when new content is created
Drupal 7 users can try cloning the “new comment” rule

This rule is actually similar enough to the comment-based rule that it’s a good candidate for demonstrating the power of the “clone” operation in Rules for Drupal 7 (unfortunately, Rules in Drupal 6 won’t let us change the event from comment-related to content-related, which is a bit of a drag since much of the rest of the Rule could be a straight copy, but you can create a new Drupal 6 rule that is triggered by the creation of new content, create a similar “condition”, then copy/paste in the email code and edit, as needed). But to experiment with cloning, those of you in Drupal 7 can start by going back to the main Rules overview page (admin/config/workflow/rules in Drupal 7). The clone link is virtually the same in both Drupal 6 and Drupal 7:

In Drupal 7, you can clone the “new comment” rule as a starting point.

Edit the Title, tags, event and condition for the cloned rule

Let’s first think about the differences, then clone the content and edit accordingly. The first significant difference is the title and “tags”, which should obviously say “content” rather than “comment”. Edit the cloned rule, and click on “Save changes”. The next difference is only slightly less trivial. We need to delete the “event” for “After saving a new comment” and add a new event in its place: “After saving new content”. You should then see that there is a warning next to the summary of the condition: “comment:author” is a token which no longer makes any sense.

Drupal 7: Edit the Rules condition to refer to the content author

Not to worry, we can fix that. Click on the “edit” link next to the condition and change the “Data selector” field from “comment:author” to “node:author”. We still only want to trigger the rule for users who do not have one of our trusted staff roles, so the rest of the condition can stay the same. Click on “Save” to go back to the main edit page for the rule, where we just need to click the “edit” link next to the “Send HTML mail…” action and change our message to be a bit more appropriate for the creation of new content.

In the email subject, we can change the word, “comment”, to the token, “[node:content-type]”, which will be dynamically re-written to say, for example, “bug report”. We can change all the links and mentions of comment to the appropriate tokens for content. With just a few edits, we can have a new message body that looks something like this:

A new piece of [node:content-type] content has been posted on [site:name]. Please review for spam or post a reply, if appropriate:
  <strong>Title:</strong> <a href="http://www.cocomore.com/blog/rules-admin-notifications-part-2-new-comments-and-content/[node:url]">[node:title]</a> (<a href="http://www.cocomore.com/blog/rules-admin-notifications-part-2-new-comments-and-content/[node:edit-url]">edit</a>)
  <strong>Content body:</strong>
  [node:body]

Create a rule for “new content” in Drupal 6

If you are using Drupal 6, we couldn’t clone the “new comment” rule as a starting point for our “new content” rule, but it should be clear how to create the rule we need. Start by creating a new rule triggered by the event: “After saving new content”.

Drupal 6 - New rule with event: “After saving new content”

Add a “User has role(s)” condition

Condition: content’s AUTHOR does NOT have ANY trusted role

Here we want to select the “content’s author” option for the “user” in the “Arguments configuration” section. The rest is just like we did before; select trusted roles, negate, and make sure “any” is selected for the “match against…” option:

Add an action to send an (HTML) email

Now simply create your email message, just as before, but using token replacement patterns that work with content. So you might want to use something like: “New [node:type-name] on [:global:site-name]” for your “Subject” and enter an HTML message like:

<p>Please check the following new [node:type-name] content, created [node:small], for possible spam:<br />
  <strong>Content: </strong><a href="http://www.cocomore.com/blog/rules-admin-notifications-part-2-new-comments-and-content/[node:node-url]">[node:title]</a> (<a href="http://www.cocomore.com/blog/rules-admin-notifications-part-2-new-comments-and-content/[:global:site-url]node/[node:nid]/edit">edit</a>)<br />
  <strong>Created by:</strong> <a href="http://www.cocomore.com/blog/rules-admin-notifications-part-2-new-comments-and-content/[author:account-url]">[author:user]</a></p>

Unfortunately, it seems that Rules in Drupal 6 does not provide for a [node:body] token and we have to build our “edit url” from the various components (i.e. the token for the site’s base URL, which outputs, e.g. "http://example.com/" and ends in a slash, plus node/[node:nid]/edit gives us the same output that the [node:edit-url] token provides in Drupal 7.)

And this is what it should look like when a spammer creates a new piece of “content”

The following is a screenshot of the message generated by one of the most recent pieces of spam “content” when I didn’t spot the new account creation early enough to block the user before they started spamming:

An example, real-world message from the example code given abovel

Best wishes and… troubleshooting tips

As I suggested in the previous post, it’s probably best to start by initially triggering a simple rule with an even simpler email (to test that you get your message) and then build up the complexity a small step at a time, testing as you go. Sometimes the tokens don’t work as expected or a token might not have a value in every situation; and unfortunately in such cases, Rules just doesn’t send a message. If you are working in a development environment, you can turn on full “debugging” for Rules in the settings and allow all roles to see the evaluation of the rules (so you can switch between test users and see what happens when you trigger the actions).

I wish you the best of luck in creating the perfect Rules workflow for your use case.

Jul 11 2012
Jul 11
Modules of the month story banner illustration.

In June 2012, there were over 160 new Drupal modules released. This article provides some coverage for the most noteworthy of those modules, at least from our point of view. As in the past editions of this article, we generally ignore modules which are only for limited use cases or which simply provide integration of commercial third-party services. We also have not tried out many of these modules and have not thoroughly tested any of them. We normally don’t list modules that seem to be far from “ready” (e.g. no actual release yet), but we can make no claims as to the stability of the modules covered. Be sure to back up your database before testing new modules that might cause pain and suffering.

I think that many might agree that some of the most significant new modules from June were Author, Edit, and Layout—released by Angie Byron and Wim Leers as part of the Acquia-sponsored Spark distribution, which aims to improve the content-authoring user experience for Drupal 8 (the current distribution and modules allows us to use these improvements in Drupal 7 and help improve them). This work is still not ready for use on production sites (“dev” releases at most), but the progress is exciting, nonetheless. And despite the fact that Acquia is sponsoring development, we can all contribute to this awesome project by experimenting and reporting our experience (bug reports or ideas about ways to further improve the user experience) and/or submitting patches. We are definitely excited about Spark!

Thanks to Sascha Grossenbacher and Miro Dietiker of MD Systems there are a number of new support plugins for the Translation Management Tools (TMGMT) which they have recently released, now providing support for translation services available from Google, Microsoft, MyGengo, Nativy, and Supertext. Each of these new modules that extend the main Translation management module are currently available as dev releases for Drupal 7.

Matt Cheney of Pantheon Systems has also recently released a number of exciting “apps” (modules which depend on the Apps module) to flesh out the feature-set of their popular Panopoly distribution; these include: Panopoly Admin , Panopoly Core , Panopoly Demo , Panopoly Images , Panopoly Magic , Panopoly Pages , Panopoly Search , Panopoly Theme , Panopoly Users , Panopoly Widgets , and Panopoly WYSIWYG. All of these new modules are still considered to be in “beta” for Drupal 7, and while some of these may work without the Panopoly distribution, I won’t cover their functionality in detail. They do appear to provide some useful enhancements to Drupal’s standard installation and what their distribution could formerly offer, so this is some significant progress and worth taking a look at if you want to provide a friendly user experience or want to keep up with the latest and greatest in development for distributions.

The rest of the most noteworthy modules are listed in alphabetical order with brief descriptions of their functionality, development status, and module categories on Drupal.org (in some cases, we selected appropriate categories if none were provided on the project page. A couple are not actual modules, but are included as Drupal “projects” also worthy of mention.)

*/ Bean Panels

The module, authored by Lee Rowlands of PreviousNext, allows Beans to be used within Panels. Very cool!

Status: There is a stable release available for Drupal 7.

Booking.com API

The module, written by Rafal W., is an API for Drupal developers to allow us to build Booking.com (hotel booking) features into our sites.

Status: There is a dev release available for Drupal 7.

Clean Comments

The module, written by Manuel Garcia, adds a bit of JavaScript to each page which hides the comment links (edit/delete/reply) so that they only appear when hovering over a comment.

Status: There is a dev release available for Drupal 7.

Community Media Header

The module, written by Kevin Reynen of makedatamakesense.com, allows you to provide header images which can vary based on site section or context.

Status: There is a dev release available for Drupal 7.

Conditional Rules

The module, from Jason Zhang of the Australian National University, allows you to provide branched conditions for Rules using “if / else” and “switch / case” so that you don’t need to create multiple similar rules just to manage basic differences in conditions. This functionality is a long time coming, in my opinion, so I’ll definitely be giving this one a whirl.

Status: There is a dev release available for Drupal 7.

Contentment

The module, written by Peter Anderson of Alma Technology, gets its name as a contraction of “content management”, which might seem odd since one might say that Drupal, itself, is for for content management. So what does it do? It provides a nicer overview of site content with tabs for each content type, links and overview of numbers of comments, etc. From what I’ve seen, these are sweet improvements for site administrators. It would be nice to see such enhancements to the content overview pages in Drupal 8.

Status: There is a release candidate available for Drupal 7.

Cryptolog

The module, from Mark Burdett of the Electronic Frontier Foundation, enhances user privacy by replacing IP addresses in site logs with randomized identifiers. Each identifier is unique to an IP address for each day, so you can still analyze site statistics (such as visitors per day). This would be useful for certain kinds of sites where user privacy might be more important, but it might also make it harder to track longer term patterns of spam posting or repeat visitors.

Status: There is a dev release available for Drupal 7.

Dropdown Checkboxes

The module, by arijit dutta of Faichi Solutions, integrates the DDCL library, to replace normal HTML select lists with a drop-down checkbox list for better usability. It would be nice to see this kind of functionality natively provided by browsers.

Status: There is a release candidate available for Drupal 7.

DrupalPro

The project, contributed by Mike Stewart of Media Done Right, is not a module at all, but definitely an interesting project for people who want to get up and running with a new Drupal development environment. It’s an Ubuntu-based VirtualBox disk image which can be run right off of a USB3 stick. It has loads of great utilities already installed, as well, of course, as a full DAMP stack. Assuming your production server is Linux-based, this Virtual box should provide a much more compatible testing environment than a MAMP/WAMP development environment. The disk image includes Drush 5, Git, Netbeans, Compass, Sass, Dreditor, and a number of other very useful utilities that can take time to set up.

Status: There is a beta release available for Drupal 7.

Drush live

Categories: Drush

The module, produced by James Silver of ComputerMinds, provides some nice enhancements for Drush. Explaining it here is outside the scope of this article, but it does look like it could be useful.

Status: There is a stable release available for Drupal 7.

Entity Property Field

The module, by Erik Summerfield of Phase2 Technology, provides a simple display field with format widgets to display entity properties as if they were normal fields (e.g. to provide a field with formatters to show the date/time updated information for a node or other entity.)

Status: There is a beta release available for Drupal 7.

Felix

The module, by Maurits Lawende of Dutch Open Projects, provides a simplified way for site editors to add a preset selection of blocks to pre-defined page regions without any need to use block administration. Cool stuff!

Status: There is a beta release available for Drupal 7.

GMap3 Tools

The module, contributed by Ivica Puljic of MontenaSoft, is a developer API for integrating Google Maps (version 3) into a Drupal site.

Status: There is a dev release available for Drupal 7.

Handy Block

The module, developed by Jeremy Epstein, helps eliminate the need for custom modules just to provide a block which relates to the current entity. It’s considered a “convenience module” for developers and themers.

Status: There is a stable release available for Drupal 7.

Image Annotator

Categories: Fields

The module, written by Peter Droogmans, helps add annotation markers to images.

Status: There is a dev release available for Drupal 7.

Image Autosize filter

The module, written by Hai-Nam Nguyen of Open Web Solutions, keeps content consistent and streamlines the editorial workflow by forcing a preset image size based on the selected image “alignment” (left/right/center/none).

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Image Preset

The module, by Yuriy Babenko of Suite101, allows you to simply select an ImageCache preset for Views, DisplaySuite or other places where you might set up an image to be displayed.

Status: There is a stable release available for Drupal 7.

jQuery File Upload and jQuery Kaltura Uploader

The and modules, both coded by John Youssef of JesoX, are similar modules which provide enhanced file upload functionality and a “multi-uploader”. Both modules depend on the jQuery Update module and look similar. Differences include that the jQuery File Upload module supports non-image/video documents (e.g. .doc and .pdf files, etc), whereas the Kaltura uploader supports only images and video file-types, requires the Kaltura module, and uploads files to your configured Kaltura account.

Status: There are dev releases available (for both modules) for Drupal 7.

jQuery LocalScroll

The module, written by Gabor Szanto, uses the jQuery LocalScroll library (installed separately using the Libraries API module) and allows you to build sites with links to anchor points on a page which smoothly scroll to those anchor point links, when clicked. This can look pretty cool and is ideal for mini-sites or to minimize page requests. See the project page for links to example sites.

Status: There is a dev release available for Drupal 7.

JSON 2

The module, is also produced by Peter Droogmans and provides integration of the JSON 2 JavaScript library. This could definitely be useful.

Status: There is a stable release available for Drupal 7.

Link API

Categories: Content

The module, by Chris Skene of PreviousNext, provides some nice tools for developers to manage links on a Drupal site. This can include validation of links, maintaining a list of all links, etc. This definitely looks handy!

Status: There is a beta release available for Drupal 6 (and we are hoping this will get ported to D7.).

Link Badges and Menu Badges

The and modules, both developed by Wayne Eaker of Zengenuity, work together (Link badges is a developer API which is used by Menu badges and can be used by developers for other modules) to provide iOS-style “badges” next to links, e.g. to indicate the number of unread messages, items in a cart, etc. Very nice!

Status: There are stable releases available for Drupal 7.

Microsites

The module, also contributed by Chris Skene of PreviousNext, helps simplify using Drupal to produce “Microsites” within a Drupal installation, so they can have their own menus, etc. This looks very cool!

Status: There is a beta release available for Drupal 6.

Ming

is yet another module by Chris Skene of PreviousNext. Ming allows site developers to work with data stored in MongoDB databases and provides a number of nice features, including maintaining multiple persistent connections to MongoDB databases, shortcuts for MongoDB tasks and for accessing stored objects without need for creating full MongoID classes, etc. This looks very interesting.

Status: There is an alpha release available for Drupal 7.

Postal Code Validation

The module, produced by Liam Morland of University of Waterloo, is a developer API which helps provide postal code validation for a number of different countries. It has no user interface of its own, but allows developers to utilize its functions in their own modules.

Status: There is a release candidate available for Drupal 7.

Promo node

The module, created by Mikke Schirén of NodeOne, provides a system for promoting various Drupal nodes on your site, thus eliminating the need for creating a special “promo” content type.

Status: There is a dev release available for Drupal 7.

Publish button

The module, also created by Mikke Schirén, provides a simple “publish” button next to the “Save” button so you don’t need to force your site’s content creators to check the “publish” box, then click on “Save”. This provides a more natural workflow and helps prevent accidentally creating nodes without publishing them (or vice-versa, depending on how you might create your content type defaults.) Very simple… but very nifty!

Status: There is a beta release available for Drupal 7.

Reverse Proxy Check

The module, written by Justin Emond, helps verify that nothing has broken your reverse proxy caching for anonymous site visitors (e.g. Varnish). It provides an extra line in your site’s status report (admin/reports/status)

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Rules URL Argument

The module, written by Tadej Baša, allows you to check for and get the value of arguments used in the URL and use them in Rules.

Status: There is a stable release available for Drupal 7.

SAML Service Provider

The module, by Marcus Deglos of Acquia, is pretty cool… it allows users to verify their identity with a SAML IDP (Identitity Provider) server to streamline registration and login.

Status: There is a dev release available for Drupal 7.

Scheduler Workbench Integration

The module, produced by William Hurley of Forum One Communications, allows you to set dates for Workbench-moderated content to be published and/or unpublished. This is definitely useful for managing the scheduled release of editor-moderated content.

Status: There is an alpha release available for Drupal 7.

Search synonyms

Categories: Search

The module, produced by Aidan Lister, allows you to add synonyms for search terms to the index so that, for example, people searching for “Holland” will see full search results which also include the (usually-synonymous term), “The Netherlands”.

Status: There are stable releases available for both Drupal 6 and Drupal 7.

Taxonomy add previous

The module, created by Joachim Noreiko, helps streamline the process of adding related or similar taxonomy terms by automatically populating the new term fields with the values used for the previous taxonomy term and provides a second link for this functionality next to the normal “add term” link. This could definitely be useful for certain use cases.

Status: There is an alpha release available for Drupal 7.

Views Dataviz

The module, developed by Jurriaan Roelofs, is a modern, HTML5-based data visualization system for providing charts from Views data, etc. Nicely done!

Status: There is an alpha release available for Drupal 7.

Views Rules

The module, is another contribution (like the Conditional Rules, above) by Jason Zhang of the Australian National University, which provides integration between Rules and Views. Getting into the particulars of using this module would be a separate article on its own, but it definitely looks cool!

Status: There is an alpha release available for Drupal 7.

Views Slideshow Liquid Carousel

The module, written by Jonathan DeLaigle of Advomatic, integrates the Liquid Carousel Javascript library into Views Slideshow, allowing you to provide fluid layout to a Views Slideshow, e.g. fluidly alter the number of thumbnail links visible as the window’s width changes. This looks slick!

Status: There is a beta release available for Drupal 7.

Jul 10 2012
Jul 10
Modules of the month story banner illustration.

In June 2012, there were over 160 new Drupal modules released. This article provides some coverage for the most noteworthy of those modules, at least from our point of view. As in the past editions of this article, we generally ignore modules which are only for limited use cases or which simply provide integration of commercial third-party services. We also have not tried out many of these modules and have not thoroughly tested any of them. We normally don’t list modules that seem to be far from “ready” (e.g. no actual release yet), but we can make no claims as to the stability of the modules covered. Be sure to back up your database before testing new modules that might cause pain and suffering.

I think that many might agree that some of the most significant new modules from June were Author, Edit, and Layout—released by Angie Byron and Wim Leers as part of the Acquia-sponsored Spark distribution, which aims to improve the content-authoring user experience for Drupal 8 (the current distribution and modules allows us to use these improvements in Drupal 7 and help improve them). This work is still not ready for use on production sites (“dev” releases at most), but the progress is exciting, nonetheless. And despite the fact that Acquia is sponsoring development, we can all contribute to this awesome project by experimenting and reporting our experience (bug reports or ideas about ways to further improve the user experience) and/or submitting patches. We are definitely excited about Spark!

Thanks to Sascha Grossenbacher and Miro Dietiker of MD Systems there are a number of new support plugins for the Translation Management Tools (TMGMT) which they have recently released, now providing support for translation services available from Google, Microsoft, MyGengo, Nativy, and Supertext. Each of these new modules that extend the main Translation management module are currently available as dev releases for Drupal 7.

Matt Cheney of Pantheon Systems has also recently released a number of exciting “apps” (modules which depend on the Apps module) to flesh out the feature-set of their popular Panopoly distribution; these include: Panopoly Admin , Panopoly Core , Panopoly Demo , Panopoly Images , Panopoly Magic , Panopoly Pages , Panopoly Search , Panopoly Theme , Panopoly Users , Panopoly Widgets , and Panopoly WYSIWYG. All of these new modules are still considered to be in “beta” for Drupal 7, and while some of these may work without the Panopoly distribution, I won’t cover their functionality in detail. They do appear to provide some useful enhancements to Drupal’s standard installation and what their distribution could formerly offer, so this is some significant progress and worth taking a look at if you want to provide a friendly user experience or want to keep up with the latest and greatest in development for distributions.

The rest of the most noteworthy modules are listed in alphabetical order with brief descriptions of their functionality, development status, and module categories on Drupal.org (in some cases, we selected appropriate categories if none were provided on the project page. A couple are not actual modules, but are included as Drupal “projects” also worthy of mention.)

Bean Panels Booking.com API

Categories: Third-party Integration

The Booking.com API module, written by Rafal W., is an API for Drupal developers to allow us to build Booking.com (hotel booking) features into our sites.

Status: There is a dev release available for Drupal 7.

Clean Comments Community Media Header Conditional Rules

Categories: Rules, Utility

The Conditional Rules module, from Jason Zhang of the Australian National University, allows you to provide branched conditions for Rules using “if / else” and “switch / case” so that you don’t need to create multiple similar rules just to manage basic differences in conditions. This functionality is a long time coming, in my opinion, so I’ll definitely be giving this one a whirl.

Status: There is a dev release available for Drupal 7.

Contentment

Categories: Administration, Content

The Contentment module, written by Peter Anderson of Alma Technology, gets its name as a contraction of “content management”, which might seem odd since one might say that Drupal, itself, is for for content management. So what does it do? It provides a nicer overview of site content with tabs for each content type, links and overview of numbers of comments, etc. From what I’ve seen, these are sweet improvements for site administrators. It would be nice to see such enhancements to the content overview pages in Drupal 8.

Status: There is a release candidate available for Drupal 7.

Cryptolog

Categories: Administration, Statistics

The Cryptolog module, from Mark Burdett of the Electronic Frontier Foundation, enhances user privacy by replacing IP addresses in site logs with randomized identifiers. Each identifier is unique to an IP address for each day, so you can still analyze site statistics (such as visitors per day). This would be useful for certain kinds of sites where user privacy might be more important, but it might also make it harder to track longer term patterns of spam posting or repeat visitors.

Status: There is a dev release available for Drupal 7.

Dropdown Checkboxes DrupalPro

Categories: Developer

The DrupalPro project, contributed by Mike Stewart of Media Done Right, is not a module at all, but definitely an interesting project for people who want to get up and running with a new Drupal development environment. It’s an Ubuntu-based VirtualBox disk image which can be run right off of a USB3 stick. It has loads of great utilities already installed, as well, of course, as a full DAMP stack. Assuming your production server is Linux-based, this Virtual box should provide a much more compatible testing environment than a MAMP/WAMP development environment. The disk image includes Drush 5, Git, Netbeans, Compass, Sass, Dreditor, and a number of other very useful utilities that can take time to set up.

Status: There is a beta release available for Drupal 7.

Drush live

Categories: Drush

The Drush live module, produced by James Silver of ComputerMinds, provides some nice enhancements for Drush. Explaining it here is outside the scope of this article, but it does look like it could be useful.

Status: There is a stable release available for Drupal 7.

Entity Property Field

Categories: Content, Fields