You are here

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