Home

Primary links

  • top o the deck
  • Drupal for Beginners
  • about
  • links
  • give me some sugar

Drupal stuff

  • EDAM
  • STARDOM
  • Question Bank
  • Drupal musings
  • Drupal tips
Home

Key stuff on this site

Easy Drupal Admin Manual (EDAM)

SEO, Traffic and Revenue: Drupalace's Online Manual (STARDOM)

Drupal for Beginners

Subscribe to posts by RSS or email

Subscribe to Drupal Ace by RSS feed RSS feed 

Subscribe to Drupal Ace by Email

Donate towards my web hosting bill! Get a great host!

Share and save

Share/Save

Random piece of content

Checking out Amazon on Drupal 6, Part 2

Manuals on this site

  • Easy Drupal Admin Manual (EDAM)
    • Welcome to Your Site
    • First Steps: Please Read!
      • Understanding These Instructions
      • Important Terminology!
      • Best Practices for Site Admins
    • Super Quick Guide (for the experienced and the brave)
    • Logging In
    • Your Administrator Tools
    • Setting Site Basics
      • Setting Site Information
      • Configuring Your Theme
    • Creating Content
      • Node Types
      • Create a Page Node
      • Create a Story Node
      • Create a Blog Entry Node
      • Making Images and Other Files Available
      • Using Text and Image Editors
    • Organizing Your Content
      • Terms, Vocabularies, and Taxonomy: "Tagging" Your Content
        • Taxonomy Suggestions
      • Menus, Links, and Paths: Navigating the Site
        • Content Paths and URLs
        • Creating Links
        • Working with Menus: Administration Form (Drupal 6)
        • Working with Menus: Administration Form (Drupal 5)
        • Creating Menu Items on the Fly
        • Placing Menus on Your Pages
      • Placing Content on pages
        • Creating a page from a Single Node
        • Creating a page from a List of Nodes
        • Setting the Front Page
      • Working with Blocks
    • Maintenance Stuff
      • Maintenance and Construction Notices
    • Other Fun Things
      • Changing Color of Garland Theme
      • Free Aliases!
  • SEO, Traffic and Revenue: Drupalace's Online Manual (STARDOM)
    • Set a Clear Goal
    • Make a Good Site
      • Put out the Welcome Mat
      • Make Great Content
      • Build a Great Brand
      • Make Navigation Easy
      • Tune Site Performance
    • Drive Traffic
      • Promote your Site
      • Get Found with SEO
    • Build a Community
      • Build an Offsite Community
    • Monitor and Improve
    • One-Page Checklist
    • Drupal and the Blogging Starter Checklist
      • Drupal and the Blogging Starter Checklist, Part 1
      • Drupal and the Blogging Starter Checklist, Part 2
      • Drupal and the Blogging Starter Checklist, Part 3
      • Drupal and the Blogging Starter Checklist, Part 4
      • Drupal and the Blogging Starter Checklist, Part 5
      • Drupal and the Blogging Starter Checklist, Part 6
      • Drupal and the Blogging Starter Checklist, Part 7

You said it!

  • Tough one to Inves...

    I have heard and read stories such as this one before, and their common denominator is Drupal...

  • exclude

    excellent tip - can highly recommend the module - installed and working perfectly in drupal 7

  • Great CMS

    This book seems very interesting as I am currently starting a project to build a community site...

  • Thanks!

    Thank you very much !

  • Thank you very muc...

    Thank you very much !

more

admin

Tip for friendlier content creation

Submitted by Drupalace on Tue, 2010-08-03 19:08
  • admin
  • content
  • site design

So you're editing a Story node in Drupal, and... Wait, was it a Story? Or was it a Page node? Or is the node you're editing actually a Blog Entry?

When you create a node, Drupal gives you a big-letter reminder of what you're making: "Create Story" (or whatever the node type is) appears at the top of the creation form. Yet when you later edit the node, there's no easy reminder of what the node type. Clues in the path, the visible fields, or elsewhere may give it away to the experienced site builder, but not to a newcomer admin to the site. And to be sure, you won't often care what the node type is when making some small edits, but then again you might find yourself scratching your head as you stare at the edit form for a node someone else made, thinking that you'd like to make this change if it's a Story but that change if it's a Page...

