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