modificando support ticket system

Foro de debate para los escritores de MOD, sobre MOD en Desarrollo.

Moderador: Personalizaciones de Extensiones

Avatar de Usuario
engendro666
Ex Miembro del Equipo
Mensajes: 149
Registrado: Jue Feb 25, 2010 3:11 am

modificando support ticket system

Mensaje sin leer por engendro666 » Dom Mar 28, 2010 12:08 pm

Patrocinador

Con mis escasos conocimientos de php :oops: estoy intentando modificar el mod support ticket system para usarlo como un formulario de registro de partidas. Para ello me he basado en las respuestas al tema de soporte en phpb.com y en un manual de php.
La utilidad que le doy a este formulario es que los usuarios rellenan ciertos datos necesarios de las partidas que juegan y asi facilitar el posterior rankeo ya que como es manual se complica mas cuando no se dejan los datos necesarios.

En un principio el formulario se ve algo asi:
demo.gif
Yo lo deje asi:
support.png
Agregue varios menues de seleccion, los de texto solo los modifique y agregue un boton de subir imagen para el print de la partida.

Hize algunos campos requeridos agregando esto:

Código: Seleccionar todo

if ($primero == '')
                   {
                      $error[] = $user->lang['PUESTO_REQUERIDO'];
                   }   
Y edite una linea para que el formulario se viera en vista previa (antes se borraban los datos al dar en vista previa) y en el modo de edicion (ocurria lo mismo)

Cambie esto:

Código: Seleccionar todo

 
        if ($post_data['enable_sts'] == TRUE && ($mode == 'post'))
por esto:

Código: Seleccionar todo

        if ($post_data['enable_sts'] == TRUE && ($mode == 'post' || $mode == 'edit'|| $mode == 'preview'))
y esto:

Código: Seleccionar todo

'SUPPORT_STS'         => ($post_data['enable_sts'] == true && ($mode == 'post')) ? true : false, 
por esto:

Código: Seleccionar todo

'SUPPORT_STS'         => ($post_data['enable_sts'] == true && ($mode == 'post' || $mode == 'edit'|| $mode == 'preview')) ? true : false, 
Bien todo correcto, no se eliminan los datos en la vista previa y al editar se copia el resultado del formulario en el mensaje, el problema es que al editar vuelve a aparecer el formulario y al editar/enviar me vuelve a pedir los datos requeridos.

Mi duda es como podria desactivar el formulario para que al editar, se mantuviera el texto pero que no vuelva a pedir esos datos?

Avatar de Usuario
Leviatan21
Lider phpBB Argentina
Lider phpBB Argentina
Mensajes: 1993
Registrado: Mié Nov 25, 2009 4:43 pm
Ubicación: Buenos Aires, Argentina
Contactar:

Re: modificando support ticket system

Mensaje sin leer por Leviatan21 » Dom Mar 28, 2010 1:25 pm

Por lo que veo en lo que has escrito anteriormente el formulario se habilita/deshabilita en esta parte :

Código: Seleccionar todo

'SUPPORT_STS'         => ($post_data['enable_sts'] == true && ($mode == 'post')) ? true : false,
Y tu lo has cambiado para que también lo habilite cuando se edita o está haciendo una vista previa :

Código: Seleccionar todo

    'SUPPORT_STS'         => ($post_data['enable_sts'] == true && ($mode == 'post' || $mode == 'edit'|| $mode == 'preview')) ? true : false,
En mi opinión deberías volver al código anterior, y buscar otra alternativa para que el formulario siga apareciendo cuando se hace una vista previa mientras se está creando un mensaje nuevo ;)
Lea las reglas | Nosotros | Acerca de phpBB | Descargas | Soporte | Blog
Ex Miembro del Equipo QA en phpbb.com
No se brindará soporte por Mensaje Privado, por favor pregunte en un tema público, tenga en cuenta que su problema puede ser también un problema para otros ;)

Avatar de Usuario
engendro666
Ex Miembro del Equipo
Mensajes: 149
Registrado: Jue Feb 25, 2010 3:11 am

Re: modificando support ticket system

Mensaje sin leer por engendro666 » Lun Mar 29, 2010 12:22 pm

Gran falta de atencion de mi parte :oops: tenes razon cuando modifique eso deberia haber agregado solo la vista previa. Eso pasa por no leer, habia editado esa parte por las indicaciones del autor en el post de soporte, agregue toda slas lineas que indicaba cuando lo que solo necesitaba era hacer los campos requeridos y en lugar de 'edit' 'preview' .

