You are here

class finder_ui in Finder 7.2

CTools Export UI class handler for Finder UI.

Hierarchy

Expanded class hierarchy of finder_ui

13 string references to 'finder_ui'
finder_ui.inc in modules/finder_ui/plugins/export_ui/finder_ui.inc
finder_ui::init in modules/finder_ui/plugins/export_ui/finder_ui.class.php
Fake constructor -- this is easier to deal with than the real constructor because we are retaining PHP4 compatibility, which would require all child classes to implement their own constructor.
finder_ui_element_item_form in modules/finder_ui/includes/element-item.inc
Finder UI element item form.
finder_ui_element_item_form_submit in modules/finder_ui/includes/element-item.inc
Finder UI element item form submit.
finder_ui_element_item_page in modules/finder_ui/includes/element-item.inc
Finder UI element item page.

... See full list

File

modules/finder_ui/plugins/export_ui/finder_ui.class.php, line 13
Contains the CTools Export UI integration code.

View source
class finder_ui extends ctools_export_ui {
  function init($plugin) {
    parent::init($plugin);
    finder_inc('finder', 'finder_ui');
    ctools_include('ajax');
    drupal_add_css(drupal_get_path('module', 'finder_ui') . '/finder_ui.css');

    // These must be added up front because of a situation where all dropbuttons
    // start as ordinary buttons but then get ajaxed to dropbuttons.
    ctools_add_js('dropbutton');
    ctools_add_css('dropbutton');
    $modal_options = array(
      'opacity' => 0.7,
      'background' => '#000',
    );
    drupal_add_js(array(
      'finder-modal-style' => array(
        'modalSize' => array(
          'type' => 'fixed',
          'width' => 1024,
          'height' => 576,
          'contentRight' => 0,
        ),
        'modalTheme' => 'FinderUIModal',
        'modalOptions' => $modal_options,
        'closeImage' => '',
      ),
    ), 'setting');
    drupal_add_js(drupal_get_path('module', 'finder_ui') . '/finder_ui.js');
  }

  /**
   * Create the filter/sort form at the top of a list of exports.
   */
  function list_form(&$form, &$form_state) {

    // Put a wrapper around the form so it can be hidden.  Unsetting the form
    // rows or doing nothing here doesn't seem to do the trick.
    parent::list_form($form, $form_state);
    $form['#prefix'] = '<div class="finder-ui-list-wrapper">' . $form['#prefix'];
    $form['#suffix'] = $form['#prefix'] . '</div>';
  }

  /**
   * Build a row based on the item.
   */
  function list_build_row($item, &$form_state, $operations) {

    // Set up sorting
    $name = $item->{$this->plugin['export']['key']};
    $schema = ctools_export_get_schema($this->plugin['schema']);

    // Note: $item->{$schema['export']['export type string']} should have already been set up by export.inc so
    // we can use it safely.
    switch ($form_state['values']['order']) {
      case 'disabled':
        $this->sorts[$name] = empty($item->disabled) . $name;
        break;
      case 'title':
        $this->sorts[$name] = $item->{$this->plugin['export']['admin_title']};
        break;
      case 'name':
        $this->sorts[$name] = $name;
        break;
      case 'storage':
        $this->sorts[$name] = $item->{$schema['export']['export type string']} . $name;
        break;
    }
    $this->rows[$name]['data'] = array();
    $this->rows[$name]['class'] = !empty($item->disabled) ? array(
      'ctools-export-ui-disabled',
    ) : array(
      'ctools-export-ui-enabled',
    );
    $this->rows[$name]['data'][] = array(
      'data' => finder_ui_info($item),
      'class' => array(
        'ctools-export-ui-title',
      ),
    );
    $this->rows[$name]['data'][] = array(
      'data' => check_plain($item->{$schema['export']['export type string']}),
      'class' => array(
        'ctools-export-ui-storage',
      ),
    );
    $this->rows[$name]['data'][] = array(
      'data' => l($item->path, $item->path),
      'class' => array(
        'ctools-export-ui-path',
      ),
    );
    $ops = theme('links__ctools_dropbutton', array(
      'links' => $operations,
      'attributes' => array(
        'class' => array(
          'links',
          'inline',
        ),
      ),
    ));
    $this->rows[$name]['data'][] = array(
      'data' => $ops,
      'class' => array(
        'ctools-export-ui-operations',
      ),
    );

    // Add an automatic mouseover of the description if one exists.
    if (!empty($this->plugin['export']['admin_description'])) {
      $this->rows[$name]['title'] = $item->{$this->plugin['export']['admin_description']};
    }
  }

