Anyone creating a website with Drupal should be comfortable locating, downloading and installing modules to their site. Locating a theme or module for a particular need is somewhat more difficult, simply because of the large number of themes and modules available. In this sub-tutorial I will outline some generally useful information, such as:
-
Some tips for smarter searching with Google;
-
An overview of useful Drupal search terms.
For those seeking a module supporting specific features, the best method I’ve found for locating such a module is a Google search. Using Google is far better than the search function at Drupal.org, and with a little hint to Google, you can use Google to search Drupal.org for you. Additionally, refining your search results helps, as does knowing the Drupal terminology to describe a feature you seek. I also expect that Bing and other search engines probably operate in a similar manner, so these tips probably apply to them as well.
Google Search Tips
Be aware of the benefits and drawbacks of using quotes around search terms. For example, a search of:
drupal node in a block
generates significantly different results than:
drupal “node in a block”
When using quotes, you’re telling Google to locate those exact words in that exact order with that same capitalization. Sometimes Google will give you what you want, but other times it will miss results you’d like because of the exact matching. Also, Google probably sees the unquoted version as “Drupal node block” because commonly used words like “in” and “a” are ignored (unless within context they match a famous name or phrase.) These commonly used words are technically known as “stop words”. (I’d have named them “skip words”.)
For a huge list of these stop-words, you can click here.
a able about above abroad according accordingly across actually adj after afterwards again against ago ahead ain't all allow allows almost alone along alongside already also although always am amid amidst among amongst an and another any anybody anyhow anyone anything anyway anyways anywhere apart appear appreciate appropriate are aren't around as a's aside ask asking associated at available away awfully b back backward backwards be became because become becomes becoming been before beforehand begin behind being believe below beside besides best better between beyond both brief but by c came can cannot cant can't caption cause causes certain certainly changes clearly c'mon co co. com come comes concerning consequently consider considering contain containing contains corresponding could couldn't course c's currently d dare daren't definitely described despite did didn't different directly do does doesn't doing done don't down downwards during e each edu eg eight eighty either else elsewhere end ending enough entirely especially et etc even ever evermore every everybody everyone everything everywhere ex exactly example except f fairly far farther few fewer fifth first five followed following follows for forever former formerly forth forward found four from further furthermore g get gets getting given gives go goes going gone got gotten greetings h had hadn't half happens hardly has hasn't have haven't having he he'd he'll hello help hence her here hereafter hereby herein here's hereupon hers herself he's hi him himself his hither hopefully how howbeit however hundred i i'd ie if ignored i'll i'm immediate in inasmuch inc inc. indeed indicate indicated indicates inner inside insofar instead into inward is isn't it it'd it'll its it's itself i've j just k keep keeps kept know known knows l last lately later latter latterly least less lest let let's like liked likely likewise little look looking looks low lower ltd m made mainly make makes many may maybe mayn't me mean meantime meanwhile merely might mightn't mine minus miss more moreover most mostly mr mrs much must mustn't my myself n name namely nd near nearly necessary need needn't needs neither never neverf neverless nevertheless new next nine ninety no nobody non none nonetheless noone no-one nor normally not nothing notwithstanding novel now nowhere o obviously of off often oh ok okay old on once one ones one's only onto opposite or other others otherwise ought oughtn't our ours ourselves out outside over overall own p particular particularly past per perhaps placed please plus possible presumably probably provided provides q que quite qv r rather rd re really reasonably recent recently regarding regardless regards relatively respectively right round s said same saw say saying says second secondly see seeing seem seemed seeming seems seen self selves sensible sent serious seriously seven several shall shan't she she'd she'll she's should shouldn't since six so some somebody someday somehow someone something sometime sometimes somewhat somewhere soon sorry specified specify specifying still sub such sup sure t take taken taking tell tends th than thank thanks thanx that that'll thats that's that've the their theirs them themselves then thence there thereafter thereby there'd therefore therein there'll there're theres there's thereupon there've these they they'd they'll they're they've thing things think third thirty this thorough thoroughly those though three through throughout thru thus till to together too took toward towards tried tries truly try trying t's twice two u un under underneath undoing unfortunately unless unlike unlikely until unto up upon upwards us use used useful uses using usually v value various versus very via viz vs w want wants was wasn't way we we'd welcome well we'll went were we're weren't we've what whatever what'll what's what've when whence whenever where whereafter whereas whereby wherein where's whereupon wherever whether which whichever while whilst whither who who'd whoever whole who'll whom whomever who's whose why will willing wish with within without wonder won't would wouldn't x y yes yet you you'd you'll your you're yours yourself yourselves you've z zero
(hide this list please!)
If you do not want a stop word to be ignored, you simply precede it with a plus character, without any space between the plus and your stop word:
drupal node +in +a block
This tells Google not to ignore the “in” and “a” words, and gives a preference for pages with those words in the order you provided.
A really nice aspect of Google is the ability to refine search results. For example, the above search gives a result for “node terms” fairly high in the search results. Since Google reproduces your search phrase above your results, you can refine the results very easily. For example, to remove pages from your search results talking about “node terms”, you can use the “exclude modifier”:
drupal node +in +a block -terms
Simply modify the search phrase above your results by adding a minus/dash character before the word you want to exclude from your results. This will return identical results, but without pages where the word “terms” appears. Note that pages that casually contain the word “terms” will be excluded as well, so be careful what you exclude.
Note that we are searching the entire web with the above search phrase. Here’s how to force the search to only include results from one web site:
drupal node +in +a block -terms site:drupal.org
Using the “site:any-web-site-address” modifier is a great way to search the community contributed themes, modules and Drupal support forums all at the same time. The “exclusion modifier” also works in combination with the “site only” modifier to remove search results from a given web site. For example, modifying the above to exclude results from Drupal.org by simply entering:
drupal node +in +a block -terms -site:drupal.org
The “site only” modifier can also be generalized to entire top-level domains. For example, let’s say you were reading a Drupal developer’s blog talking about putting nodes in blocks, but for some reason you did not bookmark the site. Now you want to find it again, and you vaguely remember the developer’s web site had a non-standard address, not ending in the usual “.com”, “.net” or “.org”. The following will remove any web sites with an address from those top-level domains:
drupal node +in +a block -terms -site:.com -site:.net -site:.org
The results from this search will list a lot of international sites outside the United States, as well as sites with ".biz", ".info" and other less popular domains.
Now, this “node in a block” idea I’ve been using as a search example is somewhat exhausted, so before moving on I’ll mention Google’s “wildcard” modifier. Using the “*” character in a search phrase tells Google to look for the phrase you entered, replacing the wildcard character with one or more other words. This modifier is very useful for feature searching:
site:drupal.org XML-RPC * realtime
The above will search only on Drupal.org for phrases where the words “XML-RPC” and “realtime” appear, with a preference for pages where the distance between the words is small. Combining this with the other search modifiers can significantly reduce the time you search for Drupal information, modules, themes, and issue solutions.
There is quite a bit more you can do with Google search terms, I suggest you look here for more tips.
Useful Drupal Search Terms
Of course, if you are somewhat new to Drupal, it helps to know what terms the Drupal community uses to describe different parts and features of a web site. For those in need:
Theme is a very overused word for Drupal. “Theme” can refer to multiple things, depending upon the context. A theme can be the name given to the collection of PHP, CSS, template, images and related files that together drive the logic for rendering a Drupal page. “Theme” is also used as a verb to describe adding the final presentation to some element, as in “I just themed my buttons”. And “theme” is the name of a Drupal PHP function that applies a Theme’s theming function to an element of the page! Yes, quite confusing. Due to these multiple uses of “theme”, using that word in search terms is practically useless.
A Sub-theme is a theme, just like any other, but with the exception that it borrows all the resources from another theme as its starting point. In other words, a sub-theme inherits the CSS, templates, images and related files from its base theme.
Module is the name given to a custom functionality plug-in for Drupal. We should be happy that modules are not called “plug-ins” or “mods” because then they’d be even harder to search for.

