~desarrollokumbia/kumbia/ActiveRecord

« back to all changes in this revision

Viewing changes to active_record2/active_record_validator.php

  • Committer: Emilio Silveira
  • Date: 2010-08-07 03:56:00 UTC
  • Revision ID: emilio.rst@gmail.com-20100807035600-s9sooym3g5y8dnw3
Remplazando autoValidator por defaultValidator

Show diffs side-by-side

added added

removed removed

Lines of Context:
90
90
                        return TRUE;
91
91
                }
92
92
                                
93
 
                // Columnas autogeneradas
94
 
                $autogen = array();
 
93
                // Columnas con valor por defectos
 
94
                $default = array();
95
95
                
96
 
                // Verifica si existe columnas autogeneradas
97
 
                if(isset($validators['auto'])) {
 
96
                // Verifica si existe columnas con valor por defectos
 
97
                if(isset($validators['default'])) {
98
98
                        
99
99
                        // Itera en cada definicion de validacion
100
 
                        foreach($validators['auto'] as $v) {
101
 
                                // Si es una columna sin configuracion especial
102
 
                                if(is_string($v)) {
103
 
                                        $column = $v;                                   
104
 
                                        $params = NULL;
105
 
                                } else {
106
 
                                        $column = $v[0];
107
 
                                        unset($v[0]);
108
 
                                        $params = $v;
109
 
                                }
110
 
                                
111
 
                                // Verifica las condiciones para cuando la columna es autogenerada
112
 
                                $autogen[$column] = $this->autoValidator($model, $column, $params, $update);
 
100
                        foreach($validators['default'] as $v) {
 
101
                                // Verifica las condiciones para cuando la columna es con valor por defecto
 
102
                                $default[$v] = $this->defaultValidator($model, $v);
113
103
                        }
114
104
                        
115
105
                        // Aprovecha y libera memoria :)
116
 
                        unset($validators['auto']);
 
106
                        unset($validators['default']);
117
107
                        
118
108
                }
119
109
                
127
117
                        foreach($validators['notNull'] as $v) {
128
118
                                // Si es una columna sin configuracion especial
129
119
                                if(is_string($v)) {
130
 
                                        // Si es autogenerada entonces salta la validacion
131
 
                                        if(isset($autogen[$v]) && $autogen[$v]) {
 
120
                                        // Si es con valor por defecto entonces salta la validacion
 
121
                                        if(isset($default[$v]) && $default[$v]) {
132
122
                                                continue;
133
123
                                        }
134
124
                                        
135
125
                                        $column = $v;                                   
136
126
                                        $params = NULL;
137
127
                                } else {
138
 
                                        // Si es autogenerada entonces salta la validacion
139
 
                                        if(isset($autogen[$v[0]]) && $autogen[$v[0]]) {
 
128
                                        // Si es con valor por defecto entonces salta la validacion
 
129
                                        if(isset($default[$v[0]]) && $default[$v[0]]) {
140
130
                                                continue;
141
131
                                        }
142
132
                                        
162
152
                                
163
153
                                // Si es una columna sin configuracion especial
164
154
                                if(is_string($v)) {
165
 
                                        // Si es autogenerada entonces salta la validacion
166
 
                                        if(isset($autogen[$v]) && $autogen[$v]) {
 
155
                                        // Si es con valor por defecto entonces salta la validacion
 
156
                                        if(isset($default[$v]) && $default[$v]) {
167
157
                                                continue;
168
158
                                        }
169
159
 
170
160
                                        $column = $v;                                   
171
161
                                        $params = NULL;
172
162
                                } else {
173
 
                                        // Si es autogenerada entonces salta la validacion
174
 
                                        if(is_string($v[0]) && isset($autogen[$v[0]]) && $autogen[$v[0]]) {
 
163
                                        // Si es con valor por defecto entonces salta la validacion
 
164
                                        if(is_string($v[0]) && isset($default[$v[0]]) && $default[$v[0]]) {
175
165
                                                continue;
176
166
                                        }
177
167
                                        
197
187
         * 
198
188
         * @param ActiveRecord $model
199
189
         * @param string $column columna a validar
200
 
         * @param array $params
201
 
         * @param boolean $update
202
190
         * @return boolean
203
191
         */
204
 
        public function autoValidator($model, $column, $params, $update)
 
192
        public function defaultValidator($model, $column)
205
193
        {
206
 
                // Se ha indicado el campo y no se considera nulo, por lo tanto no se autogenerará
 
194
                // Se ha indicado el campo y no se considera nulo, por lo tanto no se tomara por defecto
207
195
                if(isset($model->$column) && $model->$column != '') {
208
 
                        // Se considera para autogenerar cuando sea nulo 
 
196
                        // Se considera con valor por defecto cuando sea nulo
209
197
                        return FALSE;
210
198
                }
211
199
                
212
 
                // Se verifica para cuando es autogenerado
213
 
                if($params) {
214
 
                        // Autogenerado al actualizar
215
 
                        if(isset($params['update'])) {
216
 
                                return $update == $params['update'];
217
 
                        }
218
 
                                
219
 
                        // Autogenerado al crear y al actualizar
220
 
                        return isset($params['createAndUpdate']);
221
 
                }
222
 
                
223
 
                // Autogenerado al crear
224
 
                return !$update;
 
200
                // Valor por defecto
 
201
                return TRUE;
225
202
        }
226
203
        
227
204
        /**