views_handler_argument_null.inc
File
handlers/views_handler_argument_null.incView source
- <?php
- /**
- * Argument handler that ignores the argument.
- */
- class views_handler_argument_null extends views_handler_argument {
- function option_definition() {
- $options = parent::option_definition();
- $options['must_not_be'] = array('default' => FALSE);
- return $options;
- }
-
- /**
- * Override options_form() so that only the relevant options
- * are displayed to the user.
- */
- function options_form(&$form, &$form_state) {
- parent::options_form($form, $form_state);
- $form['must_not_be'] = array(
- '#type' => 'checkbox',
- '#title' => t('Fail basic validation if any argument is given'),
- '#default_value' => !empty($this->options['must_not_be']),
- '#description' => t('By checking this field, you can use this to make sure views with more arguments than necessary fail validation.'),
- );
-
- unset($form['wildcard']);
- unset($form['wildcard_substitution']);
- }
-
- /**
- * Override default_actions() to remove actions that don't
- * make sense for a null argument.
- */
- function default_actions($which = NULL) {
- if ($which) {
- if (in_array($which, array('ignore', 'not found', 'empty', 'default'))) {
- return parent::default_actions($which);
- }
- return;
- }
- $actions = parent::default_actions();
- unset($actions['summary asc']);
- unset($actions['summary desc']);
- return $actions;
- }
-
- function validate_argument_basic($arg) {
- if (!empty($this->options['must_not_be'])) {
- return !isset($arg);
- }
-
- return parent::validate_argument_basic($arg);
- }
-
- /**
- * Override the behavior of query() to prevent the query
- * from being changed in any way.
- */
- function query() {}
- }