| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 | <?php/** * @file * Views area handlers. *//** * @defgroup views_area_handlers Views area handlers * @{ * Handlers to tell Views what can display in header, footer * and empty text in a view. *//** * Base class for area handlers. * * @ingroup views_area_handlers */class views_handler_area extends views_handler {  /**   * Overrides views_handler::init().   *   * Make sure that no result area handlers are set to be shown when the result   * is empty.   */  function init(&$view, &$options) {    parent::init($view, $options);    if ($this->handler_type == 'empty') {      $this->options['empty'] = TRUE;    }  }  /**   * Get this field's label.   */  function label() {    if (!isset($this->options['label'])) {      return $this->ui_name();    }    return $this->options['label'];  }  function option_definition() {    $options = parent::option_definition();    $this->definition['field'] = !empty($this->definition['field']) ? $this->definition['field'] : '';    $label = !empty($this->definition['label']) ? $this->definition['label'] : $this->definition['field'];    $options['label'] = array('default' => $label, 'translatable' => TRUE);    $options['empty'] = array('default' => FALSE, 'bool' => TRUE);    return $options;  }  /**   * Provide extra data to the administration form   */  function admin_summary() {    return $this->label();  }  /**   * Default options form that provides the label widget that all fields   * should have.   */  function options_form(&$form, &$form_state) {    parent::options_form($form, $form_state);    $form['label'] = array(      '#type' => 'textfield',      '#title' => t('Label'),      '#default_value' => isset($this->options['label']) ? $this->options['label'] : '',      '#description' => t('The label for this area that will be displayed only administratively.'),    );    if ($form_state['type'] != 'empty') {      $form['empty'] = array(        '#type' => 'checkbox',        '#title' => t('Display even if view has no result'),        '#default_value' => isset($this->options['empty']) ? $this->options['empty'] : 0,      );    }  }  /**   * Don't run a query   */  function query() { }  /**   * Render the area   */  function render($empty = FALSE) {    return '';  }  /**   * Area handlers shouldn't have groupby.   */  function use_group_by() {    return FALSE;  }}/** * A special handler to take the place of missing or broken handlers. * * @ingroup views_area_handlers */class views_handler_area_broken extends views_handler_area {  function ui_name($short = FALSE) {    return t('Broken/missing handler');  }  function ensure_my_table() { /* No table to ensure! */ }  function query($group_by = FALSE) { /* No query to run */ }  function render($empty = FALSE) { return ''; }  function options_form(&$form, &$form_state) {    $form['markup'] = array(      '#prefix' => '<div class="form-item description">',      '#value' => t('The handler for this item is broken or missing and cannot be used. If a module provided the handler and was disabled, re-enabling the module may restore it. Otherwise, you should probably delete this item.'),    );  }  /**   * Determine if the handler is considered 'broken'   */  function broken() { return TRUE; }}/** * @} */
 |