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

Codeigniter - integrar contenidos

Estas en el tema de Codeigniter - integrar contenidos en el foro de CodeIgniter en Foros del Web. Hola! Armé un abm de algunas tablas con codeigniter y crocery_crud y me gustaría poder armar una estructura en conde tenga: Mi título (header) Categorias ...
  #1 (permalink)  
Antiguo 19/12/2012, 15:06
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 4 meses
Puntos: 5
Codeigniter - integrar contenidos

Hola!

Armé un abm de algunas tablas con codeigniter y crocery_crud y me gustaría poder armar una estructura en conde tenga:

Mi título (header)
Categorias | Productos | Clientes (menú)

Contenido (luego que según el botón cargue en contenido correspondiente)


Mi idea es trabajar con variables en donde me facilite con rapidez cambiar el titulo y el nombre de los botones del menú.

Si alguien tiene algún ejemplo se los agradecería, no encontré algo demasiado claro en la web aún.
__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 27/12/2012, 19:38
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Codeigniter - integrar contenidos

Hola.
Mira el siguiente:
https://github.com/ariok/codeigniter-boilerplate
Descárgalo, instálalo y mira a ver si te sirve.
Es un proyecto que combina Codeigniter y Html5boilerplate http://html5boilerplate.com/

Saludos
  #3 (permalink)  
Antiguo 29/12/2012, 12:46
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 4 meses
Puntos: 5
Respuesta: Codeigniter - integrar contenidos

Muchas gracias vicenreler! voy a probarlo a ver como resulta. :)
__________________
Saludos!!!
Maru.-
  #4 (permalink)  
Antiguo 29/12/2012, 13:12
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: Codeigniter - integrar contenidos

Cita:
Iniciado por vicenreler Ver Mensaje
Hola.
Mira el siguiente:
https://github.com/ariok/codeigniter-boilerplate
Descárgalo, instálalo y mira a ver si te sirve.
Es un proyecto que combina Codeigniter y Html5boilerplate http://html5boilerplate.com/

Saludos

No entiendo que tiene que ver Boilerplate con lo que esta pidiendo ¬¬
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 29/12/2012, 14:55
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Codeigniter - integrar contenidos

Cita:
Iniciado por NUCKLEAR Ver Mensaje
No entiendo que tiene que ver Boilerplate con lo que esta pidiendo ¬¬
Según lo que pide, le he proporcionado un ejemplo de un proyecto ya hecho que me parece que suple sus necesidades y además aporta Boilerplate que es una muy buena opción como plantilla para desarrollar páginas web a día de hoy.

Lo que yo no entiendo es tu comentario. ?¿?¿?
Yo tenía archivado ese ejemplo y he intentado ayudarle. Si no le vale o no le gusta qué se le va a hacer. Y si no quiere usar Boilerplate siempre podrá quitarlo y si no lo conocía, pues una cosa nueva que aprende. Simplemente he informado qué es lo que tiene el repositorio...
  #6 (permalink)  
Antiguo 29/12/2012, 16:02
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 9 meses
Puntos: 137
Respuesta: Codeigniter - integrar contenidos

concuerdo con @NUCKLEAR, ese proyecto solo combina codeigniter con Html5boilerplate, nada más....
__________________
>> abimaelmartell.com
  #7 (permalink)  
Antiguo 29/12/2012, 17:53
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Codeigniter - integrar contenidos

El proyecto tiene un menú sencillo de navegación y usa variables. Eso es lo que ha preguntado Maru77. O eso es lo que he entendido yo. Luego el abm y crocery_crud no sé que son...
  #8 (permalink)  
Antiguo 03/01/2013, 10:44
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 4 meses
Puntos: 5
Respuesta: Codeigniter - integrar contenidos

Hola! Estuve intentando integrar boilerplate pero me encontré con alguna dificultad.

Generé un controlador home

Código PHP:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/* Heredamos de la clase CI_Controller */
class Home extends CI_Controller {

    function 
__construct() 
    {        
        
parent::__construct();        
    }

    function 
index() 
    {
        
$data =  array('title' => 'homepage''main_content' => 'home_v');
        
$this->load->view('template'$data);
    }

}
y en vistas generé los includes

header (que contendrá el menu y el titulo)
footer (info)

luego también en vistas generé home_v con algo de texto y hasta ahí todo se muestra bien.

También dentro de views armé un template.php