Region is the name given to an area of a Drupal web page. Mainly used in descriptions of contributed themes, a region is a rectangular area in which site contents can be placed. The number and behavior of regions (as in firmly located or floating, rigidly sized or flexible) is dependant upon the theme used. Regions are the containers for a page’s header, footer, sidebars, main contents and any other areas displayed to the user.
Block is the name given to regions other than the main content area, such as a sidebar, or footer. Blocks typically contain navigating elements, summary information, special features, and advertisements.
Due to the use of block within this context, searching for modules that block undesired content becomes a bit more difficult. (Incidentally, I’ve written a tutorial covering how to prevent undesired content. Note that that tutorial is focused on blocking undesired comments, but the solution works equally well for user submitted content, if your site allows users to publish content. I'll provide a link to that ASAP!)
Node is the name used for an article of content in the main content area of the page. Essentially, what you are reading right now is inside a node. Collectively, the nodes of a site comprise the articles one reads when visiting the site.
Content is the name used to collecively refer to any information displayed inside Nodes and Blocks.
Content Type is the term used to refer to Content that has been created and saved in a workflow specific to the handling of information related to the type of information it is. For example: a page is a Content Type in Drupal used to store general information; a story is also a Content Type in Drupal, and that is used to hold information spread out over multiple pages. When creating forms for user input, each type of form is created within a different Content Type, enabling presentation and handling of the information in a different manner than information of other Content Types.
Template is the name of a file type used to create a Drupal theme. They are mixed format PHP and HTML files used to render blocks and nodes into their respective regions. Drupal automatically looks for a unique template for each Content Type, with a fallback to a generic node or block template when one is not found. This can be used to control the presentation of customized information and forms.
Page is also an overused word in Drupal. Not as overused as theme, the word page refers both to the entire rendered page of the site, and to the node area of a page when multiple nodes are displayed as a list. Page can also refer to the “access denied” or “page not found” pages. In general, the word page is overused in web development, and becomes useless in searches.
CCK is short for “content construction kit”, a very popular module that is built into the new Drupal 7. CCK enables you to give Content Types familiar web widgets to interact with the user. Examples of CCK widgets include text fields, email fields that verify an email address is valid, multi-option checkboxes, radio buttons, images, embedded videos, embedded flash, Google maps, and so on. There are dozens of modules extending CCK with additional features and custom widgets. If a feature you are searching for can be expressed in a widget, adding CCK to your search terms may help find your solution.
Views is the name of a popular module enabling you to create pages displaying the results of node searches. In the Drupal.org image above, the node area is displaying a view, the term used to describe a page generated by Views. A common use of Views is to create a site’s home page as a listing of teasers to recently published nodes. The Views module can be used to construct very useful and complex information displays, and may be all you need for that desired content display feature of your site.
In summary, understanding how to use Google search, how to refine your search results, and what some key Drupal terms are can help you locate modules, themes, tutorials, and bug reports during your Drupal development efforts.
This concludes this sub-tutorial on how to locate a theme or module based upon a feature search. Being that I am already quite familiar with Drupal terminology, I expect that my listing of useful terms above may be incomplete; if you have suggestions or questions about how Drupal describes some type of feature, ask me in a comment to this article. If possible, I will add your answer to the main body of this article, and send you an email telling you of the article update. Likewise, if you have other questions or suggestions for how I can improve the above, please write a comment. Constructive comments will be followed as much as possible.
Comments
Post new comment