it-swarm-es.tech

Formulario único para usuarios de Joomla?

Quiero colocar un formulario html/php personalizado para mi suarios registrados de Joomla pero quiero que el usuario lo envíe solo una vez, es decir, si un usuario ha enviado el formulario, la próxima vez que abra ese página del formulario, debería ¿no volverá a ver el formulario? En cambio, debería ver un mensaje personalizado (como Ya ha enviado el formulario o bla bla bla ....) ¿Cómo lograr esto?

6
saibbyweb

Cuando dices "personalizado", espero que quieras decir que vas a seguir con los métodos de Joomla y convertirlo en un módulo o componente;)

La mejor manera de hacerlo es usando algunos de los métodos que ya ha estado usando. Y con eso me refiero a obtener el objeto de usuario.

Entonces, cuando un usuario envía el formulario, no solo envía los datos que ha ingresado, sino que también envía su nombre de usuario, usando $user->username. En el futuro, ahora supuestamente tenemos su nombre de usuario almacenado en la base de datos junto con los datos que enviaron.

Ahora debe escribir una consulta en la base de datos obteniendo el nombre de usuario de la tabla y compararlo con el usuario conectado actualmente. Aquí hay un pequeño ejemplo:

$db = JFactory::getDbo();
$user = JFactory::getUser();

$query = $db->getQuery(true);
$query->select($db->quoteName('username'));
      ->from($db->quoteName('#__myform'));
      ->where($db->quoteName('username') . ' = '. $db->quote($user->username));
$db->setQuery($query);

$result = $db->loadResult();

if($result) {
    // display custom message
}
else {
    // display form
}

Creo que sería una idea hacer que el formulario funcione primero y luego comenzar a integrar la verificación del usuario.

Espero que esto ayude

3
Lodder

No estoy seguro de qué extensión está utilizando para generar el formulario. Pero si tiene la posibilidad de cambiarlo a "Chronoforms", puede hacer esto para esta extensión como se sugiere aquí: http://www.chronoengine.com/forums/posts/t9535/p9535/user-submit- only-once.html

NOTA: Incluso si no usa cronoformas, puede usar el método subyacente ya que usa las funciones estándar y el marco de trabajo de Joomla.

Esto es exactamente lo que está buscando, pero la trampa es que debe usar cronoformas, que por cierto son la mejor extensión de forma gratuita para Joomla de todos modos, en mi opinión. El soporte es excelente, bien mantenido. Lo uso para mi sitio también.

2

Utilice el contacto B2J para generar campos personalizados en un formulario. Es un componente creador de formularios Joomla gratuito proporcionado por Bang2Joom Team. Bonito y fácil backend! Soporte amistoso!

¡Solo inténtalo!

Descargar aquí: http://www.bang2joom.com/joomla-components/b2j-contact

0
Gev Balyan