Página 1 de 1

Restrigir Similar Topics al foro donde se está

Publicado: 23 Ene 2010, 21:31
por galilei
Hola de nuevo,

Cuando se entra en un mensaje de un foro determinado, 'Similar Topics mod 1.0.1' realiza la búsqueda de similares en todo el foro y lo que me gustaría hacer es restringirlo al foro donde pertenece el topic selecionado.

He leido en otros foro cómo hacer para hacer que busque en una selección de foros y no en todos pero no he encontrado lo que planteo.

En mi caso los foros son de mates, física o química. Cuando un usuario entre en el foro de química que busque los mensajes similares correspondiente sólo a ese foro (por ejemplo). Lo mismo cuando lo haga en cualquier otro foro.

Gracias por adelentado.
Off Topic:
¿Cómo puedo contartar con algún admin o moderardor para comentarle algo sobre el Mod Latex de Mitch? ¿Puedo hacerlo por PM?

Re: Restrigir Similar Topics al foro donde se está

Publicado: 24 Ene 2010, 21:58
por ahh72
holas, no estoy del todo seguro pero creo que para hacer lo que dices tendria que tocarse codigos en el mod, a ver si algun experto puede responderte lo antes posible y ayudarte con lo que deseas.

saludos

Re: Restrigir Similar Topics al foro donde se está

Publicado: 24 Ene 2010, 22:07
por HuanManwe
¿podrías decirnos un enlace para descargar el MOD del que hablas?

Re: Restrigir Similar Topics al foro donde se está

Publicado: 28 Ene 2010, 01:32
por galilei
Hola,

Qué raro no he recibido la notificación de respuesta de HuanManwe.

Sí, el MOD es el que tenéis aquí para descargar:

http://www.phpbb-es.com/foro/similar-to ... 20527.html

El código a modificar supongo que será (en viewtopic.php):
Spoiler

Código: Seleccionar todo

// Begin similar topics
$sql_array = array(
	'SELECT'	=> 'f.forum_id, f.forum_name, t.topic_id, t.topic_title, u.user_id, u.username, u.user_colour, t.topic_replies',

	'FROM'		=> array(
		TOPICS_TABLE	=> 't',
	),

	'LEFT_JOIN'	=> array(
		array(
			'FROM'	=>	array(USERS_TABLE	=> 'u'),
			'ON'	=> 'u.user_id = t.topic_poster'
	),
		array(
			'FROM'	=>	array(FORUMS_TABLE	=> 'f'),
			'ON'	=> 'f.forum_id = t.forum_id'
		),
	),

	'WHERE'		=> "MATCH (t.topic_title) AGAINST ('" . $db->sql_escape($topic_data['topic_title']) . "' ) >= 0.5
		AND t.topic_status <> " . ITEM_MOVED . '
		AND t.topic_id <> ' . (int) $topic_data['topic_id'],

	'GROUP_BY'	=> 't.topic_id',

	'ORDER_BY'	=> 't.topic_last_post_time DESC',
);
$sql = $db->sql_build_query('SELECT', $sql_array);
if ($result = $db->sql_query_limit($sql, 5))
{
	while($similar = $db->sql_fetchrow($result))
	{
		if ($auth->acl_get('f_read', $similar['forum_id']))
		{
			$similar_forum_url	= append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=" . $similar['forum_id']);
			$similar_topic_url	= append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $similar['forum_id'] . '&t=' . $similar['topic_id']);
			$similar_user		= get_username_string('full', $similar['user_id'], $similar['username'], $similar['user_colour'], $similar['username']);

			$template->assign_block_vars('similar', array(
				'TOPIC_TITLE'			=> $similar['topic_title'],
				'U_TOPIC'				=> $similar_topic_url,
				'REPLIES'				=> $similar['topic_replies'],
				'USER'					=> $similar_user,
				'U_FORUM'				=> $similar_forum_url,
				'FORUM'					=> $similar['forum_name'])
			);
		}
	}
}
// End Similar Topics
La idea es que sólo busque mensajes similares en el foro donde se entra (no en todos).

Gracias.
Off Topic:
Una cosa que quería comentar y no sé donde hacerlo es que el MOD de Mitch de Latex lo deberíais retirar porque el servidor donde se generan los códigos se ha 'mosqueado'. En los gráficos que se generán pone un cartelito:

Imagen.

Lo podéis ver en:
http://www.phpbb-es.com/foro/mensaje104814.html

He puesto mensajes al respecto pero no me habéis hecho mucho caso :roll: :
http://www.phpbb-es.com/foro/mensaje126205.html

Re: Restrigir Similar Topics al foro donde se está

Publicado: 02 Feb 2010, 10:36
por galilei
Por si puede servirle a alguien más.

Lo que hay que hacer para restringir la búsqueda al foro activo (Similar Topics MOD) es:

Buscar:

Código: Seleccionar todo

AND t.topic_id <> '. (int) $ topic_data [ 'topic_id'],
Añadir ANTES:

Código: Seleccionar todo

AND f.forum_id = ' . (int) $topic_data['forum_id'] . '
http://www.phpbb.com/community/viewtopi ... 5&start=30

Re: Restrigir Similar Topics al foro donde se está

Publicado: 02 Feb 2010, 14:00
por mitch
Muchas gracias por dejar la solución