We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 24222
    • 63 Posts
    Ciao a tutti,
    stò dando un’occhiata allo snippet WebSignup...

    Ad un certo punto nel codice (precisamente in websignup.inc.php) viene eseguito
    $modx->invokeEvent("OnWebSaveUser",
    array(
    "mode" => "new",
    "userid" => $key,
    "username" => $username,
    "userpassword" => $password,
    "useremail" => $email,
    "userfullname" => $fullname
    ));
    

    Nella documentazione è indicato che il metodo invoca un evento di tipo "OnWebSaveUser" con il passaggio di un certo numero di parametri.
    Dato che tutte le operazioni sul DB sono state compiute prima di questa chiamata a che serve l’invocazione? huh
      • 16429
      • 254 Posts
      Forse è ridondante.
      Bisognerebbe provare di togliere il primo inserimento e vedere se "$modx->invokeEvent("OnWebSaveUser", eccetera" funziona, e poi provare il contrario.
        kudo
        www.kudolink.com - webdesign (surprised?)

        [img]http://www.kudolink.com/kudolinkcom.png[/img] [sup]proudly uses[/sup] [img]http://www.kudolink.com/modx.png[/img]
        • 24222
        • 63 Posts
        La risposta al "problema" è qua...
        http://modxcms.com/forums/index.php/topic,6142.0/topicseen.html

        In sintesi il metodo invokeEvent serve per forzare l’esecuzione di un evento. E’ una sorta di "aggancio" a cui collegare i propri plugin. All’esecuzione dell’invoke tutti i plugin in ascolto per un dato evento saranno eseguiti. I parametri passati dall’invoke sono resi disponibili come un array locale al plugin. Quindi per estendere le funzionalità dello snippet websignup (ad esempio per trattare altri campi oltre a quelli di default) dovrebbe essere sufficiente creare un plugin ed associarlo all’evento OnWebSaveUser.

        Tale plugin potrebbe processare l’array $_POST, recuperare i dati di interesse e salvarli nel db (tutto senza che sia necessario toccare il codice originale di websignup.inc.php)... notevole!

        Sono curioso di provare... shocked
          • 16429
          • 254 Posts
          Quote from: quimo at Aug 04, 2006, 12:33 PM

          Tale plugin potrebbe processare l’array $_POST, recuperare i dati di interesse e salvarli nel db (tutto senza che sia necessario toccare il codice originale di websignup.inc.php)... notevole!

          Praticamente si tratterebbe di aggiungere un form al form di Websignup con i campi in più indirizzati al plugin, che li aggiunge a quelli già presenti?

          Intanto che ci siamo, e visto che abbiamo a che fare con la legge italiana tutti e due, tu come risolvi in una registrazione utente il fatto che debba accettare esplicitamente le condizioni sulla Privacy? Ovvero: come aggiungere il controllo sulla spunta "Sì, accetto"?
            kudo
            www.kudolink.com - webdesign (surprised?)

            [img]http://www.kudolink.com/kudolinkcom.png[/img] [sup]proudly uses[/sup] [img]http://www.kudolink.com/modx.png[/img]
            • 24222
            • 63 Posts
            Per gestire la questione della spunta sulla privacy puoi fare come segue:
            1) copia il chunk FormSignup in un altro chunk che chiamerai ad es. MyFormSignup
            2) edita MyFormSignup e aggiungi le parti che ti ho commentato:
            <!-- #declare:separator <hr> --> 
            <!-- login form section-->
            <!--INIZIO CODICE MODIFICATO -->
            <form method="post" name="websignupfrm" id="websignupfrm" action="[+action+]">
            <!--FINE CODICE MODIFICATO-->
            <fieldset>
            <h3>User Details</h3>
            ...
            <h3>Bot-Patrol</h3>
            <p>Enter the word/number combination shown in the image below.</p>
            <label>Form code:* 
            <input type="text" name="formcode" class="inputBox" size="20" /></label>
            <a href="[+action+]"><img align="top" src="manager/includes/veriword.php" width="148" height="60" alt="If you have trouble reading the code, click on the code itself to generate a new random code." style="border: 1px solid #039" /></a>
            </fieldset>
            <!--INIZIO CODICE AGGIUNTO -->
            <label for="disclaimer">Privacy Statement<br /><textarea name="disclaimer" cols="60" rows="6">Testo privacy</textarea></label><br />
            <label for="agree"><input type="checkbox" id="agree" name="agree" value="agree" />I agree</label><br />
            <!--FINE CODICE AGGIUNTO -->
            <fieldset>
            <input type="submit" value="Submit" name="cmdwebsignup" />
            </fieldset>
            </form>
            <script language="javascript" type="text/javascript"> 
            var id = "[+country+]";
            var f = document.websignupfrm;
            var i = parseInt(id);	
            if (!isNaN(i)) f.country.options[i].selected = true;
            <!--INIZIO CODICE AGGIUNTO -->
            document.getElementById("websignupfrm").onsubmit = function() {
            if (!document.getElementById("agree").checked) {
            alert("You must agree to the privacy statement to proceed");
            return false;
            }
            return true;
            }
            <!--FINE CODICE AGGIUNTO -->
            </script>
            ...
            

            3) nel content della tua pagina chiama lo snippet WebSignup...
            [[WebSignup? &tpl=`MyFormSignup` &groups=`Registered Users`]]
              • 34162
              • 1 Posts
              Quello che scrivete è molto interessante ma non l’ho capito.
              Mi spighereste, magari con un esempio come aggiungere campi per la registrazione? Inoltre, disabilitando JavaScript non è possibile che qualcuno si iscriva senza aver accettato la normativa sulla privacy?
              Ringrazio anticipatamente per la risposta.