About Drupal documentation

The Drupal handbooks are the primary documentation reference sources for how to use Drupal. They are maintained by the Documentation team. The handbooks use the book module, which enables collaborative editing and provides navigation elements.

Off-line copies of any the five documentation handbooks can be created as follows:

  1. From the handbooks tab, go to the top level page of one of the five handbooks: About Drupal, Installation and configuration, Customization and theming, Developing for Drupal, or About Drupal documentation.
  2. Click "Printer-friendly version" link at the bottom of the page. This link is at the bottom of the main content area of book pages, above any comments that may have been added.
  3. If you know the node number of the book page, then it has a path in the form "node/14279", and you can substitute "book/export/html/14279" to get the printer-friendly version.
  4. The current page and its sub-pages will be output in a clean format with no headers, footers, or side blocks.
  5. Comments to book pages are not included in the printer-friendly copies.
  6. Save the content for off-line use, either by printing, by saving as a .pdf, or saving as html.
  7. This works for sub-sections of a book as well, but there is no way to output all five books at once.

Handbook conventions:

Drupal version applicability for each page should be designated by the page author. These tags are displayed on the right immediately under the title.

Paths: Instructions such as (administer > user management > access control) are not URLs, but refer to the navigation steps to get to a particular page. In this example, select 'administer' from the navigation menu, then 'user management' under 'administer,' then 'users' under that. Variations include the absence of the parenthesis, lack of italic type face, and use of ">>" or "»" instead of ">." On the other hand, a reference to 'admin/access' is a URL reference.

Handbooks overview

Drupal documentation relies on volunteer effort. The current documentation team coordinator is Steven Peck

There are five separate Handbooks, each with its own focus.

The About Drupal book contains the history and mission statements for the project, basic information on Drupal version numbers and some information about Drupal.org. It also contains some marketing material and links to professional support services and other tips for interacting with the community.

The Installation and configuration book is focused on setting up Drupal core and some basic best practices. This is a slight change from it's previous role and some basic reference instructions have been moved out.

The Customization and theming book is a variety of reference material and How to's, example snippets and theme guide. There is a section for the large more complex of the contributed modules as well (Views). The theme guide needs some attention as part of the information still relates to older versions of Drupal.

Developing for Drupal is the oldest book and the original root prior to the division into five handbooks. It is fairly actively updated in various section as many of our active developers understand the value of documentation. It is hoped that the new Drupal dojo project will also be a good source of new developer documentation. The most up-to-date code documentation and examples can be found on api.drupal.org which is primarily generated from the Drupal source code itself.

The About Drupal documentation book contains information about Drupal documentation projects, authoring guides for documentation, and copyright and licensing notices for the handbook.

Contributing to documentation


Contributing to documentation is an excellent way to support the Drupal project -- even if you are a beginner. In fact beginners have a distinct advantage over the experts, because they can more easily spot the places where documentation is lacking.

A good habit to get into is whenever you seek help from the handbooks and get stuck, take that as your cue to start taking notes. Note down everything you try in order to solve your problem as you go along. Don't do it later because you'll forget the all important details. Then, once you find the solution, use your notes to make the handbook better. Once you develop the habit, this is an almost effortless way of helping!

So, how do actually put your improvements into the handbook? Well, there are many options...

Join the documentation team if you would like to do a lot of contributing to the documentation handbooks, particularly editing.

But you don't have to be a member of the documentation team to contribute! The first five ways listed below are available to everyone after creating an account. Everyone's contributions and suggestions for maintaining and improving the documentation handbooks are welcome and encouraged. Here are the different ways to contribute to the documentation effort:

Submit an issue to make a documentation page update suggestion. Make it against the documentation section of the project. Check to see if an issue already exists for your suggestion; if so, you can improve the existing one. Issue reports are the preferred method if you have a specific change recommendation. See Documentation issue reports for more on using issue reports.

Comment on existing pages. You must be logged in (authenticated user) to do this. The principle limitation is that comments are not rigorously reviewed by the documentation team the way an issue submission is. See the linked page for more on commenting on handbook pages.

E-mail the documentation list. If you have a general comment or proposal on the handbooks, then start with presenting it to the documentation team. Note that if you can suggest specific actions, it would be better to submit an issue.

Submit a forum topic. This might be the best venue for general observations and discussion if input from the entire community is sought. Vetting it through the documentation list first will help better define your discussion. The documentation forum is also a good place to ask the location of a documentation topic. See also Tips for posting to the Drupal forums.

Add handbook pages. Presently, all authenticated users can add new pages. If you want your new page reviewed for location or content after adding it, submit an issue with status "code needs review." For "missing" pages you feel should be created to cover a particular subject, do not create a nearly-blank stub page; instead, submit an issue with category "feature request." Be sure to familiarize yourself with the Documentation writer's guide and the Style guide.

Edit handbook pages. Editing existing pages that you didn't create requires the documentation maintainer role. For this, join the documentation team. The documentation maintainer role will allow you to edit most handbook pages, including their hierarchical location (but not order). Substantial changes such as major re-writes and changing top level page organization should be discussed on the documentation mail list first.

Delete handbook pages. The site maintainer role is required to delete handbook pages, remove comments (once they have been incorporated into a handbook page), unpublish and publish pages, change page weight (order), and edit certain pages. Only a few members of the documentation team have this responsibility. Submit an issue to propose your actions.

The API documentation for Drupal developers is a bit different, as this is auto-generated from files in CVS. To update the description of a file or function, submit a doxygen patch against the core file in question. To update one of the "topics" pages, hooks documentation, or pages such as the Forms API reference, see Updating API documentation. See also Embedded documentation.

Creating pages in the Drupal handbooks

Everyone in the Drupal community is invited to submit new pages in the Drupal handbook. Join the documentation team to edit existing pages.

  • Please review first the authoring guidelines section for handbook pages.
  • Any drupal.org site member may create book pages and edit book pages which they have created. New pages will be reviewed and if need be edited, incorporated into existing content or moved.
  • Since regular drupal.org accounts cannot edit book pages which they did not create, additions to or corrections of other handbook pages should be submitted as an issue to the Documentation project.
  • Members of the documentation team who are site maintainers may choose to post new pages or edited pages directly.
  • Rough drafts of new pages or edited pages which are not production ready--i.e., need feedback and/or additional development--should first be submitted as an issue to the Documentation project.
  • Finally, make sure you have enabled the personal contact form in your user account in case Drupal documentation team members need to contact you about your contribution.

Documentation issue reports


This page is primarily to:

  • Aid documentation contributors in submitting effective issue reports.
  • Aid documentation team members in managing issue reports.
  • Introduce the issue report system to those new to it.

Issue reports are the primary tool by which handbook updates are tracked. Always include the node number or URL.

Issues vs. e-mails: It is usually better to submit issues than sending e-mail directly to the documentation list for most matters, including any topic that requests response or action. That way, the topic becomes a node, and can be more easily followed. For requests to join the documentation team, proposals, and similar discussions, label the issue report with category: "support request," and status: "active."

See Bug reports for documentation on submitting issues against modules. See Embedded documentation for submitting issues on the built-in help text.

Issue report project:

  • Use "Documentation" for most handbook documentation issues.
  • Use "Drupal.org webmasters" for page delete requests, such as spam and test handbook pages.

Issue report category:

  • Use "bug report" for errors.
  • Use "feature request" for requests, including new material and policy changes.
  • Use "tasks" when an update is in development.
  • Use "support requests" for requests that require site administrator role, including joining the documentation team, deleting handbook page comments that have been incorporated, and adjusting page weight for proper page ordering.

Issue report status:

  • Use "active" for feature requests and bug reports for which the solution is unknown.
  • Use "patch (code needs work)" if ideas or a proposal or rough draft are being hashed out.
  • Use "patch (code needs review)" if you've attached or posted a page you would like reviewed.
  • Use "duplicate" if the issue is a duplicate of another issue that already exists (see more below).
  • Use "fixed" when the item is completed; its status will update to "closed" automatically in two weeks.
  • Avoid "active (needs more info);" issues with this status are not displayed in the default filter and are not distributed on the mail list (neither are issues updated to "duplicate," "won't fix," "by design," and "closed").

Issue report style guide:

  • The "problem" is that the tab character will show up in the message which is e-mailed, but not on the node created at drupal.org. Conversely, using html tags like ul (unordered list) show up on the issue report at drupal.org, but are lost (nested list looks flat) in the plain text e-mailed out to the documentation list.
  • "Reorganizing the Patch docs" is an excellent example of this, as the same text was sent out both ways. Compare the issue node and the mail list output. The first submission worked on the mailing list; the second one worked on the on-line issue report; neither worked on both.
  • The "solution" is to use generally plain text formatting without leading spaces and tabs.
  • For indents and lists, use two hyphens "--" to denote hierarchy. This has the advantage of being consistent with the drop-down "parent" field for pages in the handbooks. Avoid using ordered or unordered lists, <ol> and <ul>.
  • Hyperlinks are fine: they function at the issue report node, and are converted to footnotes in the e-mail. You only need the short path, such as <a href="/node/999">.
  • Bold tags (<b>) are delimited with asterisks "*" in the e-mail version.
  • Italics tags (<i>) are delimited with slashes "/" in the e-mail version.

Discussion amongst the documentation maintainers (via an issue report) should be pursued prior to performing the following types of changes:

  • Changing the name of a top level chapter in one of the books.
  • Moving a top level chapter in a book.
  • Large re-writes.
  • Big re-organizations.
  • Rough drafts that are not yet ready for production.

Look at existing issues to verify that the topic is not already filed. Reference potentially-related issues. If a forum discussion is the genesis of an issue submission, reference it.

Duplicate issues: If an already-created issue turns out to duplicate another issue, update its status as "duplicate" and reference the issue kept. Keep the issue that is older, or has unique additional information like a patch, or already assigned. After being marked as "duplicate," an issue should then be updated to "fixed" by the person assigned to it, the originator, or someone else, after verifying that it is a duplicate. A "duplicate" issue does not automatically update to "closed" like a "fixed" issue.

Attachments should be used for large write-ups to help reduce the length of the list e-mails, and when substantial html markup is used.

"@username:" is often used in an issue update to indicate response to a particular person's earlier comment.

"+1" and "-1" are used by seasoned members to indicate a vote of support or recommendation against a proposed update.

Please enable the personal contact form in your user account so that documentation team members can contact you about your issue submission.

Commenting on handbook pages

Commenting on Handbook pages is when you use the "Add new comment" button to post a comment, or "reply" to an existing comment.

In general, the preferred method for reporting handbook problems is to submit an issue with category "bug report." The best method for requesting missing documentation is to submit an issue with category "feature request."

The documentation team has limited resources, and handbook page comments are lower in priority than submitted issues.

