Dada la gran cantidad de extensiones (componentes, plugins, módulos) que trabajan en nuestro Joomla! a veces cuando queremos modificar el funcionamiento de alguno de ellos nos encontramos que no sabemos dónde, en que archivo, debemos efectuar la corrección que deseamos.
Aún buscando en internet puede llevarnos varias horas encontrar la solución a nuestro problema, ya que en algunas ocasiones esas soluciones no son correctas, no están contrastadas y en lugar de ayudar nos hacen dirigirnos por un camino erróneo.
Es el caso que me he encontrado al querer agregar el atributo rel="nofollow" a los enlaces del componente weblinks (enlaces web, en español). Aunque se podría haber hecho uno a uno desde la base de datos, para los sitios que tengan varios cientos de enlaces web puede ser agotador. Así que lo mejor sería automatizarlo desde el código para todos.
Yo he buscado por: joomla 1.5 weblinks rel="nofollow" en Google y la mayoría de las soluciones, que me temo copiadas en cascada, son erróneas porque dirigen a modificar un archivo llamado weblinks.html.php en la carpeta /components/com_weblinks/ que sencillamente no existe.
El archivo que hay que modificar es view.html.php que está en la carpeta /components/com_weblinks/views/category/ y agregar a la línea 128:
// open in a new window
$item->link = '<a href="'. $link .'" target="_blank" class="'. $menuclass .'">'. $this->escape($item->title) .'</a>';
el atributo rel="nofollow", dejándola de este modo:
// open in a new window
$item->link = '<a href="'. $link .'" rel="nofollow" target="_blank" class="'. $menuclass .'">'. $this->escape($item->title) .'</a>';
Automáticamente todos vuestros enlaces del componente "enlaces web" (weblinks component) aparecerán en el código fuente de vuestra página con el atributo rel="nofollow" para no pasar PageRank a esos sitios.
En joomla 2.5 esta corrección se debe hacer en el archivo default_items.php que está en la carpeta /components/com_weblinks/views/category/tmpl/ sobre la línea 98:
// open in a new window
echo '<a href="'. $link .'" target="_blank" class="'. $menuclass .'" rel="nofollow">'. $this->escape($item->title) .'</a>';
Aunque parece que en esta versión de Joomla! viene por defecto el rel="nofollow" como podemos ver en el código.