diff -rupN ctools/plugins/content_types/node_context/node_author.inc ctools/plugins/content_types/node_context/node_author.inc
--- ctools/plugins/content_types/node_context/node_author.inc	1970-01-01 01:00:00.000000000 +0100
+++ ctools/plugins/content_types/node_context/node_author.inc	2009-07-18 16:44:34.000000000 +0200
@@ -0,0 +1,71 @@
+<?php
+// $Id$
+
+/**
+ * Callback function to supply a list of content types.
+ */
+function ctools_node_author_ctools_content_types() {
+  return array(
+    'single' => TRUE,
+    'title' => t('Node author'),
+    'icon' => 'icon_node.png',
+    'description' => t('The author of the referenced node.'),
+    'required context' => new ctools_context_required(t('Node'), 'node'),
+    'category' => t('Node'),
+    'defaults' => array(
+      'link' => TRUE,
+    ),
+  );
+}
+
+/**
+ * Render the custom content type.
+ */
+function ctools_node_author_content_type_render($subtype, $conf, $panel_args, $context) {
+  if (empty($context) || empty($context->data)) {
+    return;
+  }
+
+  // Get a shortcut to the node.
+  $node = $context->data;
+
+  // Build the content type block.
+  $block = new stdClass();
+  $block->module  = 'node_author';
+  $block->title   = t('Author');
+  $block->content = !empty($conf['link']) ? theme('username', $node) : check_plain($node->name ? $node->name : variable_get('anonymous', t('Anonymous')));
+  $block->delta   = $node->nid;
+
+  return $block;
+}
+
+/**
+ * Returns an edit form for custom type settings.
+ */
+function ctools_node_author_content_type_edit_form(&$form, &$form_state) {
+  $conf = $form_state['conf'];
+
+  $form['link'] = array(
+    '#title' => t('Link to author profile'),
+    '#type' => 'checkbox',
+    '#default_value' => $conf['link'],
+    '#description' => t('Check here to link to the node author profile.'),
+  );
+}
+
+/**
+ * Submit handler for the custom type settings form.
+ */
+function ctools_node_author_content_type_edit_form_submit(&$form, &$form_state) {
+  // Copy everything from our defaults.
+  foreach (array_keys($form_state['plugin']['defaults']) as $key) {
+    $form_state['conf'][$key] = $form_state['values'][$key];
+  }
+}
+
+/**
+ * Returns the administrative title for a type.
+ */
+function ctools_node_author_content_type_admin_title($subtype, $conf, $context) {
+  return t('"@s" author', array('@s' => $context->identifier));
+}
diff -rupN ctools/plugins/content_types/node_context/node_body.inc ctools/plugins/content_types/node_context/node_body.inc
--- ctools/plugins/content_types/node_context/node_body.inc	1970-01-01 01:00:00.000000000 +0100
+++ ctools/plugins/content_types/node_context/node_body.inc	2009-07-18 13:14:43.000000000 +0200
@@ -0,0 +1,52 @@
+<?php
+// $Id$
+
+/**
+ * Callback function to supply a list of content types.
+ */
+function ctools_node_body_ctools_content_types() {
+  return array(
+    'single' => TRUE,
+    'title' => t('Node body'),
+    'icon' => 'icon_node.png',
+    'description' => t('The body of the referenced node.'),
+    'required context' => new ctools_context_required(t('Node'), 'node'),
+    'category' => t('Node'),
+  );
+}
+
+/**
+ * Render the custom content type.
+ */
+function ctools_node_body_content_type_render($subtype, $conf, $panel_args, $context) {
+  if (empty($context) || empty($context->data)) {
+    return;
+  }
+
+  // Get a shortcut to the node.
+  $node = $context->data;
+
+  // Load information about the node type.
+  $type = node_get_types('type', $node->type);
+
+  // Do not render if the body is disabled for this node type.
+  if (!$type->has_body) {
+    return;
+  }
+
+  // Build the content type block.
+  $block = new stdClass();
+  $block->module  = 'node_body';
+  $block->title   = $type->body_label;
+  $block->content = check_markup($node->body, $node->format, FALSE);
+  $block->delta   = $node->nid;
+
+  return $block;
+}
+
+/**
+ * Returns the administrative title for a type.
+ */
+function ctools_node_body_content_type_admin_title($subtype, $conf, $context) {
+  return t('"@s" body', array('@s' => $context->identifier));
+}
diff -rupN ctools/plugins/content_types/node_context/node_created.inc ctools/plugins/content_types/node_context/node_created.inc
--- ctools/plugins/content_types/node_context/node_created.inc	1970-01-01 01:00:00.000000000 +0100
+++ ctools/plugins/content_types/node_context/node_created.inc	2009-07-18 13:29:47.000000000 +0200
@@ -0,0 +1,76 @@
+<?php
+// $Id$
+
+/**
+ * Callback function to supply a list of content types.
+ */
+function ctools_node_created_ctools_content_types() {
+  return array(
+    'single' => TRUE,
+    'title' => t('Node created date'),
+    'icon' => 'icon_node.png',
+    'description' => t('The date the referenced node was created.'),
+    'required context' => new ctools_context_required(t('Node'), 'node'),
+    'category' => t('Node'),
+    'defaults' => array(
+      'format' => 'small',
+    ),
+  );
+}
+
+/**
+ * Render the custom content type.
+ */
+function ctools_node_created_content_type_render($subtype, $conf, $panel_args, $context) {
+  if (empty($context) || empty($context->data)) {
+    return;
+  }
+
+  // Get a shortcut to the node.
+  $node = $context->data;
+
+  // Build the content type block.
+  $block = new stdClass();
+  $block->module  = 'node_created';
+  $block->title   = t('Created date');
+  $block->content = format_date($node->created, $conf['format']);
+  $block->delta   = $node->nid;
+
+  return $block;
+}
+
+/**
+ * Returns an edit form for custom type settings.
+ */
+function ctools_node_created_content_type_edit_form(&$form, &$form_state) {
+  $conf = $form_state['conf'];
+
+  $time = time();
+  $form['format'] = array(
+    '#title' => t('Date format'),
+    '#type' => 'select',
+    '#options' => array(
+      'small' => format_date($time, 'small'),
+      'medium' => format_date($time, 'medium'),
+      'large' => format_date($time, 'large'),
+    ),
+    '#default_value' => $conf['format'],
+  );
+}
+
+/**
+ * Submit handler for the custom type settings form.
+ */
+function ctools_node_created_content_type_edit_form_submit(&$form, &$form_state) {
+  // Copy everything from our defaults.
+  foreach (array_keys($form_state['plugin']['defaults']) as $key) {
+    $form_state['conf'][$key] = $form_state['values'][$key];
+  }
+}
+
+/**
+ * Returns the administrative title for a type.
+ */
+function ctools_node_created_content_type_admin_title($subtype, $conf, $context) {
+  return t('"@s" created date', array('@s' => $context->identifier));
+}
diff -rupN ctools/plugins/content_types/node_context/node_title.inc ctools/plugins/content_types/node_context/node_title.inc
--- ctools/plugins/content_types/node_context/node_title.inc	1970-01-01 01:00:00.000000000 +0100
+++ ctools/plugins/content_types/node_context/node_title.inc	2009-07-18 13:24:19.000000000 +0200
@@ -0,0 +1,74 @@
+<?php
+// $Id$
+
+/**
+ * Callback function to supply a list of content types.
+ */
+function ctools_node_title_ctools_content_types() {
+  return array(
+    'single' => TRUE,
+    'title' => t('Node title'),
+    'icon' => 'icon_node.png',
+    'description' => t('The title of the referenced node.'),
+    'required context' => new ctools_context_required(t('Node'), 'node'),
+    'category' => t('Node'),
+    'defaults' => array(
+      'link' => TRUE,
+    ),
+  );
+}
+
+/**
+ * Render the custom content type.
+ */
+function ctools_node_title_content_type_render($subtype, $conf, $panel_args, $context) {
+  if (empty($context) || empty($context->data)) {
+    return;
+  }
+
+  // Get a shortcut to the node.
+  $node = $context->data;
+
+  // Load information about the node type.
+  $type = node_get_types('type', $node->type);
+
+  // Build the content type block.
+  $block = new stdClass();
+  $block->module  = 'node_title';
+  $block->title   = $type->title_label;
+  $block->content = !empty($conf['link']) ? l($node->title, 'node/'. $node->nid) : check_plain($node->title);
+  $block->delta   = $node->nid;
+
+  return $block;
+}
+
+/**
+ * Returns an edit form for custom type settings.
+ */
+function ctools_node_title_content_type_edit_form(&$form, &$form_state) {
+  $conf = $form_state['conf'];
+
+  $form['link'] = array(
+    '#title' => t('Link to node'),
+    '#type' => 'checkbox',
+    '#default_value' => $conf['link'],
+    '#description' => t('Check here to make the title link to the node.'),
+  );
+}
+
+/**
+ * Submit handler for the custom type settings form.
+ */
+function ctools_node_title_content_type_edit_form_submit(&$form, &$form_state) {
+  // Copy everything from our defaults.
+  foreach (array_keys($form_state['plugin']['defaults']) as $key) {
+    $form_state['conf'][$key] = $form_state['values'][$key];
+  }
+}
+
+/**
+ * Returns the administrative title for a type.
+ */
+function ctools_node_title_content_type_admin_title($subtype, $conf, $context) {
+  return t('"@s" title', array('@s' => $context->identifier));
+}
diff -rupN ctools/plugins/content_types/node_context/node_updated.inc ctools/plugins/content_types/node_context/node_updated.inc
--- ctools/plugins/content_types/node_context/node_updated.inc	1970-01-01 01:00:00.000000000 +0100
+++ ctools/plugins/content_types/node_context/node_updated.inc	2009-07-18 13:31:36.000000000 +0200
@@ -0,0 +1,76 @@
+<?php
+// $Id$
+
+/**
+ * Callback function to supply a list of content types.
+ */
+function ctools_node_updated_ctools_content_types() {
+  return array(
+    'single' => TRUE,
+    'title' => t('Node last updated date'),
+    'icon' => 'icon_node.png',
+    'description' => t('The date the referenced node was last updated.'),
+    'required context' => new ctools_context_required(t('Node'), 'node'),
+    'category' => t('Node'),
+    'defaults' => array(
+      'format' => 'small',
+    ),
+  );
+}
+
+/**
+ * Render the custom content type.
+ */
+function ctools_node_updated_content_type_render($subtype, $conf, $panel_args, $context) {
+  if (empty($context) || empty($context->data)) {
+    return;
+  }
+
+  // Get a shortcut to the node.
+  $node = $context->data;
+
+  // Build the content type block.
+  $block = new stdClass();
+  $block->module  = 'node_updated';
+  $block->title   = t('Last updated date');
+  $block->content = format_date(!empty($node->updated) ? $node->updated : $node->created, $conf['format']);
+  $block->delta   = $node->nid;
+
+  return $block;
+}
+
+/**
+ * Returns an edit form for custom type settings.
+ */
+function ctools_node_updated_content_type_edit_form(&$form, &$form_state) {
+  $conf = $form_state['conf'];
+
+  $time = time();
+  $form['format'] = array(
+    '#title' => t('Date format'),
+    '#type' => 'select',
+    '#options' => array(
+      'small' => format_date($time, 'small'),
+      'medium' => format_date($time, 'medium'),
+      'large' => format_date($time, 'large'),
+    ),
+    '#default_value' => $conf['format'],
+  );
+}
+
+/**
+ * Submit handler for the custom type settings form.
+ */
+function ctools_node_updated_content_type_edit_form_submit(&$form, &$form_state) {
+  // Copy everything from our defaults.
+  foreach (array_keys($form_state['plugin']['defaults']) as $key) {
+    $form_state['conf'][$key] = $form_state['values'][$key];
+  }
+}
+
+/**
+ * Returns the administrative title for a type.
+ */
+function ctools_node_updated_content_type_admin_title($subtype, $conf, $context) {
+  return t('"@s" last updated date', array('@s' => $context->identifier));
+}