Please read the following points carefully before adding comments to Handbook pages. We try to keep the handbook clean and up to date, but with a limited pool of volunteers this tends to happen in batches.

Valid handbook comments:

  • Providing links to modules, blogs, and relevant articles.
  • Links to forum posts with new information directly related to the handbook page.
  • Links to similar content in the handbook, or links to inconsistent content in the handbook.
  • Comments that provide useful facts that should be included in the handbook page.
  • Noting errors in the documentation or corrections to incomplete information.
  • Complete re-writes of the handbook page.
  • Content that should become a child page of a handbook page.
  • Noting dead links.
  • Terminology recommendations, including inconsistencies and terms which new users may be unfamiliar.
  • Suggestions to clarify text for new users.
  • Recommended re-organizations and outlines of handbook pages or handbook sections.

If you can follow up your comment with a bug report, that would be helpful. Please note that when your comments are incorporated into the documentation, your comments will be removed.

Comments are hard to maintain and often confuse readers; thus, the following kinds of comments are discouraged:

Bad handbook comments:

  • Requests to change Drupal modules, including Bug reports, feature requests or language changes.
  • Identifying that a topic is not documented. Such requests should be submitted as bug reports with category "feature request."
  • Documentation feature requests. Again, these are better submitted as bug reports with category "feature request."
  • Support questions. If you need to ask a question, use the forums or the drupal-support list, or see what other support options are available. Support requests in the handbook are removed.
  • Questions about the meaning on a page. These are really support questions. The best process is to probably post a question in the appropriate support forum asking for help on what the documentation page means, then once you've solved the issue, submit a bug report against the page proposing an update.

If you post a "Bad" comment in the handbook pages, it will be edited or removed.

Embedded documentation



Every Drupal website contains administrative documentation links embedded into its pages and modules. This documentation is very important to get correct because it lives with the Drupal installation and cannot be changed once the core version is frozen for distribution. The editable version of the embedded documentation is maintained here on drupal.org in the modules section of the Handbook, and on the introductory page of each core and contributed module.

During feature freeze of each new major Drupal release, the Documentation Team updates the module pages in the handbook so that the help is consistent with the latest Drupal version. Once the wording is correct, the embedded doc pages are then rolled into Core. This process is described in more detail on the following pages: [Insert links to detail pages here.]

Getting started:

  1. Familiarize yourself with the documentation Handbook Style Guide. This guide should be treated as the overarching law related to all written text.
  2. Prepare yourself for working with embedded docs by reading the Embedded Documentation style guidelines. You should write embedded docs with these guidelines in mind since all submitted documentation will be reviewed for compliance with these two guidelines.
  3. Study the established format by reviewing several module pages .

The documentation team and the Drupal developers have decided that the format of module pages and administrative help docs need to be short and scannable. If you would like to know more about why users scan web documentation instead of reading it fully, review the Why Users Scan Instead Of Read article on Jakob Nielsen's site.

Embedded documentation style guide

The embedded documentation style guide describes guidelines for structure, content, and links in embedded documentation.

Structure

  • The module documentation should be brief without repetition: 2 paragraphs and a list of links.
  • In no more than 2 to 3 sentences, the first paragraph should clearly and succinctly describe the module through its benefits to users.
  • The second paragraph should provide an explanation of module features that will help users to accomplish the most common tasks.
  • The text should be followed by a list of complete sentences that describe a task and the path to the page where administrators can accomplish that task.
  • The phrase "For more information, read the configuration and customization handbook modulename page" should be automatically added to the administration help when these pages are extracted from the handbook and added to the module code.

Content

  • For consistency, the first sentence of the first paragraph will include the module name.
  • Use the term "post" instead of "node."

Links to common tasks

NOTE: In order to facilitate auto-generation of admin help documentation from the handbook, there have been changes to this section. Please read carefully.

  • The links section should be easily scannable so that users can quickly navigate to relevant interfaces.
  • The list of links should begin with the phrase "You can" and be followed by an unordered list of complete sentences that describe a task and identify the path to the page where administrators can accomplish that task. If the list has only one item it should be a single paragraph beginning with 'You can'.
  • Create a path description using the following rules (take a look at the source code for some examples such as the aggregator and search module pages):

    1. If describing an internal Drupal link, such as admin/settings, use the notation:

    <strong class="drupal_link_admin_settings">administer >> settings</strong>

    Place the path in a <strong> attribute, and give it a class of drupal_link_path_separated_by_underscores.

    2. If describing a link to a Drupal file, such as cron.php, use the notation:

    <strong class="drupal_base_cron_php">cron.php</strong>

    Place the path in a <strong> attribute, and give it a class of drupal_base_name_of_file

    3. If you are linking to additional information on the web, such as a Drupal.org handbook page, enter the link as normal. It is suggested that the last item in the "You can" be a link to the module project page, something like:

    file issues, read about known bugs, and download the latest version on the <a href="http://drupal.org/node/####">modulename project page</a>.
  • If the module requires access permissions to be set, provide a path to the access permissions page.
  • If the module is a content type, provide a path to create content type.
  • If the content module has a page that displays all content of that type, provide a path to that page.
  • If the content type has configurable submission guidelines then a link should be provided to it. Ed-example is needed.

How to understand a module so you can document it

  1. Get modules and install them.
  2. Experiment with module to discover how to administer it and how to create something with it.
  3. Look under administer >> module name.
  4. Look under administer >> settings >> module name.
  5. Look under administer >> blocks to see if it has any custom blocks associated with it.
  6. Look under administer >> access control to see if the module has access permissions. Enable the permissions for your user role.
  7. Look under create content.
  8. Discover if the module has other modules that it is dependent on. Read the INSTALL.txt, README, or UPDATE text files associated with the module in the package you downloaded. In general these files are your best source of information from the developer for writing documentation.
  9. If the module is dependent or uses other modules be sure to provide a link to that dependent modules administration help.
  10. [Optional for programmers]If all else fails, read the code. You don't have to be a PHP programmer to read the code file and get some ideas of what the module does. Programmers leave comments in files, and _help text messages are a good source of documentation hints for what the module can do. Drupal uses a hook system that maps to URLs so if you see a function like admin_help then chances are http://www.example.com/admin/help is going to have something worth looking at. If nothing else, the module programer will appreciate your valiant effort at reading their code, and be more willing to help you.
  11. Now that you have done module research it's time to start thinking about writing the administration help documentation.

Modifying the handbook modules pages for inclusion in Drupal core

  • Include a link referring to the original handbook page after the links section using the following format : "For more information, read the configuration and customization handbook <a href = "" title = "module page">module page</a>."
  • Submit the finalized text as issues against the "help" component of the Drupal project. Announce this on docs/drupal-dev requesting that developers roll patches. Of course, issue follow-ups can also be used to do tweaking of documentation as well.
  • The t function should enclose the text with single quotes. All single quotes in the content need to be escaped with a backslash.
  • All internal URLs must be replaced with variables %variablename, and be added to an array for the t function.
  • Do not use single or double quotes for emphasis as they are difficult to parse for inserting into the code.

Handbook style guide


A style guide provides consistency throughout the handbooks, just as Coding standards do for the modules. It offers guidelines for individual page structure, formatting, and markup, as well as language usage, such as italicizing, bolding, spelling, and capitalization. Also see the Documentation writer's guide for overall handbook considerations, such as organization and structure.

All pages, submissions, and edits in the Handbook must follow the following guidelines. Updates to the Handbooks submitted to the moderation queue will not be published until they follow these guidelines.

  1. Titles
    1. Use short descriptive titles to label a handbook entry. Titles should be 80 characters or less. Avoid redundancy; the words "Drupal" and "Handbook" should rarely be used in titles.
    2. Capitalize only the first letter of a title unless using a proper noun. e.g.: Installing modules; Designing themes in Dreamweaver.
    3. Use "HOWTO: {title}" for documentation pages that function as step-by-step recipe-type howto-style tutorials.
    4. Avoid numbering child pages; use page weight to properly order them. Use "1." style numbering if you must, not "1)" or "1-"
  2. Writing style
    1. Avoid using personal pronouns: I, my, we, our, etc.
    2. Don't be wordy or colloquial.
    3. Use a single space after a period.
    4. Spell check.
  3. Spelling and capitalization
    1. Use American spelling. For example, color, not colour.
    2. Drupal, not drupal
    3. e-mail, not email
    4. HTML, not html
    5. URL, not url
    6. PHP, not php
    7. MySQL
    8. JavaScript
  4. Paths
    1. When describing how to get to a specific user interface option (e.g. the add vocabulary option in the categories section of the administer screen) demarcate the path needed to access the option using this format:

      destination (<em>path > to > item > destination</em>)
      Which will yield text that looks like this:
      destination (path > to > item > destination)
    2. Do not abbreviate words in the navigation path (e.g.: use administer instead of admin).
    3. Menu items can move. Include the path for any user interface option.
  5. HTML and code formatting
    1. Avoid heading tags: <h1>, <h2>, <h3>, <h4>, etc.
    2. Avoid underline <u>; use emphasis <em> or italics <i> for book titles and words as words; use strong <strong> or bold <b> for headings.
    3. Use ordered lists <ol> for step by step instructions.
    4. Enclose HTML code samples within <code> tags.
    5. Enclose PHP code samples within <?php and ?> tags.
  6. Linking
    1. Avoid title tags unless the text in the link is not descriptive enough. See Dive Into Accessibility - Adding titles to links for more explanation.
    2. Use relative links where possible:
      Bad:
      <a href="http://www.drupal.org/node/1234567">
      Good:
      <a href="/node/1234567">
    3. Links should be embedded within normal descriptive body text:
      Bad:
      I like cat stomachs. To learn more about them <a href="http://www.catstomachsrule.com">click here</a>
      Good:
      My favorite organ in a cat is the <a href="http://www.catstomachsrule.com" title="Information about Cats and their Stomachs">stomach</a>
    4. Use 'www.example.com' as the domain name when describing an example URL.
    5. Link to relevant documentation and forum posts as much as possible. You only need to link to each relevant item once.

Avoid heading tags in Handbook pages

Do not use <h1>, <h2>, <h3>, <h4>, <h5>, and <h6> heading tags. Use of these tags inside of a book page is a sign of a structural problem. They should never appear. The presence of these elements implies:

  • It will be impossible for others to add or re-arrange sections unless they have edit permissions for a page.
  • Individual authors can hijack the apparent (presentational) structure of a book by arbitrarily beginning new chapters, for example
  • There is no guarantee of coherence (hierarchy) in the presentation of the book
  • The structure of the document is not accessible to the navigational elements presented by Drupal - sections will disappear from the book navigation view, forward/up/next links, etc.