Tengo otra duda es sobre hacer mas campos requeridos pero de otra forma. Por ejemplo que si el usuario marca "6 jugadores" que le de error si por ejemplo solo coloca 5 nombres en los campos de mas abajo. o que si por ejemplo marca entre tres jugadores que cada uno elimino a uno. Que le de un error si a los otros tres no los marca como eliminados. De todos modos "creo" que tengo una idea de como hacer una parte al menos voy a hacer unas cuantas pruebas, si lo logro lo comento, si no lo logro estare molestando otra vez :D

Avatar de Usuario
Leviatan21
Lider phpBB Argentina
Lider phpBB Argentina
Mensajes: 1993
Registrado: Mié Nov 25, 2009 4:43 pm
Ubicación: Buenos Aires, Argentina
Contactar:

Re: modificando support ticket system

Mensaje sin leer por Leviatan21 » Lun Mar 29, 2010 1:53 pm

engendro666 escribió:Gran falta de atencion de mi parte :oops: tenes razon cuando modifique eso deberia haber agregado solo la vista previa. Eso pasa por no leer, habia editado esa parte por las indicaciones del autor en el post de soporte, agregue toda slas lineas que indicaba cuando lo que solo necesitaba era hacer los campos requeridos y en lugar de 'edit' 'preview' .
Creo que aún debería haber algún otro control, ¿ que pasa si editas el mensaje y luego haces una vista previa ?
¿ El formulario vuelve a aparecer y por consiguiente te vuelve a pedir los datos requeridos.?

engendro666 escribió:Tengo otra duda es sobre hacer mas campos requeridos pero de otra forma.
El control que requieres, sería un poco complicado ya que hay que comparar diferentes datos, supongo que con más lineas de código se puede lograr, pero requiere muchas pruebas.
Lea las reglas | Nosotros | Acerca de phpBB | Descargas | Soporte | Blog
Ex Miembro del Equipo QA en phpbb.com
No se brindará soporte por Mensaje Privado, por favor pregunte en un tema público, tenga en cuenta que su problema puede ser también un problema para otros ;)

Avatar de Usuario
engendro666
Ex Miembro del Equipo
Mensajes: 149
Registrado: Jue Feb 25, 2010 3:11 am

Re: modificando support ticket system

Mensaje sin leer por engendro666 » Lun Mar 29, 2010 3:06 pm

Leviatan21 escribió: Creo que aún debería haber algún otro control, ¿ que pasa si editas el mensaje y luego haces una vista previa ?
¿ El formulario vuelve a aparecer y por consiguiente te vuelve a pedir los datos requeridos.?
Interesante observacion, no se me habia ocurrido. Acabo de probarlo, no da problemas, intento editar y usar la vista previa y no el formulario no aparece en ningun modo que es lo que queria. El contenido queda copiado como si se tratara de un mensaje comun y cualquiera y ya no se muestra el formulario.

Leviatan21 escribió:El control que requieres, sería un poco complicado ya que hay que comparar diferentes datos, supongo que con más lineas de código se puede lograr, pero requiere muchas pruebas.
Me imagino que es algo mas complicado, pero creo que se puede (con un manual cerca mejor :D ) de toddos modos no es tan necesario, estos registros tienen que ser a probados por un moderador antes de publicarse y en las normas del foro queda presente que ante cualquier error o mal registro el registro se elimina. Digamosle una solucion "alternativa". Pero como conozco demasiado a los "nuevos usuarios" sobre todo cuando la mayoria saben armar un juego pero no publicar en los foros :lol: podria intentar esas modificaciones con paciencia en un foro de pruebas. Pensaba empezar con la cantidad de jugadores y campos de nombres seria comparar 3 opciones posibles (4 5 y 6) con los 6 campos de los nombres. Si quedara bien ya seria meterse con el tema de cantidad de eliminados y eliminadores pero esto ya es mas complicado tendria que hacer que php hiciera calculos que si bien se que se puede por lo que lei en el manual no he experimentado mucho en esto. Asi que de a poco, de todos modos cada paso que valla dando lo voy poniendo por aca asi me marcan los errores (que van a se r muchos)

Avatar de Usuario
Leviatan21
Lider phpBB Argentina
Lider phpBB Argentina
Mensajes: 1993
Registrado: Mié Nov 25, 2009 4:43 pm
Ubicación: Buenos Aires, Argentina
Contactar:

Re: modificando support ticket system

Mensaje sin leer por Leviatan21 » Lun Mar 29, 2010 3:58 pm

engendro666 escribió:Interesante observacion, no se me habia ocurrido. Acabo de probarlo, no da problemas,
Bien !

engendro666 escribió:Pensaba empezar con la cantidad de jugadores y campos de nombres seria comparar 3 opciones posibles (4 5 y 6) con los 6 campos de los nombres.
Esto depende de como leas los valores para "Primero / Segundo / Tercero / Cuarto / Quito /Sexto", si puedes me gustaría ver esa parte del código...
Lea las reglas | Nosotros | Acerca de phpBB | Descargas | Soporte | Blog
Ex Miembro del Equipo QA en phpbb.com
No se brindará soporte por Mensaje Privado, por favor pregunte en un tema público, tenga en cuenta que su problema puede ser también un problema para otros ;)

Avatar de Usuario
engendro666
Ex Miembro del Equipo
Mensajes: 149
Registrado: Jue Feb 25, 2010 3:11 am

Re: modificando support ticket system

Mensaje sin leer por engendro666 » Lun Mar 29, 2010 4:57 pm

te pego masomenos lo que creo afecta a las dos cosas numero de jugadores y los puestos en si pero solo el primero el resto son clones de lo mismo:

Código: Seleccionar todo

$jugadores = request_var('jugadores', 0);
	$primero = utf8_normalize_nfc(request_var('primero', '', true ));
Mas abajo:
Esto es algo de lo que no venia con el mod

Código: Seleccionar todo

// opciones del formulario para el numero de jugadores
		if ($jugadores == '1')
		{
		  $jugadores = $user->lang['SEIS'];
		}
		else if ($jugadores == '2')
		{
		  $jugadores = $user->lang['CINCO'];
		}
		else
		{
		  $jugadores = $user->lang['CUATRO'];
		}
Mas abajo:
Los dos cuadros de codigo siguientes creo que solo afectan a como va a quedar posteado el formulario, solo modifique y agregue segun como ya venia el mod.

Código: Seleccionar todo

		$u2 = $user->lang['JUGADORES'];
		$u3 = $user->lang['PRIMERO'];
Mas abajo:

Código: Seleccionar todo

		$messagetemp .= "[b]" . $u2 . "[/b] " . $jugadores . "\n";
		$messagetemp .= "\n" . "[color=#00FF00]" . "[b]" . $u3 . "[/b]" . "[/color]" . $primero . " " . " " . "[color=#00FF00]" . $mision . "[/color]" . " ";

Mas abajo otro agregado donde creo yo segun mis escasos conocimientos que deberia comparar con el "numero de jugadores" usando else if o else aunque capaz halla una mejor manera que se escapa de mis conocimientos:

Código: Seleccionar todo

if ($primero == '')
                   {
                      $error[] = $user->lang['PUESTO_REQUERIDO'];
                   }	
			else if ($segundo == '')
                   {
                      $error[] = $user->lang['PUESTO_REQUERIDO'];
                   }
			else if ($tercero == '')
                   {
                      $error[] = $user->lang['PUESTO_REQUERIDO'];
                   }	
			else if ($cuarto == '')
                   {
                      $error[] = $user->lang['PUESTO_REQUERIDO'];
                   }
mas abajo:

Código: Seleccionar todo

'JUGADORES'		=> request_var('jugadores', 0),
'PRIMERO'		=> request_var('primero', ''),
Bueno esto es todo lo del posting.php aparte de esto tambien modifique el postingbody.html pero creo que para el tema se necesita solo el .php

Avatar de Usuario
Leviatan21
Lider phpBB Argentina
Lider phpBB Argentina
Mensajes: 1993
Registrado: Mié Nov 25, 2009 4:43 pm
Ubicación: Buenos Aires, Argentina
Contactar:

Re: modificando support ticket system

Mensaje sin leer por Leviatan21 » Lun Mar 29, 2010 5:26 pm

Supongo que los valores de 1, 2 y else que corresponden a 6, 5 y 4 respectivamente, es así por como está escrito el select en la planilla, aunque resulta un poco confuso que no utilices los mismos valores

Código: Seleccionar todo

if ($jugadores == '1')
¿ Esto se repite para los 6 ?:

Código: Seleccionar todo

$primero = utf8_normalize_nfc(request_var('primero', '', true ));
engendro666 escribió:mas abajo:

Código: Seleccionar todo

    'JUGADORES'      => request_var('jugadores', 0),
    'PRIMERO'      => request_var('primero', ''),
Si esto es para pasar los valores a la plantilla, ¿ para que volver a utilizar request_var si ya lo has hecho anteriormente ?
Directamente utiliza las variables que ya están asignadas ;)

Código: Seleccionar todo

	'JUGADORES' 	=> $jugadores,
	'PRIMERO'		=> $primero,
Lea las reglas | Nosotros | Acerca de phpBB | Descargas | Soporte | Blog
Ex Miembro del Equipo QA en phpbb.com
No se brindará soporte por Mensaje Privado, por favor pregunte en un tema público, tenga en cuenta que su problema puede ser también un problema para otros ;)

