web-dev-qa-db-fra.com

Un formulaire unique pour les utilisateurs de Joomla?

Je veux placer un formulaire html/php personnalisé pour mon tilisateurs enregistrés de Joomla mais je veux qu'il soit soumis par l'utilisateur une seule fois, je veux dire si un utilisateur a envoyé le forme, la prochaine fois qu'il ouvrira cette page de formulaire, il devrait ne pas voir le formulaire à nouveau? Au lieu de cela, il devrait voir un message personnalisé (comme vous avez déjà soumis le formulaire ou bla bla bla ....) Comment y parvenir?

6
saibbyweb

Quand vous dites "custom", j'espère que vous voulez dire que vous allez vous en tenir aux méthodes Joomla et en faire un module ou un composant;)

Pour ce faire, le meilleur moyen consiste à utiliser certaines des méthodes déjà utilisées. Et par là, je veux dire obtenir l'objet utilisateur.

Ainsi, lorsqu'un utilisateur soumet le formulaire, non seulement il soumet les données qu'il a saisies, mais il soumet également son nom d'utilisateur à l'aide de $user->username. À l’avenir, nous supposons maintenant que leur nom d’utilisateur est stocké dans la base de données avec les données qu’ils ont soumises.

Vous devez maintenant écrire une requête dans la base de données, extraire le nom d'utilisateur de la table et le faire correspondre à l'utilisateur actuellement connecté. Voici un petit exemple:

$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
}

Je pense que ce serait une idée de commencer par faire fonctionner le formulaire, puis de commencer à intégrer le contrôle utilisateur.

J'espère que cela t'aides

3
Lodder

Je ne sais pas quelle extension vous utilisez pour générer le formulaire. Mais si vous avez la possibilité de le changer en "Chronoforms", vous pouvez le faire pour cette extension comme suggéré ici: http://www.chronoengine.com/forums/posts/t9535/p9535/user-submit- seulement-une fois.html

REMARQUE: Même si vous n'utilisez pas de chronoformes, vous pouvez toujours utiliser la méthode sous-jacente car elle utilise les fonctions standard et la structure de Joomla.

C’est exactement ce que vous recherchez, mais le problème, c’est que vous devez utiliser des chronoformes, qui sont d’ailleurs la meilleure extension de forme libre pour Joomla de toute façon, à mon avis. Le support est excellent, bien entretenu. Je l'utilise aussi pour mon site.

2

Utilisez B2J Contact pour générer des champs personnalisés dans un formulaire. C'est un composant libre de création de formulaire Joomla fourni par l'équipe Bang2Joom. Backend agréable et facile! Soutien amical!

Juste l'essayer!

Téléchargez ici: http://www.bang2joom.com/joomla-components/b2j-contact

0
Gev Balyan