diff --git a/plugins/FeedsNodeProcessor.inc b/plugins/FeedsNodeProcessor.inc index 423d4dc1ce26b83cebba710cf0702a572e057a30..b3636073ce0b9686e90e2469127a634ef4b5259c 100644 --- a/plugins/FeedsNodeProcessor.inc +++ b/plugins/FeedsNodeProcessor.inc @@ -225,27 +225,52 @@ class FeedsNodeProcessor extends FeedsProcessor { $targets['title'] = array( 'name' => t('Title'), 'description' => t('The title of the node.'), + 'optional_unique' => TRUE, ); } - $targets += array( - 'nid' => array( - 'name' => t('Node ID'), - 'description' => t('The nid of the node. NOTE: use this feature with care, node ids are usually assigned by Drupal.'), - 'optional_unique' => TRUE, - ), - 'uid' => array( - 'name' => t('User ID'), - 'description' => t('The Drupal user ID of the node author.'), - ), - 'status' => array( - 'name' => t('Published status'), - 'description' => t('Whether a node is published or not. 1 stands for published, 0 for not published.'), - ), - 'created' => array( - 'name' => t('Published date'), - 'description' => t('The UNIX time when a node has been published.'), - ), + $targets['nid'] = array( + 'name' => t('Node ID'), + 'description' => t('The nid of the node. NOTE: use this feature with care, node ids are usually assigned by Drupal.'), + 'optional_unique' => TRUE, + ); + $targets['uid'] = array( + 'name' => t('User ID'), + 'description' => t('The Drupal user ID of the node author.'), + ); + $targets['status'] = array( + 'name' => t('Published status'), + 'description' => t('Whether a node is published or not. 1 stands for published, 0 for not published.'), ); + $targets['created'] = array( + 'name' => t('Published date'), + 'description' => t('The UNIX time when a node has been published.'), + ); + $targets['promote'] = array( + 'name' => t('Promoted to front page'), + 'description' => t('Boolean value, whether or not node is promoted to front page. (1 = promoted, 0 = not promoted)'), + ); + $targets['sticky'] = array( + 'name' => t('Sticky'), + 'description' => t('Boolean value, whether or not node is sticky at top of lists. (1 = sticky, 0 = not sticky)'), + ); + + // Include language field if Locale module is enabled. + if (module_exists('locale')) { + $targets['language'] = array( + 'name' => t('Language'), + 'description' => t('The two-character language code of the node.'), + ); + } + + // Include comment field if Comment module is enabled. + if (module_exists('comment')) { + $targets['comment'] = array( + 'name' => t('Comments'), + 'description' => t('Whether comments are allowed on this node: 0 = no, 1 = read only, 2 = read/write.'), + ); + } + + // If the target content type is a Feed node, expose its source field. if ($id = feeds_get_importer_id($this->config['content_type'])) { $name = feeds_importer($id)->config['name']; @@ -278,6 +303,9 @@ class FeedsNodeProcessor extends FeedsProcessor { case 'nid': $nid = db_query("SELECT nid FROM {node} WHERE nid = :nid", array(':nid' => $value))->fetchField(); break; + case 'title': + $nid = db_query("SELECT nid FROM {node} WHERE title = :title", array(':title' => $value))->fetchField(); + break; case 'feeds_source': if ($id = feeds_get_importer_id($this->config['content_type'])) { $nid = db_query("SELECT fs.feed_nid FROM {node} n JOIN {feeds_source} fs ON n.nid = fs.feed_nid WHERE fs.id = :id AND fs.source = :source", array(':id' => $id, ':source' => $value))->fetchField();