=== modified file 'sites/all/modules/drupalorg/drupalorg_crosssite/drupalorg_crosssite.module'
--- sites/all/modules/drupalorg/drupalorg_crosssite/drupalorg_crosssite.module	2011-08-24 11:42:33 +0000
+++ sites/all/modules/drupalorg/drupalorg_crosssite/drupalorg_crosssite.module	2012-01-03 03:08:43 +0000
@@ -209,7 +209,7 @@
     elseif (drupalorg_crosssite_menu_path('main', '^security(|/contrib|/psa)$') || drupalorg_crosssite_menu_term('main', array(1852, 44, 1856))) {
       $section = 'security';
     }
-    elseif (drupalorg_crosssite_menu_path('main', '^(irc|mailing-lists|profile|community|getting-involved|community-spotlight)(/|$)') || drupalorg_crosssite_child_of('main', 'forum') || drupalorg_crosssite_menu_type('main', array('forum')) || drupalorg_crosssite_menu_path('main', '^node/281873$') || (drupalorg_crosssite_in_breadcrumb('main', 'node/281873') && !drupalorg_crosssite_menu_path('main', '^(node/23192|handbook/updates)(/|$)'))) {
+    elseif (drupalorg_crosssite_menu_path('main', '^(irc|mailing-lists|profile|community|getting-involved|getting-involved-guide|community-spotlight)(/|$)') || drupalorg_crosssite_child_of('main', 'forum') || drupalorg_crosssite_menu_type('main', array('forum')) || (drupalorg_crosssite_in_breadcrumb('main', 'node/281873') && !drupalorg_crosssite_menu_path('main', '^(node/23192|handbook/updates)(/|$)'))) {
       $section = 'community';
     }
     elseif (drupalorg_crosssite_child_of('main', 'node/366') || drupalorg_crosssite_menu_type('main', array('organization')) || drupalorg_crosssite_child_of('main', 'node/add/organization') || drupalorg_crosssite_menu_path('main', '^(marketplace-preview|hosting)')) {
@@ -279,7 +279,7 @@
   switch (drupalorg_crosssite_section()) {
     case 'documentation':
       $nav_content_links = array(
-        'home'    => array('href' => 'node/26419', 'title' => t('Docs Home'), '#site' => 'main', '#active' => (drupalorg_crosssite_menu_type('main', array('book')) || drupalorg_crosssite_menu_path('main', '^(documentation|handbook)(/|$)')) && !drupalorg_crosssite_menu_path('main', '^(node/23192|handbook/updates)(/|$)')),
+        'home'    => array('href' => 'node/26419', 'title' => t('Community Documentation Home'), '#site' => 'main', '#active' => drupalorg_crosssite_menu_type('main', array('book')) && !drupalorg_crosssite_menu_path('main', '^(node/23192|handbook/updates)(/|$)')),
         'api'     => array('href' => '<front>', 'title' => t('API'), '#site' => 'api', '#active' => drupalorg_crosssite_in_breadcrumb('api', 'api/drupal', $vars) || drupalorg_crosssite_menu_site('api')),
         'recent'  => array('href' => 'handbook/updates', 'title' => t('Recently Updated'), '#site' => 'main', '#active' => drupalorg_crosssite_menu_path('main', '^(node/23192|handbook/updates)(/|$)')),
       );
@@ -299,7 +299,7 @@
     case 'community':
       $nav_content_links = array(
         'home'          => array('href' => 'community', 'title' => t('Community Home'), '#site' => 'main'),
-        'getting-involved' => array('href' => 'getting-involved', 'title' => t('Getting Involved'), '#site' => 'main', '#active' => drupalorg_crosssite_menu_path('main', '^(getting-involved|community-spotlight)(/|$)') || drupalorg_crosssite_menu_path('main', '^node/281873$') || (drupalorg_crosssite_in_breadcrumb('main', 'node/281873') && !drupalorg_crosssite_menu_path('main', '^irc(/|$)') && !drupalorg_crosssite_menu_path('main', '^mailing-lists(/|$)'))),
+        'getting-involved' => array('href' => 'getting-involved', 'title' => t('Getting Involved'), '#site' => 'main', '#active' => drupalorg_crosssite_menu_path('main', '^(getting-involved|getting-involved-guide|community-spotlight)(/|$)') || (drupalorg_crosssite_in_breadcrumb('main', 'node/281873') && !drupalorg_crosssite_menu_path('main', '^irc(/|$)') && !drupalorg_crosssite_menu_path('main', '^mailing-lists(/|$)'))),
         'chat'          => array('href' => 'irc', 'title' => t('Chat'), '#site' => 'main', '#active' => drupalorg_crosssite_menu_path('main', '^irc(/|$)')),
         'lists'         => array('href' => 'mailing-lists', 'title' => t('Mailing Lists'), '#site' => 'main', '#active' => drupalorg_crosssite_menu_path('main', '^mailing-lists(/|$)')),
         'members'       => array('href' => 'profile', 'title' => t('Member Directory'), '#site' => 'main', '#active' => drupalorg_crosssite_menu_path('main', '^profile(/|$)'), '#title_match' => 'q'),
@@ -1024,4 +1024,4 @@
         . $variables['block']->content;
     }
   }
-}
\ No newline at end of file
+}

=== modified file 'sites/all/modules/drupalorg/drupalorg_handbook/drupalorg_handbook.module'
--- sites/all/modules/drupalorg/drupalorg_handbook/drupalorg_handbook.module	2011-07-06 00:10:25 +0000
+++ sites/all/modules/drupalorg/drupalorg_handbook/drupalorg_handbook.module	2012-01-03 01:57:11 +0000
@@ -30,9 +30,18 @@
     }
     $node->content['body']['#value'] .= $extra;
 
-    if (drupalorg_crosssite_section() === 'documentation' && isset($node->book['bid'])) {
-      // Prepend the handbook meta data to book bodies.
-      $node->content['body']['#value'] = drupalorg_handbook_meta_data($node) . $node->content['body']['#value'];
+    $section = drupalorg_crosssite_section();
+
+    if (isset($node->book['bid']) && ($section === 'documentation' || $section === 'community')) {
+      // Prepend information about the page.
+      $node->content['body']['#prefix'] = drupalorg_handbook_before_body($node);
+      // Mark the taxonomy terms as rendered so they don't display on the node.
+      foreach ($node->taxonomy as $term_id => $dummy) {
+        $node->taxonomy[$term_id]->rendered = TRUE;
+      }
+      if ($section === 'documentation') {
+        $node->extra_footer = theme('drupalorg_handbook_footer_line');
+      }
     }
   }
   elseif (($op == 'update' || $op == 'insert') && !empty($node->book) && !empty($node->book['bid'])) {
@@ -42,46 +51,144 @@
 }
 
 /**
- * Gather information for the top of handbook pages.
+ * Implementation of hook_link().
+ *
+ * Adds links to the bottom of documentation pages.
+ */
+function drupalorg_handbook_link($type, $object, $teaser = FALSE) {
+  if ($type === 'node' && isset($object->book['bid'])) {
+    return array('report' => drupalorg_handbook_moderate_link_info($object));
+  }
+}
+
+/**
+ * Returns the link information for the Report to moderator link.
+ *
+ * @param $node
+ *   The node to make the link for.
+ *
+ * @return
+ *   An array for the link (suitable for theme('link')), or NULL if the user
+ *   does not have permission to create issues.
+ */
+function drupalorg_handbook_moderate_link_info($node) {
+  if (!user_access('create project issues') || drupalorg_crosssite_section() !== 'documentation') {
+    return NULL;
+  }
+  $url = url('node/' . $node->nid, array('absolute' => TRUE));
+  return array(
+    'title' => t('Report to moderator'), 
+    'href' => 'node/add/project-issue/documentation',
+    'query' => array(
+      'categories' => 'task',
+      'component' => 'Vandalism/Spam',
+      'title' => 'Moderation report for ' . $url,
+      'body' => 'Describe why you are reporting ' . $url . ' to moderators:',
+    ),
+  );
+}
+
+/**
+ * Creates a list of who recently updated a page, and call to edit.
  *
  * @param $node
  *   The node object.
- * @return
- *   The HTML code for the book meta information.
- */
-function drupalorg_handbook_meta_data($node) {
-  $info = array();
-  if (count($node->taxonomy)) {
+ *
+ * @return
+ *   HTML for the list of contributors with call to edit.
+ *
+ * @see handbook-contributors.tpl.php
+ */
+function drupalorg_handbook_before_body($node) {
+  $format = 'F j, Y';
+  $modified = t('Last updated @changed.', array('@changed' => format_date($node->changed, 'custom', $format)));
+  $created = '';
+  $contributors = '';
+  $edit_link = '';
+  if (drupalorg_crosssite_section() === 'documentation') {
+    $created = t('Created by !author on @created.', array('!author' => theme('username', $node), '@created' => format_date($node->created, 'custom', $format)));
+    // Make a list of the 4 most recent different revision authors, not including
+    // the original author.
+    $contributor_list = array();
+    foreach (node_revision_list($node) as $revision) {
+      if (!isset($contributor_list[$revision->uid]) && $revision->uid !== $node->uid) {
+        $contributor_list[$revision->uid] = theme('username', $revision);
+      }
+      if (count($contributor_list) >= 4) {
+        break;
+      }
+    }
+    if (!empty($contributor_list)) {
+      $contributors = t('Edited by !contributors.', array('!contributors' => implode(', ', $contributor_list)));
+    }
+
+    if (node_access('update', $node)) {
+      $edit_link = l(t('You can edit this page'), 'node/' . $node->nid . '/edit') . (empty($contributor_list) ? '.' : t(', too.'));
+    }
+    elseif (!user_is_logged_in()) {
+      $edit_link = l(t('Log in to edit this page'), 'user', array('query' => drupal_get_destination())) . '.';
+    }
+  }
+  return theme('drupalorg_handbook_contributors', $created, $modified, $contributors, $edit_link);
+}
+
+/**
+ * Gathers meta-data information for the book page sidebar.
+ *
+ * @return
+ *   HTML for the book page sidebar.
+ */
+function drupalorg_handbook_meta_data() {
+  static $about;
+
+  if (!isset($about)) {
+    $about = array('status' => '');
+    $node = menu_get_object();
     $vocabularies = taxonomy_get_vocabularies();
-    // Group the terms by vid.
-    $taxonomy = array();
+
     foreach ($node->taxonomy as $term_id => $term) {
       if (isset($vocabularies[$term->vid])) {
-        $term->rendered = TRUE;
-        if ($term_id !== 125) { // No known problems is uninteresting
-          $taxonomy[$term->vid][] = $term;
+        switch ($term->vid) {
+          case 31:
+            // Page status vocabulary: build status line.
+            $class = 'page-ok';
+            switch ($term_id) {
+              case 126: // Incomplete.
+              case 128: // Needs updating.
+              case 18960: // Needs tech review.
+              case 18962: // Needs copy/style review.
+              case 18964: // Needs dividing.
+                $class = 'page-needs-work';
+                break;
+
+              case 127: // Insecure.
+              case 129: // Deprecated.
+                $class = 'page-major-problem';
+                break;
+            }
+            $about['status'] = '<p class="page-status ' . $class . '"><span>' . check_plain($term->name) . '</span></p>';
+            break;
+
+          case 54:
+            // Keywords vocabulary: print a link, separate section.
+            $keywords[] = l($term->name, taxonomy_term_path($term));
+            break;
+
+          default:
+            // Any other vocabulary: print the name.
+            $vocab_name = check_plain($vocabularies[$term->vid]->name);
+            $about[$vocab_name][] = check_plain($term->name);
+            break;
         }
       }
     }
-
-    foreach ($vocabularies as $vocabulary) {
-      if (isset($taxonomy[$vocabulary->vid])) {
-        $links = array();
-        foreach ($taxonomy[$vocabulary->vid] as $term) {
-          $options = array();
-          if ($vocabulary->vid === '31') { // Page status
-            $options['attributes'] = array('class' => 'alert');
-          }
-          $links[] = l($term->name, taxonomy_term_path($term), $options);
-        }
-        $info[check_plain($vocabulary->name)] = implode(', ', $links);
-      }
+    if (!empty($keywords)) {
+      // Keywords at the end.
+      $about[t('Keywords')] = $keywords;
     }
   }
 
-  $modified = format_date($node->changed, 'custom', 'F j, Y');
-
-  return theme('drupalorg_handbook_meta_data', $info, $modified);
+  return $about;
 }
 
 /**
@@ -205,12 +312,22 @@
           'info' => t('Documentation home info'),
           'cache' => BLOCK_CACHE_PER_PAGE,
         ),
+        'meta-sidebar' => array(
+          'info' => t('Documentation status'),
+          'cache' => BLOCK_NO_CACHE,
+        ),
+        'about-page' => array(
+          'info' => t('Documentation about'),
+          'cache' => BLOCK_NO_CACHE,
+        ),
       );
 
     case 'view':
-      switch($delta) {
+      $section = drupalorg_crosssite_section();
+      $node = menu_get_object();
+      switch ($delta) {
         case 'license':
-          if (drupalorg_crosssite_section() === 'documentation') {
+          if ($section === 'documentation') {
             return array(
               'content' => t('Drupal’s online documentation is © 2000-!year by the individual contributors and can be used in accordance with the <a href="@ccl_url">Creative Commons License, Attribution-ShareAlike 2.0</a>. PHP code is distributed under the <a href="@gpl_url">GNU General Public License</a>.', array('!year' => date('Y'), '@ccl_url' => url('node/14307'), '@gpl_url' => url('http://www.gnu.org/licenses/old-licenses/gpl-2.0.html'))),
             );
@@ -225,40 +342,73 @@
             '<p>' . t('Add new pages by using the “add a child page” link at the bottom of the page.') . '</p>' .
             '<p>' . t('Use the <a href="@issues-url">Documentation issue queue</a> to propose major changes and report problems.', array('@issues-url' => url('project/issues/documentation'))) . '</p>'
           );
+
+        case 'meta-sidebar':
+          if (($section === 'documentation' || $section === 'community') && isset($node) && isset($node->book['bid'])) {
+            $about = drupalorg_handbook_meta_data();
+            $links = array();
+            if (node_access('update', $node)) {
+              $links['edit'] = t('<a href="!url">Edit</a> this page', array('!url' => url('node/' . $node->nid . '/edit')));
+            }
+            elseif (!user_is_logged_in()) {
+              $links['edit'] = l(t('Log in to edit this page'), 'user', array('query' => drupal_get_destination()));
+            }
+            $report_link = drupalorg_handbook_moderate_link_info($node);
+            if (isset($report_link)) {
+              $links['report'] = l($report_link['title'], $report_link['href'], array('query' => $report_link['query']));
+            }
+
+            return array(
+              'subject' => t('Page status'),
+              'content' => $about['status'] . '<p>' . implode('<br />', $links) . '</p>',
+            );
+          }
+          break;
+
+        case 'about-page':
+          if (($section === 'documentation' || $section === 'community') && isset($node) && isset($node->book['bid'])) {
+            $about = drupalorg_handbook_meta_data();
+            unset($about['status']);
+            if (!empty($about)) {
+              return array(
+                'subject' => t('About this page'),
+                'content' => theme('drupalorg_handbook_meta_sidebar', $about),
+              );
+            }
+          }
           break;
      }
   }
 }
 
 /**
- * Check whether the current node is a block module.
- *
- * Based on Drupal 6 code from book_block().
- */
-function drupalorg_handbook_block_is_visible() {
-  return ($node = menu_get_object()) && !empty($node->book['bid']);
-}
-
-/**
  * Implementation of hook_theme().
  */
 function drupalorg_handbook_theme($existing, $type, $theme, $path) {
   return array(
-    'drupalorg_handbook_meta_data' => array(
-      'arguments' => array(
-        'info' => NULL,
-        'modified' => NULL,
-      ),
-      'template' => 'handbook-meta-data',
+    'drupalorg_handbook_footer_line' => array(
+      'arguments' => array(),
+    ),
+    'drupalorg_handbook_contributors' => array(
+      'arguments' => array(
+        'created' => '',
+        'updated' => '',
+        'contributors' => '',
+        'edit_link' => '',
+      ),
+      'template' => 'handbook-contributors',
+    ),
+    'drupalorg_handbook_meta_sidebar' => array(
+      'arguments' => array(
+        'about' => array(),
+      ),
+      'template' => 'handbook-meta-sidebar',
     ),
   );
 }
 
 /**
  * Implementation of template_preprocess_drupalorg_home().
- *
- * @todo
- *   Add caching.
  */
 function drupalorg_handbook_preprocess_drupalorg_home(&$vars) {
   // Represents the number of results to retrieve. Also utilized for cache field name.
@@ -281,3 +431,16 @@
   // $fresh_news .= '<p>'. l(t('More documentation updates...'), '...') .'</p>';
   $vars['tab_content_docs'] = $recent_updates;
 }
+
+/**
+ * Returns HTML for a footer line for a documentation page.
+ *
+ * @ingroup themeable
+ */
+function theme_drupalorg_handbook_footer_line() {
+  return '<p class="support"><strong>' . t('Looking for support? Visit the !forumlink, or join #drupal-support in !irclink.',
+    array(
+     '!forumlink' => l(t('Drupal.org forums'), 'forum'),
+     '!irclink' => l(t('IRC'), 'node/108355'),
+    )) . '</strong></p>';
+}

=== added file 'sites/all/modules/drupalorg/drupalorg_handbook/handbook-contributors.tpl.php'
--- sites/all/modules/drupalorg/drupalorg_handbook/handbook-contributors.tpl.php	1970-01-01 00:00:00 +0000
+++ sites/all/modules/drupalorg/drupalorg_handbook/handbook-contributors.tpl.php	2011-12-29 22:30:27 +0000
@@ -0,0 +1,19 @@
+<?php
+/**
+ * @file
+ * Displays a list of contributors and call to edit a page.
+ *
+ * Available variables:
+ * - $created: Formatted created date.
+ * - $updated: Formatted last updated date.
+ * - $contributors: Several recent revision authors (formatted).
+ * - $edit_link: Link to edit the page.
+ *
+ * @see drupalorg_handbook_contributor_list()
+ *
+ * @ingroup themeable
+ */
+?>
+<p class="updated"><em><?php print $updated; ?> <?php print $created; ?>
+<?php if (!empty($contributors) || !empty($edit_link)) { ?><br /><?php } ?>
+<?php print $contributors; ?> <?php print $edit_link; ?></em></p>

=== removed file 'sites/all/modules/drupalorg/drupalorg_handbook/handbook-meta-data.tpl.php'
--- sites/all/modules/drupalorg/drupalorg_handbook/handbook-meta-data.tpl.php	2011-02-19 01:10:09 +0000
+++ sites/all/modules/drupalorg/drupalorg_handbook/handbook-meta-data.tpl.php	1970-01-01 00:00:00 +0000
@@ -1,8 +0,0 @@
-<div class="meta">
-  <ul>
-    <?php foreach ($info as $title => $terms): ?>
-      <li><?php print $title; ?>: <?php print $terms; ?>
-    <?php endforeach; ?>
-    <?php if ($modified): ?><li>Last modified: <?php print $modified; ?></li><?php endif; ?>
-  </ul>
-</div>

=== added file 'sites/all/modules/drupalorg/drupalorg_handbook/handbook-meta-sidebar.tpl.php'
--- sites/all/modules/drupalorg/drupalorg_handbook/handbook-meta-sidebar.tpl.php	1970-01-01 00:00:00 +0000
+++ sites/all/modules/drupalorg/drupalorg_handbook/handbook-meta-sidebar.tpl.php	2012-01-03 01:00:44 +0000
@@ -0,0 +1,19 @@
+<?php
+/**
+ * @file
+ * Displays the meta-information sidebar.
+ *
+ * Available variables:
+ * - $about: About section information array.
+ *
+ * @see drupalorg_handbook_meta_data()
+ *
+ * @ingroup themeable
+ */
+?>
+<dl class="about-section">
+  <?php foreach ($about as $title => $terms) { ?>
+    <dt><?php print $title; ?></dt>
+    <dd class="terms"><?php print implode(', ', $terms); ?></dd>
+  <?php } ?>
+</dl>

=== modified file 'sites/all/themes/bluecheese/styles/sprites.css'
--- sites/all/themes/bluecheese/styles/sprites.css	2011-06-07 22:18:59 +0000
+++ sites/all/themes/bluecheese/styles/sprites.css	2012-01-03 01:57:51 +0000
@@ -39,7 +39,7 @@
 div.nav-content-dashboard ul li.active span.hover a.delete,
 #page-tools a.add,
 #dashboard a.remove-widget,
-.meta .alert,
+#block-drupalorg_handbook-meta-sidebar .page-major-problem span,
 .project-info .alert,
 .rss-feed-link,
 .search-results .search-info .comments,
@@ -85,9 +85,9 @@
   padding-right: 18px;
 }
 
-.meta .alert {
-  background-position: 0 -225px;
-  padding-left: 14px;
+#block-drupalorg_handbook-meta-sidebar .page-major-problem span {
+  background-position: 0 -223px;
+  padding-left: 15px;
 }
 
 .project-info .alert {

=== modified file 'sites/all/themes/bluecheese/styles/styles.css'
--- sites/all/themes/bluecheese/styles/styles.css	2011-10-01 05:49:53 +0000
+++ sites/all/themes/bluecheese/styles/styles.css	2012-01-03 02:05:31 +0000
@@ -894,6 +894,19 @@
   font-size: 0.92307em; /* 0.92307 * 13px = 12px */
 }
 
+#block-drupalorg_handbook-meta-sidebar .page-status {
+  padding: 0.692em;
+}
+#block-drupalorg_handbook-meta-sidebar .page-ok {
+  background-color: #D4EFCC;
+}
+#block-drupalorg_handbook-meta-sidebar .page-needs-work {
+  background-color: #E6FCB6;
+}
+#block-drupalorg_handbook-meta-sidebar .page-major-problem {
+  background-color: #EBCCCC;
+}
+
 /**
  * Pager
  */
