function ctools_argument_entity_id_settings_form in Chaos Tool Suite (ctools) 7
File
- plugins/
arguments/ entity_id.inc, line 90 - Plugin to provide an argument handler for all entity ids.
Code
function ctools_argument_entity_id_settings_form(&$form, &$form_state, $conf) {
$plugin =& $form_state['plugin'];
$form['settings']['entity'] = array(
'#title' => t('Enter the title or ID of a @entity entity', array(
'@entity' => $plugin['keyword'],
)),
'#type' => 'textfield',
'#maxlength' => 512,
'#autocomplete_path' => 'ctools/autocomplete/' . $plugin['keyword'],
'#weight' => -10,
);
if (!empty($conf['entity_id'])) {
$info = entity_load($plugin['keyword'], array(
$conf['entity_id'],
));
$info = $info[$conf['entity_id']];
if ($info) {
$entity = entity_get_info($plugin['keyword']);
$uri = entity_uri($plugin['keyword'], $info);
if (is_array($uri) && $entity['entity keys']['label']) {
$link = l(t("'%title' [%type id %id]", array(
'%title' => $info->{$entity['entity keys']['label']},
'%type' => $plugin['keyword'],
'%id' => $conf['entity_id'],
)), $uri['path'], array(
'attributes' => array(
'target' => '_blank',
'title' => t('Open in new window'),
),
'html' => TRUE,
));
}
elseif (is_array($uri)) {
$link = l(t("[%type id %id]", array(
'%type' => $plugin['keyword'],
'%id' => $conf['entity_id'],
)), $uri['path'], array(
'attributes' => array(
'target' => '_blank',
'title' => t('Open in new window'),
),
'html' => TRUE,
));
}
elseif ($entity['entity keys']['label']) {
$link = l(t("'%title' [%type id %id]", array(
'%title' => $info->{$entity['entity keys']['label']},
'%type' => $plugin['keyword'],
'%id' => $conf['entity_id'],
)), file_create_url($uri), array(
'attributes' => array(
'target' => '_blank',
'title' => t('Open in new window'),
),
'html' => TRUE,
));
}
else {
$link = t("[%type id %id]", array(
'%type' => $plugin['keyword'],
'%id' => $conf['entity_id'],
));
}
$form['settings']['entity']['#description'] = t('Currently set to !link', array(
'!link' => $link,
));
}
}
$form['settings']['entity_id'] = array(
'#type' => 'value',
'#value' => isset($conf['entity_id']) ? $conf['entity_id'] : '',
);
$form['settings']['entity_type'] = array(
'#type' => 'value',
'#value' => $plugin['keyword'],
);
return $form;
}