Posted by barobba on July 11, 2010 at 5:08pm
Making the node title hidden, by having an option in the node edit form. I think this is pretty important. I use this in Google Sites all the time, but haven't found a module for this in Drupal, yet. The title still needs to be accessible for other modules, forms, UI elements, and SEO that use a title.
It would be a very simple module that would hide the title via a stylesheet. However, it lets the author decide whether or not the title should be visible. This way, you still have to set the title, but it can be optionally displayed on the page.
It would also be important to have this option turned on/off when configuring the content type.

Comments
Instead of inserting a
Instead of inserting a stylesheet, an alternative would be to add this variable to the node object. That way the theme layer can decide what to do with it.
And why when configuring the content type?
And why do this when configuring the content type? This sounds like a theming option, and other things like whether or not to show author & date are in the theme configuration page. Not possible to put it there with those very same/similar options?
If the "title status" is set
If the "title status" is set at the content type level, then it might be better to place this option in the theme configuration page. Instead, what I am thinking about is a node-level option, such as $node->title_status, but you might want to choose which content types have this option set. Hmmm...maybe turning this feature on should be a permission, such as "set title status for story content".
automatic node titles?
How is this idea different from http://drupal.org/project/auto_nodetitle ?
knaddison blog | Morris Animal Foundation
That's a good question. I expected it, too :)
Automatic Nodetitles assists the author in choosing a title (in the "form"). After a title is chosen, the author might also want to choose whether or not the title is displayed. Automatic Nodetitles wouldn't work for this, because the title would still be visible when the node is displayed. Also, this would not be something that could be handled from the theme layer alone because the "title_status" is decided on a per node basis.
The solution would be a module that incorporates "hook_perm", "hook_nodeapi", and "hook_form_alter". The result would be a "title_status" variable in the node, and the themer could then decide what to do with the "title_status" meta data. The title could still be displayed in content listings, etc., so this is not removing the titles. Instead, it would be adding additional metadata for the themer.
There are other (more elaborate) methods that could be employed such as identifying the "title_status" from the context, but sometimes a simple node-level checkbox might be sufficient.
I think that this should go
I think that this should go to the Node Display suite, someone proposed a while ago but has been rejected: http://drupal.org/node/742238
I think this would be different, because...
I think this would be different, because the "Node Displays" module allows admins to create multiple build modes per "node type". The proposal you refer to (node/742238), is about theming the "node type" per build mode.
But, how can authors do this on a per-node level? For example, I am going to create a 10 nodes of type "design_something", and 5 of those nodes I would like the title to be hidden.
...Something similar would be if the author could choose the "node theme" for each new node created. Is there a module for that?
I think I have solution.
Since CCK is used for Node content + metadata, a simple CCK checkbox would be enough. Then, the themer could use that information to decide whether or not to display the title. There are so many ways to do something in Drupal, sometimes the easy solution gets missed!
Richmahn, Greggles, and Pcambra, thank you for your help.
I'm not 100% sure of the
I'm not 100% sure of the direction of the module given some recent thoughts/conversations, but you can do this with http://drupal.org/project/custom_node_template. All that is needed is to have two versions of the node template (with and without the title printed). If your theme prints the title in the page template, then you can have two page templates. Choosing a "No Title" node template will auto-suggest the corresponding Page Template. You can also try the module referenced on the project page that pertains to page templates specifically, although I don't know it's status with some of the settings.
Are there any modules for categorizing "content type fields"
My only concern with the custom_node_template module is that two similar on/off switches would require four templates, and three similar on/off switches would require eight templates.
Something that worries me somewhat, is that using CCK fields for "metadata" almost seems like overextending the use of CCK fields.
One possible solution, are there any modules for categorizing content type fields (at the type level)? For example, at admin/content/node-type/story/*, I could categorize fields like this:
In this case, the story type's fields have been categorized as "data", "somecategory", or "metadata".
This is similar to when template files such as node.tpl.php, in their comments at the top, provide a list of the default variables by category. That information (the categories) would be very useful for theming.
Some of those variables are inserted at the preprocessing level. So, you would almost want an additional array, such as $vars['variable-descriptions'] that you could use to pass this information to the theme.
$vars['variable-description']['title'] = array('category' => 'data');Are there any modules along these lines? (Display Suite, or Context?)
I fight this all the time
My former approach was to set a list in my page.tpl.php template and check against it with the value of the URL- like:
<?php<?php $ignore_paths = array('node/1', 'node/2','node/3','node/4','node/5','node/6','node/7', 'node/8', 'node/9', 'node/10', 'node/11','news-and-events', 'press');
?>
<?php$path = $_GET['q'];
?>
<?phpif (!in_array($path, $ignore_paths)):
?>
<?php//print_r($node);
?>
<?phpif ($title):
?>
<?phpprint $title;
?>
?>
I did not like this approach, but am not super strong with PHP and this worked well. My plan was to convince some koders to help me build a Context Extra sub module so that I could add nodes to a context that hid the page title, but as of today I have a new approach. I am using the (awesome!) module to make the page title a block and using block visibility rules to control the Page Title. Works great!
-jared
Easiest Way
Is to use Display Suite. When you have Node displays as well as some of the other DS modules you can hide the node title without any coding of .tpl files.
Alternative title
Something somewhat related to this idea is having an alternative title for the public versus the internal title. I have had this come up for more than one client. The thing is that internally the node/page should be called one thing in order to clearly identify it, but this isn't always what should show up to the end user.
For example, go to: http://www.boomerangproject.com/contact
The internal title is "Contact Us" but the alternative title is "Need to connect with us?".
Perhaps these ideas could be merged where you can choose to:
Though all of this can be handled in the theming layer with some code if necessary.
Kristen
Contact: https://www.hook42.com/contact
Drupal 7 Multilingual Sites: http://www.kristen.org/book