Kunena – Hack posts relacionados

Esto es un resumen de como añadir el código para realizar un Hack posts relacionados en Kunena Joomla. Bueno, para que se den cuenta que a veces ayudando a los demas, tambien se obtiene una recompensa inesperada, les comento que como algunos ya saben, colaboro en algunos foros relacionados con joomla de otros dominios como kunenaspanish, forosdelweb y otros. Bien el tema es que accedi al foro de kunenaspanish para ver si alguien necesitaba alguna respuesta sobre joomla, me sorprendi al ver bajo un post, una serie de post relacionados a la pregunta formulada por un usuario…

Me di cuenta que eran post ya solucionados y otros en proceso relacionados en su mayoria con la pregunta formulada. Algunos de ellos ya le estaba dando la respuesta a la pregunta formulada por el usuario, y me dije …”Esto es lo que necesitan los usuarios de solojoomla en el foro !!!“.

Como ya sabran algunos, siempre he insistido en que cuando formulen preguntas, el titulo debe estar relacionado con la pregunta, primero, porque asi pueden ayudar a quien lo necesite, a encontrar por medio del buscador del foro, a resolver su duda sin necesidad de formular una pregunta y segundo, que sera mas fácil que el post pueda posicionarse mejor en google u otros.

Entenderan ahora porque insisto tanto con este tema, ya que, de lo que trata un foro es ayudar a cuantas mas personas mejor y si es por medio de una pregunta resuelta que hayan formulado correctamente, habra mucha gente que le estara agradecida. Resumiendo, que el poner “Ayuda por favor..” , “Esto como se hace..” y luego el contenido con la pregunta, No conduce a ningun lado, tan solo a resolver “su” duda, que seguramente tambien sera la de otros, y eso no es algo solidario.

Utilidad del Hack

El hack consiste en mostrar debajo o encima, un numero determinado y precisado en la configuracion del mismo, una serie de post solucionados o en curso, relacionados, segun porcentage de coincidencia, con la pregunta formulada por un usuario. Esto ayudara en mas de un ocasión a ni siquiera tener que responder al mismo, teniendo la respuesta al mismo, por haber sido resuelta con anterioridad, para asi accelerar aun mas los tiempos de atencion hacia el usuario que formula la pregunta. Y si no la resuelve del todo, al menos tener quizas una mejor orientacion o incluso, otra forma de reslolver su duda.

Este hack fue creado por un usuario del foro de kunena en su version original –> Hack foro kunena original

Como implementar el Hack posts relacionados en un foro Kunena

Paso a resumir, el como insertar o implementar el hack o modificacion para todo aquel que este interesado en insertarlo en su foro. incluyo algunos ajustes y cambios que no estan el post original, y resumo otros aspectos.

HACK posts relacionados para la extension sobre Foros, KUNENA.

Lo primero que vamos a hacer es localizar el archivo view.php dentro de la plantilla kunena que estemos utilizando, mas concrecamente aqui –> /components/com_kunena/template/default/view.php. Una vez localizado lo bajaremos a nuestro PC o MAC para editarlo. Editamos con un editor de texto cualquiera aunque os recomiendo el Notepad++ que es gratuito y excelente para estas tareas.

Buscamos la linea

<!-- F: List Actions Bottom -->

Seguido copiamos y
pegamos el siguiente codigo –>

