Enlazar bloques de HTML con CSS

Hola Kumbieros !

Vengo a contaros un truco CSS que aprendí relativamente poco y aunque no es algo explícito de nuestro framework PHP, sí es algo a tener en cuenta a la hora de aplicar buenas prácticas a nuestro código.

Se trata de evitar situaciones en las que rompemos la estructura de nuestro código HTML, evitando hacer cosas como esta:

<a href="/blog/2016/12/01/enlazar-bloques-de-html-con-css">
<div>
<p>"DIV" Y OTRAS ETIQUETAS PESADAS DENTRO DE "A", NO PARECE LA FORMA MÁS CORRECTA</p>
</div>
</a>

Para evitar esto propongo crear una clase CSS con las siguiente propiedas:

<style>
/* ENLAZAR BLOQUES */
.box-link { overflow:hidden; position:relative; }
.box-link a { height:100%; left:0; position:absolute; top:0; width:100%;
</style>

Con la clase box-link le damos solidez a la caja que va a ser enlazada.
Y después le decimos al enlace que ocupe todo el alto y ancho de la caja.

Nuestro ejemplo quedaría ahora de la siguiente manera:

<div class="box-link">
<p>AHORA ESTA CAJA ES UN ENLACE</p>
<a href="/blog/2016/12/01/enlazar-bloques-de-html-con-css"></a>
</div>

Espero que les sea útil.

Gracias por leerme.

Hacer un redireccionamiento de enlaces antiguos

Recientemente he actualizado una web pasándola de un viejo y lento joomla, a un potente y velocísimo kumbiaphp. En el cambio me he visto inmerso en 3 graves problemas:

  1. Base de datos muy grande y algo lenta.
  2. Muchísimas visitas.
  3. Artículos con escritura de la URL “diferente”

El problema 1 y 2 se soluciono muy fácilmente usando la cache (de la cual hablaré próximamente en un post especifico dedicado a ello), pero lo verdaderamente sorprendente por su sencillez y simplicidad es como reconstruir las URL antiguas para que funcione con el nuevo diseño de url/rutas.

Al principio imaginé que la forma más sencilla de hacerlo sería mediante reglas en el htaccess. Después pensé en modificar el router del core para que funcionase como yo quería, pero al final resultó muchísimo más sencillo: redireccionamiento desde la vista 404.

Si estamos con el sitio en PRODUCCION, cuando una URL de nuestro sitio no existe, kumbia lanzará la vista 404.phtml para informarnos del error. Es allí, mediante unas simples validaciones donde podremos comprobar la URL que falla, analizarla y ver si tenemos que redirigirla a la URL correcta mediante un redireccionamiento 301 (Página movida permanentemente) o si por el contrario es un error 404 legítimo.

Ventajas:

  1. Fácil manejo desde PHP
  2. Independiente del servidor
  3. Más velocidad (sólo necesita validar si no existe la URL y no en cada Request)

Os dejo el código que me sirvió a mi, tanto cuando las urls correspondían con un patrón fijo, como para otras URL estáticas que tienen su correspondiente nueva URL. También podéis crear una clase para manejar vuestras redirecciones.

<?php
// views/_shared/errors/404.phtml
$buscar = filter_var(Router::get('route'), FILTER_SANITIZE_STRING);
$correspondecias = array(
"/jprovincia.html" => "provincia",
"/portada.html" => "portada",
"/jopinion.html" => "jopinion",
"/region.html" => "region",
"/local.html" => "local",
"/jsociedad.html" => "sociedadcultura",
"/deportes.html" => "deportes"
);
if(array_key_exists($buscar, $correspondecias)) {
Redirect::to("secciones/".$correspondecias[$buscar], 0, 301);
exit();
}
$articulo = (new Articulos)->find_first("urlantigua = '$buscar'");
if($articulo) {
Redirect::to("articulos/$articulo->slug", 0, 301);
exit();
}
// continuar con la vista 404
?>

Taller de KumbiaPHP en México

Anunciando el próximo Taller de KumbiaPHP en México, este taller se llevará a cabo en el Instituto Tecnológico de San Juan del Río, dentro su 8º congreso Nacional de Tecnologías de la Información. El taller tendrá una duración de 3 x 3 (3 horas x 3 días)

Adelantando la presentación (versión NO final)

Publicidad oficial del Instituto Tecnológico de San Juan del Río

Taller KumbiaPHP Mexico ITSJR

Taller KumbiaPHP Mexico ITSJR

Que necesitas para el taller: