Enlaces a los usuarios en los últimos mensajes

Recientemente Foroactivo ha hecho cambios en el funcionamiento del apartado «Últimos mensajes» de la lista de foros. Por motivos de SEO, han decidido eliminar los enlaces a los perfiles de los usuarios, pero sólo para los invitados.

Con este código conseguiremos recuperar el funcionamiento anterior, disponiendo de enlaces a los perfiles de los usuarios incluso siendo invitados.

Requisitos

  • Manejo con soltura del PA.
  • Conocimientos básicos de edición de plantillas (saber dónde están y cómo editarlas).
  • Un foro en cualquier versión de Foroactivo (probado sólo con phpBB3).

Instalación

En la plantilla index_box busca:

{catrow.forumrow.USER_LAST_POST}

Reemplázalo por:

<span class="forum_user_last_post">{catrow.forumrow.USER_LAST_POST}</span>

Ahora añade el siguiente JS y haz que se muestre en el índice y en los subforos:

(function() {
	if (_userdata['user_id'] > -1)
		return;

	document.addEventListener('DOMContentLoaded', _ => {
		document.querySelectorAll('.forum_user_last_post').forEach(lp => {
			const user = lp.querySelector('strong');

			if (!user) return;

			const username = user.textContent.trim(),
			a = document.createElement('A');

			if (username === 'Anonymous') return;

			a.href = '/profile?mode=viewprofile&u=' + encodeURIComponent(username);

			a.innerHTML = user.outerHTML;

			user.parentNode.insertBefore(a, user);
			user.remove();
		});
	});
})();

¡Listo! Ya tienes disponible los enlaces para los invitados.