Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme
  • Página:
  • 1
  • 2

TEMA: Post relacionados para Kunena 1.6

Post relacionados para Kunena 1.6 9 años 6 meses ago #16266

  • gonzaunit
  • Avatar de gonzaunit
  • Offline
  • Colaborador
  • Mensajes: 289
  • Gracias recibidas 50
  • Karma: 24
Hack para ver post relacionados en un tema

Probado en Kunena 1.6 beta 1
Buscar en components\com_kunena\template\default\view\ "view.php"
<!-- F: List Actions Bottom -->
y pegar abajo
<?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>";
		}
?>
Detalles que se pueden cambiar:
$percent=5; (porcentaje de coincidencia si pone 5 sera 5%)
$topics_only=1; (si pones 1 solo aparecerá el primer tema, si pones 0 aparecerán las respuestas)
$limit = 5; (cuantos post quieres que aparezcan)
y guardar..Saludos
Última Edición: 9 años 6 meses ago por gonzaunit.
El administrador ha desactivado la escritura pública.
Los siguientes usuarios han agradecido: JoniJnm, Mizunga

Re: Post relacionados para Kunena 1.6 9 años 6 meses ago #16267

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
Muchas gracias!! :P
El administrador ha desactivado la escritura pública.

Re: Post relacionados para Kunena 1.6 9 años 5 meses ago #16419

  • Mizunga
  • Avatar de Mizunga
  • Offline
  • Colaborador
  • Mensajes: 469
  • Gracias recibidas 36
  • Karma: 28
Me aparece esto, y no tengo ni idea de cual puede ser el error

Notice: Undefined variable: page in /home/blejesh1/public_html/euroviajar.com/components/com_kunena/template/default/view/view.php on line 102

¿alguna idea?
El administrador ha desactivado la escritura pública.

Re: Post relacionados para Kunena 1.6 9 años 5 meses ago #16420

  • gonzaunit
  • Avatar de gonzaunit
  • Offline
  • Colaborador
  • Mensajes: 289
  • Gracias recibidas 50
  • Karma: 24
es raro porque solo hay que copiar y pegar,
hay te mando el archivo probalo va en "com_kunena/template/default/view/"

Archivo Adjunto:

Nombre del Archivo: view.zip
Tamaño del Archivo:2 KB
Última Edición: 9 años 5 meses ago por gonzaunit.
El administrador ha desactivado la escritura pública.

Re: Post relacionados para Kunena 1.6 9 años 5 meses ago #16423

  • Mizunga
  • Avatar de Mizunga
  • Offline
  • Colaborador
  • Mensajes: 469
  • Gracias recibidas 36
  • Karma: 28
Muchas gracias pero sigue apareciendo lo mismo, actualmente estoy utilizando una Beta 2 que me dejo Joni porque la Beta 1 no me funcionaba y generaba problemas en mi sitio... igual es por eso.
El administrador ha desactivado la escritura pública.

Re: Post relacionados para Kunena 1.6 9 años 5 meses ago #16425

  • gonzaunit
  • Avatar de gonzaunit
  • Offline
  • Colaborador
  • Mensajes: 289
  • Gracias recibidas 50
  • Karma: 24
prueba con esto, abrir el phpmyadmin (si quieres puedes hacer una copia de seguridad) busca la base de datos que estas utilizando en joomla y pega esto:
ALTER TABLE jos_kunena_messages ADD FULLTEXT(subject);
 
ALTER TABLE jos_kunena_messages_text ADD FULLTEXT(message);
y dale en continuar

te dejo una imagen para que te guíes:
El administrador ha desactivado la escritura pública.

Re: Post relacionados para Kunena 1.6 9 años 5 meses ago #16443

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
El problema está en que la variable $page no está definida. El warning php se muestra o no dependiendo de la configuración del reporte de errores, por eso uno lo ve y otro no. Usad esto:
<?php
$percent=5; //similarity percentage, increase for sensitive matching. for example 10 is 10% match, 50 is 50% match, 100 is one o one
$limit = 5; //set number of relative messages 
$only_subject = false; // Search only in subject or in text message too
 
$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();
$oran1 = "MATCH(t2.subject) AGAINST('".addslashes($this_message->subject)."')";
$oran2 = "MATCH(t1.message) AGAINST('".addslashes($this_message->subject)."')";
$query=("SELECT id, subject, catid, $oran1 as oran1 ".($only_subject?"":", $oran2 as oran2")." FROM 
	#__kunena_messages_text as t1 INNER JOIN #__kunena_messages as t2 ON t2.id = t1.mesid 
	WHERE ($oran1 > $percent ".($only_subject?'':" OR $oran2 > $percent").") 
	AND t2.thread <>".$this_message->thread." AND parent=0 
	ORDER BY oran1 DESC".($only_subject?"":",oran2 DESC")." LIMIT $limit;");
$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"';
	foreach ($sim_message as $sonuc)
		echo "<span style=\"font-weight\"><a  rel=\"follow\" title=\"".$sonuc->subject."\" href=\"".CKunenaLink::GetThreadPageURL('view', $sonuc->catid, $sonuc->id, 1)."\">".$sonuc->subject."</a></span><br />";
	echo "</div></div>";
}
?>
Última Edición: 9 años 5 meses ago por JoniJnm.
El administrador ha desactivado la escritura pública.

Re: Post relacionados para Kunena 1.6 9 años 5 meses ago #16451

  • Mizunga
  • Avatar de Mizunga
  • Offline
  • Colaborador
  • Mensajes: 469
  • Gracias recibidas 36
  • Karma: 28
El error ya no aparece, pero, tampoco los temas relacionados que aparecian antes estando al 5%, osea al que esta este.
El administrador ha desactivado la escritura pública.

Re: Post relacionados para Kunena 1.6 9 años 5 meses ago #16459

  • gonzaunit
  • Avatar de gonzaunit
  • Offline
  • Colaborador
  • Mensajes: 289
  • Gracias recibidas 50
  • Karma: 24
hola hiciste lo que puse antes?

porque cuando vos dijiste eso del error yo me puse a probar y no se veían los post relacionado en una instalación nueva, pone esto
ALTER TABLE jos_kunena_messages ADD FULLTEXT(subject);
 
ALTER TABLE jos_kunena_messages_text ADD FULLTEXT(message);

y en el porcentaje en vez de 5 pone 1
Última Edición: 9 años 5 meses ago por gonzaunit.
El administrador ha desactivado la escritura pública.
  • Página:
  • 1
  • 2
Tiempo de carga de la página: 0.272 segundos