function entityreference_feeds_settings_form in Entity reference feeds 7
Settings form callback.
1 string reference to 'entityreference_feeds_settings_form'
- entityreference_feeds_menu in ./
entityreference_feeds.module - Implements hook_menu().
File
- ./
entityreference_feeds.module, line 439 - This is the main module file for entity reference feeds.
Code
function entityreference_feeds_settings_form() {
$info = entity_get_info();
$default_values = variable_get('entityreference_feeds_entity_default_values', array());
$form['entityreference_feeds_entity_default_values'] = array(
'#title' => t('Default values'),
'#type' => 'fieldset',
'#tree' => TRUE,
);
//TODO: check restrictions on which entities can be references in entity reference field to avoid including weird stuff like rules_config etc
foreach ($info as $entity_type => $entity_type_info) {
if (entity_type_supports($entity_type, 'create')) {
$wrapper = entity_metadata_wrapper($entity_type);
if (!is_object($wrapper)) {
continue;
}
$form['entityreference_feeds_entity_default_values'][$entity_type] = array(
'#title' => $entity_type,
'#type' => 'fieldset',
);
$entity_type_settings =& $form['entityreference_feeds_entity_default_values'][$entity_type];
global $user;
$formats = filter_formats($user);
foreach ($formats as $format) {
$format_options[$format->format] = check_plain($format->name);
}
$entity_type_settings['input_format'] = array(
'#type' => 'select',
'#title' => t('Text format'),
'#description' => t('Select the input format for the body field of the nodes to be created.'),
'#options' => $format_options,
'#default_value' => isset($default_values[$entity_type]['input_format']) ? $default_values[$entity_type]['input_format'] : 'plain_text',
);
$bundle_key = $entity_type_info['entity keys']['bundle'];
foreach ($wrapper
->getPropertyInfo() as $name => $property) {
if (!empty($property['required']) && $name != $bundle_key) {
$entity_type_settings['values'][$name] = array(
'#type' => 'textfield',
'#title' => $property['label'],
'#description' => isset($property['description']) ? $property['description'] : '',
'#default_value' => isset($default_values[$entity_type]['values'][$name]) ? $default_values[$entity_type]['values'][$name] : NULL,
);
if (!empty($property['options list'])) {
$entity_type_settings['values'][$name]['#type'] = 'select';
$entity_type_settings['values'][$name]['#options'] = $wrapper->{$name}
->optionsList();
}
// @todo: Maybe implement per data-type forms like Rules does?
$entity_type_settings['values'][$name]['#description'] .= ' ' . t('Expected data type: %type.', array(
'%type' => $wrapper->{$name}
->type(),
));
if ($wrapper->{$name} instanceof EntityDrupalWrapper) {
$info = $wrapper->{$name}
->entityInfo();
if (!empty($info) && isset($info['entity keys']['id'])) {
$id_info = $wrapper->{$name}
->get($info['entity keys']['id'])
->info();
$entity_type_settings['values'][$name]['#description'] .= ' ' . t('Just enter the identifier of the entity, i.e. %id', array(
'%id' => $id_info['label'],
));
}
}
}
}
}
}
return system_settings_form($form);
}