|
|
Drupal example source code file (views_handler_argument_numeric.inc)
The views_handler_argument_numeric.inc Drupal example source code<?php // $Id: views_handler_argument_numeric.inc,v 1.1 2008/09/03 19:21:28 merlinofchaos Exp $ /** * @file * Contains the numeric argument handler. */ /** * Basic argument handler for arguments that are numeric. Incorporates * break_phrase. * * @ingroup views_argument_handlers */ class views_handler_argument_numeric extends views_handler_argument { function option_definition() { $options = parent::option_definition(); $options['break_phrase'] = array('default' => FALSE); $options['not'] = array('default' => FALSE); return $options; } function options_form(&$form, &$form_state) { parent::options_form($form, $form_state); // allow + for or, , for and $form['break_phrase'] = array( '#type' => 'checkbox', '#title' => t('Allow multiple terms per argument.'), '#description' => t('If selected, users can enter multiple arguments in the form of 1+2+3 or 1,2,3.'), '#default_value' => !empty($this->options['break_phrase']), ); $form['not'] = array( '#type' => 'checkbox', '#title' => t('Exclude the argument'), '#description' => t('If selected, the numbers entered in the argument will be excluded rather than limiting the view.'), '#default_value' => !empty($this->options['not']), ); } function title() { if (!$this->argument) { return !empty($this->definition['empty field name']) ? $this->definition['empty field name'] : t('Uncategorized'); } if (!empty($this->options['break_phrase'])) { views_break_phrase($this->argument, $this); } else { $this->value = array($this->argument); $this->operator = 'or'; } if (empty($this->value)) { return !empty($this->definition['empty field name']) ? $this->definition['empty field name'] : t('Uncategorized'); } if ($this->value === array(-1)) { return !empty($this->definition['invalid input']) ? $this->definition['invalid input'] : t('Invalid input'); } return implode($this->operator == 'or' ? ' + ' : ', ', $this->title_query()); } /** * Override for specific title lookups. */ function title_query() { return $this->value; } function query() { $this->ensure_my_table(); if (!empty($this->options['break_phrase'])) { views_break_phrase($this->argument, $this); } else { $this->value = array($this->argument); } if (count($this->value) > 1) { $operator = empty($this->options['not']) ? 'IN' : 'NOT IN'; $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d')); $this->query->add_where(0, "$this->table_alias.$this->real_field $operator ($placeholders)", $this->value); } else { $operator = empty($this->options['not']) ? '=' : '!='; $this->query->add_where(0, "$this->table_alias.$this->real_field $operator %d", $this->argument); } } } Other Drupal examples (source code examples)Here is a short list of links related to this Drupal views_handler_argument_numeric.inc source code file: |
"Drupal" is a registered trademark of Dries Buytaert.
my drupal tutorials and examples
Copyright
1998-2016 Alvin Alexander, alvinalexander.com
All Rights Reserved.
Beginning in 2016, a portion of the proceeds from pages under the '/drupal-code-examples/' URI will be donated to charity.