There's a nice and very simple tip at the Josiah Ritchie blog to aid future editors (including yourself) on this small point.

Click here and read more!
  • Drupalace's blog
  • 2 comments
  • Quote

How to stop Drupal from logging error messages to screen?

Submitted by Drupalace on Fri, 2010-05-21 18:19
  • admin
  • Drupal 6
  • security
  • answered question
Question

 

Here's a typical error message that can pop up, for authenticated and anonymous users alike, when Drupal chokes on something:

warning: array_map() [function.array-map]: Argument #2 should be an array in /home/your-directory/your-Drupal-installation/modules/system/system.module on line 1015.

The latter part of the path, modules/system/system.module, is generic to any Drupal setup. But the former part, /home/your-directory/your-Drupal-installation/, refers specifically to your own directory setup. That's obviously useful to the admin (should he for some reason not know the path), but is it wise to be revealing such directory info to strangers?

I can't say offhand what that extra info means to a malicious hacker. But following the general maxim of giving such malcreants no info they shouldn't have, is there a way to stop Drupal from revealing paths in its error messages?

Related URL: 

http://drupal.org/node/803946

Question answer: 

I thought there was a simple setting to handle this, but couldn't recall it. Over on the Drupal.org forums, helpful soul ambientdrup set me straight: the solution is as quick as heading to the Error Reporting settings at admin/settings/error-reporting, and setting errors to write to the log only, not both screen and log. The screen messages are helpful while you're developing a site, but once you launch, it's a good idea to turn them off.

And that's it. My thanks to ambientdrup!

  • 4 comments

More EDAM updates!

Submitted by Drupalace on Tue, 2010-01-12 12:11
  • admin
  • Drupal 6
  • manual
EDAM - Easy Drupal Admin Manual for beginners

A happy New Year to all! And what could ring in a new year more happily than updates to the Easy Drupal Admin Manual?

Okay, lots. But still, it's not a bad thing, right?

EDAM pages under Terms, Vocabularies, and Taxonomy: "Tagging" Your Content and Menus, Links, and Paths: Navigating the Site are now updated for Drupal 6, with one long-absent item, Placing Menus on Your Pages, finally online. All with a nifty new menu for navigating both EDAM and STARDOM, thanks to the Advanced Book Blocks and jQuery Menu modules. 

There's still more of EDAM to update, but things are coming along nicely. Look forward to more all-new content before long.

As always, please let me know of any corrections or improvements to be made to the content. If those pages do appear up to snuff, please send any newbie Drupal administrators to EDAM for an easy guide to simple site admin and content creation.

  • Drupalace's blog
  • Add new comment
  • Quote

Working with Menus: Administration Form (Drupal 5)

  • admin
  • content
  • Drupal
  • menus

Menus are the key to your site – they're the way by which visitors get at your content.

A menu is a list of links to content. Menus can appear in a horizontal line at the top of your pages, as with many web site designs. Or they can appear along the sides in blocks, another common design.

A specific link in a menu – a "menu item" – can link to a specific node. Or, calling on the full power of the database behind your site, it can pull up a list of nodes based on some criterion.

There's a big administration form for all menus on your site:

Navigation » Administer » Site building » Menus

At the top of that form, you'll see four tabs: 'List', 'Add menu', 'Add menu item', and 'Settings'. An overview of the tabs:

List

This form lists every menu currently created for your site. Immediately under the menu's name are one or more options:

Edit

This brings up a form that lets you change the name of the menu. That's it.

Delete

If the menu is one that you, and not the Drupal system, created, you can delete it from here.

Add item

This is an important one: it lets you add a new menu item to the menu. The link takes you to the 'Add menu item' tab; see Add menu item below.

list of menu items

Under the above choices is a list of the items – the links – in the menu. Its columns are:

Menu item

The name of each item. Clicking on an item's name simply activates that link, the same as selecting it in an actual menu.

Expanded

The 'Expanded' column refers to how sub-menus appear. A menu item can have multiple menu items beneath it as a sub-menu. See the Navigation menu for a perfect example: the item 'Administer' has a sub-menu 'Site building' below it, which in turn contains items like 'Blocks'. If a submenu is expanded, then it will appear with its contained items visible. If it is not expanded, then a viewer will have to click on the submenu to see its contained items.

