Página 1 de 1

Creación de variables

Publicado: 23 Mar 2012, 16:48
por juanlive
Esta es una pregunta avanzada. Estoy creando un sistema para práctica de evaluación de alumnos de escuela.

Concretamente, necesitaría crear una variable (por ejemplo, HAS_POSTED) para que el template viewtopic_body pueda saber si el usuario logueado ha publicado ya una respuesta en ese hilo o no. En base a esto, se le mostrarán o no determinados posts.

Supongo que debo intervenir en viewtopic.php, pero no comprendo bien en dónde se preparan las variables para ese template, ni tampoco en dónde debería insertar el query para SQL pidiendo ese dato, o si se puede aprovechar un query ya hecho.

Muchas gracias,
Juan

Re: Creación de variables

Publicado: 23 Mar 2012, 17:00
por Makoto
Bueno creo que deben ser

viewtopic.php
includes/funtions.php
styles/prosilver*/template/viewtopic_body.html

*O el estilo que estes usando
de aqui no sé más u_u

Re: Creación de variables

Publicado: 25 Mar 2012, 04:46
por Alorse

Sin datos de soporte, no hay ayuda de ningún tipo, lee las normas.


Re: Creación de variables

Publicado: 26 Mar 2012, 14:31
por juanlive
URL: http://www.juanlivingston.com.ar/foro
Versión phpBB: 3.0.10
MODs Instalados: no
Plantilla(s) usada(s): Prosilver
Servidor: Linux
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No


Alorse, aquí están los datos.

Makoto, muchas gracias. Específicamente, necesitaría saber en qué parte dentro de viewtopic.php o dentro de functions.php debería añadir una nueva función para que la variable esté disponible al mostrar el contenido de cada foro y en la lista de foros, ya que en el distema que estoy desarrollando, cada usuario sólo puede ver sus propias respuestas y las del grupo administrador o profesores, pero no la de los demás usuarios.

Re: Creación de variables  Tema Solucionado

Publicado: 26 Mar 2012, 15:16
por Alorse
Si deseas que la variable solo se muestre en el viewtopic (osea en los mensajes) debes agregarla en el viewtopic.php exactamente como un elemento de $postrow = array( que como ves es un arreglo.

Si quieres que esa variable se pueda usar en cualquier parte del foro o en más de una pagina debes agregarla includes/functions.php como un elemento más en la asignación de variables en $template->assign_vars(array(.

En ambos casos de la siguiente manera 'HAS_POSTED' =>$has_posted, y el query debes ponerlo en el archivo que uses, ojala como un método que retorne true o false, para averiguarlo debes acudir a la tabla TOPICS_POSTED_TABLE que es la encargada que almacenar la información de los usuarios que postean en cada tema.

Re: Creación de variables

Publicado: 26 Mar 2012, 17:16
por juanlive
Muchas gracias, Alorse!
Voy a ver si puedo implementarlo, creo que me has dado todas las claves. Veré si me sale bien.
Juan

Re: Creación de variables

Publicado: 26 Mar 2012, 19:19
por juanlive
Listo, perfecto, clarísimo! Ya está implementado lo que necesitaba. Muchas gracias!
Juan

Re: Creación de variables

Publicado: 26 Mar 2012, 19:41
por Alorse
juanlive escribió:Listo, perfecto, clarísimo! Ya está implementado lo que necesitaba. Muchas gracias!
Juan
Me alegra mucho haber sido claro, con tu duda, aunque por lo veo no eres un novato con el php.

Re: Creación de variables

Publicado: 26 Mar 2012, 19:48
por juanlive
Alorse escribió:
juanlive escribió:Listo, perfecto, clarísimo! Ya está implementado lo que necesitaba. Muchas gracias!
Juan
Me alegra mucho haber sido claro, con tu duda, aunque por lo veo no eres un novato con el php.
Con php no soy tan novato. Sí con phpBB. Tus indicaciones fueron claves, sobre todo en qué lugares trabajar para afectar a cada cosa, el nombre de la tabla... Lo demás lo fui deduciendo, y el resto fue prueba y error.

Re: Creación de variables

Publicado: 28 Mar 2012, 14:12
por juanlive
Este fue el código que agregué. Tal vez pueda hacerse de manera más sencilla, pero al menos así funciona.

En includes/functions.php, al final de la asignación $template->assign_vars en línea aparte:

Código: Seleccionar todo

$sql = 'SELECT topic_posted
	FROM ' . TOPICS_POSTED_TABLE . '
	WHERE user_id = ' . $user->data['user_id'] . '
	AND topic_id = ' . $topic_id;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$has_posted = ($row['topic_posted']==1) ? true : false;
$template -> assign_vars(array('HAS_POSTED' => $has_posted ));

Ahora, desde el template viewtopic_body.html, puedo chequear HAS_POSTED. Esto me sirve para mostrar la solución al problema (en vez de "posts" son problemas para resolver) sólo a los que hayan respondido.

Re: Creación de variables

Publicado: 28 Mar 2012, 15:49
por Alorse
Si, así esta bien, lo más propio es que pongas la consulta antes de la asignación y que que la variable 'HAS_POSTED' la declares dentro de esa misma asignación de la que hablamos y no en una nueva, pero básicamente es los mismo. :ok: