Index: chessboard.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/chessboard/chessboard.module,v
retrieving revision 1.60.2.14
diff -u -p -r1.60.2.14 chessboard.module
--- chessboard.module	27 Nov 2010 23:51:45 -0000	1.60.2.14
+++ chessboard.module	27 Nov 2010 23:57:19 -0000
@@ -47,7 +47,7 @@ function chessboard_init() {
   // Process structures.
   foreach ($cache as $item) {
     if (isset($item->data['#attached'])) {
-      chessboard_process_attached($item->data);
+      _chessboard_process_attached($item->data);
     }
   }
 }
@@ -353,8 +353,8 @@ function _chessboard_filter_callback($ma
   $field = array();
   $items = array($item);
   chessboard_field('sanitize', $node, $field, $items, FALSE, FALSE);
-  $element = chessboard_formatter_view($items);
-  $output = chessboard_render_elements($element);
+  $element = _chessboard_formatter_view($items);
+  $output = _chessboard_render_elements($element);
   if (isset($element['#attached']) && filter_format_allowcache($filter->format)) {
     // Store attached structures so we can process these when cached filtered text is being output.
     $data['#attached'] = $element['#attached'];
@@ -382,6 +382,26 @@ function _chessboard_filter_page_structu
   return $cids;
 }
 
+function _chessboard_formatter_view($items) {
+  $element = array(
+    '#attached' => array(
+      'css' => array(
+        drupal_get_path('module', 'chessboard') . '/chessboard.css' => array('media' => 'all', 'preprocess' => FALSE),
+      ),
+    ),
+  );
+  foreach ($items as $delta => $item) {
+    $element[$delta] = array(
+      '#theme' => 'chessboard',
+      '#item' => $item,
+      '#prefix' => '<div class="chessboard">',
+      '#suffix' => '</div>',
+      '#weight' => $delta,
+    );
+  }
+  return $element;
+}
+
 /**
  * Add to the page structures attached to a render element structure.
  *
@@ -415,6 +435,26 @@ function _chessboard_process_attached($e
   return TRUE;
 }
 
+/**
+ * Renders HTML given a structured array tree.
+ *
+ * @see drupal_render()
+ *
+ * @param $elements
+ *   The structured array describing the data to be rendered.
+ * @return
+ *   The rendered HTML.
+ */
+function _chessboard_render_elements(&$elements) {
+  $output = drupal_render($elements);
+
+  // Add additional CSS associated with this element.
+  if (!empty($elements['#attached'])) {
+    _chessboard_process_attached($elements);
+  }
+  return $output;
+}
+
 function chessboard_formatter_view($items) {
   $element = array(
     '#attached' => array(
Index: chessboard_render.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/chessboard/chessboard_render.php,v
retrieving revision 1.16.2.10
diff -u -p -r1.16.2.10 chessboard_render.php
--- chessboard_render.php	19 Sep 2010 19:48:28 -0000	1.16.2.10
+++ chessboard_render.php	27 Nov 2010 23:57:19 -0000
@@ -84,7 +84,7 @@ function chessboard_render($content) {
     '#weight' => 0,
     '#image_directory_path' => $image_directory_path,
   );
-  $output = chessboard_render_elements($element);
+  $output = _chessboard_render_elements($element);
   return $output;
 }
 
@@ -101,8 +101,8 @@ function theme_chessboard_formatter_ches
   foreach (element_children($element) as $key) {
     $items[$key] = $element[$key]['#item'];
   }
-  $element = chessboard_formatter_view($items);
-  $output = chessboard_render_elements($element);
+  $element = _chessboard_formatter_view($items);
+  $output = _chessboard_render_elements($element);
   return $output;
 }
 
