Index: chessboard.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/chessboard/chessboard.module,v
retrieving revision 1.60.2.18.2.3
diff -u -p -r1.60.2.18.2.3 chessboard.module
--- chessboard.module	13 Feb 2011 21:08:24 -0000	1.60.2.18.2.3
+++ chessboard.module	18 Feb 2011 22:01:21 -0000
@@ -53,65 +53,6 @@ function chessboard_init() {
 }
 
 /**
- * Implements hook_field().
- */
-function chessboard_field($op, &$node, $field, &$items, $teaser, $page) {
-  switch ($op) {
-    case 'sanitize':
-      foreach ($items as $delta => $item) {
-        preg_match('@^\s*(?:\((.*?)\))?(.*)$@s', $item['value'], $matches);
-
-        // Parameter Parsing
-        //--------------------------------
-        $params =& $matches[1];
-
-        // Number of files: any integer (default: 8)
-        $item['file_max'] = preg_match('@[0-9]+@', $params, $m) ? $m[0] : 8;
-
-        // Color of the upper left square: [l]ight (default), or [d]ark
-        $item['square_color_first'] = (strpos($params, 'd') !== FALSE) ? 1 : 0;
-
-        // Borders
-        $item['border'] = array('T' => (strpos($params, 'T') !== FALSE),
-                        'B' => (strpos($params, 'B') !== FALSE),
-                        'L' => (strpos($params, 'L') !== FALSE),
-                        'R' => (strpos($params, 'R') !== FALSE));
-
-        // Render the board in XHTML syntax
-        //----------------------------------
-        $board_value =& $matches[2];
-        $board_value = strip_tags($board_value);
-        $item['board'] = array();
-        $file = $rank_d = 0;
-        for ($i=0; isset($board_value[$i]); $i++) {
-          // Ignore unknown characters
-          if (strpos('12345678KQBNRPkqbnrp-x', $board_value[$i]) === FALSE) {
-            continue;
-          }
-
-          if ($file >= $item['file_max']) {
-            $file = 0;
-            $rank_d++;
-          }
-
-          if (strpos('12345678', $board_value[$i]) !== FALSE) {
-            // Multiple empty squares
-            for ($j=0; $j<$board_value[$i]; $j++) {
-              $item['board'][$rank_d][$file] = '-';
-              $file++;
-            }
-          }
-          else {
-            $item['board'][$rank_d][$file] = $board_value[$i];
-            $file++;
-          }
-        }
-        $items[$delta] = $item;
-      }
-  }
-}
-
-/**
  * Implements hook_filter_tips().
  */
 function chessboard_filter_tips($delta, $format, $long=FALSE) {
@@ -146,13 +87,57 @@ function chessboard_filter($op, $delta =
 }
 
 function chessboard_process_chessboard_notation($elements) {
-  $node = NULL;
-  $field = array();
-  $items = array();
   foreach (element_children($elements) as $delta) {
-    $items[$delta] = &$elements[$delta]['#item'];
+    $item = $elements[$delta]['#item'];
+    preg_match('@^\s*(?:\((.*?)\))?(.*)$@s', $item['value'], $matches);
+
+    // Parameter Parsing
+    //--------------------------------
+    $params =& $matches[1];
+
+    // Number of files: any integer (default: 8)
+    $item['file_max'] = preg_match('@[0-9]+@', $params, $m) ? $m[0] : 8;
+
+    // Color of the upper left square: [l]ight (default), or [d]ark
+    $item['square_color_first'] = (strpos($params, 'd') !== FALSE) ? 1 : 0;
+
+    // Borders
+    $item['border'] = array('T' => (strpos($params, 'T') !== FALSE),
+                    'B' => (strpos($params, 'B') !== FALSE),
+                    'L' => (strpos($params, 'L') !== FALSE),
+                    'R' => (strpos($params, 'R') !== FALSE));
+
+    // Render the board in XHTML syntax
+    //----------------------------------
+    $board_value =& $matches[2];
+    $board_value = strip_tags($board_value);
+    $item['board'] = array();
+    $file = $rank_d = 0;
+    for ($i=0; isset($board_value[$i]); $i++) {
+      // Ignore unknown characters
+      if (strpos('12345678KQBNRPkqbnrp-x', $board_value[$i]) === FALSE) {
+        continue;
+      }
+
+      if ($file >= $item['file_max']) {
+        $file = 0;
+        $rank_d++;
+      }
+
+      if (strpos('12345678', $board_value[$i]) !== FALSE) {
+        // Multiple empty squares
+        for ($j=0; $j<$board_value[$i]; $j++) {
+          $item['board'][$rank_d][$file] = '-';
+          $file++;
+        }
+      }
+      else {
+        $item['board'][$rank_d][$file] = $board_value[$i];
+        $file++;
+      }
+    }
+    $elements[$delta]['#item'] = $item;
   }
-  chessboard_field('sanitize', $node, $field, $items, FALSE, FALSE);
   return $elements;
 }
 
