Fatal Error NO CONSTRUCTOR: Common_Model_MainModelTextos__construct_NULL_integer
EXCEPTION_OTHER : 0
{main}
open/home/aleli4ni/public_html/application/modules/common/models/MainModelTextos.php
1     <?php
2    
3    
abstract class Common_Model_MainModelTextos extends Common_Model_MainModel {
4    
5        private 
$_textos null;
6        private 
$_id_idioma null;
7        private 
$_class null;
8    
9        
/**
10        * Setea el modelo de la clase principal
11        *
12        * @param $modelo Common_Model_ Objeto de la clase principal
13        */
14       
private function setModel($modelo) {
15           
$this->_class $modelo;
16       }
17   
18       
/**
19        * Retorna el modelo de la clase principal
20        *
21        * @return Common_Model_ Objeto de la clase principal
22        */
23       
public function getModel() {
24           return 
$this->_class;
25       }
26   
27       
/**
28        * Setea el id del idioma
29        *
30        * @param $id_idioma int ID del idioma
31        */
32       
public function setIdIdioma($id_idioma) {
33           if (isset(
$this->id_idioma))
34               
$this->id_idioma $id_idioma;
35   
36           
$this->_id_idioma $id_idioma;
37       }
38   
39       
/**
40        * Retorna el id del idioma
41        *
42        * @return int
43        */
44       
public function getIdIdioma() {
45           return 
$this->_id_idioma;
46       }
47   
48       
/**
49        * Retorna coleccion de objetos
50        *
51        * @return array Common_Model_PaginasTextos
52        */
53       
public function getTextos() {
54           if ((
$this->_textos == null) || (is_array($this->_textos) && count($this->_textos) == 0))
55               
$this->cargarTextos();
56   
57           return 
$this->_textos;
58       }
59   
60       
/**
61        * Retorna un objeto del tipo Common_Model_PaginasTextos
62        *
63        * @return Common_Model_PaginasTextos  FALSE si no encuentra datos.
64        */
65       
public function getTexto() {
66           if (
count($this->getTextos()) == 0)
67               return 
null;
68   
69           return 
$this->_textos[0];
70       }
71   
72       
/**
73        * Setea el array de textos
74        */
75       
public function setTextos(&$array) {
76           
$this->_textos $array;
77       }
78   
79       
/**
80        * Agregar un objeto al array
81        *
82        * @param Common_Model_PaginasTextos Objeto de Texto
83        */
84       
public function addTexto($obj) {
85           
$this->_textos[] = $obj;
86       }
87   
88       
/**
89        * Constructor
90        */
91       
public function __construct($class$num_args$args) {
92           
// Guardo el modelo de la clase principal
93           
$this->setModel($class);
94   
95           
// Inicializo propiedades
96           
$this->_id_idioma null;
97           
$this->_textos null;
98   
99           
// Verifico si hay parametros en el constructor.
100          
$i $num_args;
101          if (
$i 0) {
102              
$argsStr '';
103              foreach (
$args as $arg)
104                  
$argsStr .= '_' gettype($arg);
105  
106              if (
method_exists($class$constructor '__construct' $argsStr))
107                  
call_user_func_array(array($class$constructor), $args);
108              else
109                  throw new 
Exception('NO CONSTRUCTOR: ' get_class() . $constructorNULL);
110          }
111      }
112  
113      
/**
114       * Constructor
115       *
116       * @param $id integer ID del registro
117       */
118      
public function __construct_integer($id) {
119          if (
$id) {
120              
$this->setId($id);
121              
parent::find();
122  
123              if (!
$this->getEsVirgen()) {
124                  
$this->getModel()->cargarRelaciones();
125              } else {
126                  
$translator Zend_Registry::get('Zend_Translate');
127                  
$error $translator->_('Record Not Found');
128                  throw new 
Exception($error);
129              }
130          }
131      }
132  
133      
/**
134       * Constructor
135       *
136       * @param $id integer ID del registro
137       * @param $id_idioma integer ID del idioma
138       */
139      
public function __construct_integer_integer($id$id_idioma) {
140          if (
$id && $id_idioma) {
141              
$this->_id_idioma $id_idioma;
142              
$this->__construct_integer($id);
143          }
144      }
145  
146      
/**
147       * Constructor
148       *
149       * @param $options array Datarow
150       */
151      
public function __construct_array($options) {
152          if (
is_array($options) && count($options) > 0) {
153              
$this->setOptions($options);
154              
$this->setEsVirgen(false);
155          }
156      }
157  
158      
/**
159       * Constructor
160       *
161       * @param $options array Datarow
162       * @param $id_idioma integer ID del idioma
163       */
164      
public function __construct_array_integer($options$id_idioma) {
165          if (
is_array($options) && count($options) > && $id_idioma) {
166              
$this->_id_idioma $id_idioma;
167              
$this->__construct_array($options);
168          }
169      }
170  
171      
/**
172       * Constructor
173       *
174       * @param $url string URL del registro
175       * @param $id_idioma integer ID_IDIOMA del registro
176       */
177      
public function __construct_string_integer($url$id_idioma) {
178          if (
$url != '' && $id_idioma 0) {
179              
$classTextos get_class($this->getModel()) . "Textos";
180  
181              
// Busco el registro por URL + ID_IDIOMA
182              
$tablaTextos = new $classTextos();
183              
$select $tablaTextos->getDbTable()->select()
184                      ->
where('url = ?'$url)
185                      ->
where('id_idioma = ?'$id_idioma);
186              
$row $tablaTextos->fetchAll($select);
187              
// Recorro el registro encontrado y cargo el objeto actual
188              
foreach ($row as $reg) {
189                  
// Seteo el ID
190                  
$this->setId($reg[$tablaTextos->getPK(0)]);
191                  
// Seteo el ID_IDIOMA
192                  
$this->setIdIdioma($id_idioma);
193                  
parent::find();
194                  break;
195              }
196  
197              if (!
$this->getEsVirgen()) {
198                  
$this->getModel()->cargarRelaciones();
199              } else {
200                  
$translator Zend_Registry::get('Zend_Translate');
201                  
$error $translator->_('Record Not Found');
202              }
203          }
204      }
205  
206      
/**
207       * Se encarga de levantar junto con el objeto todas sus relaciones
208       */
209      
public function cargarRelaciones() {
210          
$this->cargarTextos();
211      }
212  
213      
/**
214       * Busca los textos asociados al registro.
215       */
216      
private function cargarTextos() {
217          
$this->_textos = array();
218  
219          if (!
$this->getEsVirgen()) {
220              
$classTextos get_class($this->getModel()) . "Textos";
221  
222              
// Cargo los textos
223              
$tablaTextos = new $classTextos($this->getId());
224              
$rows $tablaTextos->fetchTextosById($this->getIdIdioma());
225              
$this->_textos Common_Model_MainModel::getObjectArray($rows$classTextos);
226          }
227      }
228  
229      
/**
230       * Guarda el registro en la base de datos y a sus relaciones.
231       *
232       * @return bool TRUE si pudo guardarlo.
233       */
234      
public function save() {
235          
$db Zend_Db_Table_Abstract::getDefaultAdapter();
236          
$db->beginTransaction();
237          try {
238              
parent::save();
239              
$this->textosRealDelete();
240  
241              
// Guardo los textos relacionados
242              
if (count($this->getTextos()) > 0) {
243                  foreach (
$this->getTextos() as $texto) {
244                      
$texto->setId($this->getId());
245                      
$texto->setEsVirgen(true);
246                      
$texto->save();
247                  }
248              }
249              
$db->commit();
250              return 
true;
251          } catch (
Exception $e) {
252              
$db->rollBack();
253              throw 
$e;
254          }
255          return 
false;
256      }
257  
258      
/**
259       * Elimina fisicamente los textos relacionados.
260       *
261       * @return bool TRUE si pudo eliminarlo.
262       */
263      
protected function textosRealDelete() {
264          if (
count($this->getTextos()) > 0) {
265              
$db Zend_Db_Table_Abstract::getDefaultAdapter();
266              
$db->beginTransaction();
267              try {
268                  foreach (
$this->getTextos() as $texto) {
269                      
$texto->setId($this->getId());
270                      
$texto->realDelete();
271                  }
272                  
$db->commit();
273                  return 
true;
274              } catch (
Exception $e) {
275                  
$db->rollBack();
276                  throw 
$e;
277              }
278          }
279          return 
true;
280      }
281  
282      
/**
283       * Elimina el registro fisicamente desde la Base de Datos y sus relaciones.
284       *
285       * @return bool TRUE si pudo eliminarlo.
286       */
287      
public function realDelete() {
288          
$db Zend_Db_Table_Abstract::getDefaultAdapter();
289          
$db->beginTransaction();
290          try {
291              
$this->textosRealDelete();
292              
parent::realDelete();
293              
$db->commit();
294              return 
true;
295          } catch (
Exception $e) {
296              
$db->rollBack();
297              throw 
$e;
298          }
299          return 
false;
300      }
301  
302      
/**
303       * Retorna un objeto de la coleccion
304       *
305       * @param int $id_idioma ID del idioma a buscar
306       *
307       * @return Objetos de la clase Texto
308       */
309      
public function findTextoByIdIdioma($id_idioma) {
310          
$result false;
311  
312          if (
count($this->_textos) > 0) {
313              foreach (
$this->_textos as $texto) {
314                  
// si la clave corresponde con el parametro retorno el objeto
315                  
if ($id_idioma == $texto->id_idioma) {
316                      
$result $texto;
317                      break;
318                  }
319              }
320          }
321          return 
$result;
322      }
323  
324      
/**
325       * Busca el row que tenga esa url para el idioma especificado y carga el objeto
326       *
327       * @param string El valor del campo url que se quiere buscar.
328       * @param int id del idioma por el cual filtrar
329       * @param int id_padre Si se quiere indicar el id_padre.
330       */
331      
public function findByUrl($url$id_idioma$activo 1$id_padre null) {
332          
$dbTable $this->getDbTable();
333          
$dbTableName $dbTable->info("name");
334          
$select $dbTable->select();
335  
336          
$classModelo $this->getModel();
337  
338          
// obtengo la pk de la tabla pcipal.
339          
$strNombrePKModelo $classModelo->getPK(0);
340  
341          
// obtengo la pk de la tabla textos.
342          
$classNameTexto get_class($classModelo) . "Textos";
343          
$classTexto = new $classNameTexto();
344          
$strNombrePKModeloTextos $classTexto->getPK(0);
345  
346          
$select->setIntegrityCheck(false);
347          
$select->from(array("p" => $dbTableName));
348          
$select->join(array('t' => $dbTableName "_textos"), 't.' $strNombrePKModeloTextos ' = p.' $strNombrePKModelo"");
349          
$select->where("t.id_idioma = ?"$id_idioma);
350          
$select->where("p.borrado = ?"0);
351          
$select->where('t.url = ?'$url);
352  
353          if (
$activo == 1)
354              
$select->where("p.activo = ?"1);
355  
356          if (
$id_padre !== null)
357              
$select->where('id_padre = ?'$id_padre);
358          
$result $dbTable->fetchRow($select);
359  
360          if (
count($result) > 0) {
361              
$this->__construct_array_integer($result->toArray(), $id_idioma);
362          }
363      }
364  
365      public function 
getByIdPadre($id_idioma null) {
366          if (
$id_idioma === null)
367              throw new 
Exception('id_idioma required.');
368  
369          
$dbTable $this->getDbTable();
370          
$dbTableName $dbTable->info("name");
371          
$classModelo $this->getModel();
372          
// obtengo la pk de la tabla textos.
373          
$classNameTexto get_class($classModelo) . "Textos";
374          
$classTexto = new $classNameTexto();
375          
// obtengo la pk de la tabla pcipal.
376          
$strNombrePKModelo $classModelo->getPK(0);
377          
$strNombrePKModeloTextos $classTexto->getPK(0);
378  
379          
$select $dbTable->select();
380          
$select->setIntegrityCheck(false);
381          
$select->from(array("p" => $dbTableName));
382          
$select->join(array('t' => $dbTableName "_textos"), 't.' $strNombrePKModeloTextos ' = p.' $strNombrePKModelo);
383          
$select->where('t.id_idioma = ?'$id_idioma);
384          if (
$this->getId() > 0) {
385              
$select->where('p.' $strNombrePKModelo ' != ?'$this->getId());
386          }
387  
388          
$id_padre $this->{$this->getFKPadre()};
389  
390          if (
$id_padre != null) {
391              
// Id Padre
392              
if ($id_padre != 0)
393                  
$select->where($this->getFKPadre() . ' = ?'$id_padre);
394              else
395                  
$select->where($this->getFKPadre() . ' IS NULL');
396          }
397          
$select->where("borrado = ?"0);
398          
$select->where("activo = ?"1);
399          
$select->order("orden ASC");
400          
$result $this->getDbTable()->fetchAll($select);
401          return 
$result;
402      }
403  
404  }
405  
Stack trace
  1. 17/home/aleli4ni/public_html/application/modules/common/models/Programas.php
    Common_Model_MainModelTextos->__construct(Common_Model_Programas, 2, Array(2))
  2. 85/home/aleli4ni/public_html/application/modules/default/controllers/ServiciosController.php
    Common_Model_Programas->__construct(NULL, 1)
  3. 516/home/aleli4ni/public_html/library/Zend/Controller/Action.php
    ServiciosController->dtAction()
  4. 308/home/aleli4ni/public_html/library/Zend/Controller/Dispatcher/Standard.php
    Zend_Controller_Action->dispatch('dtAction')
  5. 954/home/aleli4ni/public_html/library/Zend/Controller/Front.php
    Zend_Controller_Dispatcher_Standard->dispatch(Zend_Controller_Request_Http, Zend_Controller_Response_Http)
  6. 97/home/aleli4ni/public_html/library/Zend/Application/Bootstrap/Bootstrap.php
    Zend_Controller_Front->dispatch()
  7. 366/home/aleli4ni/public_html/library/Zend/Application.php
    Zend_Application_Bootstrap_Bootstrap->run()
  8. 31/home/aleli4ni/public_html/public/index.php
    Zend_Application->run()