Publicidad

[Problema] Mod Bookmarks de SMFS

Publicado por jotade, 21 Diciembre de 2021, 01:29

Tema anterior - Siguiente tema

0 Usuarios y 1 Visitante están viendo este tema.

jotade

Buenas, mi problema está en relación con el mod Bookmarks de SMFSimple.

Primeramente, escalo la pregunta aquí, porque creo que SMFS está en una época de no actividad, y no obtengo ninguna respuesta. El mod este funciona perfectamente, pero hay un problema:

Cuando añado a favoritos un tema, si por ejemplo retrocedo la página, y lo vuelvo a añadir, se me duplica el tema en el apartado de favoritos, es decir, que puede salir 2, 3, infinitas veces que le des a añadir. El mod se vale, para que esto no ocurra, simplemente con esconder el botón si el tema está en favoritos, pero no contempla la posibilidad de que alguien de atrás, y lo vuelva a añadir.

El condicional se debe poner en el archivo sub-bookmarks, dentro de añadir un favorito, el problema está en que no sé cómo estructurar la condición. Por lógica, debe ejecutarse el código de añadir el favorito ÚNICAMENTE, si antes con un if se comprueba que no exista la id_topic y la id_member en la tabla correspondiente, pero a la hora de plasmarlo, no sé cómo poder poner el if de modo que compruebe si existe ese id_topic + id_usuario, y me ejecute el código si comprueba que NO EXISTE EN FAVORITOS (bookmarks). A ver si me puedes echar una mano, por favor, Rock. ¡¡Mil gracias de nuevo!!

Rock Lee

¿Que versión estas usando? creo esa falla es una version vieja que se arreglo en versiones posteriores. Ciertamente solo seria agregar un comprobador si ya tiene agregado la ID de determinado tema no tiene que agregarlo, aunque tendria ver el código para asegurar.


Saludos Familia!

jotade

#2
Buenas Rock, gracias por responder. Uso la última versión, y estoy seguro de ello porque hasta en SMFS tienen ese bug, que es de ellos el mod. Te paso el fragmento de código por aquí, a ver si de un vistazo muy rápido puedes ayudarme. Y si no, cuando tú puedas, agradezco mucho tu ayuda. Te he colocado el condicional y el echo del else. Como te he comentado, no sé cómo hacer la comprobación de si existe esa id del tema añadido junto a la id del usuario que lo ha añadido.



function AddBookmarks()
{
	global $smcFunc, $user_info, $modSettings, $message;
	
if(AQUÍ VA LA CONDICIÓN DE QUE ESA ID NO EXISTA PREVIAMENTE, JUNTO A LA ID DEL USUARIO QUE LO HA AÑADIDO){
	//Verificacion de permisos..
	isAllowedTo('bookmarks');

	if (empty($modSettings['bkm_enabled'])) //Comprobamos que este activado el mod...
		fatal_lang_error('bkm_error_mod_disabled', false);

	checkSession('get');
	$id_topic = (!empty($_GET['id_topic'])) ? (int) $smcFunc['db_escape_string']($_GET['id_topic']) : '';
	$id_member = (!empty($user_info['id'])) ? (int) $smcFunc['db_escape_string']($user_info['id']) : '';

	//if((empty($id_topic)) || (empty($id_member)))
		//fatal_lang_error('bkm_error_contact', false);

	//Actualizamos el log!
	 $smcFunc['db_insert']('insert',
		'{db_prefix}bookmarks',
		array('id_topic' => 'int', 'id_member' => 'int',),
		array($id_topic, $id_member,),
		array()
	);
	//Sumamos
	$smcFunc['db_query']('', "
		UPDATE {db_prefix}topics
		SET bookmarks = bookmarks + 1
		WHERE id_topic = {int:id_topic}
		LIMIT 1",
		array(
			'id_topic' => $id_topic,
		)
	);
	redirectexit('https://zaefirmj.lucusprueba.es/test/index.php');
	echo 'hecho';
}
else
	echo 'error'
}


Mil gracias.

Rock Lee

Bueno muchos mods tuvieron problemas en si mismo pero no se si no quiso actualizar o simplemente fue otra cosa, igualmente cuando tenga algo de tiempo lo pruebo en completo sino seria medio gallito ciego si no veo todo el panorame del mod (aplicar código por separado a lo loco puede romper todo) para entender cual es la mejor solucion posible y con menor código agregado.


Saludos Familia!

Temas Similares (5)