Funcion global creada por mi [CodeIgniter]

Iniciado por Shell Root, 1 Febrero 2012, 09:54 AM

0 Miembros y 1 Visitante están viendo este tema.

Shell Root

Bueno, supongamos que tengo una función en donde siempre le hago un llamado (Desde diferente Vista/Modelo), como hago para crear una función global de tal forma que pueda ser llamada desde cualquier parte de mi proyecto.

No lo puedo heredar porque ya mi Modelo hereda algo...

Tendría que crear mi propia librería?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

[u]nsigned

Si hablamos solo de una funcion, no de un conjunto de funciones o de una clase, lo mejor seria que te crees un helper.

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Kase

helper  y lo añades al autoload....   


si ya tienes un objeto base que extiende de ci_controller  y tus controladores de este objeto...  no te cuesta nada añadirlo hay mismo. 
:¬¬

Shell Root

#3
opte por crear una helper, pero tengo un pequeño problema, tengo el siguiente código.
Código (php) [Seleccionar]
  function validateToken( $id ){
     if( token( $id ) ){
        echo "Si";
     }else{ echo "No"; }
  }
 
  function token( $id ){
     #if( !strlen($id) == 32 ){ return false; }
     
     $this->db->select('id, nombre');
     $this->db->where('id', $id);
     $query = $this->db->get('usuario');
     $row = $query->row();

     if( $row->id == $id ){
           return true;
     }else{ return false; }
  }


Pero cuando lo llamo mi helper desde mi vista, no ejecuta nada. Pero si ejecuto directamente desde la vista funciona correctamente. Que podría ser?




Me auto respondo, necesitaba crear una instancia del CI!
Código (php) [Seleccionar]

   $ci=& get_instance();
   $ci->load->database();

   /* {CODE} */
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

[u]nsigned

#4
No es recomendable llamar a funciones desde las Vistas, eso atenta con el modelo MVC. Lo ideal es generar todo en el controlador y guardarlo en una array, y cuando llamas a tu vista, pasarle dicho array como argumento:

Controlador:

Código (php) [Seleccionar]
<?php

class Mi_controlador extends CI_Controller {

   function 
index()
   {
      
$data['page_title'] = 'Pagina de Prueba';
      
$this->load->view('mi_vista'$data);
   }

}
?>


Vista:

Código (php) [Seleccionar]
<html>
<head>
<title><?php echo $page_title;?></title>
</head>
<body>
<h1>PoC</h1>
</body>
</html>


Y por ultimo, veo que tu función opera sobre DD.BB. Creo que eso seria mejor ponerlo en un Modelo xD

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Shell Root

@El As del Club Paris, eso lo se... Pero necesito de una función global,... Y lo de la vista, lo dije sólo a modo de ejemplo, por allí en la vista funcionaba correctamente, mientras que en mi helper no.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

[u]nsigned


No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!