Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2011, 14:44
Avatar de Basteri
Basteri
 
Fecha de Ingreso: noviembre-2008
Mensajes: 30
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Asiganacion de metatags para web modular

Saludos foreros.

Estoy intentando hacer una web modular con base a unos codigos que encontre en la web.
El sistema completo se estructura asi:
RAIZ DEL SITIO
1-index.php
2-conf.php
CARPETAS ARCHIVOS
layouts layout_simple.php
modulos home.php, imprimir.php,empresa.php etc.
includes header.html, footer.html

Estos son los codigos principales para que sistema funcione:
index.php

Código PHP:
<?php
error_reporting
(E_ALL);
// Primero incluimos el archivo de configuración
include('conf.php');
include(
'metas.inc');
/** Verificamos que se haya escogido un modulo, sino
* tomamos el valor por defecto de la configuración.
*/
if (!empty($_GET['mod']))
    
$modulo $_GET['mod'];
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>');
?>
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_default.php');
define('MODULO_PATH'realpath('./modulos/'));
define('LAYOUT_PATH'realpath('./layouts/'));

$conf['home'] = array(
        
'archivo' => 'home.php',
        
'layout' => LAYOUT_DEFECTO ); 
$conf['articulo'] = array(
        
'archivo' => 'art.php' );
$conf['empresa'] = array(
        
'archivo' => 'empresa/index.php');        
$conf['servicios'] = array(
        
'archivo' => 'servicios/index.php' );
$conf['personal'] = array(
        
'archivo' => 'per.php' );
$conf['inversion'] = array(
        
'archivo' => 'inv.php' );
$conf['contacto'] = array(
        
'archivo' => 'cont.php' );
$conf['reclutamiento'] = array(
        
'archivo' => 'reclut.php' );
$conf['sitemap'] = array(
        
'archivo' => 'site.php' );
$conf['imp_art'] = array(
        
'archivo' => $conf['articulo']['archivo'],
        
'layout' => 'imprimir.php' );        
?>
layout_simple.php

Código HTML:
<html>
<head>
	<title>Tu Sitio Modular</title>
	
</head>
<body>
<?php include('includes/header.html'); ?>
<table width="100%" border="0" cellspacing="1" cellpadding="1">
	<tr>
		<td width="140" bgcolor="#5b69a6">&nbsp;</td>
		<td>
[PHP]<?php
	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>');
?>[/PHP]		</td>
	</tr>
</table>
<?php include('includes/footer.html'); ?>
</body>
</html> 
Todo esto funciona muy bien los modulos los carga perfecto mediante url del tipo
?mod=
El problema es que quiero modificarlo para que al momento de cargar el modulo correspondiente tambien le asigne a ese modulo las estiquetas <title></title><descripcion></descripcion> que correspondan al modulo, y evitar problemas de SEO.

Los ultimos dias he intentado hacerlo creando una variable en el archivo conf.php y haciendo un echo en el archivo layout_simple.php dentro de las etiquetas <title> pero en lugar de ponerme el titulo asignado aparece como titulo la palabra ARRAY, he estado haciendo miles de pruebas pero no lo logro, ovbiamente no soy experto en php pero quiero saber como hacerlo.

El sistema obviamente muestra el contenido de los modulos en el espacio asignado, pero como podria hacer que si ese modulo tiene subsecciones tambien las pueda incluir, no se si me de a entender digamos que tengo un modulo llamado "empresa" lo llamaria asi ?mod=empresa pero si ese modulo tiene una subseccion denominada "mision" como podria estructurarla para llamarla, vamos que fuera algo como ?mod=empresa&mision

Espero haber sido claro y ojala me puedan ayudar ya que los ultimos dias me he quebrado la cabeza y no me funciona.
Para los que necesiten una web modular los scripts asi como los coloque funcionan de maravilla.