You are here

class semanticviews_plugin_row_fields in Semantic Views 7

Same name and namespace in other branches
  1. 6 semanticviews_plugin_row_fields.inc \semanticviews_plugin_row_fields

The semantic 'fields' row plugin

This displays fields one after another, giving options for HTML element and class.

Hierarchy

Expanded class hierarchy of semanticviews_plugin_row_fields

1 string reference to 'semanticviews_plugin_row_fields'
semanticviews_views_plugins in ./semanticviews.views.inc
Implements hook_views_plugins().

File

./semanticviews_plugin_row_fields.inc, line 15
Contains the semantic row style plugin.

View source
class semanticviews_plugin_row_fields extends views_plugin_row {

  /**
   * Set default options.
   */
  function option_definition() {
    $options = parent::option_definition();
    $options['skip_blank'] = array(
      'default' => FALSE,
    );

    // Field element_type and classes cannot be defined in the options
    // definition because the field handlers are not attached when the option
    // defaults are set up in the object's init() method.
    $options['semantic_html'] = array(
      'default' => array(),
    );
    return $options;
  }

  /**
   * Provide a form for setting options.
   */
  function options_form(&$form, &$form_state) {
    parent::options_form($form, $form_state);
    $form['semantic_html'] = array(
      '#tree' => TRUE,
    );
    $form['semantic_html']['help'] = array(
      '#markup' => t('These settings will override each Fields "Style Settings".'),
    );
    foreach ($this->display->handler
      ->get_handlers('field') as $field => $handler) {
      if (!$handler->options['exclude']) {
        $default_value = isset($this->options['semantic_html'][$field]) && is_array($this->options['semantic_html'][$field]) ? $this->options['semantic_html'][$field] : array(
          'element_type' => 'div',
          'class' => '',
          'label_element_type' => 'label',
          'label_class' => '',
        );
        $form['semantic_html'][$field] = array(
          '#title' => $handler
            ->label() ? $handler
            ->label() : $handler
            ->ui_name(),
          '#type' => 'fieldset',
          '#attributes' => array(
            'class' => array(
              'clearfix',
            ),
          ),
        );
        $form['semantic_html'][$field]['element_type'] = array(
          '#prefix' => '<div class="views-left-30">',
          '#suffix' => '</div>',
          '#title' => 'Element',
          '#type' => 'textfield',
          '#size' => '10',
          '#default_value' => $default_value['element_type'],
        );
        $form['semantic_html'][$field]['class'] = array(
          '#prefix' => '<div class="views-right-70">',
          '#suffix' => '</div>',
          '#title' => 'Class attribute',
          '#type' => 'textfield',
          '#size' => '30',
          '#default_value' => $default_value['class'],
        );
        if ($handler
          ->label()) {
          $form['semantic_html'][$field]['label_element_type'] = array(
            '#prefix' => '<div class="views-left-30">',
            '#suffix' => '</div>',
            '#title' => 'Label element',
            '#type' => 'textfield',
            '#size' => '10',
            '#default_value' => $default_value['label_element_type'],
          );
          $form['semantic_html'][$field]['label_class'] = array(
            '#prefix' => '<div class="views-right-70">',
            '#suffix' => '</div>',
            '#title' => 'Label class attribute',
            '#type' => 'textfield',
            '#size' => '30',
            '#default_value' => $default_value['label_class'],
          );
        }
      }
    }
    $form['skip_blank'] = array(
      '#type' => 'checkbox',
      '#default_value' => $this->options['skip_blank'],
      '#title' => t('Skip empty fields'),
      '#description' => t('Do not output anything when a field has no content. This has the same outcome as enabling the <em>Hide if empty</em> option for every field in this display.'),
    );
  }

  /**
   * Validate the options form.
   */
  function options_validate(&$form, &$form_state) {
    parent::options_validate($form, $form_state);

    // TODO: validate that the elements and classes are valid HTML. This is not
    // a substitute for output filtering.
  }

  /**
   * Validate the view.
   */
  function validate() {
    $errors = parent::validate();
    $display_handler = $this->display->handler;
    if (!$display_handler
      ->is_defaulted('fields') && $display_handler
      ->is_defaulted('row_plugin')) {
      $errors[] = t('Display "@display" overrides fields and must also override the row style plugin.', array(
        '@display' => $this->display->display_title,
      ));
    }
    return $errors;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
semanticviews_plugin_row_fields::options_form function Provide a form for setting options. Overrides views_plugin_row::options_form
semanticviews_plugin_row_fields::options_validate function Validate the options form. Overrides views_plugin_row::options_validate
semanticviews_plugin_row_fields::option_definition function Set default options. Overrides views_plugin_row::option_definition
semanticviews_plugin_row_fields::validate function Validate the view. Overrides views_plugin::validate
views_object::$definition public property Handler's definition.
views_object::$options public property Except for displays, options for the object will be held here. 1
views_object::altered_option_definition function Collect this handler's option definition and alter them, ready for use.
views_object::construct public function Views handlers use a special construct function. 4
views_object::destroy public function Destructor. 2
views_object::export_option public function 1
views_object::export_options public function
views_object::export_option_always public function Always exports the option, regardless of the default value.
views_object::options Deprecated public function Set default options on this object. 1
views_object::set_default_options public function Set default options.
views_object::set_definition public function Let the handler know what its full definition is.
views_object::unpack_options public function Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.
views_object::unpack_translatable public function Unpack a single option definition.
views_object::unpack_translatables public function Unpacks each handler to store translatable texts.
views_object::_set_option_defaults public function
views_plugin::$display public property The current used views display.
views_plugin::$plugin_name public property The plugin name of this plugin, for example table or full.
views_plugin::$plugin_type public property The plugin type of this plugin, for example style or query.
views_plugin::$view public property The top object of a view. Overrides views_object::$view 1
views_plugin::additional_theme_functions public function Provide a list of additional theme functions for the theme info page.
views_plugin::plugin_title public function Return the human readable name of the display.
views_plugin::summary_title public function Returns the summary of the settings in the display. 8
views_plugin::theme_functions public function Provide a full list of possible theme templates used by this style.
views_plugin_row::init public function 2
views_plugin_row::options_submit public function Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. Overrides views_plugin::options_submit 1
views_plugin_row::pre_render public function Allow the style to do stuff before each row is rendered. 5
views_plugin_row::query public function Add anything to the query that we might need to. Overrides views_plugin::query
views_plugin_row::render public function Render a row object. This usually passes through to a theme template of some form, but not always. 7
views_plugin_row::uses_fields public function