@@ -1346,30 +1359,10 @@
   margin-bottom: .5em;
 }
 
-.meta {
-  background: #fffbd9;
-  border-color: #ffebc5;
-  border-style: solid none;
-  border-width: 1px;
-  color: #666;
-  font-size: 0.92307em; /* 0.92307 * 13px = 12px */
-  margin: 0.5em 0 1em;
-  padding: 0.5em 1em;
-}
-#content .meta h5 {
-  margin: 0;
-}
-
 #page ul ul li {
   margin-left: 1em;
 }
 
-#content .meta ul {
-  list-style-type: none;
-  margin: 0;
-  padding: 0;
-}
-
 /**
  * User profiles
  */
@@ -1648,6 +1641,8 @@
 #column-right #block-block-42, /* Marketplace info */
 #column-right #block-block-46, /* Marketplace info */
 #column-right #block-drupalorg-drupalorg_activity,
+#column-right #block-drupalorg_handbook-meta-sidebar,
+#column-right #block-drupalorg_handbook-about-page,
 #block-drupalorg_news-news-terms.block {
   background-color: #FFF;
 }
@@ -2360,6 +2355,7 @@
 .node-type-organization .website img {
   display: block;
 }
+#block-drupalorg_handbook-about-page dd,
 #content .node-type-organization dd {
   padding-left: 0;
 }