If you feel the urge to include them in your book page, one or more of the following is probably true:

  • Your page is too long. If readers need to scroll through a long page, they will probably need the navigational clues that headings provide - but they will in all cases be better served by having the page divided into true subsections via child nodes.
  • You are trying to present some kind of list. Try using <dl>, <dt>, <dd> instead.
  • You are trying to achieve visual impact. Visual impact is OK, though it's often not done well. If you must, do it with style (pun intended).
  • Your page is essentially just a container for subsections - try pushing content up into the parent or down into children and eliminate the page entirely.

Incorporating comments

Incorporating comments made on documentation handbook pages is one way documentation maintainers can usefully edit pages. Although documentation maintainers can not edit or delete the comments themselves, they can incorporate them into the page. An issue report can then be submitted, and a documentation team member who is also a site maintainer can easily remove the incorporated comments. This is also called "rolling comments into the handbook," similar to rolling code patches.

  1. View list of pages with comments at http://drupal.org/handbook/comments, which should also appear as a link in the right-pane navigation block "Contributor Links" under "Handbook tools" bullet.
  2. Pick a page: Start at the bottom for those with only 2 comments, or start at the top for those with many comments. Or, pick a page that covers a topic which you feel particularly capable of editing.
  3. Review: Read the page, read the comments, and determine if there are useful corrections or additional information in the comments. Some pages, such as older Summer-of-code pages, have a long string of comments used for discussion, and their incorporation is not intended.
  4. Roll it: Edit the page for corrections and additional useful information that would be good to have in the page. Create a new page (often a child page) if there is new information that is separate from the page's principle topic or focus. The log note should credit the person who provided the information, such as "from comment by username." If the comment is clearly a bug report, convert the comment into an issue and file it under its appropriate project.
  5. Create an issue: Use the Documentation project, Task category, and Active status. The title can be as simple as "Delete comments." Put a link to the page in the body. You may group many pages on one issue. If only certain comments were incorporated, then be explicit providing those incorporated, or by exception (those not incorporated). You can specify which comments by URL of the comment or title of the comment.

Joining the documentation team

The Drupal documentation team collaboratively maintains or coordinates:

  • the handbooks
  • the embedded admin/help text within the Drupal modules
  • marketing materials
  • other document efforts relevant to the Drupal community

Drupal documentation relies on volunteer effort. The current documentation team coordinator is Steven Peck.

To regularly add pages, edit pages, or help in the handbook organization, join the documentation team. Even new members can significantly contribute to the community by suggesting and making improvements to the documentation as they go through processes for the first time.

Steps to join:

  • Subscribe to the documentation mailing list, or at least appreciate that you can follow the exchanges using the documentation archives.
  • Submit an issue with category: "support request," and status: "active." Introduce yourself, and request to join the documentation team and be assigned the documentation maintainer role. Mention your user ID number (not the username).

Quick start guide:

  • Please familiarize yourself with the documentation guidelines.
  • Realize that the top-level pages for modules, both core and contributed, are special; see Embedded documentation.
  • Read Major handbook sections for a general overview of the handbooks and their structure.
  • Feel free to ask questions on the mailing list or in an issue report if you're unsure in making updates to the handbook.

What to work on and be aware of:

  • Any section that you're actually using on your web site!
  • Forum discussions which indicate an update is needed and topics which should be incorporated into documentation. Add a reply in the forum pointing the updated or new documentation handbook page.
  • Handbook comments is a list of pages by number of comments. These comments should be incorporated back into the main text, or made into sub-pages, as appropriate.
  • Most popular pages should be given some extra care to make sure they are clear and easy to understand.
  • Handbook updates is a list of recent changes to the handbook. Scanning this list often will help you keep tabs on what's new, and also help remove any spam.

Screenshots and uploading images

Screenshots on Drupal.org must follow these standards:

Format: PNG-8
PNG is preferred because of its lossless compression and small file size. JPEG is not suitable - it leaves artifacts and its 24-bit color depth is unneccesary when dealing with screenshots. GIF is not used because it is an outdated format.

Size:
700 x 700 pixels is the maximum preferred image size.

Browser window:
All screenshots must include the entire browser window; e.g.: the title bar and scrollbars. Capture only the browser window, not the entire desktop; crop the image in an image utility manually if your operating system or capturing utility can't be set to just the browser window.

Remove all distracting items from your browser application including sidebars, tabs, toolbars, Google bars, custom links, etc. Keep only the URL address bar, and make sure it is long enough that the current URL won't be hidden.

Windows XP:
Turn off ClearType font smoothing when taking screenshots under XP, if you can, please. Most people don't have this feature and it increases the file size somewhat.

Uploading:
Attach the image to an issue; that is, submit an issue (with Category "task") for the page you're updating and attach the image you wish to use. Then reference the URL in the page. At present, this appears to be the best method for regular handbook maintainers.

References:
Screenshots in the GNOME Documentation.

Updating API documentation

This document covers updating the API documentation at http://api.drupal.org/.

Code

All documentation for core functions, constants, and files are automatically generated from the core modules in Drupal. For example:

To update these, you must submit a core patch to edit the Doxygen comments of the code in question.

Hooks and other references

In addition to core code documentation, there are also manually created and maintained reference documents for things such as hook definitions, Form API documentation, and example module code. For example:

You can also review these files online with viewcvs.

Reporting an error

Anyone with a CVS account can edit these additional reference documents. For minor edits, such as fixing typos or blatant errors, feel free to commit changes directly.

For bigger changes, or if you do not have a CVS account, create a Documentation issue select the Documentation in CVS component. It is important to always create an issue, attached a patch, and include a reference to the issue in the commit message when making significant changes so that other developers can understand what was done and why. In other words, follow the same practives you would follow for committing code to CVS.

Fixing an error

To modify the CVS documentation directly, use the following steps. You can refer to the CVS section of the handbook for more information about using CVS. It is important to remember to make your changes in each version of the documentation that needs it!

  1. From the command line, perform a cvs checkout using your CVS account's username in place of "username" below. This will checkout a copy of the HEAD documentation:
        cvs -z6 -d:pserver:username@cvs.drupal.org:/cvs/drupal-contrib checkout -d docs contributions/docs/developer
       

    To checkout the other versions you need to edit you simply modify the command with the version and make sure you place it in a different local directory, for example:
        cvs -z6 -d:pserver:username@cvs.drupal.org:/cvs/drupal-contrib checkout -d docs5 -r DRUPAL-5 contributions/docs/developer
       

    You would replace DRUPAL-5 with DRUPAL-4-7 for 4.7.
  2. Enter your CVS password when prompted
  3. You will need to locate the document you need to edit:
    • The Form API quickstart (forms_api.html) and reference table (forms_api_reference.html) are in the "topics" folder.
    • The hooks documentation is in the "hooks" folder. The particular file will depend upon the hook. If you look at the API page for a hook you will see the source document listed at the top under Description (e.g. developer/hooks/core.php, line 507)
    • Any example code that has _example in the name is located in the "examples" folder.
  4. Once you have saved your changes, commit them:
    cvs commit -m "Put a meaningful message about what you did here. Also refer to an issue number with a # symbol if one exists (e.g. #112233) and give credit to users who may have provided a patch."
       

Documentation project proposals and specs

Anyone seeking to initiate new documentation projects --project teams and individuals--must submit a project proposal and post and maintain a project spec.

Goals of project proposals

  • Allow the documentation community to provide feedback to improve the project.
  • Will help to build consensus for projects as part of a vetting process.
  • Can help to gain volunteers for the project.
  • Makes the project more transparent/open for the rest of the Drupal community.
  • Is necessary to gain approval for the project.

Goals of project specs

  • Helps to clearly define objectives and guidelines for project participants.
  • Allows others, less involved in the project planning, to more easily assist in the project.
  • Can serve as resource for developing future, similar projects.
  • Makes the project more transparent/open for the rest of the Drupal community.
  • Is necessary to gain approval for the project.

Project proposals and specs should attempt to address each of the following:

  • Objectives/goals of the project
  • Intended audience of documentation
  • Relevant issues, i.e.
    • those addressed by the project
    • those that will not addressed by the project
    • any still needing to be addressed by the project
  • Timeline or deadlines (if applicable)
  • Workflow description
  • Guidelines and examples for documentation construction (if applicable)
  • List of main participants and/or organizers
  • Requests for specific feedback and/or additional project participants (if applicable)

Submitting and maintaining the project proposal and spec:

  • The proposal will be posted as a new issue to the Documentation project.
  • Feedback from community members should be submitted by posting to the specific project issue.
  • Proposal submitters will revise the proposal based on community feedback into a project spec.
  • During the project, the project spec should be maintained as changes occur in the project (i.e., new documentation construction guidelines, changes in deadlines, etc.).
  • For project teams, active project specs will either reside as a sub-page of the Drupal documentation project teams page for the (for larger ongoing projects) or provide a link to the project from the main project team page.

Documentation writer's guide

This Documentation writer's guide covers overall considerations for the handbook which should be kept in mind when editing and adding handbook pages. This includes topics such as hierarchical organization, editing existing vs. adding new pages, separation of documentation for different Drupal versions, page length, author block, and page weight.

The purpose of these guidelines is to make the handbooks more consistent and usable, particularly the navigation. These guidelines, though written mainly for documentation maintainers, will also be useful for all documentation contributors, who submit issues and can add pages.

In contrast, the style guide offers guidelines for individual page structure, formatting, and markup, as well as language usage, such as italicizing, bolding, spelling, and capitalization.

See Handbooks overview for a description of the five handbooks: "About Drupal," "Installation and configuration," "Customizing and theming," "Developing for Drupal," and "About Drupal documentation."

See the End user guide for help with adding pages or editing pages. All drupal.org users can now create new pages in the handbooks. But when some else updates a page you created, Drupal tracks that person as the page's author, and you lose ability to edit it. To update it, submit an issue, or request to join the documentation team, which will give you permission to edit most handbook pages.

Hierarchical organization:

  • Avoid unnecessary layers; they make documentation hard to find and hard to follow. Consider for example how in a book, the appendices are on the same level as "chapters" of the book.
  • Do not use hierarchical structure to achieve the desired sequence. Since handbook maintainers do not have access to the weight function, submit an issue; this is a straightforward operation that will generally be performed promptly.
  • Avoid nearly-empty "container" pages.
  • Introductory material should normally be in the parent page, not a first child page, in a large multi-page topic.
  • Short child pages covering a particular variation should be incorporated into the parent page if practical. This is particularly true for single child pages.
  • Avoid duplication; it is better to link to existing documentation about a topic, rather than duplicate it (or nearly duplicate it) in a second location where it may be applicable.
  • Ensure the parent page is organizationally named. Remember that a user starting at the top sees only one layer of titles at a time. Would someone looking for the topic on your page naturally select its parent from those available? If not, submit an issue report against the parent page's title.
  • Test the structure: Start at the top, and select the path a new user would if looking for your topic. If there is an absence of a clear path, or multiple plausible paths, submit an issue.
  • Consider forum requests: If the documentation page exists, but a forum inquiry indicates it couldn't be found, consider whether the documentation handbook structure is unclear for a new user looking for the topic. Rather than just providing a link to the page, provide the path to the page as well.
  • Hierarchy example:

    Bad:
    Main topic
    --Theory
    --Implementation
    --Examples
    ----Example one
    ----Example two
    --Special circumstances
    ----Case one
    ----Case two


    Good:
    Main topic
    --Theory
    --Implementation
    --Example one
    --Example two
    --Special circumstance considerations
    --Circumstance one
    --Circumstance two

