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

problema CodeIgniter

Estas en el tema de problema CodeIgniter en el foro de CodeIgniter en Foros del Web. Estimados amigos: Estoy empezando con el modelo MVC, mas concretamente con CodeIgniter y porsupuesto ya me surgieron algunas dudas. Yo generalmente venia trabajando con webs ...
  #1 (permalink)  
Antiguo 10/08/2007, 16:07
 
Fecha de Ingreso: abril-2007
Mensajes: 33
Antigüedad: 17 años
Puntos: 0
problema CodeIgniter

Estimados amigos:

Estoy empezando con el modelo MVC, mas concretamente con CodeIgniter y porsupuesto ya me surgieron algunas dudas.
Yo generalmente venia trabajando con webs modulares, es decir una plantilla general y traer el modulo a la parte de la pagina que corresponda.
En la guia de uso de CodeIgniter veo que se traen los datos directamente a la plantilla.

La guia oficial pone este ejemplo:

el controlador:

Código PHP:
<?php
class Blog extends Controller {

    function 
index()
    {
        
$data['title'] = "My Real Title";
        
$data['heading'] = "My Real Heading";
        
        
$this->load->view('blogview'$data);
    }
}
?>


la vista:

Código PHP:
<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
    <h1><?php echo $heading;?></h1>
</body>
</html>

¿Si yo al modulo le quiero dar un formato diferente a cada uno, disposicion de divs, etc. necesito una plantilla por cada pagina ?

¿No se puede trabajar con modulos y una sola plantilla general?

Disculpen mi ignorancia, pero estoy leyendo desde ayer la guia oficial (y encima en inglés!!) y no encuentro solucion a esto.

Si alguno utiliza este framework y sabe como es esto le agradezco que me lo aclare.

Gracias desde ya.
  #2 (permalink)  
Antiguo 10/08/2007, 18:02
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: problema CodeIgniter

Hola,

la respuesta corta y sencilla: asignar vistas a la variable $data. La información esta aquí. Un ejemplo, primero preparo mi vista de la siguiente manera:
plantilla general
Código PHP:
<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
    <div id="menu">Aquí va el menú</div>
    <div id="sidebar">Aquí van links estáticos y también dinámicos</div>
    <div id="contenido">
           <h1><?php echo $heading;?></h1> 
           <?php echo $contenido?>
    </div>
</body>
</html>
Con esto puedes ver que vamos a reusar esta plantilla, generalmente siempre tenemos le mismo menú y la misma información en una barra lateral (es sólo un ejemplo)

Necesitamos una plantilla específica para el índice de tu blog xD
plantilla indice blog se llama: blog_indice.php
Código PHP:
<h1><?php echo $entrada_title?></h1>
<p><?php echo $entrada;?></p>
<blockquote><?php echo $comentarios?></blockquote>
Y ahora lo interesante, el controlador
Código PHP:
class Blog extends Controller {

    function 
index()
    {
        
$data['title'] = "My Real Title";
        
$data['heading'] = "My Real Heading";
        
        
// vamos a integrar la plantilla del index del blog
        
$contenido['entrada_title'] = 'Hola Mundo';
        
$contenido['entrada'] = 'Estoy aprendiendo CodeIgniter ^_^';
        
$contenido['comentarios'] = 'Mundo: me parece bien!';

        
// checa esto!
        
$data['contenido'] = $this->load->view('blog_indice'$contenidotrue);

        
// y ya con esto terminamos
        
$this->load->view('blogview'$data);
    }

Al pasar el tercer parámetro al metodo view() estamos indicando que nos regrese como cadena esa plantilla, por lo que podemos incluirla como una variable en la plantilla general. Sólo espero no haberte confundido más. xD

Saludos.
  #3 (permalink)  
Antiguo 12/08/2007, 13:08
 
Fecha de Ingreso: abril-2007
Mensajes: 33
Antigüedad: 17 años
Puntos: 0
Re: problema CodeIgniter

Muchas gracias 'k4k4' por la ayuda.

Ya que veo que la tenes clara con CodeIgniter (yo hace 3 días que empeze con este frame).
En las ultimas horas me apareció otra duda.

Quiero eliminar el 'index.php' de la url
por ej tengo:

localhost/misitio/index.php/ejemplo/

y quiero que se lea:

localhost/misitio/ejemplo/

Hice lo mismo que dice el tutorial coloque en el .htaccess (esta habilitado ya que en otros sitios me funciona)

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ /index.php/$1 [L]


la duda que tengo es si coloque bien el .htaccess

en este caso lo coloque en la carpeta raiz, o sea donde esta la pagina 'index.php', como no funcionó lo fui colocando en otros directorios y nada.

Me podrías/n aclarar en donde va el .htaccess o que es lo que puedo estar haciendo mal para que no me este funcionando el rewrite.

Muchas gracias desde ya y saludos para todos.
  #4 (permalink)  
Antiguo 13/08/2007, 00:09
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: problema CodeIgniter

Hola chipe,

según la documentación de CodeIgniter tu .htaccess debe estar así:
Código:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
El directorio de tu aplicación quedaría así:
Código:
system\
user_guide\
.htaccess
index.php
license.txt
por lo que el .htaccess va donde hayas puesto tu aplicación

Ahora, un paso importante es configurar a CodeIgniter para que tome en cuenta el .htaccess.

Para lograr esto abre el archivo system/application/config/config.php y cambia la variable
Código PHP:
$config['index_page'] = "index.php"
a
Código PHP:
$config['index_page'] = ""
Si ya haz hecho todos los pasos anteriores y todavía tienes problemas, revisa el log de Apache. Tal vez ahí pueda estar la respuesta.

Saludos,

k4
  #5 (permalink)  
Antiguo 18/10/2007, 21:50
 
Fecha de Ingreso: marzo-2006
Mensajes: 401
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: problema CodeIgniter

cuando se imprime esto
Código PHP:
   <?php echo $contenido?>
SE IMPRIME La plantilla blog?
__________________
Importzona.com - Portal Racing
Tunerspot.net - your spot on net
  #6 (permalink)  
Antiguo 18/10/2007, 23:23
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: problema CodeIgniter

Hola,

así es, específicamente la plantilla blog_indice.

Saludos.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 15:38.