Foros del Web » Programando para Internet » PHP »

Web modular

Estas en el tema de Web modular en el foro de PHP en Foros del Web. mi duda es que en index.php: Código PHP: <?php error_reporting ( E_ALL ); // Primero incluimos el archivo de configuración include( 'conf.php' ); /** Verificamos que se haya escogido un modulo, sino * tomamos el valor por defecto de la configuración. */ if (!empty( $_GET [ 'sec' ])) ...
  #1 (permalink)  
Antiguo 07/07/2010, 16:20
Avatar de andres187  
Fecha de Ingreso: mayo-2010
Ubicación: Barranquilla
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
Web modular

mi duda es que en

index.php:

Código PHP:
<?php
error_reporting
(E_ALL);
// Primero incluimos el archivo de configuración
include('conf.php');

/** Verificamos que se haya escogido un modulo, sino
* tomamos el valor por defecto de la configuración.
*/
if (!empty($_GET['sec']))
    
$modulo $_GET['sec'];
else
    
$modulo MODULO_DEFECTO;

/** También debemos verificar que el valor que nos 
* pasaron, corresponde a un modulo que existe, caso
* contrario, cargamos el modulo por defecto
*/
if (empty($conf[$modulo]))
        
$modulo MODULO_DEFECTO;

/** Ahora determinamos que archivo de Layout tendrá
* este módulo, si no tiene ninguno asignado, utilizamos
* el que viene por defecto
*/
if (empty($conf[$modulo]['layout']))
        
$conf[$modulo]['layout'] = LAYOUT_DEFECTO;
        
/** Aqui podemos colocar todos los comandos necesarios para
* realizar las tareas que se deben repetir en cada recarga
* del index.php - En el ejemplo, conexión a la base de datos.

* include('clases/class.DB.php');
* $db = new DB();
* $db->conectar();
*/

/** Finalmente, cargamos el archivo de Layout que a su vez, se
* encargará de incluir al módulo propiamente dicho. si el archivo
* no existiera, cargamos directamente el módulo. También es un
* buen lugar para incluir Headers y Footers comunes.
*/
$path_layout LAYOUT_PATH.'/'.$conf[$modulo]['layout'];
$path_modulo MODULO_PATH.'/'.$conf[$modulo]['archivo'];

if (
file_exists($path_layout))
    include( 
$path_layout );
else
    if (
file_exists$path_modulo ))
        include( 
$path_modulo );
    else
        die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
y en la conf.php:

Código PHP:
<?php
/*
 * Archivo de configuración para nuestra aplicación modularizada.
 * Definimos valores por defecto y datos para cada uno de nuestros módulos.
*/
define('MODULO_DEFECTO''home');
define('LAYOUT_DEFECTO''layout_simple.php');
define('MODULO_PATH'realpath('./modulos/'));
define('LAYOUT_PATH'realpath('./layouts/'));

$conf['home'] = array(
        
'archivo' => 'home.php',
        
'layout' => LAYOUT_DEFECTO );
etc
etc
etc
ahora en layout_simple.php:
Código PHP:
<html>
<link href="style.css" rel="stylesheet" type="text/css" />

<head>
    <title>MangaCO - Una forma diferente de leer tu Manga</title>
</head>
<body bgcolor="#F2F2F2">
<?php include('includes/header.html'); ?>
<?php 
include('includes/menu.php'); ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td width="20%" bgcolor="white" valign="top">
        
    
 
    <?php include('includes/menu-iz.php'); ?>
    
        </td>
        <td valign="top" bgcolor="white">
        <div class="texto">
<?
    
if (file_exists$path_modulo )) include( $path_modulo );
    else die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
?>
</div>
        </td>
    </tr>
</table>
<?php include('includes/footer.html'); ?>
</body>
</html>

si yo quiero hacer otro LAYOUT y que en una de las secciones salga otro distinto del DEFECTO como tengo que hacer ?
  #2 (permalink)  
Antiguo 07/07/2010, 18:13
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Web modular

Creas otra plantilla en el mismo directorio que la por defecto y después la llamas igual que a la otra.
Código PHP:
Ver original
  1. define('MODULO_DEFECTO', 'home');
  2. define('LAYOUT_DEFECTO', 'layout_simple.php');
  3. define('OTRA_PLANTILLA', 'otra_plantilla.php');        //definis la otra plantilla
  4. define('MODULO_PATH', realpath('./modulos/'));
  5. define('LAYOUT_PATH', realpath('./layouts/'));
  6.  
  7. $conf['home'] = array(
  8.         'archivo' => 'home.php',
  9.         'layout' => LAYOUT_DEFECTO );
  10.  
  11. $conf['modulouno'] = array(
  12.         'archivo' => 'modulouno.php',
  13.         'layout' => OTRA_PLANTILLA );
  #3 (permalink)  
Antiguo 07/07/2010, 18:15
Avatar de andres187  
Fecha de Ingreso: mayo-2010
Ubicación: Barranquilla
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Web modular

waw eso era lo que queria grax men lo que no estaba seguro era cambiar el define por eso quise consultar primero

grax
  #4 (permalink)  
Antiguo 07/07/2010, 18:21
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Respuesta: Web modular

Por cierto valida los GET o te van a hacer un RFI (Remote File Inclusion) como una catedral.
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #5 (permalink)  
Antiguo 07/07/2010, 19:18
Avatar de andres187  
Fecha de Ingreso: mayo-2010
Ubicación: Barranquilla
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Web modular

o.o no sabia nada de eso me voy a poner a investigar a ver veo que tengo mucho por aprender grax shakaran

Etiquetas: modular
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 01:27.