function ctools_argument_entity_id_settings_form

File

plugins/arguments/entity_id.inc, line 90

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;
}