mysite_type_droplet_settings_form

Definition

mysite_type_droplet_settings_form($droplet_id = NULL)
plugins/types/droplet.inc, line 380

Description

FormsAPI for droplet creation and deletion

Code

function mysite_type_droplet_settings_form($droplet_id = NULL) {
  if (arg(5) != 'delete') {
    if (!is_null($droplet_id)) {
      $droplet = mysite_get_custom('droplet', $droplet_id);
      // pass $droplet by reference in order to parse the subtype and key
      $content = mysite_type_droplet_get_content($droplet);
      $base_disabled = FALSE;
      if ($droplet->subtype == 'view') {
        $view = views_load_view($droplet->key);
        $droplet->base = $view->url;
        $base_disabled = TRUE;
      }
    }
    else {
      $droplet->subtype = 'droplet';
      $droplet->type_key = 'droplet:';
      $droplet->format = 2;
    }
    if (empty($edit)) {
      $edit = (array) $droplet;
      $edit['content'] = $droplet->content_raw;
    }
    $form['#attributes']['enctype'] = 'multipart/form-data';
    $form['mysite_droplet'] = array(
      '#type' => 'fieldset',
      '#title' => t('Droplet settings'),
      '#collapsible' => TRUE,
      '#collapsed' => FALSE,
    );
    $form['mysite_droplet']['title'] = array('#type' => 'textfield',
      '#title' => t('Droplet title'),
      '#default_value' => $edit['title'],
      '#maxlength' => 64,
      '#size' => 40,
      '#description' => t('The name of the droplet, as seen by the end user.'),
      '#required' => TRUE
    );
    if ($droplet->subtype == 'droplet') {
      if (!empty($droplet->myid)) {
        if (empty($content)) {
          $content = t('There is no content to render.');
        }
        $form['mysite_droplet']['preview'] = array('#type' => 'markup',
          '#prefix' => t('<p><b>Droplet preview: </b></p><p><hr /></p><p>'),
          '#value' => $content,
          '#suffix' => t('</p><p><hr /></p><p class="description">Content preview.</p>'),
          '#required' => FALSE
        );
      }
      $form['mysite_droplet']['content'] = array('#type' => 'textarea',
        '#title' => t('Droplet content'),
        '#default_value' => $edit['content'],
        '#rows' => 5,
        '#cols' => 40,
        '#description' => t('The content to display to the end user.'),
        '#required' => TRUE
      );
      $form['mysite_droplet']['format'] = filter_form($value = $edit['format'], $weight = NULL, $parents = array('format'));
    }
    else {
      if (empty($content)) {
        $content = t('There is no content to render.');
      }
      $form['mysite_droplet']['content'] = array('#type' => 'markup',
        '#prefix' => t('<p><b>Droplet content: </b></p><p><hr /></p>'),
        '#value' => $content,
        '#suffix' => t('<p><hr /></p><p class="description">This content cannot be edited.</p>'),
        '#required' => FALSE
      );
    }
    $form['mysite_droplet']['base'] = array('#type' => 'textfield',
      '#title' => t('Droplet link'),
      '#default_value' => $edit['base'],
      '#maxlength' => 255,
      '#size' => 40,
      '#description' => t('Optional: The URL to click for more of this content.  Use http:// or a Drupal-formatted "path/to/item".'),
      '#required' => FALSE,
      '#disabled' => $base_disabled
    );
    $form['mysite_droplet']['xml'] = array('#type' => 'textfield',
      '#title' => t('Droplet xml link'),
      '#default_value' => $edit['xml'],
      '#maxlength' => 255,
      '#size' => 40,
      '#description' => t('Optional: The path to the RSS/XML output for this content.  Use http:// or a Drupal-formatted "path/to/item".'),
      '#required' => FALSE
    );
    if (module_exists('mysite_icon') && $edit['myid']) {
      $icon = mysite_icon_lookup('droplet', $edit['myid']);
      $image = theme_mysite_icon('droplet', $droplet_id, $droplet->title, $icon);
      $link = l('Edit droplet icon', 'admin/settings/mysite/icons/change/'. $icon->iid) .' | '. l('Delete droplet icon', 'admin/settings/mysite/icons/delete/'. $icon->iid);
      if (!$icon->iid) {
        $link = l('Add droplet icon', 'admin/settings/mysite/icons/add/droplet/'. $edit['myid']);
      }
      $form['mysite_droplet']['image'] = array(
          '#value' => $image .'<p><b>'. t('Droplet Icon:') .'</b></p><p>'. $link .'</p>'
      );
    }
    $form['mysite_droplet']['type_key'] = array(
      '#type' => 'hidden', '#value' => $edit['type_key']
    );
    $form['mysite_droplet']['type'] = array(
      '#type' => 'hidden', '#value' => 'droplet'
    );
    $form['mysite_droplet']['myid'] = array(
      '#type' => 'hidden', '#value' => $edit['myid']
    );
    $form['mysite_droplet']['confirm'] = array(
      '#type' => 'hidden', '#value' => 0
    );
    $form['mysite_droplet']['submit'] = array('#type' => 'submit', '#value' => t('Save Droplet'));
    if (!empty($droplet->myid)) {
      $form['mysite_droplet']['delete'] = array('#type' => 'submit', '#value' => t('Delete This Droplet'));
    }
  }
  else {
    $droplet_id = arg(6);
    $droplet = mysite_get_custom('droplet', $droplet_id);
    if (!empty($droplet->myid)) {
      $form['mysite_droplet']['myid'] = array(
        '#type' => 'hidden', '#value' => $droplet->myid
      );
      $form['mysite_droplet']['confirm'] = array(
        '#type' => 'hidden', '#value' => 1
      );
      $form['mysite_droplet']['content'] = array('#type' => 'markup',
        '#value' => t('<p>You are about to delete the droplet "@title."  Do you wish to continue?</p>', array('@title' => $droplet->title)),
      );
      $form['mysite_droplet']['delete'] = array('#type' => 'submit', '#value' => t('Confirm Deletion'));
      $form['mysite_droplet']['cancel'] = array('#type' => 'markup',
        '#value' => l(t('Cancel'), 'admin/settings/mysite/type/droplet/'. $droplet->myid)
      );
    }
    else {
      $form['mysite_droplet']['content'] = array('#type' => 'markup',
        '#value' => t('<p>An invalid selection has been detected.</p>'),
      );
    }
  }
  return $form;
}