feeds_entity_processor.module in Feeds entity processor 7
Provides a generic entity processor for Feeds.
File
feeds_entity_processor.moduleView source
<?php
/**
* @file
* Provides a generic entity processor for Feeds.
*/
/**
* Implements hook_hook_info().
*/
function feeds_entity_processor_hook_info() {
$hooks = array(
'feeds_entity_processor_properties',
);
return array_fill_keys($hooks, array(
'group' => 'feeds',
));
}
/**
* Implements hook_ctools_plugin_api().
*/
function feeds_entity_processor_ctools_plugin_api($owner, $api) {
if ($owner == 'feeds_entity_processor' && $api == 'properties') {
return array(
'version' => 1,
);
}
}
/**
* Implements hook_ctools_plugin_type().
*/
function feeds_entity_processor_ctools_plugin_type() {
return array(
'properties' => array(
'cache' => TRUE,
'use hooks' => TRUE,
'classes' => array(
'handler',
),
),
);
}
/**
* Gets an instance of a class for a given plugin.
*
* @param string $name
* A string that is the key of the plugin to load.
* @param array $property
* The info about the property.
* @param EntityMetadataWrapper $wrapper
* Metadata about the entity being created/updated.
* @param FeedsProcessor $processor
* The Feeds processor that is processing.
*
* @return FeedsEntityProcessorPropertyInterface
* A FeedsPlugin object.
*
* @throws RuntimeException
* In case a class for the default plugin could not be found.
*/
function feeds_entity_processor_plugin($name, array $property, EntityMetadataWrapper $wrapper, FeedsProcessor $processor) {
ctools_include('plugins');
$type = !empty($property['type']) ? $property['type'] : 'default';
if ($class = ctools_plugin_load_class('feeds_entity_processor', 'properties', $type, 'handler')) {
return new $class($name, $property, $wrapper, $processor);
}
$class = ctools_plugin_load_class('feeds_entity_processor', 'properties', 'default', 'handler');
if (!$class) {
throw new RuntimeException('Default Feeds entity processor properties handler not found. Please flush caches and try again.');
}
return new $class($name, $property, $wrapper, $processor);
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function node_form_feedsentityprocessor_feeds_form_alter(&$form, &$form_state) {
if ($form['#configurable']
->entityType() == 'node') {
unset($form['values']['title']);
$form['values']['author']['#required'] = FALSE;
$form['values']['author']['#autocomplete_path'] = 'user/autocomplete';
array_unshift($form['#validate'], 'node_form_feedsentityprocessor_feeds_form_validate');
if (is_numeric($form['values']['author']['#default_value']) && ($account = user_load($form['values']['author']['#default_value']))) {
$form['values']['author']['#default_value'] = $account->name;
}
}
}
/**
* Validation callback for node_form_feedsentityprocessor_feeds_form_alter().
*/
function node_form_feedsentityprocessor_feeds_form_validate(&$form, &$form_state) {
if (empty($form_state['values']['values']['author'])) {
form_set_value($form['values']['author'], 0, $form_state);
}
else {
$account = user_load_by_name($form_state['values']['values']['author']);
if ($account) {
form_set_value($form['values']['author'], $account->uid, $form_state);
}
}
}
/**
* Implements hook_feeds_processor_targets_alter().
*/
function node_feeds_processor_targets_alter(&$targets, $entity_type, $bundle) {
if ($entity_type == 'node') {
$targets['nid']['name'] = t('Node id');
$targets['nid']['description'] = t('The nid of the node. NOTE: use this feature with care, node ids are usually assigned by Drupal.');
}
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function user_form_feedsentityprocessor_feeds_form_alter(&$form, &$form_state) {
if ($form['#configurable']
->entityType() == 'user') {
unset($form['values']['name']);
$form['values']['mail']['#required'] = FALSE;
}
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function taxonomy_form_feedsentityprocessor_feeds_form_alter(&$form, &$form_state) {
if ($form['#configurable']
->entityType() == 'taxonomy_term') {
unset($form['values']['name']);
if (empty($form['values']['weight']['#default_value'])) {
$form['values']['weight']['#default_value'] = '';
}
array_unshift($form['#validate'], 'taxonomy_form_feedsentityprocessor_feeds_form_validate');
unset($form['values']['parent']);
$form['values']['machine_name'] = $form['values']['vocabulary'];
$form['values']['vocabulary']['#access'] = FALSE;
}
elseif ($form['#configurable']
->entityType() == 'taxonomy_vocabulary') {
unset($form['values']['name']);
unset($form['values']['machine_name']);
unset($form['values']['vid']);
}
}
/**
* Validation callback for taxonomy_form_feedsentityprocessor_feeds_form_alter().
*/
function taxonomy_form_feedsentityprocessor_feeds_form_validate(&$form, &$form_state) {
if (empty($form_state['values']['values']['weight'])) {
form_set_value($form['values']['weight'], 0, $form_state);
}
form_set_value($form['values']['vocabulary'], $form_state['values']['values']['machine_name'], $form_state);
}
Functions
Name![]() |
Description |
---|---|
feeds_entity_processor_ctools_plugin_api | Implements hook_ctools_plugin_api(). |
feeds_entity_processor_ctools_plugin_type | Implements hook_ctools_plugin_type(). |
feeds_entity_processor_hook_info | Implements hook_hook_info(). |
feeds_entity_processor_plugin | Gets an instance of a class for a given plugin. |
node_feeds_processor_targets_alter | Implements hook_feeds_processor_targets_alter(). |
node_form_feedsentityprocessor_feeds_form_alter | Implements hook_form_FORM_ID_alter(). |
node_form_feedsentityprocessor_feeds_form_validate | Validation callback for node_form_feedsentityprocessor_feeds_form_alter(). |
taxonomy_form_feedsentityprocessor_feeds_form_alter | Implements hook_form_FORM_ID_alter(). |
taxonomy_form_feedsentityprocessor_feeds_form_validate | Validation callback for taxonomy_form_feedsentityprocessor_feeds_form_alter(). |
user_form_feedsentityprocessor_feeds_form_alter | Implements hook_form_FORM_ID_alter(). |