In this example, the "Special circumstances" page in the top structure covered general considerations and was more than an organizational place holder, so a "Special circumstance considerations" page was placed ahead of the special circumstance cases in the bottom structure.

Titles: In addition to the Style guide directions, also consider how the title of a page fits in to the overall structure. Is there a long flat list of titles, many of which "almost, but not quite" match a user's question?

Main chapters: The five handbooks should generally each have twelve chapters or fewer, since the "Handbooks" tab shows all the top-level chapters of all of the books.

Editing versus adding pages: Try to edit current pages rather than create new pages. It is better to cover a topic in one location succinctly, and then reference the topic from related pages. Editing existing pages rather than creating new ones also preserves links that reference current pages.

Versions: There is only one set of documentation handbooks, since many pages apply to all versions of Drupal; since there are insufficient resources to maintain different sets of handbooks for different versions of Drupal; since inconsistencies would develop between parallel versions due to only one book being corrected when the problem affects both; and since guidance on the only available version is often useful to the reader who has a different version.
      Information for different Drupal versions can be kept together on one page or separated on different pages. It is generally preferred to cover information for all the versions on a single page, but if instructions for the different Drupal versions differ substantially, separate pages are appropriate. Use the "Drupal version" drop-down menu and select which version(s) the page applies to.

If each version is dealt with on a separate page:

  • Organize the pages on the same hierarchical level.
  • Include the version number at the end of the title, so that one page is titled "Example topic, v. 5.x" and the next is "Example topic, v. 4.7."

If multiple versions are dealt with on one page:

  • Select all the versions which the page applies to in the "Drupal version" drop-down menu.
  • Information on the page should be listed from newest to oldest version.
  • Mark the sub-sections for each version very clearly.
  • If there are no separate subsections for the different versions because the entire page applies to all versions selected in the "Drupal version" drop-down menu, state so early in the page, so that readers don't wonder which sub-sections apply to their version.

Page length: Longer pages of several screens are acceptable. Use <b> or <strong> tags to provide sub-topic headings within the page. Very long pages should list the page contents (preferably with links) after the opening paragraph.

Authorship: Avoid changing page authorship unless you have done a major re-write. (Currently, only site maintainers have access to the author field.)

Log message: Enter a brief log message to explain the page update.

Weight: Only site administrators can change the order of pages that appear under a common heading. To request such changes, submit an issue report.

Tips on using the documentation handbooks

Tips on using the documentation handbooks:

Searching the Documentation handbooks: Narrow your search to the Documentation handbooks by:

Browsing the documentation handbooks:

Asking the location of documentation (when you can't find it) can be done by:

Saving copies of any the five documentation handbooks for off-line use can be accomplished as follows:

  1. From the handbooks tab, go to the top level page of one of the five handbooks: About Drupal, Installation and configuration, Customization and theming, Developing for Drupal, or About Drupal documentation.
  2. Click "Printer-friendly version" link at the bottom of the page. This link is at the bottom of the main content area of book pages, above any comments that may have been added.
  3. If you know the node number of the book page, then it has a path in the form "node/14279", and you can substitute "book/export/html/14279" to get the printer-friendly version.
  4. The current page and its sub-pages will be output in a clean format with no headers, footers, or side blocks.
  5. Comments to book pages are not included in the printer-friendly copies.
  6. Save the content for off-line use, either by printing, by saving as a .pdf, or saving as HTML.
  7. This works for sub-sections of a book as well, but there is no way to output all five books at once.

Handbook pages with comments

Page Comments Last comment
Unified Document Management 38 1 week 4 hours ago
Converting 4.7.x modules to 5.x 35 2 weeks 4 days ago
Configuring cron jobs 27 1 week 7 hours ago
HOW TO: Create an image gallery using CCK and Views (not Image Module) 24 1 day 3 hours ago
Example: Accessing a service from Flash 8 20 1 week 1 day ago
Organic Groups: Enable users to create collaborative groups 19 2 days 15 hours ago
2006 Summer of Code Projects (14) 18 1 year 1 week ago
Buddylist pictures 17 1 week 4 days ago
Grapher 17 16 weeks 4 days ago
eBay integration 17 2 weeks 4 days ago
Embedding View(s) inside jsTools Tabs 17 1 week 1 day ago
Theming your Views 17 2 weeks 1 day ago
Open Source CMS Summit and DrupalCon, Vancouver 2006 17 1 year 18 weeks ago
Converting 4.6.x modules to 4.7.x 16 19 weeks 2 days ago
Login problems on PHP 5.2 16 1 week 2 days ago
Customising the full page layout and sections based on path 16 3 weeks 1 day ago
Inserting Taxonomy Images into nodes 15 6 days 21 hours ago
Display the (x) most recent nodes in full from a specific category 15 1 year 3 weeks ago
Display user submitted images in their profile page 15 2 weeks 1 day ago
HOW TO: Add the Drupal Expandable / Collapsible Fieldset Feature to your Node Pages 15 1 week 23 hours ago
Views Arguments 15 6 hours 57 min ago
Making additional variables available to your templates 15 17 weeks 14 hours ago
HOWTO: Create a custom user login bar 14 1 week 5 days ago
Customising the user profile layout 14 1 week 1 day ago
User Interface - Personal Pages 14 3 days 6 hours ago
Customising the search theme form 13 1 week 21 hours ago
REST APIs 13 13 weeks 3 days ago
Transparent PNG in IE5 & IE6 13 1 week 19 hours ago
Google Summer of Code 2005 13 1 year 28 weeks ago
Dreamweaver 12 3 weeks 2 days ago
Assignment/ Gradebook suite 12 50 weeks 3 days ago
Profile: extending user account information 12 2 days 17 hours ago
Audio: Uploading and playback of audio files 12 5 days 13 hours ago
Views Argument Handling Code 12 5 hours 54 min ago
Dynamic and Multipage forms with Forms API 12 4 weeks 4 days ago
Block referrer spam 12 2 weeks 1 day ago
Jabber notification subscriptions 12 11 weeks 1 day ago
Creating context sensitive primary/secondary menus 12 5 weeks 2 days ago
06. Installing, enabling and testing the module 12 2 days 8 hours ago
Configuring Eclipse 12 3 weeks 4 days ago
Custom User Blocks and User Tables PHP Snippets 11 1 week 8 hours ago
Multi-site setup in 5.x using CPanel 11 5 weeks 1 day ago
AdSense Injector: automatic, no hassle insertion of AdSense ads in node content 11 2 weeks 1 day ago
Configuring .htaccess to ignore specific subfolders 11 1 week 21 hours ago
Increase memory in your php.ini 11 2 hours 42 min ago
Remove unwanted tabs from pages 11 1 week 2 days ago
sort taxonony links ($terms) by vocabulary ($vid) 11 3 weeks 3 days ago
HOWTO: Theme a CCK input form 11 2 weeks 4 days ago
Metadata and content construction 11 1 year 37 weeks ago
HOWTO: Create a local server environment for drupal using MAMP 11 2 weeks 5 days ago
Creating a Test Site workflow 11 13 weeks 21 hours ago
Customising the full page layout and sections based on node type 11 1 week 1 day ago
Configuring vim 11 4 weeks 1 day ago
Getting the whole thing to work 10 11 weeks 19 hours ago
Two columns of teasers 10 13 weeks 2 days ago
How to remove "blogs » user's blog" from breadcrumbs 10 8 weeks 3 days ago
07. Create a module configuration (settings) page 10 5 days 13 hours ago
Coding standards 10 1 week 3 days ago
Drupalcon Barcelona 2007 10 5 weeks 6 days ago
Regions in PHPTemplate 10 3 days 2 hours ago
Video module rewrite and new features 10 27 weeks 2 days ago
All published content in a list 10 1 year 37 weeks ago
Google Site Search Enhanced Module 10 24 weeks 6 days ago
CCK Overview and Structure 10 7 weeks 21 hours ago
Add/delete to/from buddylist snippet 10 1 week 4 days ago
Alphabetizing Based on a Profile Field 10 8 weeks 1 day ago
Add a << first < previous next > last >> Pager to Image Nodes Within a Gallery. 9 5 weeks 1 day ago
Tutorial: Creating a simple one user = one profile page custom profile 9 7 weeks 6 days ago
Writing .install files 9 1 day 4 hours ago
Multiple domains using the same database 9 1 year 43 weeks ago
Migrating from PHPNuke 9 29 weeks 5 hours ago
Creating context sensitive menus with primary and secondary menus 9 15 weeks 5 days ago
Install profile: Drupal for Bloggers 9 16 weeks 2 days ago
Upgrading Your Drupal site without a DB Upgrade (command line version) 9 9 weeks 4 days ago
related nodes to the current node by taxonomy term 9 10 weeks 4 days ago
Display a list of (x) node titles and links to the full node from multiple taxonomy/category terms 9 1 year 12 weeks ago
phpBB2 migration solution 9 4 weeks 4 days ago
display (x) random thumbnails in a page 9 40 weeks 2 days ago
Integrating with Color.module 9 9 weeks 2 days ago
changing title of a node 9 13 weeks 5 days ago
Placing the contents of a block in any location 9 4 weeks 1 hour ago
Running multiple sites on a local PC (localhost) from a single codebase, using Windows 9 6 weeks 3 days ago
Protecting content from anonymous users when using overrides 9 1 year 45 weeks ago
Setup of /sites directory for multi-site 9 3 days 11 hours ago
Handling URL profile fields 9 4 days 8 hours ago
Modifying the breadcrumb variable at will 9 12 weeks 18 hours ago
Customising image gallery layouts 9 12 weeks 2 days ago
Blogger style 'About Me' block 9 1 year 25 weeks ago
New CCK field types 9 13 weeks 17 hours ago
context-sensitive embedded views 9 1 week 4 hours ago
WebDAV API for Drupal 9 1 day 22 hours ago
Swfobject: Use Flash movies in Drupal Blocks 9 20 weeks 3 days ago
Contact: a way for users to get in touch 9 15 hours 1 min ago
Issues using poEdit 9 2 weeks 1 day ago
Share common tables across multiple databases 9 30 weeks 3 days ago
Migrating from Joomla/Mambo 9 1 week 6 days ago
Resolving a 'sticky tag is not a branch' error 9 17 hours 22 min ago
06. Installing, enabling and testing the module 9 29 weeks 2 days ago
Use CCK to make a unique front page 8 3 weeks 2 days ago
Display a list of node titles in a category with links to the full term 8 1 year 35 weeks ago
Alternative templates for different block types (4.7) 8 25 weeks 3 days ago
Display (x) full flexinodes in a page 8 49 weeks 4 hours ago
Node.tpl.php 8 3 days 22 hours ago
customising flexinode teasers and full view layout 8 27 weeks 2 days ago
Forms API FAQ 8 9 weeks 1 day ago
Moving locked Navigation menu items to your custom block 8 3 weeks 6 days ago
Open aggregator links in new browser window 8 2 weeks 4 days ago
Audio module FAQ 8 4 weeks 2 days ago
Drupal database documentation 8 4 weeks 2 days ago
Some HTML Tags stripped from mission statement 8 3 weeks 2 days ago
Taxonomy Drop Down Select Jump Menu 8 9 weeks 1 day ago
Converting 4.6.x themes to 4.7.x 8 23 weeks 6 hours ago
Primary links "active" or "selected" highlight snippet 8 25 weeks 6 days ago
Tuning Drupal on OS X Tiger 8 1 year 27 weeks ago
Setup Drupal on Windows XP Pro using IIS 8 2 weeks 2 days ago
Different Header Images for Different Nodes 8 1 day 30 min ago
Installing and Configuring MySQL 8 1 week 15 hours ago
How to create your own simple node type (5.x) 8 1 week 2 days ago
Shipcalc: Real time UPS and USPS price quotes 8 1 week 3 days ago
Creating a new PHPTemplate 8 14 weeks 3 days ago
02. Telling Drupal about your module 8 35 weeks 8 hours ago
HOWTO: Write an installation profile for the Drupal installer 8 7 weeks 6 days ago
Core hierarchical page structuring module 8 19 hours 38 min ago
obfuscate (hide) all emails from spammers 8 5 weeks 2 days ago
Remote module installer 8 12 weeks 6 days ago
Display (x) most recent nodes of any or all types and categories and highlight excerpt, creation date and author of latest 8 1 year 6 weeks ago
Theme teaser to look different than full node 7 14 weeks 6 days ago
Display (x) last logged in userpictures 7 15 weeks 6 days ago
Inserting Views 7 3 weeks 4 days ago
Display a "Hello" message utilizing fields from profile.module and say "Happy Birthday" if it's a users birthday! 7 1 year 30 weeks ago
Creating a Block with links belonging to certain taxonomy terms 7 19 weeks 5 days ago
Detailed comment documentation 7 8 weeks 5 days ago
Insert an image instead of text in a menu item. 7 1 week 3 hours ago
pre-session discussion 7 1 year 18 weeks ago
The simple monthly archive 7 1 day 1 hour ago
Image rotator snippet for phpTemplate 7 5 weeks 4 days ago
Add a 'related nodes' block that links to a taxonomy-based view 7 2 weeks 2 days ago
Modification of snippet to show nodes from more than one taxonomy term 7 33 weeks 6 days ago
How to generate <body> class/id attributes for each page 7 1 week 4 days ago
AJAX Form creator 7 16 weeks 3 days ago
Installing using CVS repository 7 5 weeks 4 days ago
Show highest contributers to a site 7 12 weeks 1 day ago
A beginners Guide to Using Views with Screenshots (a.k.a. Making an archive using views) 7 3 weeks 2 days ago
Branches 7 34 weeks 3 days ago
Tutorial 2: Using existing Javascript widgets: autocomplete 7 34 weeks 23 hours ago
All content types _except_ forum posts 7 23 weeks 4 days ago
HOWTO: Make a field part of the registration process 7 4 weeks 2 days ago
SQL naming conventions 7 5 weeks 2 days ago
Breadcrumbs including title 7 2 weeks 2 days ago
Locale: multi-language support 7 5 weeks 6 days ago
BitTorrent: transfer large files efficiently with peers 7 16 weeks 4 days ago
Controlling what gets indexed -- the robots.txt file 7 20 weeks 6 hours ago
Display a list of a certain content type, with teasers 7 27 weeks 17 hours ago
Useful command for mailhandler default commands 7 4 days 1 hour ago
Advanced: Using views_build_view to control your own views 7 9 weeks 3 days ago
Separate 'free tagging' terms from normal taxonomy terms 7 7 weeks 2 days ago
Display tags as cloud 7 51 weeks 3 days ago
Cron Job configuration line by line 7 3 weeks 6 days ago
Path: readable URLs 7 10 hours 30 min ago
Custom user profile page with (x) latest weblog entries of that user 7 45 weeks 2 days ago
Back up your site (command line) 6 37 weeks 3 days ago
Handling date profile fields 6 17 weeks 5 days ago
Grouping Views by arbitrary fields 6 7 weeks 2 days ago
01. Getting started 6 6 days 14 hours ago
Search: an internal site search system 6 8 weeks 16 hours ago
Handling single-line profile fields 6 14 weeks 1 day ago
2. CCK Field Formatters 6 9 weeks 6 days ago
HOWTO: build your frontpage with regions 6 2 weeks 2 days ago
Translation of contributed modules 6 9 weeks 5 days ago
Audio and video recordings of the Drupal conference 6 29 weeks 4 days ago
Example: How to Embed Two Views on the Same Page 6 14 weeks 4 days ago
C. Creating Multiple Sites On Your Local Computer 6 1 day 4 hours ago
How to insert and use the PHP Snippets in your pages 6 13 weeks 4 days ago
Changing the delimiter on primary/secondary links 6 16 weeks 2 days ago
Eclipse CVS plug-in (all platforms) 6 24 weeks 1 day ago
Relationship API 6 27 weeks 5 days ago
Configuring cron jobs on DreamHost 6 4 weeks 2 days ago
Cervisa (Linux/Unix) 6 14 weeks 4 days ago
Display the (x) most recent weblog entries from a specific user 6 16 weeks 5 days ago
Converting 4.5.x modules to 4.6.x 6 1 year 37 weeks ago
General instructions 6 44 weeks 4 days ago
Create your own Slashdot site (in progress) 6 3 years 49 weeks ago
Comment approval count block 6 1 week 20 hours ago
Switching HTML based on active i18n language 6 19 weeks 2 days ago
Multiple directories 6 3 years 11 weeks ago
Content recommendation engine 6 51 weeks 6 days ago
Autocomplete/Discover Internal Links to Select List When Adding Content 6 11 weeks 5 days ago
Inserting HTML into node titles 6 2 weeks 2 days ago
Using vocabularies for navigation 6 17 weeks 3 days ago
Product: Create products for ecommerce store 6 8 weeks 5 days ago
Configuring cron jobs on Windows 6 4 weeks 4 days ago
How to: Install and configure Eclipse 6 11 weeks 3 days ago
search results as teasers (make data not show up) 6 1 week 2 days ago
Overriding drupal.css; two approaches 6 39 weeks 6 days ago
Ajax Everywhere 6 16 weeks 15 hours ago
Customising flexinode layouts 6 15 weeks 1 day ago
Mass URL aliasing 6 4 weeks 5 hours ago
Taxonomy image; Associate images with taxonomy terms 6 11 weeks 1 day ago
Forms API reference 6 21 weeks 5 days ago
Migrating from Geeklog 6 47 weeks 3 days ago
Event mangement module comparison 6 21 weeks 5 days ago
Display a customisable "this user is [online/offline]" status message in the User Profile page 6 17 weeks 16 hours ago
HOWTO: Make the user list page compact (two or three columns, by css only) 6 11 weeks 6 days ago
PCRE_UTF8 solution for VPS servers | FreeBSD 5 3 weeks 6 days ago
User "history" or "member for: (time)" snippet 5 13 weeks 1 day ago
Bugbite hours 5 1 year 34 weeks ago
Latest Weblinks, which go to the destination, not the node 5 14 weeks 3 days ago
Setting up Clean URLs 5 42 weeks 6 days ago
Vocabularies and terms 5 13 weeks 3 days ago
Multi-site installation and set-up 5 1 week 1 day ago
Blogroll based on aggregator feeds 5 22 weeks 3 days ago
09. Letting Drupal know about the new function 5 1 year 31 weeks ago
HOWTO: Install glossary module 5 3 weeks 4 days ago
Customising the full page layout and sections using CSS and unique BODY Class & IDs 5 43 weeks 2 days ago
05. Generate the block content 5 6 weeks 4 hours ago
Using Theme Override Functions 5 32 weeks 1 day ago
Quick 'edit' link of the nodes 5 30 weeks 4 days ago
Generate random messages or user tips 5 15 weeks 5 days ago
Practical example of CCK's flexibility 5 12 weeks 3 days ago
Wizard 5 6 days 23 hours ago
HOWTO: Display some arbitrary HTML on a specific page based on the URL you are on 5 34 weeks 5 days ago
handling image fields in your node-flexinode-n.tpl.php files 5 32 weeks 14 hours ago
Troubleshooting: Common problems 5 8 weeks 5 days ago
Blog categories 5 34 weeks 6 days ago
Multilingual categories -taxonomy- 5 8 weeks 5 days ago
Create and display a friendly alias instead of users username. 5 7 weeks 6 days ago
Splitting your main blog content into (x) multiple columns 5 6 weeks 2 days ago
Trim a text field to a certain word length 5 11 weeks 2 days ago
Recent weblog entries (titles & teasers) snippet 5 3 days 17 hours ago
New Forum Module 5 12 weeks 6 days ago
Move and redirect your article to another site 5 4 weeks 1 day ago
display the last (x) nodes associated with a vocabulary 5 4 weeks 2 days ago
Release tags and version numbers 5 7 weeks 2 days ago
Help! I enabled a buggy module and now I can't disable it! 5 15 weeks 11 hours ago
Using the news aggregator 5 1 year 7 weeks ago
Converting 5.x modules to 6.x 5 1 week 1 day ago
Error 1364 upon importing database.mysql with MySQL 5.0+ 5 18 weeks 4 days ago
Mapping API Generalization 5 47 weeks 1 day ago
How to connect to multiple databases within Drupal 5 1 day 2 hours ago
Blogroll based on custom profile field 5 12 weeks 4 days ago
Relay SMTP mail to external mail server using smtp.class 5 28 weeks 45 min ago
Comment.tpl.php 5 24 weeks 1 day ago
Tagadelic: weighted tags in a tag cloud 5 6 days 15 hours ago
Display link to user's embedded gallery (or not if it does not exist) 5 3 weeks 3 days ago
Apply patches on MacOS X 5 17 weeks 3 days ago
Customising blog layouts 5 1 year 3 weeks ago
HOW TO: Teasers in CCK nodes 5 5 weeks 2 days ago
Clean URLs with different webservers 5 11 weeks 5 days ago
Backups 5 1 year 24 weeks ago
Unified support for managing relationships between users and events 5 38 weeks 4 days ago
Views Filters 5 3 weeks 6 days ago
Display a list of node titles from a specific term 5 1 year 27 weeks ago
Tutorial 1: Creating new Javascript widgets 5 12 weeks 2 days ago
Multi-site administration through rich XUL client 5 19 weeks 11 hours ago
View an archive by type or by category 5 1 year 7 weeks ago
Using different page templates depending on the current path 5 2 weeks 2 days ago
have a primary and secondary front page - useful for flash or splash graphic front pages 4 11 weeks 5 days ago
Adding/modifying a file to the CVS repository 4 1 year 7 weeks ago
Customising node layouts 4 29 weeks 1 day ago
Speed up loading TinyMCE by turning on disk caching 4 19 weeks 14 hours ago
HOWTO: Create a classified ad section 4 20 weeks 3 hours ago
File permissions 4 45 weeks 10 hours ago
Display users age based on a date-of-birth field 4 11 weeks 17 hours ago
09. Different views of your data 4 6 weeks 14 hours ago
Cygwin 4 20 hours 2 min ago
Optional CSS configurable by your visitors 4 3 days 22 hours ago
Clean URL support in XAMPP 4 6 weeks 14 hours ago
Changing Primary Links to Images 4 13 weeks 6 days ago
Use of icons 4 7 weeks 2 days ago
List of nodes by Year and Month/day 4 1 year 6 weeks ago
List of nodes in 5.x 4 1 week 5 days ago
node taxonomy into classes (full page & teaser) 4 16 weeks 1 day ago
vhost.org.uk 4 11 weeks 9 hours ago
Converting 4.4.x modules to 4.5.x 4 2 years 22 weeks ago
Extract the 'read more' link and display it separately somewhere else in your nodes 4 21 weeks 2 days ago
hide a user profile depending on role or a custom field 4 34 weeks 2 days ago
Custom login 4 9 weeks 5 hours ago
eAccelerator 4 3 weeks 14 hours ago
access rights for CCK content types 4 15 weeks 2 days ago
Flexinode Module: Print flexinodes in multiple columns, pages 4 26 weeks 1 day ago
Expanding a menu tree based on node types 4 6 weeks 1 day ago
Handling File Uploads 4 3 weeks 2 days ago
Example: How to Display a Summary View as a Mock Menu 4 29 weeks 4 days ago
Drupal's page serving mechanism 4 9 weeks 6 days ago
Latest Blog Entry from Selected Users 4 37 weeks 2 days ago
Subproducts and variations 4 31 weeks 6 days ago
Handling checkbox profile fields 4 1 year 3 weeks ago
Categories (taxonomy): A way to organize your content 4 1 day 5 hours ago
Comment mover: thread management for forums 4 36 weeks 17 hours ago
Create project quality metrics system 4 11 weeks 2 days ago
GData API 4 40 weeks 2 days ago
CCK Content Type Creation Best Practices 4 11 weeks 4 days ago
Database table prefix (and sharing tables across instances) 4 34 weeks 5 days ago
MySQL Tuning Snippet 4 37 weeks 3 days ago
Display (x) recent nodes (with teasers) of a specified type from a specified taxonomy term 4 49 weeks 5 days ago
Display (x) full nodes followed by (y) teasers 4 40 weeks 20 hours ago
HowTo: tab blocks with jQuery 4 4 weeks 9 hours ago
PHP block snippets 4 9 weeks 6 days ago
Gujjuweb.com : A Gujarati Community Website. 4 1 week 1 day ago
Drupal 5.x to 6.x FormAPI changes 4 1 week 1 day ago
HOWTO: Integrate mailing lists with forums using listhandler and mailhandler 4 51 weeks 1 day ago
Translator's guide 4 34 weeks 18 hours ago
A "book-like" navigation block 4 17 weeks 3 days ago
God Bless Taxonomy - Creating CraftyTraveler.com with Drupal 4 38 weeks 4 days ago
Customising full page layouts and sections 4 14 weeks 3 days ago
Enabling user pictures (avatars) 4 8 weeks 4 days ago
Converting 4.3.x modules to 4.4.x 4 3 years 14 weeks ago
Drawing SVG 4 5 weeks 1 day ago
Handling freeform profile fields 4 15 weeks 6 days ago
Dynamic & Easy Cross Linking 4 18 weeks 3 days ago
Using different block templates for different blocks, regions, etc. 4 2 weeks 1 day ago
Proposed projects 4 1 year 5 weeks ago
#tree and #parents 4 28 weeks 4 days ago
Display recent nodes (titles & teasers) snippet 4 8 weeks 4 days ago
03. Telling Drupal who can use your module 4 2 weeks 4 days ago
Display different page content to anonymous and authenticated users 4 41 weeks 2 days ago
02. Name the new node type 4 8 weeks 4 days ago
Social Networking Analysis (SNA) Tool 4 42 weeks 3 days ago
Tuning MySQL for Drupal 4 18 weeks 1 day ago
Your own api.drupal.org site 4 20 weeks 2 days ago
Split theme('page') $content into multiple sections 4 1 year 11 weeks ago
Show/hide certain profile fields depending on user role or user permissions 4 36 weeks 2 hours ago
Comments 4 1 year 34 weeks ago
Social networks, groups and communities 4 43 weeks 3 days ago
XTemplate to PHPTemplate conversion 4 33 weeks 5 days ago
Migration tools 4 1 year 17 weeks ago
Duplicate entry error 4 12 weeks 2 days ago
Creating multi-part forms 4 10 weeks 2 days ago
Creating fieldsets outside forms with minimal code 4 15 weeks 2 days ago
Login doesn't work or must be done twice 4 12 weeks 20 hours ago
Recent updates: latest added or changed nodes in a site 4 15 weeks 1 hour ago
Style plugins 4 1 day 22 hours ago
06. Save node-specific information to the database 4 36 weeks 2 days ago
allow users to choose whether certain profile fields are visible or hidden 4 4 days 19 hours ago
Display (x) nodes from a multiple categories 4 49 weeks 3 days ago
Directory: A taxonomy-based site directory 4 31 weeks 5 days ago
Suggestions for Drupal core (from Dries) 4 11 weeks 1 day ago
Make your site wide contact form look prettier 4 5 weeks 3 days ago
Modifying checkboxes to display in multiple columns 4 11 weeks 2 days ago
User Profile avatar/picture Snippet 4 2 weeks 1 day ago
Administration: Create an experience for your users 4 17 weeks 17 hours ago
Comma separated list of terms within a vocabulary with links and number of nodes 4 16 weeks 21 hours ago
Drupal 4.7 on Windows/IIS Requires PHP in ISAPI mode 4 19 weeks 2 days ago
How to install a different language 4 11 weeks 3 days ago
Using Theme Override Functions For Forms 4 11 weeks 1 day ago
Drupal's menu building mechanism (4.7x and 5.x) 4 7 weeks 3 days ago
Business and Drupal 4 2 years 15 weeks ago
Moderation queue 4 2 years 32 weeks ago
Theme tutorials 4 2 years 47 weeks ago
Override the display of attachment /Add icons 4 7 weeks 2 days ago
Migrating from CPG Dragonfly CMS 4 19 weeks 1 day ago
Example Clean URL configuration of httpd.conf for performance 4 1 week 6 days ago
E-Commerce Installation 4 1 week 23 hours ago
Redirecting specific pages to new URLs (301 redirects in Drupal) 4 30 weeks 2 days ago
More than one Drupal site on one machine 4 1 year 6 days ago
Workflow engine 4 1 year 8 weeks ago
Migrating from Wordpress 3 19 weeks 5 days ago
some simple jquery examples 3 10 weeks 1 day ago
Insert an image before the promoted nodes on the frontpage 3 25 weeks 1 day ago
Display a list of node titles of a specific type, within a certain time period from today 3 1 year 16 weeks ago
Basic instructions for adding graphic tabs to your Drupal theme 3 17 weeks 4 days ago
Inter-site functionality 3 21 weeks 20 hours ago
Security audit 3 16 weeks 3 days ago
Front_page snippet: determining if a HOME link is internal or external for splash pages 3 1 year 14 weeks ago
Uptime and load on Unix systems 3 32 weeks 5 days ago
RSS feed blocks 3 14 weeks 3 days ago
Tinymce gzip compressor and Drupal 5 3 3 weeks 3 days ago
Calculating a duration given a start and end time 3 1 week 1 day ago
Blogroll based on Weblinks, linking straight to destination 3 1 year 10 weeks ago
Main repository 3 3 weeks 6 days ago
Back up your Drupal site 3 4 weeks 3 days ago
Massmailer: manage mailing lists 3 19 weeks 3 days ago
Access Permissions reference 3 11 weeks 18 hours ago
Advanced use: reset Views module completely 3 42 weeks 2 days ago
Tips 3 1 year 41 weeks ago
Taxonomy - some guidelines for effective design of taxonomies 3 28 weeks 4 days ago
Upgrading from Drupal 4.6.3 to 4.6.5 3 1 year 8 weeks ago
Taxonomy terms on a page 3 13 weeks 2 days ago
FAQs 3 11 weeks 1 day ago
Design a New Core Theme 3 8 weeks 4 days ago
Countdown (x) days to a specific date and display a dynamic message 3 1 year 50 weeks ago
String concatenations 3 5 days 16 min ago
Outputting full civiCRM profile to custom profile 3 2 weeks 1 day ago
Insert user friendly "click here to add your.." links when user profile fields are left blank 3 11 weeks 6 days ago
Show block content only to certain roles - Drupal 4.7 3 28 weeks 6 days ago
Top users by comment number 3 1 year 10 weeks ago
Gateways: Supported payment gateways 3 1 week 3 days ago
Javascript in Drupal 4.7 3 16 weeks 15 hours ago
Apache 2 configuration of clean URLs on Debian 3 27 weeks 6 days ago
Sharing a user base 3 26 weeks 1 day ago
Tutorial #1: Make a "New Pages" block 3 15 weeks 5 days ago
04. Declare we have block content 3 43 weeks 6 days ago
drupal.js functions 3 11 weeks 14 hours ago
Modification of "List of nodes by Year and Month/ Day" snippet with flexinode date field sorting and page numbering 3 1 year 27 weeks ago
Yet Another "About Me" Block (for 4.7.2) 3 14 weeks 2 days ago
i18n traslations bar in 4.7 - only flags 3 11 weeks 5 min ago
User: access and management settings 3 9 weeks 2 days ago
Tables part 5: Filters 3 10 weeks 1 day ago
Garland Simple modification Tutorial 3 6 weeks 2 days ago
Creating new node types - a tutorial 3 9 weeks 6 days ago
Session Topic Outline 3 1 year 18 weeks ago
SPAM: Stopping unwelcome posts on your site 3 9 weeks 6 days ago
Development tools 3 1 day 21 hours ago
Weird characters or question marks 3 3 weeks 3 days ago
Mail API for Drupal 3 1 year 25 weeks ago
XML Sitemap: make it easy to notify search engines about site updates 3 27 weeks 5 days ago
Show a list of taxonomy terms without description 3 2 weeks 3 days ago
Drupal modules equivalent to phpBB2 features 3 5 weeks 5 days ago
Node privacy by role: node view and edit permissions 3 18 weeks 6 days ago
Replacing blog.module with views 3 27 weeks 3 days ago
Installing PHPTemplate in 4.6 3 5 weeks 4 days ago
Different node templates depending on URL aliases 3 3 weeks 2 days ago
Redirecting anonymous users to the login page on Access Denied 3 1 week 1 day ago
Creating patches 3 6 days 21 hours ago
Upgrading from Drupal 4.5 to 4.6.3 3 25 weeks 3 days ago
Determine file extension of file value field in flexinode and display file type or icon 3 40 weeks 6 days ago
Proposed Projects 3 10 weeks 6 days ago
Example: How to provide a view which contains taxonomy headers 3 31 weeks 5 days ago
Prediction markets 3 10 weeks 19 hours ago
6. Adapting Php Themes like Chameleon 3 26 weeks 3 days ago
Writing forms in tables 3 29 weeks 1 day ago
To import a database with PHPMyAdmin 3 5 weeks 5 days ago
Removal of base href statement from header 3 22 weeks 5 days ago
Display (x) random users with their name and avatar 3 1 year 8 weeks ago
ignoring empty fields 3 34 weeks 5 days ago
Third party applications integration guide 3 1 year 12 weeks ago
How do I get rid of the "Welcome to your new Drupal website" on the front page? 3 13 weeks 4 days ago
Customising how your page headers are displayed for search engines 3 13 weeks 3 days ago
Allowing users to customize their profile 3 8 weeks 3 days ago
Custom "Who's Online" block 3 2 days 16 hours ago
Split a text field into multiple columns, like a newspaper/magazine article. 3 5 weeks 4 days ago
PostgreSQL specific guidelines 3 11 weeks 13 hours ago
Programs to use for translation 2 1 week 6 days ago
02. Telling Drupal about your module 2 2 weeks 4 days ago
Using distributed authentication 2 12 weeks 6 days ago
Implementing hook_simpletest 2 35 weeks 3 days ago
How to write efficient database JOINs 2 5 days 15 min ago
Child -> Parent(s) Relationships 2 1 year 8 weeks ago
Color picker doesn't appear on theme configuration page 2 19 weeks 5 days ago
Business directory style listing 2 1 week 3 days ago
Tutorial 3: Creating new widgets with AJAX 2 3 weeks 3 days ago
Drupal t-shirts and other merchandise 2 1 year 24 weeks ago
Hits by month 2 46 weeks 5 days ago
Copy your test site to a live site (GUI) 2 3 hours 45 min ago
Selective Bot Crawling 2 1 year 43 weeks ago
Tables part 1: Joins 2 3 weeks 3 days ago
Make sidebar blocks collapseable. 2 4 weeks 4 days ago
04. Validate the form submission 2 5 weeks 3 days ago
Example: Flex Recipe App MXML 2 11 weeks 5 days ago
Default front page 2 38 weeks 3 days ago
Book Module: How to make a book navigation block appear on all pages. 2 2 weeks 2 days ago
Blog: a blog for every user 2 1 week 2 days ago
Display a list of (x) node titles of a specific type 2 2 days 17 hours ago
Formatted Drupal 5.x Installation instructions for better readability 2 1 day 10 hours ago
SELinux may cause mysterious permission problems 2 9 weeks 4 days ago
Patches 2 2 weeks 23 hours ago
Associate Blocks with Forum nodes 2 14 weeks 2 days ago
02. HOWTO: Upgrade to Localizer 1.9.x 2 2 weeks 6 days ago
Show block content only to certain roles - Drupal 4.6 2 51 weeks 3 days ago
A/B/C Taxonomy Dual Views Sitemap 2 1 hour 31 min ago
HOWTO: Connect Flash to Drupal via XML-RPC 2 6 weeks 1 day ago
How to write database independent code 2 4 days 12 hours ago
Share tables across instances 2 12 weeks 2 days ago
cvsdrupal - checkout and maintain a local CVS repository 2 12 weeks 21 hours ago
get a contextual array for your node-links 2 42 weeks 5 days ago
Useful posts for configuring OG 2 2 days 21 hours ago
Installing PHP, MySQL and Apache under Linux 2 19 weeks 6 days ago
Tables part 2: Handlers and Option fields 2 27 weeks 2 days ago
Multi-site posting module 2 2 years 1 week ago
Google map view 2 4 weeks 6 days ago
Show node attachments in a block 2 9 weeks 2 days ago
Show a list of (x) most recent nodes from any of several categories (terms) 2 4 weeks 2 days ago
Display a list of the next (x) upcoming events 2 49 weeks 3 days ago
Dynamic arguments replacement 2 5 weeks 4 days ago
Defining and sending Views Arguments 2 3 days 3 hours ago
File: paid access to files 2 3 days 15 hours ago
Formatted Drupal 4.7.x Installation instructions for better readability 2 14 weeks 6 days ago
Primary and secondary links 2 15 weeks 5 days ago
HOWTO: Hire a Drupal site developer 2 13 weeks 2 hours ago
Upgrading from previous versions 2 3 weeks 14 hours ago
Display for logged in users 2 2 weeks 2 days ago
How to control Block visibility by Vocabulary ID 2 1 week 4 days ago
Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support 2 1 week 4 days ago
Post-upgrade steps 2 4 hours 2 min ago
Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)... 2 6 weeks 3 days ago
Guidelines for better performing code 2 11 weeks 3 days ago
Print a List of Terms in a Vocabulary 2 7 weeks 3 days ago
Making your theme semantically correct. 2 6 weeks 2 hours ago
The tolerant base URL 2 1 week 23 hours ago
M. Setting Up Cron 2 2 weeks 1 day ago
HOWTO: Display your node's "last edited by" information. 2 11 weeks 4 hours ago
Multiple domains or vhosts using different databases 2 1 week 3 days ago
Testing framework 2 12 weeks 6 days ago
Call for registrations, presentations and sponsors for Drupalcon Barcelona 2007 (Sept. 19-22) 2 4 days 7 hours ago
Writing secure code 2 21 weeks 6 days ago
Showing block for only selected terms 2 7 weeks 22 hours ago
Replace Distributed Authentication System 2 12 weeks 6 days ago
maintenance redirect: automatically redirecting everyone but you away from the drupal site 2 15 weeks 1 day ago
TortoiseCVS (Windows) 2 1 week 1 day ago
Clean URLs 2 2 days 19 hours ago
Creating a separate admin theme 2 19 weeks 2 days ago
Relationships between modules 2 9 weeks 2 days ago
Display the most popular content in a way like c|Net's what's hot 2 7 weeks 4 days ago
Using an argument with Insert view 2 1 week 6 days ago
Display a list of (x) most recent weblog entries 2 1 year 6 weeks ago
Document management module 2 48 weeks 1 hour ago
3. Formatting, Hiding, and Showing Fields 2 4 weeks 6 hours ago
HOWTO: Benchmark Drupal code 2 15 weeks 5 days ago
Content Construction Kit Handbook 2 4 days 21 hours ago
Redirecting Users After Submitting a Form in Drupal 5 2 4 weeks 2 days ago
Insert Subscribed Organic Groups List 2 2 weeks 3 days ago
HOWTO: Create a 'country' profile field 2 3 weeks 2 days ago
Calendar: Any Views Date in a Calendar 2 1 week 4 days ago
Adding your own extra _submit or function using hook_form_alter 2 35 weeks 6 days ago
Wildcard, ancestors and fitness 2 2 days 23 hours ago
Make a single file from the loose .po files from CVS 2 36 weeks 2 days ago
handling textarea fields and checking input formats 2 1 year 1 week ago
HOWTO: Configure user blogs 2 39 weeks 4 days ago
04. Configuring Localizer 2 2 weeks 5 days ago
List views without the list markup 2 4 weeks 2 days ago

Most popular handbook pages

Rank Page Visits today Total visits
1 Installation and configuration 586 368860
2 Formatted Drupal 4.7.x Installation instructions for better readability 583 158769
3 Installing Drupal 574 404926
4 About Drupal 542 454311
5 History, mission and community 420 133474
6 Installing Drupal, modules and themes 387 250787
7 Configuring cron jobs on DreamHost 366 80165
8 Drupal terminology 346 228018
9 On backwards compatibility: the drop is always moving 295 111936
10 Client System Requirements 268 91731
11 Configuring cron jobs 263 111357
12 A basic User Profile Page to help get you started 259 72677
13 Is Drupal right for you? 250 321692
14 Core modules 249 197184
15 Theming overview 245 154972
16 Apache 2 configuration of clean URLs on Debian 244 65790
17 Congestion control: tuning the auto-throttle 244 235242
18 Basic site configuration 236 257917
19 Gallery: Images and links to the home pages of Drupal sites 235 188571
20 Adding stylesheets for alternate media 233 49793
21 Theme developer's guide 219 206934
22 Explaining Drupal paths 215 83042
23 System requirements 210 235908
24 PHPTemplate theme engine 210 200141
25 Aggregator: publishing syndicated content 209 129354
26 Categories (taxonomy): A way to organize your content 196 127655
27 Example: How to Display a List View As a Mock Menu 183 42760
28 Videocasts 180 69056
29 Settings 179 144833
30 Converting 4.7.x modules to 5.x 176 29856
31 template.php: Overriding other theme functions 153 74031
32 Clean URLs 153 91993
33 Installing PHPTemplate in 4.6 149 127924
34 Tips and Tricks 147 51419
35 Tips for posting to the Drupal forums 146 35465
36 HowTo: The Advanced user's guide 143 102207
37 How to generate <body> class/id attributes for each page 141 59030
38 Installing Drupal 5 141 78409
39 Customization and theming 141 234614
40 Version numbers, policies and which version you should use 140 65342
41 PHPTemplate Theme Snippets 131 103105
42 Modules that do more with categories 131 63347
43 Module developer's guide 126 159648
44 Regions in themes 126 70775
45 Introduction to Drupal modules 125 88901
46 ContentO module creates story-like content types 125 11888
47 Best practices guidelines 125 108760
48 Mac OS X-specific guidelines 123 33634
49 Themes and modules used on Drupal.org 121 89504
50 Customizing themes for node types, terms, sections, paths, and front page 120 68739
51 What's new in Drupal 5 119 80198
52 Views 1.x user documentation 119 47278
53 How to insert and use the PHP Snippets in your pages 116 60276
54 Mission 112 49362
55 Site recipes 108 74066
56 Associate Blocks with Forum nodes 108 28061
57 Back up your Drupal site 107 33673
58 Modules 104 49173
59 A guide to adding your own snippets 104 63725
60 Views: Customized Node Lists 104 43359
61 Not including drupal.css 102 37706
62 Module snippets: Views 99 50316
63 E-Commerce Installation Profile 94 13009
64 Troubleshooting FAQ 92 99325
65 PHP snippets 91 75230
66 Enabling user pictures (avatars) 90 32339
67 Introduction to upgrading 90 33781
68 A "book-like" navigation block 90 50875
69 Welcome README 90 181403
70 Modification of code to display one teaser followed by a list of linked titles 90 4097
71 Drupal's APIs 88 103133
72 Contributed modules 87 60283
73 Registering as a user 86 52434
74 Field and Widget Settings 86 4314
75 Views Argument Handling Code 86 14695
76 Upgrading to Drupal 5 85 51126
77 End user guide 84 162505
78 Upgrading from previous versions 83 56206
79 Books about Drupal 82 8497
80 Drupal Object Reference 81 9536
81 Principles 81 23727
82 Creating modules - tutorials 80 16853
83 CCK for Administrators 79 4225
84 Customising the user profile layout 77 38801
85 General settings 75 46389
86 PHP page snippets 75 100657
87 $page==0 or $is_front 74 29766
88 My admin > modules page is blank 74 43102
89 Overriding the delimiter (the character that seperates links) in primary/secondary links 73 19252
90 Converting 4.7.x themes to 5.x 72 15628
91 HOWTO: Create a custom user login bar 72 6268
92 Content Construction Kit Handbook 72 3685
93 front page layout switcher for your page.tpl.php file 71 32775
94 Making additional variables available to your templates 71 46023
95 Tutorial #1: Make a "New Pages" block 70 15394
96 Creating a new PHPTemplate 68 82534
97 A/B/C Taxonomy Dual Views Sitemap 67 20601
98 Reviews and Analyses 67 58510
99 Custom login 66 30806
100 PHP block snippets 66 75041

New handbook contribution statistics

In the past week, a total of 33 handbook pages were created. Of those, 11 were spam. Of the 22 added, 19 were created by people not on the documentation team:

agentrickard

yurtboy

Torenware

awakenedvoice

malinka

wayfarer_boy

weedoo

cirotix

Rob Loach

sradomski

biohabit

robmilne

authentictech

rahil_malhotra

Recent updates

Page Edited Updated Approved
Sports new rahil_malhotra 2 hours 22 min ago yes
Differences from 4.7 to 5.x new
Minor changes
authentictech 3 hours 11 min ago yes
Important note on upgrading from 4.7 to 5.1 new
Thought this comment was important enough to be brought out into a page on its own.
authentictech 3 hours 26 min ago yes
Important note on upgrading from 4.7 to 5.1 new authentictech 3 hours 27 min ago yes
Finding broken links (and other things Drupal doesn't do) new
I've moved this here, down from the top level of the Handbook, where it didn't seem to belong. But it really seems to belong to a new category. Something like "Software to help you with your Drupal site." But that's not something I can attend to now. Good night.
O Govinda 10 hours 32 min ago yes
Path: readable URLs new Michelle 10 hours 34 min ago yes
Uninstall new robmilne 10 hours 50 min ago yes
Installation & Configuration new robmilne 11 hours 11 min ago yes
AJAX with 6.x FormAPI new pwolanin 13 hours 20 min ago yes
dynamic menus w/JStools's activemenus? new biohabit 14 hours 48 min ago yes
Asset: Unify asset file management in Drupal new cirotix 17 hours 2 min ago yes
Pathauto Tips and Hints new
Fixed a spelling error.
Senpai 19 hours 6 min ago yes
Pathauto: generate URL path aliases automatically new greggles 19 hours 45 min ago yes
Creating pages in the Drupal handbooks new sepeck 19 hours 48 min ago yes
Handbook style guide new
Updated an <i> tag to an <em> tag, and removed all Drupal version taxo terms.
Senpai 21 hours 26 min ago yes
HOWTO: Hire a Drupal site developer new greggles 22 hours 28 min ago yes
Clean-URLs - when you are having trouble... new sepeck 22 hours 46 min ago yes
Create Alias Anyway After the message "Ignoring alias {alias_name}" new
I changed "Pathauto Is" to "Pathauto is", and corrected the pathname punctuation in administer >> url aliases.
Senpai 1 day 59 min ago yes
Theming your Views new Bèr Kessels 1 day 1 hour ago yes
Obfuscate email adresses new sradomski 1 day 15 hours ago yes
Writing .info files (Drupal 5.x) new
removing junk about version="$Name$" in favor of the cvs_deploy.module, and minor edits to the 'project' entry.
dww 1 day 16 hours ago yes
Multi-Site, Single Codebase, Shared Database, Shared Sign-on 5.x new Heine 1 day 17 hours ago yes
Calendar: Any Views Date in a Calendar new KarenS 1 day 17 hours ago yes
Date new KarenS 1 day 17 hours ago yes
reCAPTCHA new Rob Loach 1 day 18 hours ago yes
Captcha: spam control new Rob Loach 1 day 19 hours ago yes
Converting 4.7.x modules to 5.x new
removing junk about version="$Name$"
dww 1 day 19 hours ago yes
Drupal 5.x to 6.x FormAPI changes new pwolanin 2 days 15 hours ago yes
Websites using localizer new EdInJapan 2 days 16 hours ago yes
MySite: user-submitted feeds new agentrickard 2 days 21 hours ago yes
Pathauto and Localizer new weedoo 2 days 22 hours ago yes
Overview-approach to block visibility new
Added code to NOT show block to a set of roles
Michelle 2 days 23 hours ago yes
Display X most recent Twitter entries new wayfarer_boy 3 days 51 min ago yes
Paypal payment or donation new kbahey 3 days 1 hour ago yes
DrupalCon site new
DrupalCon site
malinka 3 days 3 hours ago yes
Including Video In Your Drupal Site new awakenedvoice 3 days 13 hours ago yes
Adding a CiviCRM-based Field to a CCK Data Type new Torenware 3 days 16 hours ago yes
Installing and Configuring CiviNode and Related Modules new
First version
Torenware 3 days 16 hours ago yes
CiviNode and CiviNode CCK: Tools For Integrating CiviCRM Contacts Into Drupal Content new
First version, mostly general info drawn from Project page.
Torenware 3 days 17 hours ago yes
2bits new kbahey 3 days 23 hours ago yes
Call for registrations, presentations and sponsors for Drupalcon Barcelona 2007 (Sept. 19-22) new robertgarrigos 4 days 7 hours ago yes
MySite: plugin settings new agentrickard 4 days 22 hours ago yes
MySite: plugins and user options new agentrickard 4 days 22 hours ago yes
MySite: writing a content type plugin new agentrickard 4 days 22 hours ago yes
MySite: writing new plugins new agentrickard 4 days 23 hours ago yes
MySite: configuration settings new agentrickard 4 days 23 hours ago yes
MySite: custom user homepages new agentrickard 5 days 1 min ago yes
Command-line CVS (Mac) new
added more info about xcode tools and fink
add1sun 5 days 1 hour ago yes
Code Review Module - Coder new douggreen 5 days 3 hours ago yes
Converting 5.x modules to 6.x new pwolanin 6 days 13 hours ago yes

Handbook maintainers

Below is an alphabetical list of users who have specific permissions to help maintain the documentation on the drupal.org website. Please do not contact them individually, check the documentation issue tracker for existing issues or to submit a new issue instead.

  1. add1sun
  2. Advomatic
  3. AjK
  4. alpritt
  5. Amazon
  6. ashtonium
  7. barkingcat
  8. beginner
  9. bonobo
  10. brainless
  11. catch
  12. cel4145
  13. ChrisKennedy
  14. CogRusty
  15. Crell
  16. drewish
  17. dvessel
  18. EdInJapan
  19. ejhildreth
  20. fago
  21. forngren
  22. Harry Slaughter
  23. hayesr
  24. HedgeMage
  25. hot_turkey_ed
  26. ica
  27. Jaza
  28. joachim
  29. JohnAlbin
  30. Jose A Reyero
  31. joshk
  32. KarenS
  33. karldied
  34. kitt
  35. Kjartan
  36. kkaefer
  37. kreynen
  38. Kristi Wachter
  39. laura s
  40. Magdelaine
  41. malione
  42. marcp
  43. MattKelly
  44. mdrmike
  45. merlinofchaos
  46. Michelle
  47. mpare
  48. nancyw
  49. O Govinda
  50. oadaeh
  51. ontwerpwerk
  52. Pancho
  53. pnm
  54. puregin
  55. pwolanin
  56. pyutaros
  57. Rick Hood
  58. rivena
  59. robertgarrigos
  60. RobRoy
  61. RoloDMonkey
  62. rorysolomon
  63. sammys
  64. Senpai
  65. sime
  66. snpower
  67. styro
  68. tmg-studio
  69. Tresler
  70. trevortwining
  71. ultrabob
  72. undoIT
  73. venkat-rk
  74. webchick
  75. Wim Leers
  76. xamount

If you are interested in helping maintain/update/correct the documentation on Drupal.org, join the documenation team.

Note: Many site maintainers participate on the documentation team and are not listed here as the site maintainers role has more rights then the documentation maintainers role. Site maintainers role has broader responsibilities on drupal.org as well.

Book contributors

Without contributors, we would have no documentation. The following users have contributed pages to the Drupal handbook:

Copyright and licensing

All Drupal handbook pages are © copyright 2000-2007 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike2.0. This copyleft license (very similar to the GPL) allows anyone to copy, modify, and redistribute modifications of all or part of the Drupal handbook as long as

These conditions can be waived only if permission is obtained from the copyright holder(s). By posting comments to the pages in the Drupal handbook, Drupal site members agree that the comments can be revised and/or incorporated wholesale into the Drupal handbook pages under the licensing terms given above.

Contributors to the Drupal handbook are listed on the book contributors page.