Via my contact form, someone asked me to list 5 or 10 of the best drupal add ons. I decided to move away from "best", and rather decided to move to "can't live without". Or to put it differently, without these 10 modules, your experience with the minimial base install of drupal is likely to suck. (in spite of my physics teacher I once had who insisted that nothing sucked, but rather blew...).
Anyhow, this list isn't really ordered in any fashion other than the order that I think of ten "can't live without modules". Now -- there are many modules that have dropped my jaw that I haven't included. But that is still because I can still live without the majority of those modules.
1. TinyMCE WYSIWYG EDITOR -- Sometimes, we geeks forget that it is we who are the freaks. Most people don't know how to code an image, link, paragraph, unordered list, much less understand how image alignments work. TinyMCE, the only WYSIWYG editor that really works for drupal, opens up the world of webpublishing to this 98.9 percent of the population. Anyone who thinks that visitors who can't code an <a href=""> link aren't worth their time are both stupid, and will likely die cold, broke, and alone.
2. Feedback -- Its a simple module, sure. But every site needs it, and drupal doesn't include it. Sure, not everyone wants a contact form. However, most of those people, I'd argue should stick to blogger and myspace.com. Drupal -- being best suited for serious endevours and serious people needs a freakin' contact form.
3. Blockbar -- A totally underrated module, imho. What does block bar do? It makes all that crap that overwhelms first time drupal users disappear. Its now part of my personal toolkit that I implement on every install. Its role: make drupal friendly to non-cyborg types (e.g. those who haven't worked themselves to death to the point that this entry is their saturday night... wooohooo...)
4. Control Panel -- You know, I bet a few drupal veterns are going to scoff at this mention. However, remember cyborgs: not everyone is a cyborg. The best UI is always going to seek to remind users of soemthing they probably used before (::cough:: control panels on windows, and Mac -- seeing as how they are on the internet, I think its a pretty safe bet they are familiar.) And no, CYGWIN is not a good poster child for "good user interface" (though CYGWIN saves me, an ubercyborg freak hours upon hours every day).
Plain and simple, humans are monkeys -- and monkeys have an easier time navigating in visually rich enviroments, as opposed to enviroments inspired by manilla folders, and tax forms. So, monkeys: pictures good, text and white bad. Use control panels widely in your site, and you'll be amazed how many more people suddenly figure out how to use drupal.
Seriously. Anyone who disagrees on this point can shutup. They are wrong. I'd tell them they were wrong and that they should shutup again if I could.(wait, I just did)
Relax, Control Panels has the most dirt-plain simple API every for adding your own Icons to your own themes. Truly, its worth the download (or an include, or a rewrite then include -- echm, CS).
5. Printer Friendly Pages -- Cyborgs be damned, a large portion of the population "surfs" the web like this:
Yes, you could tell these folks to "get with it". However, you'd be a fool to do so. You may want to check up on the relationships between internet access, age, and wealth if you think I'm bluffing, partner. Oh, and this module not only generates very printer friendly pages, but it also parses out your links, and lists them as foot notes on the bottom of the page.
6. Bad Behavior -- Because comment, trackback, malicious scripts, and bad bots will hit your site everyday. This module + 3rd party free libraries of scripts -- imho -- is usually all a medium level traffic site needs to withstand the internet's disgusting onslaught. Of course to be perfectly honest, this script no longer works at my site. However, this being one of 20 drupal sites I've been building, updatingng, or fixing is alright. I'd take a 1/20 percent chance of having to moderate comments if I were you. Its better than trying to delete 3000 spams from 200 nodes when you don't know a lick of MySQL.
7. Simplenews -- An email newsletter management module. It includes easy import/export of subscribers, lets non UID members unsubscribe and subscribe and manages all that info, gives you all the must-have-info on what's happening with your mail blasts, and well -- f#cking a' man -- since enewsletter stopped working about 2 months ago, its really the only good module that I'd trust to a non-cyborg for managing such an uberimport task!
8. Views -- its new, and changing everything.
9. CCK -- going to be hella disruptive to drupal at large. HELL-A hardcore, disruptive, even.
10. CiviCRM -- for god's sake could they get it compatible with 4.7?! Regardless of 4.7's beta status, I have to develop on 4.7 to prevent from screwing people over with obsolete code. I've tried to update it, but its beyond my PHP understanding.
CiviCRM is maybe the only module I know of that could create an industry of consultants all by itself. Moreover, the people who run the project are -- as far as I know -- the most responsive team in the entire industry. If you mention them anywhere on the public internet, you can rest assured they will hear you in 2-5 hours. This is one module, like CCK and Views that has the potential to change everything. That is, when they get it to be compatible with the non-obsolete-developing-for-it-is-a-total-waste-of-time-and-money version of drupal. ;-) O! -- screw Joomla!, get CiviCRM to work with forms API and the world will be shared by we, the open source community forever!
Or, at the very least, it would be really cool*.
*as the kids say.
Comments
durpal
This is a great help for a
This is a great help for a project I am working on using drupal. Thanks!
Nick, you're awesome, and
Nick, you're awesome, and thanks for doing this. You've set me in the right direction. One further hope for recommendation, then. Do you have a preference for generating a contact list (not a series of contact form)? I want to have a page with all users of a certain group (access group) listed on a "contacts" page, with vCards and such. Thanks in advance if you answer my plea for free tech support :)
Best regards, education
Re answer
I'm trying to override blog->blog_block() function in the blog.module. However in continues to use the block.tpl file in my templates directory because the function is being dynamically called from the block.module. Can anyone help me on how I would do this? Below is the current code I am using. function smarty_blog_block($block) { return _smarty_callback('blog_block_listing', array('block' => $block); }
Life Shared
I'm exploring Drupal for a client and came across your web page. Thank you for the smiles. I've programmed more than one Saturday night and Sunday morning! (which is today!) I loved your title: A Curious Lack of Planning, Foresight, and Purpose
Thank you for your page regarding Drupal modules.
Kill?
LOL I can live with out this :-D
----
Regards, Mike
Music mp3 Online
Drupal
I used CakePHP for most of my project, but looking at this I start to be interested in drupal. It looks like Drupal has lots of interesting modules to provide better functionality. Thanks for the list, very useful.
Help and Thanks
Thanks for great article first.Can you help me about the character problem these modules..i usually cant solved turkish character problem.when i install new module , it causes words like %FD, $snp etc on my sites.
best regards.
Great and excellent article
Great and excellent article t’s realy helpful. Thanks again.
quote:"but if they are so
quote:"but if they are so essential andd rupal is likely to suck
without them, why the hell aren't they part of the base install?"
*absolutelly* agree.
all that i want is a CMS no necesary to enroll people, you know im migrating form my only piece of webdesign software i will ever bought : frontpage 98. this will be the only web site i will build ever. have "some" html understanding. need more than 4 level of categories (bye joomla), need "white paper approach", need add lots of screenshots, insert dwf's files (these are from autocad), need to insert some 3D pdf (not link), and so.
IF drupal is so good, all i have to do is login in my webhosting cpanel, click on fantastico drupal installer and begin concentrating in my work. im not able to pay a programmer to do something, anyway , why i have to need one?
finally english is not my natural language to add more complexity to things....
ok thanks for listening, i will try "tinymcE" module to obtain WYSIWYG.
WHY IS NOT THIS STUFF INCLUDED BY DEFAULT???????????
this is stupid nerd philosophy
grrrrr
aricle
Hey, i have question. Can i translate this article to my site?
very good site.
Great! This is a great help
Great!
This is a great help for a project I am working on using drupal.
Thanks!
re: 10 drupal modules you...
Very good post,
szkolenia
Nick, you're awesome, and thanks for doing this. You've set me in the right direction. One further hope for recommendation, then. Do you have a preference for generating a contact list (not a series of contact form)? I want to have a page with all users of a certain group (access group) listed on a "contacts" page, with vCards and such. Thanks in advance if you answer my plea for free tech support
Nice
Very intresting an helpful post, I check it out.
Great post
This is a great help for a project I am working on using drupal. Thanks!
Drupal Comment Module Problem
Interesting list! But apart from this great list, I’m still having problems with my comment module. I’m not sure if I installed it right. But it’s really not counting correctly. My friend said this has been solved some time ago but I’m really out of this world these past few days.
I completely agree
I think this is a great post. Personally I prefer dashboard and I happen to be one of those people who isn't quite a cyborg yet...I'm still one of the normal people just barely starting out. I've been introduced to several concepts and truly, dashboard is the one that I like the best. I just don't think that normal people like me really get the control panel. Dashboard is so much easier--the concept and the actual implementation and use of it is fantastically simple. I'm also 100% in favor of printer-friendly pages. I know, I know that some designers like to get all creative, but nothing crawls up my craw and bites harder than a page that prints crappy. I do research half the day and then have to go home and work on what I researched. I don't need some designer getting in my way with fancy doodads that make the words cut off on the printer. So, tell me...are there any new features coming out to Drupal that I should know about that are going to make my life that much easier?
Core
I hope we can work towards including the dashboard module (not control panel), the views module and the CCK into Drupal core. The reason they are not part of core yet is because they need more work. They are just not ready yet, but I'd like to believe that the modules' authors know what to do to get it included.
article
Brilliant idea. Thanks for very interesting article. btw. I really enjoyed reading all of your articles. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more.
THANKS!
We used over 50% of your suggestions on our clients site. The thing about Drupal is that there are lots of modules which do the same (or similar) tasks. Finding the best ones and the most supported ones are the hard part. You can read the forums sometimes, but opinions are likely biased to what they have used. Very seldomely does a developer try multiple modules to find the best one.
Again this article hsa been helpful to our developers!
How to install a drupal module???
Please help me - I feel like i am a complete idiot. I am trying to install TinyMCE and I cannot get the module to come up in the list.
I have installed a few other modules according to instructions found elsewhere on the net - most notably - this one http://www.siteground.com/tutorials/drupal-tutorial/drupal_modules.htm
I have followed it to the letter and none of the modules I installed are showing up in the modules list and I can't find any help on this problem.
Which is why I feel as though I am screwing up something that is probably dead easy.
Background info. I installed Drupa through my control panel at Hostgator. They have a section called Fantastico which has plenty of open source stuff to install. It appears as if the installation went fine.
I can see all of the standard modules and administer them just fine. I see that all of the standard modules have .module files in the folders for each. The uploaded modules however have only .tar files and no .module
Anyway, any help would be sorely appreciated.
Thanks!!!
Some people might laugh at
Some people might laugh at the question, but they an odd sort: geeks who are amused by people who don't "get" a recursive joke about "people who don't 'get' a recursive joke about 'people who don't get a recursive joke about'[people who don't '.get.' a...;
//i never said it was a funny joke.
So, a ".tar" file is like a .zip file. It needs to be uncompressed (like a file that comes in ".zip" format on windows. See if your hosts file manager has any option to unzip it when you select the file. If not, you can download winrar, and it can be uncompressed on your local machine. You'll probably want to set up an FTP client that connects with your host in this case (there are better ways, but they involve "shell access" which many hosts don't provide, and even when they do, you have to specifically request -- sometimes with a faxed photo id; its not necessarily something that you should need to learn yet.
The command to unpack the file on the shell is simply:
"tar -xvf example_filename.tar"
Also, search engines are the best teacher. Most of the time, you'll find that tons of people had wondered the same thing.
I would add one more module
I would add one more module to this list - Akismet.
Nice list
Nice list =O)
I just think, that "Printer friendly pages" module is quite unnecessary,
because when implementing right, the designer should base more of the work
on customizing CSS for printing.
Thx for the post.
This is a great help for a project I am working on using drupal. Thanks!
WordPress
Thanks!
Great article
TinyMCE is not bad, but i
TinyMCE is not bad, but i miss the file upload function :( therefore i use Fckeditor modul for drupal
ps: for your HTML tags can you use my java html tags script
Hahahahaha
Hahahahahahaha
Here's to hoping you make a list of Five Modules You Can't Live Without for Drupal 5.
When the location.module's
When the location.module's api has its act together in drupal 5, I'll write my list. :-)
update necessary for this post? (Drupal 5.1 is out there!)
Anybody interesting in restarting this idea of creating a list with 10 Drupal Modules You Can't Live Without?
We'r a year further now :-)
re
Brilliant idea. Thanks for very interesting article. btw. I really enjoyed reading all of your articles. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more. Greetings
New top 10 list
It's true - this list is excellent, and I'd also love to see it updated for the current version of drupal.
Customizable robots meta tags
Is there a way to edit robots different meta tag for each page separately? I have to make some page out of indexing for preserving PR?
Elvis
Use the meta tags module
There is a module for meta tags and when you add new content, it is there where you can specify to the spiders if they can or cant follow.
Great Post
I am off to get feedback, blockbar, and Control Panels. I am new at Drupal and have a site at:
http://splunks.com. It is a funny videos, pictures jokes and more site. I am still trying to figure out how I can integrate the awesome community based modules from Drupal into my site. I would love to hear some suggestions. Thanks.
Hey
You used the word "hella". Are you from North California? lol sorry so random
Great post
Nick,
Nice post it helps. One Question. What did you use to do the "Browse by Category" in your right sidebar?
Thanks
AndrewB
Drupal the great enabler!
Thanks
This is a great help for a project I am working on using drupal. Thanks!
I found a great tool to publish offline.
Thanks.
Problems Overiding blog->blog_block
Hmmmm… I haven't done much
Hmmmm... I haven't done much with smarty, so I can authoritively say this, but it looks like you're trying to apply phptemplate.engine's functions to smarty. You should probably stop. in phptemplate, you can't just override a block the normal way (you'll note that phptemplate.engine, already contains a function phptemplate_block() {}.
In order to override the default phptemplate.engine function, use the name of your theme in place of of phptemplate_ thus instead of "function phptemplate_block_", you'd want to use the theme name, e.g. if you're using blue marine, you'd want to go "function bluemarine_block($foo, $bar) { } But, that's probably not neccessary.
Really, you should just consider using the variables "$block->module and $block->delta" to build a switch. Those variables come by default to your block.tpl.php file without addtional coding. Thus, in block.tpl.php:
<?php
switch ($block->module) {
case 'blog':
if ($block->delta == "1") {
print "hey, looky here...";
break;
}
default:
print "yeah... you just another stoopid block";
}
?>
The Categories module has
Other modules
The modules I always are:
NodeWords: this module include the meta tags keywords and description to all pages.
Excerpts: To create a resume of the page, instead of just a part of the node body.
PathAuto: To create search engine friendly pages
PageTitle: Although it is new, it permits to have keyword rich titles without to have all these keywords in the content of the page.
These 4 are very important for SEO!!!
I will also add:
TaxonomyContext: To have taxonomy based menus for several sections of the site.
PoorsManCron: To have cron without need to have a cron task. Works OK for small to medium sites.
GoogleSiteMaps: to have your site maps in Google.
Ping, Book, Search: Are part of the core, and very useful.
And finally ADSENSE, to all sites that will make money this way. It is very ineresting the Adsense sharing functionality.
Uh... Civic
From their webpage:
"What's new in 1.3?
* Joomla/Mambo front end. "
?? Its not for Drupal.
CiviCRM is for Drupal first, Joomla more recent
A Joomla frontend was in their "What's ***new*** in 1.3?" list... they've used Drupal I think since the beginning.
Holy crap you're right!
OMG
Nick Lewis - you're my hero!
No Zack, anonymous is the
No Zack, anonymous is the real hero today. The other night, I was toiling away on my computer -- I thought I was working within a site built off of civicspace, and at the time, it seemed that I was hacking the CiviCRM search API. But then, the 5 hits of windowpane wore off, and I read anonymous's comment. It was then that I realized that I wasn't working with drupal and civiCRM on my computer at all -- but merely playing a solitary game of yahtzee with my dirty clothes hamper.
That's when I decided to get clean. Thank you anonymous. You saved my life.
10 modules that you REALLY can't live without
this is the bare minimum i would use for a simple brochure site.
front_page
image
img_assist
menu
node
page
path
poormanscron
taxonomy
Core
Dries, I agree with you that
Dries, I agree with you that control panel would make a bad choice for a core module. And indeed, my attempts at adding user-reference and node-reference fieldso to nodes made a clear argument that CCK is still in a young and rambunctious phase. It was released what -- 5 days ago?! And though views is stable enough, it is indeed likely to change dramatically as more and more people realize its power, and its tested against the reality (the great destroyer of any programmers 'plans'). Of course you already know this. :-)
In so far as controlpanel is concerned, I agree that it would be lousy thing to add to the core. Right now, I'm singing high praises for it because it gives me an easy API to make drupal's hundreds of menu items monkey friendly. If anything, I think controlpanel is more powerful theming tool than it is a standalone module.
If there was one change I would make to the core it would be this: menus lack a lot of key data for CSS and AJAX -- however, menus are big spenders of resources as it is... what I think would be really helpful is there was a function that asked menu items a simple question: "From where, oh where did you come from?!" The answer could be as simple as returning the module's hook. I know that somewhere in the core,some function knows the node link "(username)'s Blog" was generated from the blog module -- however, I have yet to find a way to get an agreeable answer from the core about this. In order to generate dynamic classes so that I could add nice little icons to every $var[node]->links item in node.tpl.php, I still have to resort to using crazy preg functions, parsing out the retunred values, and then making them CSS friendly.
The control panel module, in a way is great crutch to solve the obvious problems with a preg solution when it comes to admin items. Yet, really, all I want is <li class="leaf"><a href="node/add/blog" class="node-blog-add" />... if I had that, I could reproduce control panels entirely via theme. Its really quite simple... it just would require onegeneral css rule, and a background-image:url() statement for each .menu li a.class.
This would be too much extra overhead to return by default, but I think merely making it available would cause a drupal UI renaissance. Especially when one considers how many ajax libraries execute actions on the basis of element classes and ids.
But I'm a mere idea hampster whose overworked, and needs to start making more time to help fix bugs beforeI start leaving comments in a suggestion box... just keep doing what you do!
once again assumptions are made
Once again people making broad unqualified statments to their specific needs without mentioning the context of their use. While I realize I am not an uber web developer your choices obviously carry assumptions about your market segment and types of sites you develop for :). TinyMCE for it's vanted GUI'ness is not necessary for many sites with a small group of people producing content and various browser issues have been frustrating in the extreme adding to annoying support overhead. This is why I stopped using it completely and removed it from all the sites I've done.
I would have added image, xstatistics, browsini and PHPTemplate. :)
Your assumption that only serious people need feedback is interesting. None of the folks I've setup sites for are interested in a 'feedback' form. They rely on people who visit their actual store. For the personal sites I've setup for folks, again their audience is people they know, not 'feedback' from strangers so MySpace and blogger are not good answers.
Blockbar is new for 4.7. Looks very nice. Not having deployed sites on 4.7 yet but have tried it I am unsure how other than general 'coolness' I will use it much less how 'pretecting' people from their sites admin function accomplishes this. Perhaps rather then a listing of modules a specific set of stragtegies to impliment modules in unexpected ways?
Control Panel is interesting but I think the simplicity of our current interface is overlooked. I will probably look at it again when I am upgrading my sites to 4.7 and will freely admit to not having had time to look at it recently.
Printer Friendly pages, again assume you are making sites that will need printer friendly content. If you have the old fixed width site that is sized to fit on a printed page then again, not needed. :)
CivicCRM is powerful. It is also very very complex and in many many cases completely uneccessary for a huge segment of site builders. Unless of course you run those types of sites. I doubt many many people even have the vocabulary to begin to understand what CivicCRM can do for them. I know I don't at this point.
Simplenews, awesome if you are running a newsletter (which I am on one site). Bad behavior, I'll take your word on it. For others not used to Drupal development, Views and cck are the breakthroughs of 4.7. Depending on how they evolve we'll see if any and what features evolve to join core 4.8. :) I'm still learning how to use them myself.
Perhaps you could elaborate on the types of sites you develop for and how these modules render themselves essential for you and your needs? As the first comment indicates, 10 essential modules heavily depends on perspective , types of sites you are building and audience that will be maintaining and using it. I would have mentioned image module myself. :)
Well I think the number "10"
Well I think the number "10" connotes that these choices were somewhat arbitrary.
FYI, I'm striking feedback from the list shortly, as Earl Miles rightly pointed out that the 4.7 core now takes care of this function -- and upon investigation, indeed does so in a superior way.
And you are correct about how the types of sites I'm building these days would sway my opinion. But, I think its the feedback on drupal from the many people I've been working with that is perhaps the biggest factor that influenced my choices.
TinyMCE, I feel is like that old cliche about democracy -- its the worst path to take, accept for the alternatives.
Stuff you may not be aware of: 4.7 TinyMCE provides compression that has greatly reduced load times and overhead. It also lets you select buttons and plugins one by one. Also, the recently released version of TinyMCE, v. 2.02, is a noticable improvement on 2.01 (which we'd be using for the past 5 months or so, I believe...). And, Safari is really the only browser that I'm aware of that has difficulties with TinyMCE. And I confess I don't spend much time worrying about explorer 5, ancient versions of netscape, or resolving javascript problems with Safari. Why? Because it affects maybe 4% of visitors, and doubles the time it takes to get a site up that meets the requirements.
Its a cost/benefit thing... I think aiming for universal browser support for "web 2.0" is kind of ike communism. Its inefficent, a good idea that really sucks in practice, and it reduces the overall quality of the site. Why do I say that? Simple, when you're going back and forth between IE5.5, Safari, Firefox, and Explorer, toiling at hacks, experiementing and pulling your hair out you are spending time. And at least in my book, time is everything: its cost, sanity and opprotunity.
The choice on controlpanels came from an observation: I was working with folks who still had trouble navigating through the admin menu after working with drupal for many months. In all cases, control panel solved their mental block in understanding how the different parts fit together, and where the settings they were looking for would most likely be found. Lately, myself have perferred the controlpanel view+blockbar to expand and contract the menu at any point of the site.
3. True: a greyscale fixed width site that looks good on a printer by default doesn't need a printer friendly version. Rather it needs a new design -- perhaps with some color. Also, as soon as you add a hyperlink to a page, I think providing a printer friendly version is a thoughtful move.Really, I can never think of reason NOT to help visitors read a sites content on their own terms.
+++
That said, your last paragraph is dead on. Context is everything to those who are learning -- thanks for the feedback.
Feedback
In 4.7 the feedback module should be replaceable by contact.module which is in core, so unless the list is for 4.6 (and CCK is not for 4.6) you can dump that module from the list, I think. Unless feedback does something I missed.
I agree in principle about the Control Panel, in the sense that Drupal's administration pages are very badly organized. On the other hand, icons for administration do nothing for me, and in fact are a hindrance. CPanel puts me into 'fight or flight' mode, and the Windows control panel switch to defaulting to a text list ages ago. Icons are amazing when they can easily identify concrete tasks, but administration tasks are hard to iconify well, and badly iconified tasks are just confusing and detract from the system.
Take a look at the administration module, which re-organizes the menus. Which reminds me, I need to post about that on drupal.org
some more nominations
other essentials: pathauto and excerpt
it's bizarre and weird that some modules aren't in core. it's even more bizarre and weird that they are currently dead, like bad-tasting squash on a vine after frost, and nobody's moving them up to 4.7 yet:trackback, scheduler
other awesome modules: aggregator2,
10 Drupal Modules You Can't Live Without
"10 Drupal Modules You Can't Live Without"
ja :) die module sind gut, gehören in jede drupal seite :)
gruß
Nice collection
but if they are so essential and
without them, why the hell aren't they part of the base install?Personally I would add flexinode and Taxonomy Access Control to my list of cant-do-withouts.
Yeah -- let me backup... its
Yeah -- let me backup... its not so much that drupal sucks without certain modules, as a large number of the population will need them to be impressed by drupal, or to find drupal usable.
These modules aren't part of the base install because the core maintainers have enough on their hands as is. I wouldn't be suprised to CCk, or Views integrated eventually into the core, however.
In so far as taxonomy_access, and flexinode... I think CCK really takes over a lot of that. Plus, taxonomy_access can get pretty hairy to manage on sites with lots of vocabs and roles. I'd almost perfer path access.
Thanks!
Thanks to Nick, and to who
Thanks to Nick, and to who ever suggested this "top 10." I am very new to drupal, just having stumbled upon it after months of looking for something that would allow me the flexability I was looking for in a CMS. Previously I've tried textpattern, wordpress, and yes *gulp* even joomla...
I am going to take a good look at these modules! Thanks again for the guidance ;)