Avatar de Usuario
engendro666
Ex Miembro del Equipo
Mensajes: 149
Registrado: Jue Feb 25, 2010 3:11 am

Re: modificando support ticket system

Mensaje sin leer por engendro666 » Lun Abr 05, 2010 1:05 am

Perdon, habia dejado este tema de lado, el viernes "reinaugure" el foro luego de 2 meses de vacaciones :D y estuve ocupado con el tema bans duplicacion de cuentas etc y esas cosas con las que se divierte un administrador :lol:

Por cierto le encontre un error al formulario con el tema vista previa y los menues de opcion (se cambian luego de la vista previa no necesariamente a la opcion por defecto) cosa que voy a revisar ahora mismo y ya comentare.

en cuanto a esto:
Si esto es para pasar los valores a la plantilla, ¿ para que volver a utilizar request_var si ya lo has hecho anteriormente ?
La verdad? no tengo ni idea yo solo copie y pegue lo que ya traia el mod cambiando los nombres de variables etc modifique otras cosas y probe a ver como funcionaba, la repeticion de request_var ya estaba asi y al copiar y pegar se repitio aun mas voy a probar lo que decis y ver como funciona y tambien comento sobre esto. Estuve revisando y hay varias cosas que simplificarle antes que seguir agregando/modificando otras. En un rato comento las pruebas.

gracias por la ayuda

Avatar de Usuario
engendro666
Ex Miembro del Equipo
Mensajes: 149
Registrado: Jue Feb 25, 2010 3:11 am

Re: modificando support ticket system

Mensaje sin leer por engendro666 » Lun Abr 05, 2010 12:07 pm

Bueno, probe lo que me dijiste sobre los "request_var" saque los que estaban repetidos abajo no dio ningun problema. Con lo que dije en el mensaje anterior estuve revisando desde anoche y no le veo la vuelta. El tema es con la vista previa todos los menues desplegables de seleccion luego de la vista previa quedan en valor por defecto, esto no los revise. Los botones de opcion (radio buttons) quedan en la opcion contraria, por ejemplo si pongo si despues de la vista previa queda en no y viceversa. De estos botones solo tengo 2:

Jugadores: 4
5
6

Modalidad: Por tiempo
A Terminar

"Jugadores" funciona perfectamente pero "modalidad" pasa lo que explique arriba (se cambia la opcion) probe rehacer el codigo del php y el html de "modalidad" basandome en el de jugadores pero sigue sucediendo lo mismo asi que lo deje como estaba, nose si la diferencia sea que en uno hay 2 opciones y en el otro tres. En un principio esas dos opciones las deje iguales que como estaban en el mod usando una parte que tenia 3 opciones y otra con 2 por lo que supongo que el problema radica en que el autor del mod no lo hizo con vista previa por lo tanto no tuvo este error. Tambien supongo que sera tema de escribir el codigo de otra manera en lugar de repetir uno y cambiar los nombres.

Te adjunto 2 archivos el php y el html pero solo las lineas del mod para no entreverar tanto por si le encontras el error, ya que tengo demasiados mods instalados pero en todo caso si es necesario te los adjunto enteros despues.

Nota: hay varias cosas en el archivo que no si halla manera de simplificarlas para no dejar tanto codigo en el archivo como esto por ejemplo:

Con esto es que hago que al seleccionar una opcion de "cuantos jugadores elminio" me muestre tal palabra del archivo de lenguaje. Se repite para todos los jugadores exepto el ultimo cuanto mas arriba en la lista mas opciones tiene

Código: Seleccionar todo

 // Quinto puesto elimino a:
          if ($elimino5 == '0')
          {
            $elimino5 = $user->lang['ELIMINO5_0'];
          }
          else if ($elimino5 == '1')
          {
            $elimino5 = $user->lang['ELIMINO5_1'];
          }

Código: Seleccionar todo

 // Cuarto puesto elimino a:
          if ($elimino4 == '0')
          {
            $elimino4 = $user->lang['ELIMINO4_0'];
          }
          else if ($elimino4 == '1')
          {
            $elimino4 = $user->lang['ELIMINO4_1'];
          }
          else if ($elimino4 == '2')
          {
            $elimino4 = $user->lang['ELIMINO4_2'];
          }
No habra una manera de escribirlo mas "globalmente" y que funcione para todos los jugadores? Teniendo en cuenta que siempre hay que bloquearle opciones segun el puesto. Por ej: el 5 puesto no puede tener la opcion "elimino 2" porque son 6 jugadores y los eliminados siempre estan al final si elimina 2 como minimo quedaria 4 no se si me hago entender. Algo similar pasa con casi todos los menues desplegables.
Adjuntos
Formulario.rar
(3.35 KiB) Descargado 99 veces

Responder