  /**
   * Provide the table header.
   */
  function list_table_header() {
    $header = array();
    $header[] = array(
      'data' => t('Finder'),
      'class' => array(
        'ctools-export-ui-title',
      ),
    );
    $header[] = array(
      'data' => t('Storage'),
      'class' => array(
        'ctools-export-ui-storage',
      ),
    );
    $header[] = array(
      'data' => t('Path'),
      'class' => array(
        'ctools-export-ui-path',
      ),
    );
    $header[] = array(
      'data' => t('Operations'),
      'class' => array(
        'ctools-export-ui-operations',
      ),
    );
    return $header;
  }

  /**
   * Provide the actual editing form.
   */
  function edit_form(&$form, &$form_state) {
    $export_key = $this->plugin['export']['key'];
    $item = $form_state['item'];
    $schema = ctools_export_get_schema($this->plugin['schema']);
    if (!empty($this->plugin['export']['admin_title'])) {
      $form['info'][$this->plugin['export']['admin_title']] = array(
        '#type' => 'textfield',
        '#title' => t('Administrative title'),
        '#description' => t('This will appear in the administrative interface to easily identify it.'),
        '#default_value' => $item->{$this->plugin['export']['admin_title']},
      );
    }
    $form['info'][$export_key] = array(
      '#title' => t($schema['export']['key name']),
      '#type' => 'textfield',
      '#default_value' => $item->{$export_key},
      '#description' => t('The unique ID for this @export.', array(
        '@export' => $this->plugin['title singular'],
      )),
      '#required' => TRUE,
      '#maxlength' => 255,
    );
    if (!empty($this->plugin['export']['admin_title'])) {
      $form['info'][$export_key]['#type'] = 'machine_name';
      $form['info'][$export_key]['#machine_name'] = array(
        'exists' => 'ctools_export_ui_edit_name_exists',
        'source' => array(
          'info',
          $this->plugin['export']['admin_title'],
        ),
      );
    }
    if ($form_state['op'] === 'edit') {
      $form['info'][$export_key]['#disabled'] = TRUE;
      $form['info'][$export_key]['#value'] = $item->{$export_key};
    }
    if (!empty($this->plugin['export']['admin_description'])) {
      $form['info'][$this->plugin['export']['admin_description']] = array(
        '#type' => 'textarea',
        '#title' => t('Administrative description'),
        '#default_value' => $item->{$this->plugin['export']['admin_description']},
      );
    }

    // Add the buttons if the wizard is not in use.
    if (empty($form_state['form_info'])) {

      // Add buttons.
      $form['actions']['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Save'),
      );

      // Cancel buttons.
      $form['actions']['cancel'] = array(
        '#type' => 'submit',
        '#value' => t('Cancel'),
      );
    }

