- <?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() { }
- function query($group_by = FALSE) { }
- 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; }
- }
-
- * @}
- */