<?php
$id  = $this->thread;
$catid  = $this->catid;
$this->db->setQuery("SELECT a.*, b.* FROM #__kunena_messages
AS a LEFT JOIN #__kunena_messages_text AS b ON a.id=b.mesid
WHERE a.id='{$id}' AND a.hold='0'");
$this_message = $this->db->loadObject();

$this->db->setQuery("SELECT * FROM #__kunena_categories
WHERE id='{$catid}'");
$objCatInfo = $this->db->loadObject();

$percent=5; //similarity percentage, increase for sensitive
matching. for example 10 is 10% match, 50 is 50% match, 100
is one o one
$topics_only=1; //set 1 if you wanna show only topics,
set 0 to show relative messages directly
$limit = 5; //set number of relative messages

$parent = ($topics_only == 1) ? " AND parent=0 " : "";

$query=("SELECT id, subject, name, time as zaman, catid, userid,
MATCH(t1.message) AGAINST('".addslashes($this_message->subject)."')
as oran1, MATCH(t2.subject)  AGAINST('".addslashes($this_message->
subject)."') as oran2 FROM
#__kunena_messages_text as t1 INNER JOIN #__kunena_messages as t2
ON t2.id = t1.mesid
WHERE (MATCH(t1.message) AGAINST('".addslashes
($this_message->subject)."') > $percent OR MATCH(t2.subject)
AGAINST('".addslashes($this_message->subject)."') > $percent)
AND t2.thread <>" . $this_message->thread .
$parent . " ORDER BY oran2 DESC, oran1 DESC LIMIT $limit;");

$sim_message = $this->db->setQuery($query);
$sim_message = $this->db->loadObjectList();;

if (count($sim_message)> 0)
{
echo '<div class= "kblock"><div class= "kheader"><h2>
<span>Relacionados</span></h2></div><div class= "klist-bottom"';?>

<?php foreach ($sim_message as $sonuc) {
if ($sonuc->oran1 > $sonuc->oran2)
{
$oran = $sonuc->oran1;
}
else {
$oran=$sonuc->oran2;
}
echo "<span><b>
<a  rel=\"follow\" title=\"".$sonuc->subject."\"
href=\"".CKunenaLink::GetThreadPageURL('view',
$sonuc->catid, $sonuc->id, $page, $this->limit)."\">".
$sonuc->subject."</a></b></span><br>";
}
echo "</div></div>";
}
?>

Finalmente accedemos a nuestro phpmyadmin, localizamos nuestra base de datos, y pinchamos en la pestaña SQL. Se nos ppresentara un campo en forma de rectangulo, donde copiaremos y pegaremos las siguientes tablas para modificar las existentes –>

ALTER TABLE jos_fb_messages ADD FULLTEXT(subject);
ALTER TABLE jos_fb_messages_text ADD FULLTEXT(message)

Ya deberian aparecer enlaces relacionados en la parte superior de cualquier post que habramos y contenga algun post relacionado.

Configuraciones, Ajustes y posicionamiento

Aqui tratare de expliacarles como cambiar ciertos aspectos, configuraciones y algún problema con el que podrian encontarse.

El primer problema seria que estemos utilizando una version antigua de kunena, mas concretamente una de las que estaban realizadas en modo heredado y no nativo para joomla 1.5. Seguramente nos dara un error (En joomla 3 no lo he probado). Para solventar el posible problema deberemos buscar en el archivo view.php de nuestro theme de kunena, el siguiente codigo –>

$sim_message=$kunena_db->setQuery($query);
$sim_message = $kunena_db->loadObjectList();

Y reemplazarlo por este otro –>

$sim_message=$database->setQuery($query);
$sim_message = $database->loadObjectList();

Ahora nos quedaria la cuestion del emplazamiento de la lista de posts relacionados. Para cambiarlo de su posicion actual dentro de view.php, que es en la parte superior de un post abierto, editaremos el archivo y seleccionaremos el codigo insertado debajo de

<!-- F: List Actions Bottom -->

, Pincharemos en cortar o copiar (si es en copiar, no olviden borrar lo copiado) y lo situaremos justo despues de estas lineas de codigo –>

<td class="fb_list_categories"> <?php
 if ($fbConfig->enableforumjump)
 require (KUNENA_PATH_LIB .DS. 'kunena.forumjump.php');
 ?>
 </td>
 </tr>
</table>

que estan situadas, entre las lineas 2475 y 2485 del arcivo view.php. Guardamos y subimos y reemplazamos el archivo view.php. Con esto ya tenemos situado los “Post relacionados” Justo debajo de un post cualquiera de nuestro foro Kunena.

Ahora nos resta configurar a nuestro antojo el hack. Dicho hack ya esta en castellano, o sea las cuatro palabras como asunto, fecha y demas ya estan traducidas, con lo cual solo nos resta configurar el porcentaje de similitud a un post o pregunta y el numero de posts relacionados que se van a mostrar.

Para configurar estas dos opciones, iremos a las primerasas lineas de codigo del hack –>

$percent=5; //porcentaje de similitud, increase for sensitive 
matching. por ejemplo 10 es el 10% match, 50 is 50% match, 
100 is one o one
$topics_only=0; //set 1 if you wanna show only topics, set 0 to 
show relative messages directly
$limit = 5; //set number of relative messages

y reempalzaremos cambiando el numero 5 de ambas opciones por la cantidad que  consideremos oportunas $percent=5; porcentaje de similitud y $limit = 5; numero de post relacionados a mostrar

2 comentarios en «Kunena – Hack posts relacionados»

Deja un comentario

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de sus datos para estos propósitos. Ver
Privacidad