Foros del Web » Programando para Internet » PHP » CodeIgniter »

Layout para aplicar el mismo diseño a todo

Estas en el tema de Layout para aplicar el mismo diseño a todo en el foro de CodeIgniter en Foros del Web. hola amigos, alguien me pudiera decir cómo puedo hacer un layout en CodeIgniter que se le pueda aplicar a todas mis vistas o llamarlo desde ...
  #1 (permalink)  
Antiguo 10/09/2011, 16:13
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 7 meses
Puntos: 5
Pregunta Layout para aplicar el mismo diseño a todo

hola amigos, alguien me pudiera decir cómo puedo hacer un layout en CodeIgniter que se le pueda aplicar a todas mis vistas o llamarlo desde mis controladores y de esta manera todo el sitio tengs un mismo diseño en caunto a lo común para todos?????

Gracias
espero me ayuden
Salu2
  #2 (permalink)  
Antiguo 10/09/2011, 21:34
 
Fecha de Ingreso: abril-2010
Mensajes: 33
Antigüedad: 14 años
Puntos: 1
Respuesta: Layout para aplicar el mismo diseño a todo

hola un ejempo que funciona (version pequeña)

1. crear un template (template.php) y en ella coloco por ejemplo dos variables (tpl_body y tpl_title).
2. crear otro html (partial.php) que recibe la variable list_users y este partial.php es la parte que se refrescara del template.
3. el llamado
Código PHP:
Ver original
  1. $datos=array(); //datos para partial.php
  2. $datos['list_users']=$list_users;
  3.  
  4. $html=array(); //datos para el template.php
  5.  
  6. //cargamos partial.php como string
  7. $html['tpl_body']=$this->load->view('partial',$datos,true);
  8.  
  9. $html['tpl_title']="Mi Titulo";
  10.  
  11. //cargamos el tempate
  12. $this->load->view('template',$html);

claro es basico pero puede ser una solucion.

Saludos
  #3 (permalink)  
Antiguo 12/09/2011, 01:47
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 17 años, 11 meses
Puntos: 14
Respuesta: Layout para aplicar el mismo diseño a todo

Hola. Una posibilidad es crearte un helper donde cargue siempre las vistas de cabecera, menú, pie, ... etc y una vista que le pases como argumento.
__________________
No hay cuerda desafinada sino músico progresivo
  #4 (permalink)  
Antiguo 13/09/2011, 13:35
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Layout para aplicar el mismo diseño a todo

Cita:
Iniciado por Smolky Ver Mensaje
Hola. Una posibilidad es crearte un helper donde cargue siempre las vistas de cabecera, menú, pie, ... etc y una vista que le pases como argumento.
si, pero cómo pudiera hacer esto, soy principiante con el framwork
  #5 (permalink)  
Antiguo 13/09/2011, 14:11
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 17 años, 11 meses
Puntos: 14
Respuesta: Layout para aplicar el mismo diseño a todo

Pues básicamente tendrías que crear un helper. Puedes encontrar la documentación de lo que es aquí pero básicamente te puedo decir que es un conjunto de funciones que siguen el paradigma de programación tradicional (no orientado a objetos).

Dentro del helper habrá que crear una función, por ejemplo, una llamada mostrar_vista y esa función será algo parecido a esto