Operations

The 'Operations' column has links to edit, disable, or delete a menu item.

Editing a menu item follows the same procedure as creating one. See Add menu item below.

Disabling a menu item is a useful technique. It takes the item off of the visible menu, but retains it on the administration form, where you can easily enable it again later.

Finally, deleting a menu item removes it for good.

Add menu

There's not much under the Add menu tab: just a field to input the name of a new menu. This is for creating a menu as a block. The new menu will appear on the Menus administration form as only a name, with no items underneath; you'll then want to add menu items.

Once that is done, you're ready to have the menu appear on the site. Head to the Blocks administration form, find your new menu's block under the Disabled list (it'll have the name you created for your new menu), and place it on the page where you like.

See Working with Blocks and Placing Menus on Your Page.

Add menu item

This is where you add a menu item – a link to content, whether a node (or list of nodes) within your site, or an external URL (such as a page on another website).

Here are the fields on the form:

Translations

You'll see this option if you have multilingual capabilities installed in your site. For each of the active languages, you can insert a custom title and description (see explanations below). For example, if you have a menu item called "services", you can input "servicios" as a Spanish equivalent.

When a visitor switches languages, translated menu items will appear in the appropriate language.

Title

This is the name of the menu item, as it appears on the site: 'home', 'products', 'contact me', or what have you.

Description

Whatever you input here will appear as a "tip" when a visitor places the mouse pointer over the link ("hovers" over the link, as the techies term it). It's a good way to describe the link a little, without using a long title. For examples, hover your pointer over the links at the top of this page.

Path

This is the meat of your menu item: what does it link to? You can input any external link (such as http://www.google.com) or an internal link to content within your site.

Internal links are a big, rich topic. See Linking to Content.

Menu items can be nested underneath other menu items (for example, menu items for several products, nested under an 'All Products' menu items). Normally, the nested "sub-menu" items appear only when the parent menu item is clicked. But if you check the 'Expanded' checkbox for your menu item, any sub-menu items nested under it will be visible within the menu, even without a visitor clicking.

Parent Item

Another important setting: what menu your menu item appears under. Click the drop-down menu. Available menus, and the menu items beneath them (indented with hyphens) appear.

Heirarchical (or "nested") menus are possible as well. "Sub-menus" – the "children" menu items of "parent" menu items – appear on the list, using deeper indentations.

Choose a menu's name to place your new menu item inside that menu. Or choose a "parent" menu item, to place your new menu item underneath it as a "child" sub-menu item.

Weight

Where in the selected menu will your new menu item appear? Set the "weight" for each item in the menu to order them: the "lightest" weight will appear first, and the "heaviest" weight will appear last.

For example, you might set the weight of a menu item 'main page' as -10, and a menu item 'contact us', as 10. The link 'main page' will appear first, and 'contact us' last. A menu item with a weight of, say, 0 will appear in between the two.

Settings

This form has a couple of settings related to site-wide handling of menus:

Primary and secondary links settings

Primary menu

Here you set an important item: your primary menu. Most web sites have one "main menu": a menu with important links for visitors like 'home', 'about us', 'links', and so on. Drupal gives this menu special treatment: most graphic Themes automatically display the primary menu, usually at the top of every page.

How do you create your primary menu? Easy:

1) Create a menu for the purpose, if it doesn't exist already. The items should generally be your most important pages or "sections", starting with 'home' (or 'main page' or 'front page' or whatever you prefer to call it).

Name this menu 'primary menu', 'main menu', 'site menu' or some such.

2) Open the 'Settings' tab (the topic of discussion here). Under 'Menu containing primary links:', choose the menu you created above.

When you click 'Save configuration', you'll now have a primary menu.

Secondary menu

What's a secondary menu? It's a special menu, like the primary one, that many Drupal graphic Themes reserve a special place for.

But many Themes don't display secondary menus, and a lot of Drupal users scratch their heads over what it's for. If you like, set a secondary menu here (as you did above for a primary menu), click 'Save configuration', and see whether anything shows up, and where.

There's an explanation on the Settings form: "If you select the same menu as primary links then secondary links will display the appropriate second level of your navigation hierarchy." In other words: If your primary menu has parent items with child items under those, then the parent items will show up in the primary menu location, and the first layer of child items will show up in the secondary menu location, when the appropriate parent item is selected.