=== modified file 'sites/all/themes/bluecheese/template.php'
--- sites/all/themes/bluecheese/template.php	2011-09-13 23:23:23 +0000
+++ sites/all/themes/bluecheese/template.php	2012-01-03 02:06:47 +0000
@@ -43,7 +43,10 @@
   if (!isset($variables['node']->links)) {
     $variables['node']->links = array();
   }
-  $variables['links_and_terms'] = bluecheese_linksterms($variables['node']->links, $variables['taxonomy'], $variables['type']);
+  if (!isset($variables['node']->extra_footer)) {
+    $variables['node']->extra_footer = '';
+  }
+  $variables['links_and_terms'] = bluecheese_linksterms($variables['node']->links, $variables['taxonomy'], $variables['type'], $variables['node']->extra_footer);
 
   if ($variables['readmore'] && !$variables['page']) {
     $variables['content'] .= l(t('Read more'), 'node/'. $variables['nid'], array('attributes' => array('rel' => 'nofollow')));
@@ -68,9 +71,11 @@
 /**
  * Custom function to generate combined $links and $terms output
  *
- * @return string: HTML for the links or terms of a node ($links)
+ * @return string
+ *   HTML for the links or terms of a node ($links), with extra information if
+ *   provided..
  */
-function bluecheese_linksterms($links, $terms, $node_type) {
+function bluecheese_linksterms($links, $terms, $node_type, $extra) {
   $output = '';
 
   foreach ($terms as $key => $term) {
@@ -94,6 +99,10 @@
     $output .= '<span class="terms">'. t('Categories') .': '. implode(', ', $terms_rendered) .'</span>';
   }
 
+  if (!empty($extra)) {
+    $output .= $extra;
+  }
+
   if ($output) {
     $output = '<div class="node-footer">'. $output .'</div>';
   }