Código PHP:
function mostrar_vista ($vista$datos)
{
   
// Declaración de variables. Esto es necesario para poder acceder a modelos
   // y vistas ya que no tenemos $this desde el helper
   
$CI =& get_instance();


   
// Cargamos la cabecera
   
$CI->load->view (LAYOUTS_DIR."header") ;


   
// Cargamos la vista
   
$CI->load->view ($vista$datos) ;


   
// Cargamos el pie de página
   
$CI->load->view (LAYOUTS_DIR."foot") ;


Esto es quizás la versión más sencilla de la vista. Luego tendrás que extender tu la función para pasarle parámetros como títulos de página (por ejemplo) pero te pongo el ejemplo sencillo posible
__________________
No hay cuerda desafinada sino músico progresivo
  #6 (permalink)  
Antiguo 13/09/2011, 14:34
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Layout para aplicar el mismo diseño a todo

Ya creado el helper como lo utilizaría en mi controlador?????
  #7 (permalink)  
Antiguo 13/09/2011, 15:14
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 17 años, 11 meses
Puntos: 14
Respuesta: Layout para aplicar el mismo diseño a todo

Pues yo cargaría este helper en el fichero del autoload porque me temo que lo vas a usar bastante a menudo.

Aquí tienes la documentación de la carga automática de recursos (pero básicamente es editar un fichero en config/)
http://codeigniter.com/user_guide/ge...utoloader.html

Ahora que tienes siempre el helper cargado, sólo tienes que invocar la función desde el controlador
Código PHP:
// Una función del controlador...
public function index ()
{
   
// Cargamos los datos de un modelo de ejemplo
   
$datos $this->modelEjemplo->funcion () ;


   
// Llamamos a la vista y le pasamos los datos del modelo
   
cargar_vista ('listado'$datos) ;

__________________
No hay cuerda desafinada sino músico progresivo
  #8 (permalink)  
Antiguo 13/09/2011, 17:34
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Layout para aplicar el mismo diseño a todo

yo lo hago asi:

creas una carpeta includes que contenga un archivo template y un footer y un header

fuera de esta carpeta irán tus archivos que contendrán lo que va entre el header y el footer

este es el template.php
Código PHP:
//cargamos el header
$this->load->view('includes/header');
//este es el contenido dinamico
$this->load->view($main_content);
//el footer
$this->load->view('includes/footer'); 
Código PHP:
//controlador hola
    
function hola() {
//aplicamos los datos que contendra el main dinamico
        
$data = array(
//asignamos el index.php al main dinamico
            
'main_content' => 'index',
        );
//cargamos el template.php y dentro el index
        
$this->load->view('includes/template'$data);
    } 
Código PHP:
//Index
Hola jeje :) 
  #9 (permalink)  
Antiguo 14/09/2011, 01:47
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Layout para aplicar el mismo diseño a todo

Yo lo hago de otra manera. xD

Me creo un directorio template dentro de views, dentro de este, me creo regions, donde irá la cabecera, el pie de pagina, el sidebar...

Quedaría:

views/template
views/template/regions

Dentro de template, tengo directorios, por ejemplo, pages, home, contact, donde guardo los templates que son variantes del template, normalemte suele haber page.tpl.php, que sería la general, y home.tpl.php, que sería la home

Entonces después, tengo un directorio partials, que serán cargados dentro del template.

Código PHP:
Ver original
  1. public function index() {
  2.        
  3.        //cargo el partial, pasando un tercer parámetro a TRUE
  4.         $data_view = array(
  5.             'content' => $this->load->view('partials/content_partial', array(), TRUE)
  6.             );
  7.  
  8.         //le paso al template el partial que tengo en la variable data view
  9.         $this->load->view('template/page.tpl.php', $data_view);
  10.     }


Y entonces en mi page.tpl.php, tengo la variable $content, que es donde se cargará el partial.

Un saludo!
  #10 (permalink)  
Antiguo 14/09/2011, 09:14
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 7 meses
Puntos: 5
Pregunta Respuesta: Layout para aplicar el mismo diseño a todo

Alguién me pudiera explicar como funciona este Layout?????

http://codeigniter.com/wiki/layout_library/

Yo hago todo lo que dice pero no se como pasar los datos a la vista
  #11 (permalink)  
Antiguo 14/09/2011, 21:53
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Layout para aplicar el mismo diseño a todo

lo que pusiste tu miktrv es exactamente lo que yo hago ¬¬ jaja.
  #12 (permalink)  
Antiguo 15/09/2011, 00:57
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Layout para aplicar el mismo diseño a todo

jajaja es buen sistema, aunque seguro que si seguimos desarrollando en CI, encontraremos otras maneras, yo me estoy haciendo un helper chulo chulo para templates, para lo que es metas, etiquetas head body title, css, js etc

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #13 (permalink)  
Antiguo 15/09/2011, 07:55
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Layout para aplicar el mismo diseño a todo

Cita:
Iniciado por miktrv Ver Mensaje
jajaja es buen sistema, aunque seguro que si seguimos desarrollando en CI, encontraremos otras maneras, yo me estoy haciendo un helper chulo chulo para templates, para lo que es metas, etiquetas head body title, css, js etc

Un saludo!
Sería bueno si lo pudises campartir, pues lo que quiero hacer es eso mismo, pasar en variables los metas y todo lo que se requiera een el head
  #14 (permalink)  
Antiguo 17/09/2011, 04:10
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Layout para aplicar el mismo diseño a todo

Estoy trabajando en él, en cuanto lo tenga lo coloco como aporte!!

:D

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo

Etiquetas: diseño, frameworks-y-php-orientado-a-objetos, layout, todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:39.