--- plugins/FeedsCSVParser.inc 2010-09-08 03:29:36.000000000 +1000 +++ plugins/FeedsCSVParser.inc 2010-09-13 14:12:11.000000000 +1000 @@ -20,16 +20,19 @@ class FeedsCSVParser extends FeedsParser $parser->setDelimiter($delimiter); // Get first line and use it for column names, convert them to lower case. - $parser->setLineLimit(1); - $rows = $parser->parse($iterator); - if (!count($rows)) { - return; - } - $header = array_shift($rows); - foreach ($header as $i => $title) { - $header[$i] = trim(drupal_strtolower($title)); + if ($source_config['headers']) { + $parser->setLineLimit(1); + $rows = $parser->parse($iterator); + if (!count($rows)) { + return; + } + $header = array_shift($rows); + foreach ($header as $i => $title) { + $header[$i] = trim(drupal_strtolower($title)); + } + $parser->setColumnNames($header); } - $parser->setColumnNames($header); + // Set line limit to 0 and start byte to last position and parse rest. $parser->setLineLimit(0); @@ -60,6 +63,7 @@ class FeedsCSVParser extends FeedsParser public function sourceDefaults() { return array( 'delimiter' => $this->config['delimiter'], + 'headers' => $this->config['headers'], ); } @@ -98,6 +102,12 @@ class FeedsCSVParser extends FeedsParser ), '#default_value' => isset($source_config['delimiter']) ? $source_config['delimiter'] : ',', ); + $form['headers'] = array( + '#type' => 'checkbox', + '#title' => t('Headers'), + '#description' => t('The first row of the CSV file contains column headers. If this is unchecked, mapping sources must be named \'0\', \'1\', \'2\' etc.'), + '#default_value' => isset($source_config['headers']) ? $source_config['headers'] : 1, + ); return $form; } @@ -105,7 +115,7 @@ class FeedsCSVParser extends FeedsParser * Define default configuration. */ public function configDefaults() { - return array('delimiter' => ','); + return array('delimiter' => ',','headers' => 1); } /** @@ -124,6 +134,12 @@ class FeedsCSVParser extends FeedsParser ), '#default_value' => $this->config['delimiter'], ); + $form['headers'] = array( + '#type' => 'checkbox', + '#title' => t('Headers'), + '#description' => t('The first row of the CSV file contains column headers. If this is unchecked, mapping sources must be named \'0\', \'1\', \'2\' etc.'), + '#default_value' => $this->config['headers'], + ); return $form; } }