IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Breezing Forms - Finalisation formulaire


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 131
    Par défaut Breezing Forms - Finalisation formulaire
    Bonjour,

    Je termine la mise en place de mon site et je cale sur la finalisation de mon formulaire d'achat/commande car je ne maîtrise pas la programmation... je cherche donc une assistance pour les quelques lignes à mettre en pièce de mon formulaire.

    Pour résumer, les membres de mon site doivent acheter des packs Crédits à dépenser sur le site.

    Je pense devoir travailler au submit de mon formulaire et les choses à faire dépendent du type de paiement utilisé:

    - paiement direct (paypal, carte crédit...) :
    * configurer le bouton paypal
    * Si le paiement direct est utilisé, il faut récupérer le type de pack commandé pour verser la valeur correspondant en Crédits sur le compte du membre si le paiement est accepté (la structure comprend un champs "compte" créé via Community Builder)

    - paiement par virement :
    Pour ce mode de paiement, il faut juste créer une référence que le Membre utilisera en communication de son paiement. Cette référence devrait s'afficher sur la page de remerciement de la commande et serait composée comme suit:

    <deux_lettres> <date_et_heure_format_AAmmjjHHmmss> <code_pack_sur_4_digits> <n°_membre>

    Exemple: AA 121021134812 0001 348

    Voilà... cela tient en quelques lignes alors pourrais-je solliciter une petite assistance pour faire cela ?

    Merci à vous,

    Adgenodux

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut
    Jai pas tout compris.

    Je débute avec Joomla et j'ai l'impression que tu as crée ton propre formulaire?
    Tu as donc un .php qlqs part? .html?
    Dans ce cas il faut que tu affiche le code ici sinon ça risque d'être chaud d'avoir une réponse précise.

    Ou alors tu utilise un module/plugin à Joomla?
    Il y en a qlqs uns qui font çà. Lequel?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 131
    Par défaut
    Bonjour Voyager75 et merci pour ta réponse

    Pour les précisions et comme tu débutes, je vais un peu détailler... donc je fais un site sous j2.5 et j'utilise notamment Breezing Forms pour l'achat de "Crédits" à dépenser sur mon site.

    J'ai donc créé un formulaire en Quickmode, 1 page de champs et une page de remerciement. Breezing Forms permet notamment d'injecter du code, js pour actions côté client et php pour traitements côté serveur, et ces codes peuvent être introduits en entrée/sortie du formulaire ou dans les options de configurations des champs.

    Je souhaite donc deux choses :

    - si l'utilisateur paye par système direct (genre paypal, carte de crédits...), quand le paiement est accepté, j'ai un retour du système de paiement qui me dit que c'est accepté, je dois alors verser le nombre de "Crédits" sur le compte que l'utilisateur a sur le site. Si mon formulaire d'achat peut détecter l'acceptation du paiement (je suppose que oui puisque Breezing Forms fournit des tas d'exemples avec Paypal et autres), je dois voir quel "Pack" l'utilisateur a acheté et verser le nombre de "Crédits" correspondant quand le paiement est validé, rien de sorcier si on connait php et accessoirement Breezing Forms

    - si l'utilisateur paye par virement, je souhaite lui imposer une référence à utiliser en communication de son paiement pour des facilités de gestion. Cette communication devrait s'afficher sur la page de remerciement de la commande, c'est à dire sur la page 2 de mon formulaire d'achat. Pour des questions de précision, j'ai déterminé que cette référence devrait se créer au moment du "submit" donc quand l'utilisateur clic sur "Commander". Je présume donc que je devrais injecter un bout de code qui crée la référence, "en sortie" de ma page 1 de mon formulaire, celle donc qui contient les champs préremplis avec les données de l'utilisateur. J'ai expliqué dans mon précédent message la structure de ma référence.

    Pour l'exemple, j'ai aussi un formulaire de revente des "Crédits", voici ce que j'ai mis dans la zone "pièces de formulaire", "Avant le formulaire", "personnalisé" que j'accède via "plus d'options" de l'onglet "avancé" des propriétés du formulaire (faut suivre, je sais ) pour simplement récupérer le montant dont dispose l'utilisateur sur son compte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $this->execPieceByName('ff_InitLib');
    global $database, $record;
    $id = JFactory::getUser()->get('id');
    $database->setQuery("
    SELECT cb_credits 
    FROM gcdb_comprofiler
    WHERE id =  '$id'"
    );
    $row = $database->loadObjectList();
    $record = $row[0];
    Ce code récupère donc le nombre de "Crédits", il faut maintenant l'injecter dans le champ à afficher sur le formulaire de revente, pour ça dans la config du formulaire, je sélectionne le champ "montant dispo", onglet "propriétés" et dans le champ "valeur", je mets ceci qui va afficher ce que l'autre code a récupéré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php global $record; return $record->cb_credits/100 ; ?>
    note, je divise par 100 pour avoir le montant en € car 1 "Crédit" = 1cent

    C'est donc des trucs dans ce genre que j'essaye de composer pour mon versement de "Crédits" sur validation et la récupération des données utiles pour créer la référence de virement mais ne connaissant pas la syntaxe, j'ai du mal à créer mes bouts de code que je ne sais pas encore bien où mettre non plus, raison de ma demande d'assistance car comme tu vois, ça ne tient réellement qu'en quelques lignes que j'ai d'ailleurs composées moi-même sur base d'exemples et de la FAQ de Crosstec donc quelqu'un qui connait ferait ça en 3 minutes max...

    Voilà un peu l'histoire donc si de ton côté tu as une petite idée ou si à l'inverse tu as un soucis, on peut essayer d'évoluer un peu ensemble...

    Cordialement,

    Adgenodux

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 131
    Par défaut
    J'ai avancé un peu sur la récupération de données d'un champ quelconque d'une table quelconque et sur une partie de ma référence

    j'ai posté ici des infos

    Je cale par contre sur la récupération du choix de l'utilisateur pour l'injecter dans ma référence...

    le code suivant mis dans "activer script" de mon champs à copier ne donne pas de résultat. C'est un menu liste avec 3 choix mais rien ne change en fonction du choix.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function ff_packcredits_action(element, action)
    {
        switch (action) {
            case 'change':
                ff_getElementByName('mon_champ_destination').value = ff_getElementByName('mon_champ_dorigine').value;
                break;
            default:;
        } // switch
    } // ff_packcredits_action
    j'ai testé avec le script FF:ff_showaction de la bibliothèque pour vérifier que l'action a bien lieu, ce qui est le cas mais rien ne se copie dans mon champs destination.

    Si quelqu'un a une idée...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 131
    Par défaut
    Bonjour,

    Je bloque toujours sur mes variables, même en utilisant les variables de session... je dois m'y prendre comme un manche alors voici mon code en "Début de soumission" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $this->execPieceByName('ff_InitLib');
    $_SESSION['$idusr'] = JFactory::getUser()->get('id');
    $_SESSION['$var1'] = ff_getSubmit('packcredits') * 100;
    $_SESSION['$usrch'] = ff_getSubmit('packcredits');
    if(isset($_SESSION['$usrch']) == '10')
    {
    $_SESSION['$usrch'] = '001';
    }
    elseif ($_SESSION['$usrch'] == '25')
    {
    $_SESSION['$usrch'] = '002';
    }
    else
    {
    $_SESSION['$usrch'] = '003';
    };
    $_SESSION['$refp'] = 'GC'.date('ymdHis').$_SESSION['$usrch'].$_SESSION['$idusr'].
    echo '!!! Début var1= '.$_SESSION['$var1'].' - usrch= '$_SESSION['$usrch'].' - idusr='.$_SESSION['$idusr'].' - refer='.$_SESSION['$refp']; // NE S'AFFICHE PAS
    et en "Fin de soumission" ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $var1 = $_SESSION['$var1'];
    $idusr = $_SESSION['$id'];
    $usrch = $_SESSION['$usrch'];
    $refp = $_SESSION['$refp'];
    echo '!!! Fin var1= '.$_SESSION['$var1'].' - usrch= '.$_SESSION['$usrch'].' - idusr='.$_SESSION['$idusr'].' - refer='.$_SESSION['$refp'];
    // NE FONCTIONNE PAS NON PLUS - echo '!!! Fin var1= '.$var1.' - usrch= '.$usrch.' - idusr='.$idusr.' - refer='.$refp;
    et cela me donne en résultat :

    Parse error: syntax error, unexpected T_ECHO in /var/www/components/com_breezingforms/facileforms.process.php(1218) :
    eval()'d code on line 18 !!! Fin var1= - usrch= - idusr= - refer=
    Je teste comme je peux dans tous les sens en avalant doc et tutos mais qui sont parfois contradictoires ou erronés alors j'ai du mal avec la syntaxe...

    Quelqu'un aurait une idée ?

    Merci de votre aide...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 131
    Par défaut
    La situation progresse, j'ai enfin ma référence, c'était bien un problème de syntaxe, la solution est ICI... sauf que maintenant quand on arrive sur la page du formulaire, j'ai une fenêtre qui s'ouvre en signalant des problèmes de variable "Undefined index: refp" ligne 1.

    Alors "refp" est donc ma référence que je souhaite afficher sur la page 2 de mon formulaire, ainsi j'ai créé sur cette page un champ texte et dans la zone "Valeur" du champ à afficher, une instruction d'affichage de ma variable. C'est cette ligne (ligne 1) qui provoque l'erreur parce que la variable "refp" n'est pas déclarée, elle est remplie durant un processus au "Début de soumission" du formulaire.

    Si maintenant je déclare ma variable dans la partie "Avant le formulaire", plus d'erreur mais alors comme j'ai pu constater avec ce test, Breezing Forms relit le code "Avant le formulaire" à chaque changement de page donc quand on passe de la page 1 à la page 2 (quand Paypal a accepté le payement), ma variable "refp" est réinitialisée (donc vidée) et ma référence ne s'affiche donc plus sur ma page 2 comme souhaité.

    Je tourne donc en rond...

    Quelqu'un aurait une idée ?

    Merci de vos suggestions...

Discussions similaires

  1. Mise en forme automatique Formulaire
    Par ljoue dans le forum IHM
    Réponses: 3
    Dernier message: 05/09/2006, 15h16
  2. imprimer sous forme de formulaire
    Par fayoub dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/08/2006, 21h55
  3. Réponses: 3
    Dernier message: 09/08/2006, 08h25
  4. mise en forme de formulaire
    Par tojiji dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2006, 17h29
  5. Réponses: 11
    Dernier message: 27/06/2006, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo