@@ -4,18 +4,18 @@ discard block |
||
4 | 4 | * Parent class for indicating indexes on models. As of writing this, it is only used |
5 | 5 | * when deleting model objects that have no primary key, but clearly this can be expanded |
6 | 6 | */ |
7 | -class EE_Index{ |
|
7 | +class EE_Index { |
|
8 | 8 | protected $_name; |
9 | 9 | protected $_field_names; |
10 | 10 | protected $_model_name; |
11 | - public function __construct($fields){ |
|
11 | + public function __construct($fields) { |
|
12 | 12 | $this->_field_names = $fields; |
13 | 13 | } |
14 | - public function _construct_finalize($name,$model_name){ |
|
14 | + public function _construct_finalize($name, $model_name) { |
|
15 | 15 | $this->_name = $name; |
16 | 16 | $this->_model_name = $model_name; |
17 | 17 | } |
18 | - public function field_names(){ |
|
18 | + public function field_names() { |
|
19 | 19 | return $this->_field_names; |
20 | 20 | } |
21 | 21 | /** |
@@ -23,19 +23,19 @@ discard block |
||
23 | 23 | * @param string $model_name like Event, Question_Group, etc. omit the EEM_ |
24 | 24 | * @return EEM_Base |
25 | 25 | */ |
26 | - protected function _get_model($model_name){ |
|
27 | - $modelInstance=call_user_func("EEM_".$model_name."::instance"); |
|
26 | + protected function _get_model($model_name) { |
|
27 | + $modelInstance = call_user_func("EEM_".$model_name."::instance"); |
|
28 | 28 | return $modelInstance; |
29 | 29 | } |
30 | 30 | /** |
31 | 31 | * Gets all the fields for this index |
32 | 32 | * @return EE_Model_Field_Base[] |
33 | 33 | */ |
34 | - public function fields(){ |
|
34 | + public function fields() { |
|
35 | 35 | $fields = array(); |
36 | 36 | $model = $this->_get_model($this->_model_name); |
37 | - foreach($model->field_settings() as $field_name => $field_obj){ |
|
38 | - if(in_array($field_name,$this->field_names())){ |
|
37 | + foreach ($model->field_settings() as $field_name => $field_obj) { |
|
38 | + if (in_array($field_name, $this->field_names())) { |
|
39 | 39 | $fields[$field_name] = $field_obj; |
40 | 40 | } |
41 | 41 | } |
@@ -1,12 +1,12 @@ |
||
1 | 1 | <?php if ( ! defined('EVENT_ESPRESSO_VERSION')) |
2 | 2 | exit('No direct script access allowed'); |
3 | 3 | /** |
4 | - * EE_Model_Parser |
|
5 | - * |
|
6 | - * @package Event Espresso |
|
7 | - * @subpackage |
|
8 | - * @author Mike Nelson |
|
9 | - */ |
|
4 | + * EE_Model_Parser |
|
5 | + * |
|
6 | + * @package Event Espresso |
|
7 | + * @subpackage |
|
8 | + * @author Mike Nelson |
|
9 | + */ |
|
10 | 10 | class EE_Model_Parser { |
11 | 11 | const table_alias_model_relation_chain_separator = '__'; |
12 | 12 | const table_alias_model_relation_chain_prefix_end = '___'; |
@@ -20,7 +20,7 @@ discard block |
||
20 | 20 | * @param string $string_to_pad |
21 | 21 | * @return string |
22 | 22 | */ |
23 | - public static function pad_with_periods($string_to_pad){ |
|
23 | + public static function pad_with_periods($string_to_pad) { |
|
24 | 24 | return ".".$string_to_pad."."; |
25 | 25 | } |
26 | 26 | /** |
@@ -28,8 +28,8 @@ discard block |
||
28 | 28 | * @param string $string_to_trim |
29 | 29 | * @return string |
30 | 30 | */ |
31 | - public static function trim_periods($string_to_trim){ |
|
32 | - return trim($string_to_trim,'.'); |
|
31 | + public static function trim_periods($string_to_trim) { |
|
32 | + return trim($string_to_trim, '.'); |
|
33 | 33 | } |
34 | 34 | |
35 | 35 | |
@@ -40,22 +40,22 @@ discard block |
||
40 | 40 | * @param $this_model_name |
41 | 41 | * @return string which can be added onto table aliases to make them unique |
42 | 42 | */ |
43 | - public static function extract_table_alias_model_relation_chain_prefix($model_relation_chain,$this_model_name){ |
|
43 | + public static function extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this_model_name) { |
|
44 | 44 | //eg $model_relation_chain = 'Venue.Event_Venue.Event.Registration", and $this_model_name = 'Event' |
45 | 45 | $model_relation_chain = self::pad_with_periods($model_relation_chain); |
46 | 46 | $this_model_name = self::pad_with_periods($this_model_name); |
47 | 47 | //eg '.Venue.Event_Venue.Event.Registration." and '.Event.' |
48 | 48 | //remove this model name and everything afterwards |
49 | - $pos_of_model_name = strpos($model_relation_chain,$this_model_name); |
|
50 | - $model_relation_chain = substr($model_relation_chain,0,$pos_of_model_name); |
|
49 | + $pos_of_model_name = strpos($model_relation_chain, $this_model_name); |
|
50 | + $model_relation_chain = substr($model_relation_chain, 0, $pos_of_model_name); |
|
51 | 51 | //eg '.Venue.Event_Venue.' |
52 | 52 | //trim periods |
53 | 53 | $model_relation_chain = self::trim_periods($model_relation_chain); |
54 | 54 | //eg 'Venue.Event_Venue' |
55 | 55 | //replace periods with double-underscores |
56 | - $model_relation_chain = str_replace(".",self::table_alias_model_relation_chain_separator,$model_relation_chain); |
|
56 | + $model_relation_chain = str_replace(".", self::table_alias_model_relation_chain_separator, $model_relation_chain); |
|
57 | 57 | //eg 'Venue__Event_Venue' |
58 | - if($model_relation_chain !=''){ |
|
58 | + if ($model_relation_chain != '') { |
|
59 | 59 | $model_relation_chain = $model_relation_chain.self::table_alias_model_relation_chain_prefix_end; |
60 | 60 | } |
61 | 61 | //eg 'Venue_Event_Venue___' |
@@ -66,14 +66,14 @@ discard block |
||
66 | 66 | * @param string $table_alias_with_model_relation_chain_prefix which CAN have a table alias model relation chain prefix (or not) |
67 | 67 | * @return string |
68 | 68 | */ |
69 | - public static function remove_table_alias_model_relation_chain_prefix($table_alias_with_model_relation_chain_prefix){ |
|
69 | + public static function remove_table_alias_model_relation_chain_prefix($table_alias_with_model_relation_chain_prefix) { |
|
70 | 70 | //does this actually have a table alias model relation chain prefix? |
71 | - $pos = strpos($table_alias_with_model_relation_chain_prefix,self::table_alias_model_relation_chain_prefix_end); |
|
72 | - if( $pos !== FALSE){ |
|
71 | + $pos = strpos($table_alias_with_model_relation_chain_prefix, self::table_alias_model_relation_chain_prefix_end); |
|
72 | + if ($pos !== FALSE) { |
|
73 | 73 | //yes |
74 | 74 | //find that triple underscore and remove it and everything before it |
75 | 75 | $table_alias = substr($table_alias_with_model_relation_chain_prefix, $pos + strlen(self::table_alias_model_relation_chain_prefix_end)); |
76 | - }else{ |
|
76 | + } else { |
|
77 | 77 | $table_alias = $table_alias_with_model_relation_chain_prefix; |
78 | 78 | } |
79 | 79 | return $table_alias; |
@@ -83,14 +83,14 @@ discard block |
||
83 | 83 | * @param string $table_alias_with_model_relation_chain_prefix |
84 | 84 | * @return string |
85 | 85 | */ |
86 | - public static function get_prefix_from_table_alias_with_model_relation_chain_prefix($table_alias_with_model_relation_chain_prefix){ |
|
86 | + public static function get_prefix_from_table_alias_with_model_relation_chain_prefix($table_alias_with_model_relation_chain_prefix) { |
|
87 | 87 | //does this actually have a table alias model relation chain prefix? |
88 | - $pos = strpos($table_alias_with_model_relation_chain_prefix,self::table_alias_model_relation_chain_prefix_end); |
|
89 | - if( $pos !== FALSE){ |
|
88 | + $pos = strpos($table_alias_with_model_relation_chain_prefix, self::table_alias_model_relation_chain_prefix_end); |
|
89 | + if ($pos !== FALSE) { |
|
90 | 90 | //yes |
91 | 91 | //find that triple underscore and remove it and everything before it |
92 | 92 | $prefix = substr($table_alias_with_model_relation_chain_prefix, 0, $pos + strlen(self::table_alias_model_relation_chain_prefix_end)); |
93 | - }else{ |
|
93 | + } else { |
|
94 | 94 | $prefix = ''; |
95 | 95 | } |
96 | 96 | return $prefix; |
@@ -105,7 +105,7 @@ discard block |
||
105 | 105 | * @param string $original_query_param |
106 | 106 | * @return string |
107 | 107 | */ |
108 | - public static function extract_table_alias_model_relation_chain_from_query_param($model_name, $original_query_param){ |
|
108 | + public static function extract_table_alias_model_relation_chain_from_query_param($model_name, $original_query_param) { |
|
109 | 109 | $relation_chain = self::extract_model_relation_chain($model_name, $original_query_param); |
110 | 110 | $table_alias_with_model_relation_chain_prefix = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($relation_chain, $model_name); |
111 | 111 | return $table_alias_with_model_relation_chain_prefix; |
@@ -119,7 +119,7 @@ discard block |
||
119 | 119 | * @param string $original_query_param |
120 | 120 | * @return string |
121 | 121 | */ |
122 | - public static function extract_model_relation_chain($model_name,$original_query_param){ |
|
122 | + public static function extract_model_relation_chain($model_name, $original_query_param) { |
|
123 | 123 | //prefix and postfix both with a period, as this facilitates searching |
124 | 124 | $model_name = EE_Model_Parser::pad_with_periods($model_name); |
125 | 125 | $original_query_param = EE_Model_Parser::pad_with_periods($original_query_param); |
@@ -127,7 +127,7 @@ discard block |
||
127 | 127 | //eg, if we're looking for the model relation chain from Event to Payment, the original query param is probably something like |
128 | 128 | //"Registration.Transaction.Payment.PAY_ID", $pos_of_model_string points to the 'P' or Payment. We want the string |
129 | 129 | //"Registration.Transaction.Payment" |
130 | - $model_relation_chain = substr($original_query_param, 0,$pos_of_model_string+strlen($model_name)); |
|
130 | + $model_relation_chain = substr($original_query_param, 0, $pos_of_model_string + strlen($model_name)); |
|
131 | 131 | return EE_Model_Parser::trim_periods($model_relation_chain); |
132 | 132 | } |
133 | 133 | |
@@ -142,11 +142,11 @@ discard block |
||
142 | 142 | * @param string $model_relation_chain |
143 | 143 | * @return string |
144 | 144 | */ |
145 | - public static function replace_model_name_with_join_model_name_in_model_relation_chain($model_name,$join_model_name,$model_relation_chain){ |
|
145 | + public static function replace_model_name_with_join_model_name_in_model_relation_chain($model_name, $join_model_name, $model_relation_chain) { |
|
146 | 146 | $model_name = EE_Model_Parser::pad_with_periods($model_name); |
147 | 147 | $join_model_name = EE_Model_Parser::pad_with_periods($join_model_name); |
148 | 148 | $model_relation_chain = EE_Model_Parser::pad_with_periods($model_relation_chain); |
149 | - $replaced_with_periods = str_replace($model_name,$join_model_name,$model_relation_chain); |
|
149 | + $replaced_with_periods = str_replace($model_name, $join_model_name, $model_relation_chain); |
|
150 | 150 | return EE_Model_Parser::trim_periods($replaced_with_periods); |
151 | 151 | } |
152 | 152 | } |
@@ -1,5 +1,6 @@ discard block |
||
1 | -<?php if ( ! defined('EVENT_ESPRESSO_VERSION')) |
|
1 | +<?php if ( ! defined('EVENT_ESPRESSO_VERSION')) { |
|
2 | 2 | exit('No direct script access allowed'); |
3 | +} |
|
3 | 4 | /** |
4 | 5 | * EE_Model_Parser |
5 | 6 | * |
@@ -73,7 +74,7 @@ discard block |
||
73 | 74 | //yes |
74 | 75 | //find that triple underscore and remove it and everything before it |
75 | 76 | $table_alias = substr($table_alias_with_model_relation_chain_prefix, $pos + strlen(self::table_alias_model_relation_chain_prefix_end)); |
76 | - }else{ |
|
77 | + } else{ |
|
77 | 78 | $table_alias = $table_alias_with_model_relation_chain_prefix; |
78 | 79 | } |
79 | 80 | return $table_alias; |
@@ -90,7 +91,7 @@ discard block |
||
90 | 91 | //yes |
91 | 92 | //find that triple underscore and remove it and everything before it |
92 | 93 | $prefix = substr($table_alias_with_model_relation_chain_prefix, 0, $pos + strlen(self::table_alias_model_relation_chain_prefix_end)); |
93 | - }else{ |
|
94 | + } else{ |
|
94 | 95 | $prefix = ''; |
95 | 96 | } |
96 | 97 | return $prefix; |
@@ -4,7 +4,7 @@ |
||
4 | 4 | * Used to indicate a primary key index - ie, a set of fields which, when used in combination, |
5 | 5 | * also uniquely identify a model object in the database (in case there is no primary key field). |
6 | 6 | */ |
7 | -class EE_Primary_Key_Index extends EE_Unique_Index{ |
|
7 | +class EE_Primary_Key_Index extends EE_Unique_Index { |
|
8 | 8 | //yep, actually the same as unique index right now |
9 | 9 | |
10 | 10 | } |
@@ -4,8 +4,8 @@ discard block |
||
4 | 4 | * For defining the main table of the model. This is the table with the model's primary key's field. So for CPT models, this will |
5 | 5 | * probably be the wp_posts table (so the table name supplied will be 'posts', as the 'wp_' varies). For models only using one table, this will be that table. |
6 | 6 | */ |
7 | -require_once( EE_MODELS . 'helpers/EE_Table_Base.php'); |
|
8 | -class EE_Primary_Table extends EE_Table_Base{ |
|
7 | +require_once(EE_MODELS.'helpers/EE_Table_Base.php'); |
|
8 | +class EE_Primary_Table extends EE_Table_Base { |
|
9 | 9 | |
10 | 10 | /** |
11 | 11 | * |
@@ -15,14 +15,14 @@ discard block |
||
15 | 15 | * @param boolean $global whether the table is "global" as in there is only 1 table on an entire multisite install, |
16 | 16 | * or whether each site on a multisite install has a copy of this table |
17 | 17 | */ |
18 | - function __construct($table_name, $pk_column = null, $global = false){ |
|
19 | - parent::__construct($table_name, $pk_column, $global ); |
|
18 | + function __construct($table_name, $pk_column = null, $global = false) { |
|
19 | + parent::__construct($table_name, $pk_column, $global); |
|
20 | 20 | } |
21 | 21 | /** |
22 | 22 | * Gets SQL for this table and assigning it an alias. Eg " wp_esp_attendee AS Attendee " |
23 | 23 | * @return string |
24 | 24 | */ |
25 | - function get_table_sql(){ |
|
25 | + function get_table_sql() { |
|
26 | 26 | return " ".$this->get_table_name()." AS ".$this->get_table_alias()." "; |
27 | 27 | } |
28 | 28 |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * Base class for defining the tables that comprise models. This is used to store information |
5 | 5 | * about the table\s alias, private key, etc. |
6 | 6 | */ |
7 | -abstract class EE_Table_Base{ |
|
7 | +abstract class EE_Table_Base { |
|
8 | 8 | var $_table_name; |
9 | 9 | var $_table_alias; |
10 | 10 | /** |
@@ -21,30 +21,30 @@ discard block |
||
21 | 21 | * @param boolean $global whether the table is "global" as in there is only 1 table on an entire multisite install, |
22 | 22 | * or whether each site on a multisite install has a copy of this table |
23 | 23 | */ |
24 | - function __construct($table_name, $pk_column, $global = false ){ |
|
24 | + function __construct($table_name, $pk_column, $global = false) { |
|
25 | 25 | global $wpdb; |
26 | - if( $global ) { |
|
26 | + if ($global) { |
|
27 | 27 | $prefix = $wpdb->base_prefix; |
28 | 28 | } else { |
29 | 29 | $prefix = $wpdb->prefix; |
30 | 30 | } |
31 | 31 | //if they didn't add the prefix, let's add it |
32 | - if( strpos( $table_name, $prefix ) !== 0 ) { |
|
33 | - $table_name = $prefix . $table_name; |
|
32 | + if (strpos($table_name, $prefix) !== 0) { |
|
33 | + $table_name = $prefix.$table_name; |
|
34 | 34 | } |
35 | 35 | $this->_table_name = $table_name; |
36 | 36 | $this->_pk_column = $pk_column; |
37 | 37 | } |
38 | 38 | |
39 | - function _construct_finalize_with_alias($table_alias){ |
|
39 | + function _construct_finalize_with_alias($table_alias) { |
|
40 | 40 | $this->_table_alias = $table_alias; |
41 | 41 | } |
42 | 42 | |
43 | - function get_table_name(){ |
|
43 | + function get_table_name() { |
|
44 | 44 | return $this->_table_name; |
45 | 45 | } |
46 | - function get_table_alias(){ |
|
47 | - if( ! $this->_table_alias){ |
|
46 | + function get_table_alias() { |
|
47 | + if ( ! $this->_table_alias) { |
|
48 | 48 | throw new EE_Error("You must call _construct_finalize_with_alias before using the EE_Table_Base. Did you forget to call parent::__construct at the end of your EEMerimental_Base child's __construct?"); |
49 | 49 | } |
50 | 50 | return $this->_table_alias; |
@@ -54,7 +54,7 @@ discard block |
||
54 | 54 | * |
55 | 55 | * @return string name of column of PK |
56 | 56 | */ |
57 | - function get_pk_column(){ |
|
57 | + function get_pk_column() { |
|
58 | 58 | return $this->_pk_column; |
59 | 59 | } |
60 | 60 | |
@@ -64,8 +64,8 @@ discard block |
||
64 | 64 | * returns a string with the table alias, a period, and the private key's column. |
65 | 65 | * @return string |
66 | 66 | */ |
67 | - function get_fully_qualified_pk_column(){ |
|
68 | - $sql = $this->get_table_alias().".".$this->get_pk_column(); |
|
67 | + function get_fully_qualified_pk_column() { |
|
68 | + $sql = $this->get_table_alias().".".$this->get_pk_column(); |
|
69 | 69 | return $sql; |
70 | 70 | } |
71 | 71 | |
@@ -74,9 +74,9 @@ discard block |
||
74 | 74 | * returns the special sql for a inner select with a limit. |
75 | 75 | * @return string SQL select |
76 | 76 | */ |
77 | - public function get_select_join_limit( $limit ) { |
|
78 | - $limit = is_array( $limit ) ? 'LIMIT ' . implode(',', array_map( 'intval', $limit ) ) : 'LIMIT ' . (int) $limit; |
|
79 | - $SQL = SP . '(SELECT * FROM ' . $this->_table_name . SP . $limit . ') AS ' . $this->_table_alias; |
|
77 | + public function get_select_join_limit($limit) { |
|
78 | + $limit = is_array($limit) ? 'LIMIT '.implode(',', array_map('intval', $limit)) : 'LIMIT '.(int) $limit; |
|
79 | + $SQL = SP.'(SELECT * FROM '.$this->_table_name.SP.$limit.') AS '.$this->_table_alias; |
|
80 | 80 | return $SQL; |
81 | 81 | } |
82 | 82 | } |
@@ -4,7 +4,7 @@ |
||
4 | 4 | * Used to indicate a UNIQUE key index - ie, a set of fields which must be unique |
5 | 5 | * for ALL the model objects of this type |
6 | 6 | */ |
7 | -class EE_Unique_Index extends EE_Index{ |
|
7 | +class EE_Unique_Index extends EE_Index { |
|
8 | 8 | //yep, actually the same as index right now |
9 | 9 | |
10 | 10 | } |
@@ -6,7 +6,7 @@ discard block |
||
6 | 6 | * in order to specify which model the foreign key points to (eg, the foreign key may have a value of 34, but is that Transaction with |
7 | 7 | * ID 34 or Registration with ID 34? The EE_Any_Foreign_Model_name_Field specifies which of the two). |
8 | 8 | */ |
9 | -require_once( EE_MODELS . 'relations/EE_Belongs_To_Relation.php'); |
|
9 | +require_once(EE_MODELS.'relations/EE_Belongs_To_Relation.php'); |
|
10 | 10 | |
11 | 11 | class EE_Belongs_To_Any_Relation extends EE_Belongs_To_Relation { |
12 | 12 | |
@@ -19,8 +19,8 @@ discard block |
||
19 | 19 | |
20 | 20 | |
21 | 21 | $other_table_pk_field = $this->get_other_model()->get_primary_key_field(); |
22 | - $this_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain,$this->get_this_model()->get_this_model_name()) . $this_table_fk_field->get_table_alias(); |
|
23 | - $other_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_other_model()->get_this_model_name()) . $other_table_pk_field->get_table_alias(); |
|
22 | + $this_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_this_model()->get_this_model_name()).$this_table_fk_field->get_table_alias(); |
|
23 | + $other_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_other_model()->get_this_model_name()).$other_table_pk_field->get_table_alias(); |
|
24 | 24 | $other_table = $this->get_other_model()->get_table_for_alias($other_table_alias); |
25 | 25 | return $this->_left_join($other_table, |
26 | 26 | $other_table_alias, |
@@ -58,12 +58,12 @@ discard block |
||
58 | 58 | */ |
59 | 59 | function remove_relation_to($this_obj_or_id, $other_obj_or_id) { |
60 | 60 | $this_model_obj = $this->get_this_model()->ensure_is_obj($this_obj_or_id, true); |
61 | - $other_model_obj = $this->get_other_model()->ensure_is_obj( $other_obj_or_id ); |
|
61 | + $other_model_obj = $this->get_other_model()->ensure_is_obj($other_obj_or_id); |
|
62 | 62 | //find the field on th eother model which is a foreign key to this model |
63 | 63 | $fk_on_this_model = $this->get_this_model()->get_foreign_key_to($this->get_other_model()->get_this_model_name()); |
64 | 64 | //set that field on the other model to this model's ID |
65 | 65 | $this_model_obj->set($fk_on_this_model->get_name(), null, true); |
66 | - $this_model_obj->set($this->get_this_model()->get_field_containing_related_model_name()->get_name(),null,true); |
|
66 | + $this_model_obj->set($this->get_this_model()->get_field_containing_related_model_name()->get_name(), null, true); |
|
67 | 67 | $this_model_obj->save(); |
68 | 68 | return $other_model_obj; |
69 | 69 | } |
@@ -1,7 +1,7 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | -require_once( EE_MODELS . 'relations/EE_Model_Relation_Base.php'); |
|
4 | -class EE_HABTM_Relation extends EE_Model_Relation_Base{ |
|
3 | +require_once(EE_MODELS.'relations/EE_Model_Relation_Base.php'); |
|
4 | +class EE_HABTM_Relation extends EE_Model_Relation_Base { |
|
5 | 5 | /** |
6 | 6 | * Model whicih defines the relation between two other models. Eg, the EE_Event_Question_Group model, |
7 | 7 | * which joins EE_Event and EE_Question_Group |
@@ -18,7 +18,7 @@ discard block |
||
18 | 18 | * @param boolean $block_deletes for this type of relation, we block by default for now. if there are related models across this relation, block (prevent and add an error) the deletion of this model |
19 | 19 | * @param type $blocking_delete_error_message a customized error message on blocking deletes instead of the default |
20 | 20 | */ |
21 | - function __construct($joining_model_name,$block_deletes = true, $blocking_delete_error_message =''){ |
|
21 | + function __construct($joining_model_name, $block_deletes = true, $blocking_delete_error_message = '') { |
|
22 | 22 | $this->_joining_model_name = $joining_model_name; |
23 | 23 | parent::__construct($block_deletes, $blocking_delete_error_message); |
24 | 24 | } |
@@ -26,7 +26,7 @@ discard block |
||
26 | 26 | * Gets the joining model's object |
27 | 27 | * @return EEM_Base |
28 | 28 | */ |
29 | - function get_join_model(){ |
|
29 | + function get_join_model() { |
|
30 | 30 | return $this->_get_model($this->_joining_model_name); |
31 | 31 | } |
32 | 32 | /** |
@@ -34,21 +34,21 @@ discard block |
||
34 | 34 | * @param string $model_relation_chain like 'Event.Event_Venue.Venue' |
35 | 35 | * @return string of SQL |
36 | 36 | */ |
37 | - function get_join_to_intermediate_model_statement($model_relation_chain){ |
|
37 | + function get_join_to_intermediate_model_statement($model_relation_chain) { |
|
38 | 38 | //create sql like |
39 | 39 | //LEFT JOIN join_table AS join_table_alias ON this_table_alias.this_table_pk = join_table_alias.join_table_fk_to_this |
40 | 40 | //LEFT JOIN other_table AS other_table_alias ON join_table_alias.join_table_fk_to_other = other_table_alias.other_table_pk |
41 | 41 | //remember the model relation chain to the JOIN model, because we'll |
42 | 42 | //need it for get_join_statement() |
43 | 43 | $this->_model_relation_chain_to_join_model = $model_relation_chain; |
44 | - $this_table_pk_field = $this->get_this_model()->get_primary_key_field();//get_foreign_key_to($this->get_other_model()->get_this_model_name()); |
|
44 | + $this_table_pk_field = $this->get_this_model()->get_primary_key_field(); //get_foreign_key_to($this->get_other_model()->get_this_model_name()); |
|
45 | 45 | $join_table_fk_field_to_this_table = $this->get_join_model()->get_foreign_key_to($this->get_this_model()->get_this_model_name()); |
46 | - $this_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_this_model()->get_this_model_name()) . $this_table_pk_field->get_table_alias(); |
|
46 | + $this_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_this_model()->get_this_model_name()).$this_table_pk_field->get_table_alias(); |
|
47 | 47 | |
48 | - $join_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_join_model()->get_this_model_name()) . $join_table_fk_field_to_this_table->get_table_alias(); |
|
48 | + $join_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_join_model()->get_this_model_name()).$join_table_fk_field_to_this_table->get_table_alias(); |
|
49 | 49 | $join_table = $this->get_join_model()->get_table_for_alias($join_table_alias); |
50 | 50 | //phew! ok, we have all the info we need, now we can create the SQL join string |
51 | - $SQL = $this->_left_join($join_table, $join_table_alias, $join_table_fk_field_to_this_table->get_table_column(), $this_table_alias, $this_table_pk_field->get_table_column()) . $this->get_join_model()->_construct_internal_join_to_table_with_alias($join_table_alias); |
|
51 | + $SQL = $this->_left_join($join_table, $join_table_alias, $join_table_fk_field_to_this_table->get_table_column(), $this_table_alias, $this_table_pk_field->get_table_column()).$this->get_join_model()->_construct_internal_join_to_table_with_alias($join_table_alias); |
|
52 | 52 | |
53 | 53 | return $SQL; |
54 | 54 | } |
@@ -60,18 +60,18 @@ discard block |
||
60 | 60 | * @param string $model_relation_chain like 'Event.Event_Venue.Venue' |
61 | 61 | * @return string of SQL |
62 | 62 | */ |
63 | - function get_join_statement($model_relation_chain){ |
|
64 | - if( $this->_model_relation_chain_to_join_model === NULL ){ |
|
65 | - throw new EE_Error( sprintf( __( 'When using EE_HABTM_Relation to create a join, you must call get_join_to_intermediate_model_statement BEFORE get_join_statement', 'event_espresso' ))); |
|
63 | + function get_join_statement($model_relation_chain) { |
|
64 | + if ($this->_model_relation_chain_to_join_model === NULL) { |
|
65 | + throw new EE_Error(sprintf(__('When using EE_HABTM_Relation to create a join, you must call get_join_to_intermediate_model_statement BEFORE get_join_statement', 'event_espresso'))); |
|
66 | 66 | } |
67 | 67 | $join_table_fk_field_to_this_table = $this->get_join_model()->get_foreign_key_to($this->get_this_model()->get_this_model_name()); |
68 | - $join_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($this->_model_relation_chain_to_join_model, $this->get_join_model()->get_this_model_name()) . $join_table_fk_field_to_this_table->get_table_alias(); |
|
68 | + $join_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($this->_model_relation_chain_to_join_model, $this->get_join_model()->get_this_model_name()).$join_table_fk_field_to_this_table->get_table_alias(); |
|
69 | 69 | $other_table_pk_field = $this->get_other_model()->get_primary_key_field(); |
70 | 70 | $join_table_fk_field_to_other_table = $this->get_join_model()->get_foreign_key_to($this->get_other_model()->get_this_model_name()); |
71 | - $other_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_other_model()->get_this_model_name()) . $other_table_pk_field->get_table_alias(); |
|
71 | + $other_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_other_model()->get_this_model_name()).$other_table_pk_field->get_table_alias(); |
|
72 | 72 | $other_table = $this->get_other_model()->get_table_for_alias($other_table_alias); |
73 | 73 | |
74 | - $SQL = $this->_left_join($other_table, $other_table_alias, $other_table_pk_field->get_table_column(), $join_table_alias, $join_table_fk_field_to_other_table->get_table_column()) . $this->get_other_model()->_construct_internal_join_to_table_with_alias($other_table_alias); |
|
74 | + $SQL = $this->_left_join($other_table, $other_table_alias, $other_table_pk_field->get_table_column(), $join_table_alias, $join_table_fk_field_to_other_table->get_table_column()).$this->get_other_model()->_construct_internal_join_to_table_with_alias($other_table_alias); |
|
75 | 75 | return $SQL; |
76 | 76 | } |
77 | 77 | |
@@ -84,36 +84,36 @@ discard block |
||
84 | 84 | * @param array $extra_join_model_fields_n_values col=>val pairs that are used as extra conditions for checking existing values and for setting new rows if no exact matches. |
85 | 85 | * @return EE_Base_Class |
86 | 86 | */ |
87 | - function add_relation_to($this_obj_or_id, $other_obj_or_id, $extra_join_model_fields_n_values = array() ){ |
|
87 | + function add_relation_to($this_obj_or_id, $other_obj_or_id, $extra_join_model_fields_n_values = array()) { |
|
88 | 88 | $this_model_obj = $this->get_this_model()->ensure_is_obj($this_obj_or_id, true); |
89 | 89 | $other_model_obj = $this->get_other_model()->ensure_is_obj($other_obj_or_id, true); |
90 | 90 | //check if such a relationship already exists |
91 | 91 | $join_model_fk_to_this_model = $this->get_join_model()->get_foreign_key_to($this->get_this_model()->get_this_model_name()); |
92 | 92 | $join_model_fk_to_other_model = $this->get_join_model()->get_foreign_key_to($this->get_other_model()->get_this_model_name()); |
93 | 93 | |
94 | - $cols_n_values = array( |
|
94 | + $cols_n_values = array( |
|
95 | 95 | $join_model_fk_to_this_model->get_name() => $this_model_obj->ID(), |
96 | 96 | $join_model_fk_to_other_model->get_name() => $other_model_obj->ID()); |
97 | 97 | |
98 | 98 | //if $where_query exists lets add them to the query_params. |
99 | - if ( !empty( $extra_join_model_fields_n_values ) ) { |
|
99 | + if ( ! empty($extra_join_model_fields_n_values)) { |
|
100 | 100 | //make sure we strip any of the join model names from the $where_query cause we don't need that in here (why? because client code may have used the same conditionals for get_all_related which DOES need the join model name) |
101 | 101 | //make sure we strip THIS models name from the query param |
102 | - foreach ( $extra_join_model_fields_n_values as $query_param => $val ) { |
|
103 | - $query_param = str_replace($this->get_join_model()->get_this_model_name().".","", $query_param); |
|
102 | + foreach ($extra_join_model_fields_n_values as $query_param => $val) { |
|
103 | + $query_param = str_replace($this->get_join_model()->get_this_model_name().".", "", $query_param); |
|
104 | 104 | $parsed_query[$query_param] = $val; |
105 | 105 | } |
106 | - $cols_n_values = array_merge( $cols_n_values, $parsed_query ); |
|
106 | + $cols_n_values = array_merge($cols_n_values, $parsed_query); |
|
107 | 107 | } |
108 | 108 | |
109 | - $query_params = array( $cols_n_values ); |
|
109 | + $query_params = array($cols_n_values); |
|
110 | 110 | |
111 | 111 | |
112 | 112 | $existing_entry_in_join_table = $this->get_join_model()->get_one($query_params); |
113 | 113 | //if there is already an entry in the join table, indicating a relationship, we're done |
114 | 114 | //again, if you want more sophisticated logic or insertions (handling more columns than just 2 foreign keys to |
115 | 115 | //the other tables, use the joining model directly! |
116 | - if( ! $existing_entry_in_join_table ){ |
|
116 | + if ( ! $existing_entry_in_join_table) { |
|
117 | 117 | $this->get_join_model()->insert($cols_n_values); |
118 | 118 | } |
119 | 119 | return $other_model_obj; |
@@ -125,29 +125,29 @@ discard block |
||
125 | 125 | * * @param array $where_query col=>val pairs that are used as extra conditions for checking existing values and for removing existing rows if exact matches exist. |
126 | 126 | * @return EE_Base_Class |
127 | 127 | */ |
128 | - function remove_relation_to($this_obj_or_id, $other_obj_or_id, $where_query = array() ){ |
|
128 | + function remove_relation_to($this_obj_or_id, $other_obj_or_id, $where_query = array()) { |
|
129 | 129 | $this_model_obj = $this->get_this_model()->ensure_is_obj($this_obj_or_id, true); |
130 | 130 | $other_model_obj = $this->get_other_model()->ensure_is_obj($other_obj_or_id, true); |
131 | 131 | //check if such a relationship already exists |
132 | 132 | $join_model_fk_to_this_model = $this->get_join_model()->get_foreign_key_to($this->get_this_model()->get_this_model_name()); |
133 | 133 | $join_model_fk_to_other_model = $this->get_join_model()->get_foreign_key_to($this->get_other_model()->get_this_model_name()); |
134 | 134 | |
135 | - $cols_n_values = array( |
|
135 | + $cols_n_values = array( |
|
136 | 136 | $join_model_fk_to_this_model->get_name() => $this_model_obj->ID(), |
137 | 137 | $join_model_fk_to_other_model->get_name() => $other_model_obj->ID()); |
138 | 138 | |
139 | 139 | //if $where_query exists lets add them to the query_params. |
140 | - if ( !empty( $where_query ) ) { |
|
140 | + if ( ! empty($where_query)) { |
|
141 | 141 | //make sure we strip any of the join model names from the $where_query cause we don't need that in here (why? because client code may have used the same conditionals for get_all_related which DOES need the join model name) |
142 | 142 | //make sure we strip THIS models name from the query param |
143 | - foreach ( $where_query as $query_param => $val ) { |
|
144 | - $query_param = str_replace($this->get_join_model()->get_this_model_name().".","", $query_param); |
|
143 | + foreach ($where_query as $query_param => $val) { |
|
144 | + $query_param = str_replace($this->get_join_model()->get_this_model_name().".", "", $query_param); |
|
145 | 145 | $parsed_query[$query_param] = $val; |
146 | 146 | } |
147 | - $cols_n_values = array_merge( $cols_n_values, $parsed_query ); |
|
147 | + $cols_n_values = array_merge($cols_n_values, $parsed_query); |
|
148 | 148 | } |
149 | 149 | |
150 | - $existing_entry_in_join_table = $this->get_join_model()->delete( array($cols_n_values) ); |
|
150 | + $existing_entry_in_join_table = $this->get_join_model()->delete(array($cols_n_values)); |
|
151 | 151 | return $other_model_obj; |
152 | 152 | } |
153 | 153 | } |
@@ -17,6 +17,7 @@ |
||
17 | 17 | * get related models across the relation, and add-and-remove the relationships. |
18 | 18 | * @param boolean $block_deletes for this type of relation, we block by default for now. if there are related models across this relation, block (prevent and add an error) the deletion of this model |
19 | 19 | * @param type $blocking_delete_error_message a customized error message on blocking deletes instead of the default |
20 | + * @param string $joining_model_name |
|
20 | 21 | */ |
21 | 22 | function __construct($joining_model_name,$block_deletes = true, $blocking_delete_error_message =''){ |
22 | 23 | $this->_joining_model_name = $joining_model_name; |
@@ -7,16 +7,16 @@ discard block |
||
7 | 7 | * ID 34 or Registration with ID 34? The EE_Any_Foreign_Model_name_Field specifies which of the two). |
8 | 8 | * |
9 | 9 | */ |
10 | -require_once( EE_MODELS . 'relations/EE_Model_Relation_Base.php'); |
|
11 | -class EE_Has_Many_Any_Relation extends EE_Has_Many_Relation{ |
|
10 | +require_once(EE_MODELS.'relations/EE_Model_Relation_Base.php'); |
|
11 | +class EE_Has_Many_Any_Relation extends EE_Has_Many_Relation { |
|
12 | 12 | |
13 | - function get_join_statement($model_relation_chain){ |
|
13 | + function get_join_statement($model_relation_chain) { |
|
14 | 14 | //create the sql string like |
15 | 15 | // LEFT JOIN other_table AS table_alias ON this_table_alias.pk = other_table_alias.fk extra_join_conditions |
16 | 16 | $this_table_pk_field = $this->get_this_model()->get_primary_key_field(); |
17 | 17 | $other_table_fk_field = $this->get_other_model()->get_foreign_key_to($this->get_this_model()->get_this_model_name()); |
18 | - $pk_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_this_model()->get_this_model_name()) . $this_table_pk_field->get_table_alias(); |
|
19 | - $fk_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_other_model()->get_this_model_name()) . $other_table_fk_field->get_table_alias(); |
|
18 | + $pk_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_this_model()->get_this_model_name()).$this_table_pk_field->get_table_alias(); |
|
19 | + $fk_table_alias = EE_Model_Parser::extract_table_alias_model_relation_chain_prefix($model_relation_chain, $this->get_other_model()->get_this_model_name()).$other_table_fk_field->get_table_alias(); |
|
20 | 20 | $fk_table = $this->get_other_model()->get_table_for_alias($fk_table_alias); |
21 | 21 | $field_with_model_name = $this->get_other_model()->get_field_containing_related_model_name(); |
22 | 22 | |
@@ -25,7 +25,7 @@ discard block |
||
25 | 25 | $other_table_fk_field->get_table_column(), |
26 | 26 | $pk_table_alias, |
27 | 27 | $this_table_pk_field->get_table_column(), |
28 | - $fk_table_alias . '.' . $field_with_model_name->get_table_column() . "='" . $this->get_this_model()->get_this_model_name() . "'" ) |
|
28 | + $fk_table_alias.'.'.$field_with_model_name->get_table_column()."='".$this->get_this_model()->get_this_model_name()."'") |
|
29 | 29 | .$this->get_other_model()->_construct_internal_join_to_table_with_alias($fk_table_alias); |
30 | 30 | } |
31 | 31 | /** |
@@ -34,7 +34,7 @@ discard block |
||
34 | 34 | * @param EE_Base_Class/int $other_obj_or_id |
35 | 35 | * @return EE_Base_Class |
36 | 36 | */ |
37 | - function add_relation_to($this_obj_or_id, $other_obj_or_id ){ |
|
37 | + function add_relation_to($this_obj_or_id, $other_obj_or_id) { |
|
38 | 38 | $this_model_obj = $this->get_this_model()->ensure_is_obj($this_obj_or_id, true); |
39 | 39 | $other_model_obj = $this->get_other_model()->ensure_is_obj($other_obj_or_id, true); |
40 | 40 | |
@@ -53,12 +53,12 @@ discard block |
||
53 | 53 | * @param EE_Base_Class/int $other_obj_or_id |
54 | 54 | * @return EE_Base_Class |
55 | 55 | */ |
56 | - function remove_relation_to($this_obj_or_id, $other_obj_or_id){ |
|
56 | + function remove_relation_to($this_obj_or_id, $other_obj_or_id) { |
|
57 | 57 | $other_model_obj = $this->get_other_model()->ensure_is_obj($other_obj_or_id, true); |
58 | 58 | //find the field on th eother model which is a foreign key to this model |
59 | 59 | $fk_field_on_other_model = $this->get_other_model()->get_foreign_key_to($this->get_this_model()->get_this_model_name()); |
60 | 60 | //set that field on the other model to this model's ID |
61 | - $other_model_obj->set($fk_field_on_other_model->get_name(),null, true); |
|
61 | + $other_model_obj->set($fk_field_on_other_model->get_name(), null, true); |
|
62 | 62 | $other_model_obj->set($this->get_other_model()->get_field_containing_related_model_name()->get_name(), null, true); |
63 | 63 | $other_model_obj->save(); |
64 | 64 | return $other_model_obj; |