function entityqueue_export_ui_form in Entityqueue 7
Form to edit the settings of a queue.
1 string reference to 'entityqueue_export_ui_form'
- entityqueue_entityqueue_export_ui_ctools_export_ui in plugins/
ctools/ export_ui/ entityqueue_export_ui.inc - Implements HOOK_PLUGIN_ctools_export_ui().
File
- plugins/
ctools/ export_ui/ entityqueue_export_ui.inc, line 112 - Plugin definition for CTools Export UI integration.
Code
function entityqueue_export_ui_form(&$form, &$form_state) {
global $user;
if (!user_access('administer entityqueue', $user)) {
drupal_access_denied();
drupal_exit();
}
_entityqueue_set_breadcrumb();
ctools_include('plugins');
$queue =& $form_state['item'];
// We definitely need a queue label :)
$form['info']['label']['#required'] = TRUE;
$handlers = array();
foreach (ctools_get_plugins('entityqueue', 'handler') as $name => $plugin) {
$handlers[$name] = $plugin['title'];
}
$form['handler'] = array(
'#title' => t('Handler'),
'#type' => 'select',
'#options' => $handlers,
'#default_value' => !$queue->is_new ? $queue->handler : 'simple',
'#required' => TRUE,
'#disabled' => $queue->is_new ? FALSE : TRUE,
);
// Get valid target entity types.
$entity_info = entity_get_info();
unset($entity_info['entityqueue_subqueue']);
$entity_types = array();
foreach ($entity_info as $entity_type => $info) {
$entity_types[$entity_type] = $info['label'];
}
$form['target_type'] = array(
'#title' => t('Entity type'),
'#type' => 'select',
'#options' => $entity_types,
'#default_value' => $queue->target_type,
'#required' => TRUE,
'#disabled' => $queue->is_new ? FALSE : TRUE,
'#ajax' => array(
'callback' => 'entityqueue_export_ui_target_type_callback',
'wrapper' => 'entityqueue-target-bundles',
),
);
$form['settings'] = array(
'#type' => 'vertical_tabs',
'#tree' => TRUE,
);
$target_type = !empty($form_state['values']['target_type']) ? $form_state['values']['target_type'] : $queue->target_type;
$bundles = array();
foreach ($entity_info[$target_type]['bundles'] as $bundle_name => $bundle_info) {
$bundles[$bundle_name] = $bundle_info['label'];
}
$form['settings']['entityreference_field'] = array(
'#type' => 'fieldset',
'#title' => t('Entity reference field settings'),
'#collapsible' => TRUE,
);
$form['settings']['entityreference_field']['target_bundles'] = array(
'#type' => 'checkboxes',
'#title' => $target_type == 'node' ? t('Content types') : t('Bundles'),
'#prefix' => '<div id="entityqueue-target-bundles">',
'#suffix' => '</div>',
'#options' => $bundles,
'#default_value' => !empty($queue->settings['target_bundles']) ? $queue->settings['target_bundles'] : array(),
'#multiple' => TRUE,
'#description' => t('The bundles of the entity type that can be referenced. Optional, leave empty for all bundles.'),
);
$form['settings']['properties'] = array(
'#type' => 'fieldset',
'#title' => t('Queue properties'),
'#collapsible' => TRUE,
);
$form['settings']['properties']['size'] = array(
'#type' => 'item',
'#attributes' => array(
'class' => array(
'container-inline',
),
),
'#title' => t('Queue limits'),
);
$form['settings']['properties']['size']['min_size'] = array(
'#type' => 'textfield',
'#size' => 3,
'#attributes' => array(
'style' => 'width: auto;',
),
'#default_value' => isset($queue->settings['min_size']) ? $queue->settings['min_size'] : 0,
'#field_prefix' => t('Restrict this queue to a minimum of'),
'#field_suffix' => t('items'),
'#parents' => array(
'settings',
'properties',
'min_size',
),
);
$form['settings']['properties']['size']['max_size'] = array(
'#type' => 'textfield',
'#size' => 3,
'#attributes' => array(
'style' => 'width: auto;',
),
'#default_value' => isset($queue->settings['max_size']) ? $queue->settings['max_size'] : 0,
'#field_prefix' => t('and a maximum of'),
'#field_suffix' => t('items.'),
'#parents' => array(
'settings',
'properties',
'max_size',
),
);
$form['settings']['properties']['act_as_queue'] = array(
'#type' => 'checkbox',
'#title' => t('Remove items exceeding maximum limit'),
'#default_value' => isset($queue->settings['act_as_queue']) ? $queue->settings['act_as_queue'] : 0,
'#return_value' => 1,
'#description' => t('When enabled, adding more than the maximum number of items will remove extra items from the queue.'),
'#states' => array(
'invisible' => array(
':input[name="settings[properties][max_size]"]' => array(
'value' => 0,
),
),
),
);
}