Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Skeletron en 3 Junio 2013, 02:51 am



Título: Escribir META DESCRIPCION de un sitio de manera cómoda, segun contenido.
Publicado por: Skeletron en 3 Junio 2013, 02:51 am
Como haces para definir (comodamente) el META DESCRIPTION de un sitio web (dentro del elemento <HEAD>) segun el contenido que va a aparecer en el BODY?

Por ejemplo, si entramos al sitio example.com/item/5/Titulo-del-item

Supongamos que el entrar ahí nos muestra el item 5. Un item tiene un titulo y una descripcion.
Seria muy logico colocar la descripcion de dicho item dentro del META DESCRIPTION para ayudar a Google...
Pero... Es un quilombo... Porque el HEAD se debe escribir antes que el BODY. Entonces, mientras vas "escribiendo el head", aún no hiciste el SELECT a la base de datos para traer el item y demas...

Yo he tenido muchos proyectos y siempre soluciono este problema de formas diferentes (y feas).
Alguien tiene una idea interesante?


Título: Re: Escribir META DESCRIPCION de un sitio de manera cómoda, segun contenido.
Publicado por: basickdagger en 4 Junio 2013, 20:13 pm
bueno yo lo que hago es tengo mi head en un archivo php...
dentro de las etiquetas de title y metas tengo una variable... si la variable viene vacia coloco el titulo del sitio...

entonces si tengo una pagina q se llama tomates... antes de hacer el include de mi pagina pongo mi variable $title="tomates" y despues hagoel include del head...en este caso la variable 'uede ser de una consulta echa via url.... por ejemplo...



esta seria mi head.php
Código:

<meta name="keywords" content="<?php if (isset($keywords)){ echo $keywords;}else{echo "el titulo de mi sitio por default";} ?>"/>

<title>
<?php if (isset($title)){
echo $title;
}else{
echo "el titulo de mi sitio por default";
} ?></title>


esta seria mi pagina "tomates.php"
Código:
<?php 
$title="tomates";
$keywords="venta de tomates, recetas con tomates";
include('head.php'); ?>

<contenido d epagina tomates>


 con esto cuandoentrara al index mostraría "el titulo de mi sitio por default" y al entrar a tomates.php mostraria de titulo tomates y en keywords venta de tomates, recetas con tomates, espero te haya servido... saludos!


Título: Re: Escribir META DESCRIPCION de un sitio de manera cómoda, segun contenido.
Publicado por: Skeletron en 4 Junio 2013, 23:48 pm
Pero la idea es que el "descirption" tenga informacion sobre lo que vas a ver.
Por ejemplo,
Supongamos que vas a ingresar a una pagina de tu sitio donde vas a ver los datos de una fruta.
Y es así:
example.com?fruta=8
Entonces dentro del sitio vas a hacer una consulta a la DDBB y vas a traer los datos de la fruta "8".
En el description, sería interesante poner la descripcion de dicha fruta, pero el problema, es que aún no has hecho el "SELECT" para traer la fruta.

Entiendes?
Tienes que hacer el select en un archivo (en donde esta el head) y luego en donde está el body. Ya que sería muy improlijo de otra manera.


Título: Re: Escribir META DESCRIPCION de un sitio de manera cómoda, segun contenido.
Publicado por: basickdagger en 5 Junio 2013, 00:04 am
Pero la idea es que el "descirption" tenga informacion sobre lo que vas a ver.
Por ejemplo,
Supongamos que vas a ingresar a una pagina de tu sitio donde vas a ver los datos de una fruta.
Y es así:
example.com?fruta=8
Entonces dentro del sitio vas a hacer una consulta a la DDBB y vas a traer los datos de la fruta "8".
En el description, sería interesante poner la descripcion de dicha fruta, pero el problema, es que aún no has hecho el "SELECT" para traer la fruta.

Entiendes?
Tienes que hacer el select en un archivo (en donde esta el head) y luego en donde está el body. Ya que sería muy improlijo de otra manera.

bueno yo haria lo mismo, como tu mismo dices tienes example.com
entonces en el momento q envias la url ?fruta=8 harías el select antes de que cargara tu head... y el resultado de dicho select seria la variable q cambiaria en description, keywords o title... como tu lo deseas...bueno asi yo lo eh hecho...


Título: Re: Escribir META DESCRIPCION de un sitio de manera cómoda, segun contenido.
Publicado por: Skeletron en 6 Junio 2013, 00:08 am
Exacto.
Pero si tienes el Head en un archivo, y en otro archivo muestras los datos de la fruta, tendrás que hacer 2 SELECT a la Base de Datos para traer el mismo dato. Es muy poco eficiente.

Si bien, tecnicamente yo puedo utilizar en el 2º archivo a la variable que se definió en el 1º archivo (donde estaba el HEAD), no es lo mas "prolijo" para hacer. No es "cómodo".


Título: Re: Escribir META DESCRIPCION de un sitio de manera cómoda, segun contenido.
Publicado por: basickdagger en 6 Junio 2013, 00:32 am
Exacto.
Pero si tienes el Head en un archivo, y en otro archivo muestras los datos de la fruta, tendrás que hacer 2 SELECT a la Base de Datos para traer el mismo dato. Es muy poco eficiente.

Si bien, tecnicamente yo puedo utilizar en el 2º archivo a la variable que se definió en el 1º archivo (donde estaba el HEAD), no es lo mas "prolijo" para hacer. No es "cómodo".

mm bueno tal ves no entendi bien, seria mas facil q coloques la forma en como lo haces ahora y así ver bien que es lo q quieres, saludos..


Título: Re: Escribir META DESCRIPCION de un sitio de manera cómoda, segun contenido.
Publicado por: #!drvy en 6 Junio 2013, 15:23 pm
Tendríais que pensar en estructurar o en hacer un sistema de plantillas. Yo lo que suelo hacer es:

-> consulta: index?id=5
---------> cargar datos de la BD con id 5.
---------> limpiar datos (htmlentities)
---------> cargar plantilla y setear datos.
---------> Imprimir (echo).

Deberías hacer que los archivos que vayan a imprimir html no hagan trabajo(consultas,procesar etcc) simplemente que acepten las variables que les mandan.

Podríais mirar el MVC http://es.wikipedia.org/wiki/Modelo_Vista_Controlador

Saludos


Título: Re: Escribir META DESCRIPCION de un sitio de manera cómoda, segun contenido.
Publicado por: Skeletron en 7 Junio 2013, 00:19 am
Si, tienes razon.
Conozco MVC pero nunca lo he aplicado para proyectos propios, solo en proyectos freelance.

Debería haber aplicado el patron MVC desde un comienzo. Pero bueno...

Muchas gracias!