mayo 23, 2007

Etiqueta base del HTML

En el desarrollo de un sitio se crean carpetas reales o carpetas ficticias aplicando las URL Amigables, esto provoca que cuando se vinculan imágenes o enlaces internos hay que ir caminos atrás y luego caminos alante...


Ejemplo:


Tenemos está dirección:


www.dominio.com/categoria/fecha/titulo/


En esa página hay varias imágenes o varios enlaces internos, en el caso de las imágenes las tenemos guardadas en una carpeta en la raíz del sitio que se llama imagenes.


Cuando insertamos una imagen en la página de la dirección de arriba quedaría el código HTML así:


<img src="../../../imagenes/imagen.jpg" alt="texto alternativo" />


Retrocediendo tres pasos (../) hacia la raíz del sitio, luego entramos en la carpeta imagenes y seguido vinculamos la imagen (.jpg). Esto funciona igual para cualquier tipo de ficheros o enlace:


<a href="../../../paginas/enlace/" title="texto que describe el enlace">Enlace</a>


Esto provoca grandes problemas cuando el sitio es dinámicos, programado en PHP, u otro lenguaje, ya que categoria, fecha y titulo son valores de variables pasadas por URL y no carpetas reales.


Una solución a este problema es mediante la etiqueta <base> que especifica una URL base para todos los enlaces en una página.


Ejemplo:


<base href="<?php echo "http://". $_SERVER['HTTP_HOST']."/";?>" />


Esto imprimiría en el código:


<base href="http://www.dominio.com/" />


Vinculando todos los ficheros y enlaces interno a partir de esa base que en este caso es la raíz del sitio:


Ejemplo:


<img src="/imagenes/imagen.jpg" alt="texto alternativo" />


<a href="/paginas/enlace/" title="texto alternativo">Enlace</a>


<link href="/css/style.css" media="screen" rel="stylesheet" type="text/css" />


Cualquier comentario y sugerencia será bien recibido

Seguir leyendo...

mayo 20, 2007

Recortar cadena de texto mediante una function con PHP

Seguramente se ha encontrado con el problema de presentar titulares de noticias en alguna parte de su sitio, pero estos no se ven muy bien o rompen un poco con el diseño del sitio debido a la diferencia de extensión en los títulos.



¿Qué queremos?


Cuando se listen los títulos, el que tenga más caracteres del asignado por nosotros, que muestre el título recortado seguido de (...), y cuando sea menor o igual que muestre el título sin recortar y sin los (...).


Para resolver el problema anterior debemos crear una pequeña function y dentro de esta una condición:


<?php


function cut_cadena($cadena, $charlimit){


if(strlen($cadena) > $charlimit){


$cadena = substr($cadena,'0',$charlimit);
$array = explode(' ',$cadena);
array_pop($array);
$new_cadena = implode(' ',$array);


return $new_cadena.'...';


} else {


return $cadena;


}
}


echo "<ul>";
echo "<li><a href='#' title='".$rs["titulo"]."'>"
.cut_cadena($rs["titulo"], 50)."</a></li>";
echo "</ul>";


?>

El ejemplo lo puse en una lista donde llamo la function (cut_cadena) en la parte que imprimo el título, pero en el title del vínculo le dejé el título completo. También hago un array para que no corte las palabras por la mitad en caso de coincidir en el corte y así mostrará algo más coherente.


En la práctica quedaría algo así:


Cualquier comentario y sugerencia será bien recibido
Seguir leyendo...