Foros del Web » Programando para Internet » PHP »

Asiganacion de metatags para web modular

Estas en el tema de Asiganacion de metatags para web modular en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/02/2011, 14:44
Avatar de Basteri  
Fecha de Ingreso: noviembre-2008
Mensajes: 30
Antigüedad: 16 años, 1 mes
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.
  #2 (permalink)  
Antiguo 10/02/2011, 14:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Asiganacion de metatags para web modular

y no te resulta mas inteligente algo así...
Código PHP:
<title><?php echo $title_modulo?></title>
digo, si ya lo has conseguido hacer con el modulo... ¿que tan difícil sería hacerlo con el titulo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/02/2011, 14:58
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 14 años
Puntos: 51
Respuesta: Asiganacion de metatags para web modular

Tendrías que cambiar ( creo que sería así por como parece funcionar el sitio ):

layout_simple.php

por:

Código HTML:
Ver original
  1.     <title>Tu Sitio Modular</title>
  2.     <meta name="description" value="$metadescription" />
  3. </head>
  4. <?php include('includes/header.html'); ?>
  5. <table width="100%" border="0" cellspacing="1" cellpadding="1">
  6.     <tr>
  7.         <td width="140" bgcolor="#5b69a6">&nbsp;</td>
  8.         <td>
  9. [PHP]<?php
  10.     if (file_exists( $path_modulo )) include( $path_modulo );
  11.     else die('Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
  12. ?>[/PHP]        </td>
  13.     </tr>
  14. <?php include('includes/footer.html'); ?>
  15. </body>
  16. </html>

y el index.php

agregar en algún lugar:

Código PHP:
Ver original
  1. $metadescription = "meta descripcion del sitio";

y lo mismo con los metatags que necesités.
  #4 (permalink)  
Antiguo 10/02/2011, 15:05
Avatar de Basteri  
Fecha de Ingreso: noviembre-2008
Mensajes: 30
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Asiganacion de metatags para web modular

Cita:
Iniciado por pateketrueke Ver Mensaje
y no te resulta mas inteligente algo así...
Código PHP:
<title><?php echo $title_modulo?></title>
digo, si ya lo has conseguido hacer con el modulo... ¿que tan difícil sería hacerlo con el titulo?
Ya lo intente hacer de esa manera pero en lugar de que aparzca el titulo que asigne para ese modulo, al ejecutarse aparece la palabra "Array" en el titulo.
  #5 (permalink)  
Antiguo 10/02/2011, 15:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Asiganacion de metatags para web modular

Cita:
Iniciado por Basteri Ver Mensaje
Ya lo intente hacer de esa manera pero en lugar de que aparzca el titulo que asigne para ese modulo, al ejecutarse aparece la palabra "Array" en el titulo.
bueno, si sale Array es porque se trata de array...

¿pues como defines dicha variable?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 10/02/2011, 15:09
Avatar de Basteri  
Fecha de Ingreso: noviembre-2008
Mensajes: 30
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Asiganacion de metatags para web modular

Hola walterdevel, gracias por tu respuesta.

Pero me podrias decir como le asigno en el archivo index.php

Que esta variable debe de tomar tambien el valor de el modulo que estoy solicitando

$metadescription = "meta descripcion del sitio";

Digamos que esa descripcion corresponde al modulo "empresa" como se la asigno?
  #7 (permalink)  
Antiguo 10/02/2011, 15:19
Avatar de Basteri  
Fecha de Ingreso: noviembre-2008
Mensajes: 30
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Asiganacion de metatags para web modular

Peteketrueke

la defino en el archivo index.php

$titulo['home'] = "Mi titulo";

y en el archivo layout_simple.php la invoco asi:

Código HTML:
<html>
<head>
	<title><?php echo $titulo; ?></title>
	<basefont color="#FFFFFF" face="Verdana" />
</head>
<body bgcolor="#9999cc">
<?php include('includes/header.html'); ?>
<table width="100%" border="0" cellspacing="1" cellpadding="1">
	<tr>
		<td width="140" bgcolor="#5b69a6">&nbsp;</td>
		<td>
<?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>');
?>
		</td>
	</tr>
</table>
<?php include('includes/footer.html'); ?>
</body>
</html> 
  #8 (permalink)  
Antiguo 10/02/2011, 15:21
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 14 años
Puntos: 51
Respuesta: Asiganacion de metatags para web modular

Cita:
Iniciado por Basteri Ver Mensaje
Hola walterdevel, gracias por tu respuesta.

Pero me podrias decir como le asigno en el archivo index.php

Que esta variable debe de tomar tambien el valor de el modulo que estoy solicitando

$metadescription = "meta descripcion del sitio";

Digamos que esa descripcion corresponde al modulo "empresa" como se la asigno?
Supongo que puedes hacerlo así:

en el conf del módulo

Código PHP:
 $conf['empresa']['metadescription'
luego lo tomas con

Código PHP:
$metadescription $conf[$modulo]['metadescription']; 
  #9 (permalink)  
Antiguo 10/02/2011, 15:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Asiganacion de metatags para web modular

bueno, y si te das cuenta que $titulo es un array?

¿porque simplemente no imprimes el índice adecuado?
Código PHP:
echo $titulo['home']; 
lo curioso es que aparentemente sabes trabajar con arrays, pero prácticamente no...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 10/02/2011, 17:19
Avatar de Basteri  
Fecha de Ingreso: noviembre-2008
Mensajes: 30
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Asiganacion de metatags para web modular

Gracias por sus respuestas me fueron de mucha ayuda, ya pude resolver el problema.

Cita:
Iniciado por pateketrueke Ver Mensaje
bueno, y si te das cuenta que $titulo es un array?

¿porque simplemente no imprimes el índice adecuado?
Código PHP:
echo $titulo['home']; 
lo curioso es que aparentemente sabes trabajar con arrays, pero prácticamente no...
Te comento peteketrueke que tienes mucha razon al decir que practimacamente no se trabajar con arrays, por lo mismo comente desde un principio que no soy experto con php pero quiero aprender, disculpa si aparento otra cosa, y muchas gracias por tu ayuda al igual que para welterdevel agradezco mucho tu ayuda.

Etiquetas: metatags, 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 08:11.