Código HTML:
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title>$title</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width">

        <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->

        <link rel="stylesheet" href="<?php echo base_url('css/normalize.css'); ?>">
        <link rel="stylesheet" href="<?php echo base_url('css/main.css'); ?>">
        <script src="<?php echo base_url('js/vendor/modernizr-2.6.2.min.js'); ?>"></script>
    </head>
    <body>
        <!--[if lt IE 7]>
            <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
        <![endif]-->

        <!-- Add your site or application content here -->
        <div id="container">
        <header>
        	<?php $this->load->view('includes/header'); ?>
            
        </header>
        
        <div id="main" role="main">
       		<?php $this->load->view($main_content); ?> 
        </div>
        
		
        <footer>
        	<?php $this->load->view('includes/footer'); ?>
        </footer>
        </div> 
        <!-- fin container -->
        
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.8.3.min.js"><\/script>')</script>
        <script src="js/plugins.js"></script>
        <script src="js/main.js"></script>

        <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
        <script>
            var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
            (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
            g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
            s.parentNode.insertBefore(g,s)}(document,'script'));
        </script>
    </body>
</html> 

Lo que tendría que hacer con el resto supongo que sería similar.

Hice un controlador categorias

Código PHP:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/* Heredamos de la clase CI_Controller */
class Categorias extends CI_Controller {

    function 
__construct() 
    {
        
        
parent::__construct();

        
/* Cargamos la base de datos */
        
$this->load->database();

        
/* Cargamos la libreria*/
        
$this->load->library('grocery_crud');

            
/* Añadimos el helper al controlador */
        
$this->load->helper('url'); 

    }

    function 
index() 
    {
        
/* Puse lo mismo pero cambiando el contenido     */
        //$data =  array('title' => 'categorias', 'main_content' => 'categorias/categorias_v');
        //$this->load->view('template', $data); 
        
                  /* si solo muestro esto funciona el crud */
        //redirect('categorias/categorias_v');
        
    
}

    
/*
     * 
      **/
    
function categorias_v()
    {
        try{

            
/* Creamos el objeto */
            
$crud = new grocery_CRUD();

            
/* Seleccionamos el tema */
            
$crud->set_theme('flexigrid');

            
/* Seleccionmos el nombre de la tabla de nuestra base de datos*/
            
$crud->set_table('categorias');

            
/* Le asignamos un nombre */
            
$crud->set_subject('Categorias');

            
/* Asignamos el idioma español */
            
$crud->set_language('spanish');

            
/* Aqui le decimos a grocery que estos campos son obligatorios */
            
$crud->required_fields(
                
'id_categoria',
                
'nombre_categoria'
            
);

            
/* Aqui le indicamos que campos deseamos mostrar */
            
$crud->columns(
                
'id_categoria',
                
'nombre_categoria'
            
);
            
            
/* Generamos la tabla */
            
$output $crud->render();
            
            
        
            
$this->load->view('categorias/categorias_v'$output);
            
        }catch(
Exception $e){
            
/* Si algo sale mal cachamos el error y lo mostramos */
            
show_error($e->getMessage().' --- '.$e->getTraceAsString());
        }
    }
}
y en vistas categorias_v

Código HTML:
<?php 
foreach($css_files as $file): ?>
	<link type="text/css" rel="stylesheet" href="<?php echo $file; ?>" />
<?php endforeach; ?>
<?php foreach($js_files as $file): ?>
	<script src="<?php echo $file; ?>"></script>
<?php endforeach; ?>

<?php echo $output; ?> 

solo logro que salga el header y footer pero no el contenido, salen errores en el output

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: css_files

Filename: categorias/categorias_v.php

Line Number: 2
__________________
Saludos!!!
Maru.-
  #9 (permalink)  
Antiguo 03/01/2013, 12:16
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 9 meses
Puntos: 137
Respuesta: Codeigniter - integrar contenidos

no veo donde declaras $css_files y $js_files
__________________
>> abimaelmartell.com
  #10 (permalink)  
Antiguo 03/01/2013, 12:44
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 4 meses
Puntos: 5
Respuesta: Codeigniter - integrar contenidos

la declaré así

Código PHP:
function index() 
    {
        
        
$data =  array('title' => 'categorias''css_files' => 'main.css''main_content' => 'categorias/categorias_v'$output);
        
$this->load->view('template'$data); 
    } 
y sale un warning

A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: categorias/categorias_v.php

Line Number: 2
__________________
Saludos!!!
Maru.-
  #11 (permalink)  
Antiguo 03/01/2013, 13:25
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 9 meses
Puntos: 137
Respuesta: Codeigniter - integrar contenidos

pero no las estas pasando a categorias_v, ahi las estas pasando a template
__________________
>> abimaelmartell.com
  #12 (permalink)  
Antiguo 03/01/2013, 14:03
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 4 meses
Puntos: 5
Respuesta: Codeigniter - integrar contenidos

agregue esto

Código PHP:
$data =  array('css_files' => 'main.css');
    