It's easier to see than to explain. Give it a try.

Content authoring form settings

This setting is probably meaningless unless you are allowing multiple users to create new content, and menu items linking to that content. See Creating Menu Items on the Fly.

  • Add new comment
  • Quote

Creating Links

  • admin
  • Drupal
  • links

Links are how visitors get from one page to another. You'll probably put a lot of links in menus – a menu being just a list of links to other content. But you may also place links directly inside content text, or inside a block's text.

You may want links that point to a specific content item on your site, or a specific page on an outside web site. Or you may want powerful links that pick up and return a list of multiple content items from your site's database.

There's a lot you can do. Here's a basic guide to linking:

Placing Links

Know the path

A link is a pointer to another page or node address. The first thing you need to know is the target page's address: its path (or if it's external, such as a page on another website, its URL). If you haven't done so, see Content Paths and URLs.

You're now armed with the paths you need for the links you'll create. Next:

Linking to a path or external URL

Putting a link into a menu item

Every menu item needs to specify a path; sending the visitor to that path is the purpose of a menu item. When creating or editing a menu item, you input the path into the 'Path' field. See Working with Menus: Administration Form.

For an internal path, you only need to input the path, not the entire URL starting with http://<www.yourdomain.com>. For example, if the link is to a product description page with the path products/home/superbroom, then products/home/superbroom is all you need to input.

For an external URL, input the whole URL, starting with http:// .

For an email address, write mailto:, followed by the address: mailto:info@google.com, for example. Clicking on that menu item's link will prompt the user's email program to draft a message. 

Putting a link into content text

If you want to place a link to an external URL or an email address into a block of text, you likely don't need to do anything special. If the text field uses a text editor like TinyMCE or FCKeditor, the text editor may be set up to automatically convert certain addresses into working links. Just type the URL or email address normally – like www.google.com or <www.yourdomain.com>/news/special-report – and the text editor should do its magic when you save the content. You probably don't even need the http:// part of those URLs (but test to make sure). Your site may perform the same nifty trick for email addresses too, turning email@google.com into a working email link.

Again, though, that'll only work in a field using such a text editor which has been set up to create those automatic links; yours might not be (in which case you'd need to configure Input Formats to improve things – a topic for later).

More importantly, you probably don't want to use a full URL for every link. You probably want to bury the link within other words (like "read my hosting revue" or "Visit the National Geographic site"). How to do that?

The easiest way is to use the 'insert/edit link' function in your text editor (see Using Text and Image Editors). You select the words you want to imbue with a link, click the appropriate 'insert/edit link' button, type the URL into the window that pops up, and close the window. Voilá, a link embedded in the text.  

However, a caution (for typical, if not necessarily all, Drupal setups): Unlike the above procedure for placing a link into a menu item, here you do need to consider the full URL, even for internal pages. If you only put in the part of the path that follows http://<www.yourdomain.com>/, Drupal will likely try to append that path to the current page path, which may not at all be what you want.

That'll make a lot more sense with a simple example.

My page called 'Drupal for Beginners' has the internal path drupal-for-beginners and the URL http://www.drupalace.com/drupal-for-beginners. Say I want to embed a link to it within the last four words of the following text: "Read my overview of Drupal for beginning users."

First, I'll call up my 'insert/edit link' function and input just the internal path:

Link using internal path only

Here's the link that results:

"Read my overview of Drupal for beginning users."

It's no good. My text editor took the path for this page (EDAM/creating-links) and tacked drupal-for-beginners onto the end of that, creating the monstrosity www.drupalace.com/EDAM/creating-links/drupal-for-beginners as the final URL. That'd be fine if it were what I wanted, but in this case, it's not. There's no page with that URL and thus the link is broken.

(Edit, many months later: Hmm, at first my text editor was creating the wrong URL shown above. I just checked again, and now it's instead creating www.drupalace.com/EDAM/drupal-for-beginners . I don't know what change I made to the site's configuration to spur that change... but either way, it's an invalid link! So read on.) 

This time, I'll insert the whole URL:

Link using whole URL

Here's the link that results:

"Read my overview of Drupal for beginning users."

