Mercurial > hg > rr-repo
annotate sites/all/modules/views/handlers/views_handler_argument_formula.inc @ 13:134d4b2e75f6
updated quicktabs and google analytics modules
author | danieleb <danielebarchiesi@me.com> |
---|---|
date | Tue, 29 Oct 2013 13:48:59 +0000 |
parents | ff03f76ab3fe |
children |
rev | line source |
---|---|
danielebarchiesi@0 | 1 <?php |
danielebarchiesi@0 | 2 |
danielebarchiesi@0 | 3 /** |
danielebarchiesi@0 | 4 * @file |
danielebarchiesi@0 | 5 * Definition of views_handler_argument_formula. |
danielebarchiesi@0 | 6 */ |
danielebarchiesi@0 | 7 |
danielebarchiesi@0 | 8 /** |
danielebarchiesi@0 | 9 * Abstract argument handler for simple formulae. |
danielebarchiesi@0 | 10 * |
danielebarchiesi@0 | 11 * Child classes of this object should implement summary_argument, at least. |
danielebarchiesi@0 | 12 * |
danielebarchiesi@0 | 13 * Definition terms: |
danielebarchiesi@0 | 14 * - formula: The formula to use for this handler. |
danielebarchiesi@0 | 15 * |
danielebarchiesi@0 | 16 * @ingroup views_argument_handlers |
danielebarchiesi@0 | 17 */ |
danielebarchiesi@0 | 18 class views_handler_argument_formula extends views_handler_argument { |
danielebarchiesi@0 | 19 var $formula = NULL; |
danielebarchiesi@0 | 20 /** |
danielebarchiesi@0 | 21 * Constructor |
danielebarchiesi@0 | 22 */ |
danielebarchiesi@0 | 23 function construct() { |
danielebarchiesi@0 | 24 parent::construct(); |
danielebarchiesi@0 | 25 |
danielebarchiesi@0 | 26 if (!empty($this->definition['formula'])) { |
danielebarchiesi@0 | 27 $this->formula = $this->definition['formula']; |
danielebarchiesi@0 | 28 } |
danielebarchiesi@0 | 29 } |
danielebarchiesi@0 | 30 |
danielebarchiesi@0 | 31 function get_formula() { |
danielebarchiesi@0 | 32 return str_replace('***table***', $this->table_alias, $this->formula); |
danielebarchiesi@0 | 33 } |
danielebarchiesi@0 | 34 |
danielebarchiesi@0 | 35 /** |
danielebarchiesi@0 | 36 * Build the summary query based on a formula |
danielebarchiesi@0 | 37 */ |
danielebarchiesi@0 | 38 function summary_query() { |
danielebarchiesi@0 | 39 $this->ensure_my_table(); |
danielebarchiesi@0 | 40 // Now that our table is secure, get our formula. |
danielebarchiesi@0 | 41 $formula = $this->get_formula(); |
danielebarchiesi@0 | 42 |
danielebarchiesi@0 | 43 // Add the field. |
danielebarchiesi@0 | 44 $this->base_alias = $this->name_alias = $this->query->add_field(NULL, $formula, $this->field); |
danielebarchiesi@0 | 45 $this->query->set_count_field(NULL, $formula, $this->field); |
danielebarchiesi@0 | 46 |
danielebarchiesi@0 | 47 return $this->summary_basics(FALSE); |
danielebarchiesi@0 | 48 } |
danielebarchiesi@0 | 49 |
danielebarchiesi@0 | 50 /** |
danielebarchiesi@0 | 51 * Build the query based upon the formula |
danielebarchiesi@0 | 52 */ |
danielebarchiesi@0 | 53 function query($group_by = FALSE) { |
danielebarchiesi@0 | 54 $this->ensure_my_table(); |
danielebarchiesi@0 | 55 // Now that our table is secure, get our formula. |
danielebarchiesi@0 | 56 $placeholder = $this->placeholder(); |
danielebarchiesi@0 | 57 $formula = $this->get_formula() .' = ' . $placeholder; |
danielebarchiesi@0 | 58 $placeholders = array( |
danielebarchiesi@0 | 59 $placeholder => $this->argument, |
danielebarchiesi@0 | 60 ); |
danielebarchiesi@0 | 61 $this->query->add_where(0, $formula, $placeholders, 'formula'); |
danielebarchiesi@0 | 62 } |
danielebarchiesi@0 | 63 } |