    // Add plugin's form definitions.
    if (!empty($this->plugin['form']['settings'])) {

      // Pass $form by reference.
      $this->plugin['form']['settings']($form, $form_state);
    }
  }

  /**
   * Main entry point to edit an item.
   */
  function edit_page($js, $input, $item, $step = NULL) {
    ctools_include('object-cache');
    drupal_set_title($this
      ->get_page_title('edit', $item));
    $cached = ctools_object_cache_get('finder', $item->name);
    if (!empty($cached)) {
      $item = $cached;
    }
    $form_state = array(
      'plugin' => $this->plugin,
      'object' => &$this,
      'ajax' => $js,
      'item' => $item,
      'op' => 'edit',
      'form type' => 'edit',
      'rerender' => TRUE,
      'no_redirect' => TRUE,
      'step' => $step,
      // Store these in case additional args are needed.
      'function args' => func_get_args(),
    );
    $output = $this
      ->edit_execute_form($form_state);
    if (!empty($form_state['executed'])) {
      $export_key = $this->plugin['export']['key'];
      drupal_goto(str_replace('%ctools_export_ui', $form_state['item']->{$export_key}, $this->plugin['redirect']['edit']));
    }
    return $output;
  }

  /**
   * Render a header to go before the list.
   */
  function list_header($form_state) {
    return '<div class="finder-ui finder-ui-list">';
  }

  /**
   * Render a footer to go after thie list.
   */
  function list_footer($form_state) {
    return '</div>';
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ctools_export_ui::$name property
ctools_export_ui::$options property
ctools_export_ui::$plugin property
ctools_export_ui::access public function Menu callback to determine if an operation is accessible. 1
ctools_export_ui::add_page public function
ctools_export_ui::build_operations public function Builds the operation links for a specific exportable item.
ctools_export_ui::clone_page public function Main entry point to clone an item.
ctools_export_ui::delete_form_submit public function Deletes exportable items from the database.
ctools_export_ui::delete_page public function Page callback to delete an exportable item.
ctools_export_ui::disable_page public function Callback to disable a page.
ctools_export_ui::edit_cache_clear public function Clear the object cache for the currently edited item.
ctools_export_ui::edit_cache_get public function Retrieve the item currently being edited from the object cache.
ctools_export_ui::edit_cache_get_key public function Figure out what the cache key is for this object.
ctools_export_ui::edit_cache_set public function Cache the item currently currently being edited.
ctools_export_ui::edit_cache_set_key public function
ctools_export_ui::edit_execute_form public function Execute the form.
ctools_export_ui::edit_execute_form_standard public function Execute the standard form for editing.
ctools_export_ui::edit_execute_form_wizard public function Execute the wizard for editing.
ctools_export_ui::edit_finish_validate public function Perform a final validation check before allowing the form to be finished.
ctools_export_ui::edit_form_import public function Import form. Provides simple helptext instructions and textarea for pasting a export definition.
ctools_export_ui::edit_form_import_submit public function Submit callback for import form.
ctools_export_ui::edit_form_import_validate public function Import form validate handler.
ctools_export_ui::edit_form_submit public function Handle the submission of the edit form. 2
ctools_export_ui::edit_form_validate public function Validate callback for the edit form.
ctools_export_ui::edit_save_form public function Called to save the final product from the edit form.
ctools_export_ui::edit_wizard_back public function Wizard 'back' callback when using a wizard to edit an item.
ctools_export_ui::edit_wizard_cancel public function Wizard 'cancel' callback when using a wizard to edit an item.
ctools_export_ui::edit_wizard_finish public function Wizard 'cancel' callback when using a wizard to edit an item. 1
ctools_export_ui::edit_wizard_next public function Wizard 'next' callback when using a wizard to edit an item. 1
ctools_export_ui::enable_page public function Callback to enable a page.
ctools_export_ui::export_page public function Page callback to display export information for an exportable item.
ctools_export_ui::get_page_title public function Get a page title for the current page from our plugin strings.
ctools_export_ui::get_wizard_info public function Get the form info for the wizard. 1
ctools_export_ui::hook_menu public function hook_menu() entry point.
ctools_export_ui::import_page public function Page callback to import information for an exportable item.
ctools_export_ui::list_css public function Add listing CSS to the page.
ctools_export_ui::list_filter public function Determine if a row should be filtered out. 2
ctools_export_ui::list_form_submit public function Submit the filter/sort form.
ctools_export_ui::list_form_validate public function Validate the filter/sort form.
ctools_export_ui::list_page public function Master entry point for handling a list.
ctools_export_ui::list_render public function Render all of the rows together.
ctools_export_ui::list_search_fields public function Provide a list of fields to test against for the default "search" widget. 1
ctools_export_ui::list_sort_options public function Provide a list of sort options. 2
ctools_export_ui::load_item public function Called by ctools_export_ui_load to load the item.
ctools_export_ui::redirect public function Perform a drupal_goto() to the location provided by the plugin for the operation.
ctools_export_ui::set_item_state public function Set an item's state to enabled or disabled and output to user.
finder_ui::edit_form function Provide the actual editing form. Overrides ctools_export_ui::edit_form
finder_ui::edit_page function Main entry point to edit an item. Overrides ctools_export_ui::edit_page
finder_ui::init function Fake constructor -- this is easier to deal with than the real constructor because we are retaining PHP4 compatibility, which would require all child classes to implement their own constructor. Overrides ctools_export_ui::init
finder_ui::list_build_row function Build a row based on the item. Overrides ctools_export_ui::list_build_row
finder_ui::list_footer function Render a footer to go after thie list. Overrides ctools_export_ui::list_footer
finder_ui::list_form function Create the filter/sort form at the top of a list of exports. Overrides ctools_export_ui::list_form
finder_ui::list_header function Render a header to go before the list. Overrides ctools_export_ui::list_header
finder_ui::list_table_header function Provide the table header. Overrides ctools_export_ui::list_table_header