- 7 themes/garland/node.tpl.php
- 7 themes/bartik/templates/node.tpl.php
- 7 modules/node/node.tpl.php
- 4.7 themes/bluemarine/node.tpl.php
- 4.7 themes/engines/phptemplate/node.tpl.php
- 4.7 themes/pushbutton/node.tpl.php
- 5 themes/garland/node.tpl.php
- 5 themes/pushbutton/node.tpl.php
- 5 themes/engines/phptemplate/node.tpl.php
- 5 themes/bluemarine/node.tpl.php
- 6 themes/garland/node.tpl.php
- 6 modules/node/node.tpl.php
- 6 themes/pushbutton/node.tpl.php
- 6 themes/bluemarine/node.tpl.php
- 8 core/modules/node/templates/node.tpl.php
- 8 core/themes/bartik/templates/node.tpl.php
Default theme implementation to display a node.
Available variables:
- $title: the (sanitized) title of the node.
- $content: An array of node items. Use render($content) to print them all, or print a subset such as render($content['field_example']). Use hide($content['field_example']) to temporarily suppress the printing of a given element.
- $user_picture: The node author's picture from user-picture.tpl.php.
- $date: Formatted creation date. Preprocess functions can reformat it by calling format_date() with the desired parameters on the $created variable.
- $name: Themed username of node author output from theme_username().
- $node_url: Direct URL of the current node.
- $display_submitted: Whether submission information should be displayed.
- $submitted: Submission information created from $name and $date during template_preprocess_node().
- $classes: String of classes that can be used to style contextually through
CSS. It can be manipulated through the variable $classes_array from
preprocess functions. The default values can be one or more of the
following:
- node: The current template type; for example, "theming hook".
- node-[type]: The current node type. For example, if the node is a "Blog entry" it would result in "node-blog". Note that the machine name will often be in a short form of the human readable label.
- node-teaser: Nodes in teaser form.
- node-preview: Nodes in preview mode.
The following are controlled through the node publishing options.
- node-promoted: Nodes promoted to the front page.
- node-sticky: Nodes ordered above other non-sticky nodes in teaser listings.
- node-unpublished: Unpublished nodes visible only to administrators.
- $title_prefix (array): An array containing additional output populated by modules, intended to be displayed in front of the main title tag that appears in the template.
- $title_suffix (array): An array containing additional output populated by modules, intended to be displayed after the main title tag that appears in the template.
Other variables:
- $node: Full node object. Contains data that may not be safe.
- $type: Node type; for example, story, page, blog, etc.
- $comment_count: Number of comments attached to the node.
- $uid: User ID of the node author.
- $created: Time the node was published formatted in Unix timestamp.
- $classes_array: Array of html class attribute values. It is flattened into a string within the variable $classes.
- $zebra: Outputs either "even" or "odd". Useful for zebra striping in teaser listings.
- $id: Position of the node. Increments each time it's output.
Node status variables:
- $view_mode: View mode; for example, "full", "teaser".
- $teaser: Flag for the teaser state (shortcut for $view_mode == 'teaser').
- $page: Flag for the full page state.
- $promote: Flag for front page promotion state.
- $sticky: Flags for sticky post setting.
- $status: Flag for published status.
- $comment: State of comment settings for the node.
- $readmore: Flags true if the teaser content of the node cannot hold the main body content.
- $is_front: Flags true when presented in the front page.
- $logged_in: Flags true when the current user is a logged-in member.
- $is_admin: Flags true when the current user is an administrator.
Field variables: for each field instance attached to the node a corresponding variable is defined; for example, $node->body becomes $body. When needing to access a field's raw values, developers/themers are strongly encouraged to use these variables. Otherwise they will have to explicitly specify the desired field language; for example, $node->body['en'], thus overriding any language negotiation rule that was previously applied.
See also
- book_node_export in modules/
book/ book.module - Generates printer-friendly HTML for a node.
- comment_links in modules/
comment/ comment.module - Helper function, build links for an individual comment.
- comment_node_view in modules/
comment/ comment.module - Implements hook_node_view().
- node_preview in modules/
node/ node.pages.inc - Generates a node preview.
- theme_node_recent_block in modules/
node/ node.module - Returns HTML for a list of recent content.
File
modules/node/node.tpl.php- <?php
-
- /**
- * @file
- * Default theme implementation to display a node.
- *
- * Available variables:
- * - $title: the (sanitized) title of the node.
- * - $content: An array of node items. Use render($content) to print them all,
- * or print a subset such as render($content['field_example']). Use
- * hide($content['field_example']) to temporarily suppress the printing of a
- * given element.
- * - $user_picture: The node author's picture from user-picture.tpl.php.
- * - $date: Formatted creation date. Preprocess functions can reformat it by
- * calling format_date() with the desired parameters on the $created variable.
- * - $name: Themed username of node author output from theme_username().
- * - $node_url: Direct URL of the current node.
- * - $display_submitted: Whether submission information should be displayed.
- * - $submitted: Submission information created from $name and $date during
- * template_preprocess_node().
- * - $classes: String of classes that can be used to style contextually through
- * CSS. It can be manipulated through the variable $classes_array from
- * preprocess functions. The default values can be one or more of the
- * following:
- * - node: The current template type; for example, "theming hook".
- * - node-[type]: The current node type. For example, if the node is a
- * "Blog entry" it would result in "node-blog". Note that the machine
- * name will often be in a short form of the human readable label.
- * - node-teaser: Nodes in teaser form.
- * - node-preview: Nodes in preview mode.
- * The following are controlled through the node publishing options.
- * - node-promoted: Nodes promoted to the front page.
- * - node-sticky: Nodes ordered above other non-sticky nodes in teaser
- * listings.
- * - node-unpublished: Unpublished nodes visible only to administrators.
- * - $title_prefix (array): An array containing additional output populated by
- * modules, intended to be displayed in front of the main title tag that
- * appears in the template.
- * - $title_suffix (array): An array containing additional output populated by
- * modules, intended to be displayed after the main title tag that appears in
- * the template.
- *
- * Other variables:
- * - $node: Full node object. Contains data that may not be safe.
- * - $type: Node type; for example, story, page, blog, etc.
- * - $comment_count: Number of comments attached to the node.
- * - $uid: User ID of the node author.
- * - $created: Time the node was published formatted in Unix timestamp.
- * - $classes_array: Array of html class attribute values. It is flattened
- * into a string within the variable $classes.
- * - $zebra: Outputs either "even" or "odd". Useful for zebra striping in
- * teaser listings.
- * - $id: Position of the node. Increments each time it's output.
- *
- * Node status variables:
- * - $view_mode: View mode; for example, "full", "teaser".
- * - $teaser: Flag for the teaser state (shortcut for $view_mode == 'teaser').
- * - $page: Flag for the full page state.
- * - $promote: Flag for front page promotion state.
- * - $sticky: Flags for sticky post setting.
- * - $status: Flag for published status.
- * - $comment: State of comment settings for the node.
- * - $readmore: Flags true if the teaser content of the node cannot hold the
- * main body content.
- * - $is_front: Flags true when presented in the front page.
- * - $logged_in: Flags true when the current user is a logged-in member.
- * - $is_admin: Flags true when the current user is an administrator.
- *
- * Field variables: for each field instance attached to the node a corresponding
- * variable is defined; for example, $node->body becomes $body. When needing to
- * access a field's raw values, developers/themers are strongly encouraged to
- * use these variables. Otherwise they will have to explicitly specify the
- * desired field language; for example, $node->body['en'], thus overriding any
- * language negotiation rule that was previously applied.
- *
- * @see template_preprocess()
- * @see template_preprocess_node()
- * @see template_process()
- *
- * @ingroup themeable
- */
- ?>
- <div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
-
- <?php print $user_picture; ?>
-
- <?php print render($title_prefix); ?>
- <?php if (!$page): ?>
- <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
- <?php endif; ?>
- <?php print render($title_suffix); ?>
-
- <?php if ($display_submitted): ?>
- <div class="submitted">
- <?php print $submitted; ?>
- </div>
- <?php endif; ?>
-
- <div class="content"<?php print $content_attributes; ?>>
- <?php
- // We hide the comments and links now so that we can render them later.
- hide($content['comments']);
- hide($content['links']);
- print render($content);
- ?>
- </div>
-
- <?php print render($content['links']); ?>
-
- <?php print render($content['comments']); ?>
-
- </div>
-
Comments
Accessing Database Values in of Fields
PermalinkIf you need to access the original value (such as an integer) of a field (using the new fields api) as stored in the database (not the displayed value), you can access it from the $contents array.
Assuming you have a field called "work-type," where you want to access the number used in the database, instead of the text that will be visible to the user, you can access it like so:
$content['field_work-type']['#items']['0']['value'];This assumes that there is only one item for this variable, if multilple, then you might use ['#items']['1']['value'] etc
**This may have negative security implications, if the values aren't sanitized (text etc.)
Get plain value output per variable
PermalinkWhen you really want to take control of the output you can always override \modules\field\theme\field.tpl.php by copy and pasting this file in your theme folder (don't forget to clear Drupal cache after doing so). When you remove all the added HTML you will end up with a plain value minus the additional DIV soup.
After that you can simply call render($content['field_my_variable']) instead of $content['field_my_variable']['#items']['0']['value'] which I agree with some of you above, is really not a nice way of getting the plain value.
Please do understand the consequences of this action. It will mean that you need to take full control of all locations where variables are outputted and place your own HTML and css around them.
render($content['field_my_var
Permalinkrender($content['field_my_variable']) seems to only work on some node theme variables. For instance to render the authors name will now work with
<?php print render($content['name']); ?>but does as
<?php print $name; ?>Get Taxonomy Terms id and name
Permalinkhow do i retrived the taxonomy term id in node. and if possible, retrived the self and parent taxonomy term id and name.
Get Taxonomy Terms id and name
Permalinkhow do i retrived the taxonomy term id in node. and if possible, retrived the self and parent taxonomy term id and name.
Formatting a content type
PermalinkJust as a clarification for anyone else looking. The filename formatting for node specific content types tpl files is:
node--<machine name content type>.tpl.phpI got tripped up on that using only one dash :(
Thanks a bunch, that's
PermalinkThanks a bunch, that's actually what I came here for :)
Me too, thanks.
PermalinkMe too, thanks.