That one works!

Keep that point in mind as you create links. You don't want broken links littering your site.

Link to a Term's path

Recall that a "Term" is a "keyword" that tags your content. You can link to a Term, which will return all nodes tagged with that Term. For example, you can make a menu item named 'See All Products' which links to the Term 'product', and when clicked returns all nodes tagged with the Term 'product'. An instant, simple product catalog!

What you want here is the Term's path. A Term has a path like any other content; once you now it, you can do use it like any other path. See Content Paths and URLs to find a Term's path.

Link to multiple Terms

Now comes the powerful stuff: combining multiple Terms in one link. You can create a link that returns all nodes that are tagged with the Terms 'product' and 'technology', for a narrow list of only nodes that deal with both of those topics. Or you can create a link that returns all nodes that are tagged with the Terms 'product' or 'technology', for a broader list of all nodes about either of those topics.

First, note the path for each Term you'll use. For the following examples, say you'll use three Terms whose paths are taxonomy/term/1, taxonomy/term/5, and taxonomy/term/13:

AND combinations: Write the path like this:

 taxonomy/term/1,5,13 

to return nodes tagged with all three of the Terms.

OR combinations: Write the path like this:

 taxonomy/term/1+5+13 

to return nodes tagged with any one of the Terms.

Use the same format, separating numbers with commas or plusses, whether you're combining two Terms or twenty. (Naturally, you'll replace the above "1", "5", and "13" with the appropriate numbers you've confirmed for your Terms.)

If you think the above sounds hard to remember, you aren't alone. It's definitely strange that OR combinations, not AND combinations, use the symbol "+" in their syntax. It sounds backward. Chalk it up to an odd quirk of Drupal, and move ahead.

Link to a Term and all its child Terms

Terms can be "hierarchical", with "child" Terms placed below a "parent" Term. (See Terms, Vocabularies, and Categories: "Tagging" Your Content.) One example: a Term 'machinery', with child Terms below it like 'pump', 'generator', etc.

If you'd like to create a link that picks up content tagged with the parent or any of its child – 'machinery' or 'pump' or 'generator' in the above example – there are three ways.

The first and simplest method in concept: Make sure that you tag all pump-related nodes with 'pump' and 'machinery'. That way, a link to the Term 'machinery' will pick up all pump-related nodes as well. But here's the catch with that method: If you forget to include the tag 'machinery' on your Model 501 Grease Pump product description node, the link will miss it.

The second method is as described above: Link to the combined terms, like taxonomy/term/1+5+13. This link will catch the Model 501 Grease Pump node, on which you included the 'pump' tag but forgot the 'machinery' tag. That's better, but there's another problem: As you add new child Terms, you need to keep updating the link to include the new Terms (so that it ends up looking like taxonomy/term/1+5+13+24+25+31+33 and on and on.)

The third way is as follows: Link to the 'machinery' Term only, and tack on /all at the end of it. It might look like this:

taxonomy/term/1/all

That link will pick up content tagged with Term 1 ('machinery' in this example), plus any child Terms below that, even any new ones you add later. Handy!

  • 14 comments
  • Quote
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • next ›
  • last »

Learn Drupal, hands-on

Get the beginner-friendly ebook that teaches community site building via a live case study.

Drupal 6 Ultimate Community Site Guide

Read the review

It's a deal!

Dreamhost dealsDrupal Ace presides over his domain, proudly ensconced in his DreamHost eyrie. Won't you join me?

Promo code deal!

Just enter the code 49ER when you register for an account, and save $49 off the already-low price. No strings!

Read my hosting service review

Drupal mini tip

Need to disable a Drupal module but can't do so from within the site? (This could happen if the wayward module is preventing you from reaching the Modules form!) Look for the module's entry within the "system" table of the site's database, and set the module's status to "0". 

(From within phpMyAdmin: Select the "system" table from the column of tables at left. Click the "Browse" tab. Find the row for the module you wish to disable, and click the "pencil" icon in that row. In the resulting form, input "0" for the Value of "status", and click the "Go" button. Done!) 

Powered by Drupal, an open source content management system

Copyright 2007 and forever after. Made with Drupal, of course. On OS X, of course. Served up by DreamHost. DreamHost

RoopleTheme