$this->load->view('categorias/categorias_v'$data); 
pero nada... lo puse en function index también.
__________________
Saludos!!!
Maru.-
  #13 (permalink)  
Antiguo 03/01/2013, 14:25
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 9 meses
Puntos: 137
Respuesta: Codeigniter - integrar contenidos

ah, pues eso no es un array, en la vista estas haciendo un foreach y css_files no es un array,
Código PHP:
Ver original
  1. $data =  array('css_files' => array('main.css'));
eso deberia funcionar
__________________
>> abimaelmartell.com
  #14 (permalink)  
Antiguo 03/01/2013, 14:36
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 4 meses
Puntos: 5
Respuesta: Codeigniter - integrar contenidos

te copio como quedo el controlador categorias

Código PHP:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/* Heredamos de la clase CI_Controller */
class Categorias extends CI_Controller {

    function 
__construct() 
    {
        
        
parent::__construct();

        
/* Cargamos la base de datos */
        
$this->load->database();

        
/* Cargamos la libreria*/
        
$this->load->library('grocery_crud');

            
/* Añadimos el helper al controlador */
        
$this->load->helper('url'); //lo saco porque lo agregué a autoload ya que se carga siempre
    
}

    function 
index() 
    {
                
        
$data =  array('css_files' => array('main.css'));
        
$this->load->view('categorias/categorias_v'$data); 
        
        
$data =  array('title' => 'categorias''main_content' => 'categorias/categorias_v');
        
$this->load->view('template'$data); 
        
    }

    
/*
     * 
      **/
    
function categorias_v()
    {
        try{

            
/* Creamos el objeto */
            
$crud = new grocery_CRUD();

            
/* Seleccionamos el tema */
            
$crud->set_theme('flexigrid');

            
/* Seleccionmos el nombre de la tabla de nuestra base de datos*/
            
$crud->set_table('categorias');

            
/* Le asignamos un nombre */
            
$crud->set_subject('Categorias');

            
/* Asignamos el idioma español */
            
$crud->set_language('spanish');

            
/* Aqui le decimos a grocery que estos campos son obligatorios */
            
$crud->required_fields(
                
'id_categoria',
                
'nombre_categoria'
            
);

            
/* Aqui le indicamos que campos deseamos mostrar */
            
$crud->columns(
                
'id_categoria',
                
'nombre_categoria'
            
);
            
            
/* Generamos la tabla */
            
$output $crud->render();
            
            
            
        }catch(
Exception $e){
            
/* Si algo sale mal cachamos el error y lo mostramos */
            
show_error($e->getMessage().' --- '.$e->getTraceAsString());
        }
    }
}

y estos son los errores que arroja


A PHP Error was encountered

Severity: Notice

Message: Undefined variable: js_files

Filename: categorias/categorias_v.php

Line Number: 5


A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: categorias/categorias_v.php

Line Number: 5


A PHP Error was encountered

Severity: Notice

Message: Undefined variable: output

Filename: categorias/categorias_v.php

Line Number: 9


header menu
A PHP Error was encountered

Severity: Notice

Message: Undefined variable: js_files

Filename: categorias/categorias_v.php

Line Number: 5


A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: categorias/categorias_v.php

Line Number: 5


A PHP Error was encountered

Severity: Notice

Message: Undefined variable: output

Filename: categorias/categorias_v.php

Line Number: 9


gracias por tu ayuda y tu paciencia.
__________________
Saludos!!!
Maru.-
  #15 (permalink)  
Antiguo 03/01/2013, 14:51
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 9 meses
Puntos: 137
Respuesta: Codeigniter - integrar contenidos

No te voy a solucionar todo; trata de leer los errores, si una variable no esta seteada no se puede acceder a ella, si una variable no es un arreglo no se le puede iterar con foreach.
Los errores dicen que linea es y que archivo, la mayoria son porque no seteaste variables.
las variables js_files y output donde están? no existen, por eso es el error.
__________________
>> abimaelmartell.com
  #16 (permalink)  
Antiguo 03/01/2013, 15:02
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 4 meses
Puntos: 5
Respuesta: Codeigniter - integrar contenidos

estas variables js_files y output provienen del grocery_crud, una libreria para generar la tabla con los registros, bueno veré como le encuentro la vuelta.
Muchas gracias por tu ayuda! :)
__________________
Saludos!!!
Maru.-
  #17 (permalink)  
Antiguo 03/01/2013, 15:23
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 9 meses
Puntos: 137
Respuesta: Codeigniter - integrar contenidos

revisa la librería y cerciórate que las esta pasando, porque todo indica que no..
__________________
>> abimaelmartell.com

Etiquetas: contenidos, integrar
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 09:22.