You are here

class biblio_handler_field in Bibliography Module 6.2

Same name and namespace in other branches
  1. 6 views/biblio_handler_field.inc \biblio_handler_field
  2. 7 views/biblio_handler_field.inc \biblio_handler_field
  3. 7.2 views/biblio_handler_field.inc \biblio_handler_field

@file Views field handler for Drupal biblio module.

Hierarchy

Expanded class hierarchy of biblio_handler_field

2 string references to 'biblio_handler_field'
biblio_views_data in views/biblio.views.inc
Implements hook_views_data().
biblio_views_handlers in views/biblio.views.inc
Implementation of hook_views_handlers().

File

views/biblio_handler_field.inc, line 7
Views field handler for Drupal biblio module.

View source
class biblio_handler_field extends views_handler_field {
  function init(&$view, $options) {
    parent::init($view, $options);
    if (!$this->options['biblio_label']) {
      return;
    }
    $this->definition['click sortable'] = array(
      'default' => TRUE,
    );
    $result = db_query("SELECT bft.tid, bftd.title FROM {biblio_field_type} bft\n            INNER JOIN {biblio_fields} bf ON bft.fid=bf.fid AND bf.name='%s'\n            INNER JOIN {biblio_field_type_data} bftd ON bftd.ftdid=bft.ftdid", $options['field']);
    while ($label = db_fetch_object($result)) {
      $this->labels[$label->tid] = $label->title;
    }
  }
  function query() {

    // add the biblio_type field as tid
    $this->query
      ->add_field($this->table_alias, 'biblio_type', 'biblio_tid');
    parent::query();
  }
  function option_definition() {
    $options = parent::option_definition();
    $options['biblio_label'] = array(
      'default' => TRUE,
    );
    return $options;
  }
  function options_form(&$form, &$form_state) {
    $form['biblio_label'] = array(
      '#type' => 'checkbox',
      '#title' => t('Use label specific to biblio type'),
      '#description' => 'Check this option to use the type-specific field labels as defined in ' . l(t('biblio settings'), 'admin/settings/biblio/fields/type'),
      '#default_value' => $this->options['biblio_label'],
    );
    parent::options_form($form, $form_state);
    $form['label'] += array(
      '#process' => array(
        'views_process_dependency',
      ),
      '#dependency' => array(
        'edit-options-biblio-label' => array(
          0,
        ),
      ),
    );
  }
  function set_label(&$values) {
    if (!$this->options['biblio_label']) {
      return;
    }
    $tid = $values->biblio_tid;
    $this->options['label'] = isset($this->labels[$tid]) ? $this->labels[$tid] : $this->labels[0];
  }
  function pre_render($values) {
    foreach ($values as $result) {
      if (!empty($result->biblio_biblio_year)) {

        // this converts values like 9999 or 9998 to "Submitted" and "In Press"
        $result->biblio_biblio_year = _biblio_text_year($result->biblio_biblio_year);
      }
    }
    return $values;
  }
  function render($values) {
    $this
      ->set_label($values);
    return parent::render($values);
  }

}

Members