Joomla.it Forum
Componenti per Joomla! => Gestione Form => : giormagno 17 Jan 2011, 15:13:52
-
ciao ragazzi!
domanda facile facile per chi ne mastica più di me... Ho creato un form di registrazione, funge alla perfezione, mi aggiunge utenti, fa tutto insomma. L'unico problema è che nella tabella del database collegata al form non mi memorizza il nome, l'utente e l'email (i quali valori entrano nella tabella usata da joomla per registrare gli utenti). C'è un modo affinchè i dati inseriti nel form popolino ambedue le tabelle (non mi interessa che c'è una ridondanza di dati, anzi, è proprio quello che cerco!)
Graaaaaaaaaaasie a chi mi saprà aiutare!
-
In ogni record registrato in tabella per default chronoform inserisce il codice di chi ha compilato ed altri dati standard.
in fase di lettura basta mettere in relazione la tabella del form con quella degli user di joomla ed estrarre i dati necessari.
Oppure in fase di registrazione del form le API di joomla mettono già a disposizione i dati dell'utente loggato.
Cerca qui nel forum la parola users e vedrai tutte le situazioni già affrontate.
-
mi diresti in pratica cosa bisognerebbe fare??? ho visto che se attivo la registrazione di nome username e email, alcune volte in fase di registrazione non mi permette di registrarsi.
Come dovrei impostare la fase di lettura? e soprattutto con cosa?
-
Per il form in fase di inserimenti devi usare il metodo illustrato in questo post
http://forum.joomla.it/index.php/topic,120494.msg534329.html#msg534329
Per leggere i dati già inseriti in una tabella devi utilizzare e configurare il plugin interno al form Profile page
Poi utilizzare il campo cf_user_id del record che leggerai per impostare una query che va a prendere i valori nella tabella users di joomla.
Una cosa tipo questa.
<?php
$query = "
SELECT * FROM `#__users` WHERE `id`= '".$MyForm->posted['cf_user_id']."'";
$db->setQuery($query);
$utente = $db->loadAssoc();
$nome= $utente['name'];
$email= $utente['email'];
$username= $utente['username'];
e cosi via per gli altri valori della tabella users
?>
-
Per il form in fase di inserimenti devi usare il metodo illustrato in questo post
http://forum.joomla.it/index.php/topic,120494.msg534329.html#msg534329
Per leggere i dati già inseriti in una tabella devi utilizzare e configurare il plugin interno al form Profile page
Poi utilizzare il campo cf_user_id del record che leggerai per impostare una query che va a prendere i valori nella tabella users di joomla.
Una cosa tipo questa.
<?php
$query = "
SELECT * FROM `#__users` WHERE `id`= '".$MyForm->posted['cf_user_id']."'";
$db->setQuery($query);
$utente = $db->loadAssoc();
$nome= $utente['name'];
$email= $utente['email'];
$username= $utente['username'];
e cosi via per gli altri valori della tabella users
?>
STO proprio cercando di visualizzare sulla tabella di CHRONOFORMS i dati account di JOOMLA (dopo aver seguito la guida di Vales "Aggiungere voce al form di resgistrazione Joomla"), vedo che la soluzione è qui offerta sempre da Vales, ma mi incarto:
1) configurazione PROFILE PAGE, come devo fare? i campi da settare sono questi:
Table name
Target field name
'Request' parameter name
Default Request Parameter value
Per il primo OK: JOS_USERS, ma il secondo già mi chiede di scegliere tra e-mail, username, etc. se volessi inserirli tutti?
E negli altri 2 campi? cosa devo inserire?
2) Poi dove dovrei inserire la query php che hai presentato come esempio?
Scusate ma sono alcuni giorni che sono immerso in Chronforms, molte cose per fortuna le ho comprese, ma qui non ci arrivo!
Grazie veramente!
-
Il plugin Profile page non lo devi applicare alla tabella users di joomla ma a quella che hai creato tu.
Il codice che ho postato lo devi inserire nel tuo form che userai per visualizzare i dati e nel quale dovrai attivare il plugin Profile page.
targed field name è il nome del campo del form sul quale sarà cercato il valore di parameter name, normalmente è la chiave primaria cf_id
parameter name è un nome di un parametro che inserirai nell'url di chiamata del form per vedere un determinato record.
default parameter ... è il valore di default che sarà assegnato quando non viene indicato nessun vlaore nll'URL.
Esempio se assegni a parameter name il nome "valore" dovrai aggiungere all'url di chiamata del form questo codice, come indicato nell'help del plugin.
index.php?option=com_chronocontact&chronoformname=atto_10_mostra&valore=13
in questo caso il form atto_10_mostra visualizzerà il campo con cf_id uguale a 13
-
Grazie Vales per la tua disponibilità.
Ma ho ancora qualche difficoltà:
prima di insistere con il topic ho fatto varie prove senza risultato, purtroppo il mio inglese è troppo modesto per seguire bene le indicazioni dell'help di Profle Manager e mi trovo costretto a chiederti alcuni chiarimenti.
Il plugin Profile page non lo devi applicare alla tabella users di joomla ma a quella che hai creato tu.
perfetto, grazie,
Il codice che ho postato lo devi inserire nel tuo form che userai per visualizzare i dati e nel quale dovrai attivare il plugin Profile page.
quindi vado in FORM CODE e lo inserisco nel campo vuoto EXTRA CODE del form, senza modificarlo (ovviamente eliminando il tuo commento)
targed field name è il nome del campo del form sul quale sarà cercato il valore di parameter name, normalmente è la chiave primaria cf_id
ok, seleziono cf_id,
parameter name è un nome di un parametro che inserirai nell'url di chiamata del form per vedere un determinato record.
qui iniziano i dubbi: significa che posso inserire un nome qualsiasi, poniamo "valore"?
e dopo? dove devo andare ad inserirlo?
default parameter ... è il valore di default che sarà assegnato quando non viene indicato nessun vlaore nll'URL.
Esempio se assegni a parameter name il nome "valore" dovrai aggiungere all'url di chiamata del form questo codice, come indicato nell'help del plugin.
index.php?option=com_chronocontact&chronoformname=atto_10_mostra&valore=13
in questo caso il form atto_10_mostra visualizzerà il campo con cf_id uguale a 13
ma:
1) -e immagino che sia una domanda stupida- cosa intendi per "url di chiamata del form "? dove si trova?
2) se il mio form si chiama registrazione_account allora devo inserire questi codici in Default Request Parameter value come vedi qua sotto (in rosso)?
index.php?option=com_chronocontact&chronoformname=registrazione_account&valore=13
Ti ringrazio se riuscirai a rispondermi.
-
Chiedo scusa se insisto, ma non ne esco fuori anche se sono sicuro che con un piccolo aiuto
arriverei alla soluzione.
Cerco di concentrare qui i punti che rimangono irrisolvibili, nonostante tutta la mia buona volontà.
Vado al Plugin PROFILE PAGE, su Table name seleziono il mio form, in Target field name seleziono cf_id, in 'Request' parameter name inserisco il termine valore, ma qui vengono i dubbi, come da img qui sotto:
(http://www.demo-sito.it/banca5/images/stories/banca/chronoforms.jpg)
Grazie veramente per la risposta!
-
Scusate se re-insisto,
magari rispondetemi di lasciar perdere, ma mi fa un po' rabbia sapere che la soluzione esiste e sono in molti a conoscerla ma io non riesco ad arrivarci sicuramente perchè sarò un po' duro io di comprendonio ma anche perchè qualcuno non riesce a trovare il tempo di aiutarmi a percorrerla.
Sono sicuro che sarebbe utile anche a molti altri quindi:
per collegare il form di JOOMLA con form CHRONOFORMS,
come completare le operazioni su CONFIGURE PROFILE TABLE PLUGIN di CHRONOFORM?? (VEDI INTERVENTO PRECEDENTE)
Grazie ma veramente grazie per l'aiuto.
-
Non mi ero accorto che la discussione era rimasta sospesa.
Riepilogo
Table name - qui inserisci il nome della tabella che contiene i tuoi dati
Target field name - qui inserisci il nome del campo chiave principale che identifica il record in modo univoco
'Request' parameter name - qui assegni il nome del parametro che userai nell'URL di chiamata del form.(avevamo detto per esempio valore)
Default Request Parameter value questo anche puoi tralasciarlo, se no puoi inserire un numero che corrisponde al numero di record che vorrai far vedere in caso non sia trovato il record chiamato
Oder type - qui puoi decidere l'ordinamento della tabella
Editable - puoi scegliere eventualmente se rendere modificabile la tabella dagli utenti
Skipped fields list - qui puoi inserire i nomi dei campi da non caricare e mostrare agli utenti
Evaluate code - anche questo puoi trascurarlo, serve se hai inserito del codice PHP per mostrare i valori dei campi
Per ultimo aggiungo che per URL intendo l'indizzo web che dovrai chiamare per vedere un certo record della tua tabella tramite il tuo form. Lo protrai chiamare con un link che inserirai in qualche pagina del tuo sito o per prova direttamente nella barra indirizzi del browser.
Esempio:
http://www.tuosito.it/index.php?option=com_chronocontact&chronoformname=tuo_form&valore=13
In questo caso mostrerà il record n. 13, cambiando il numero 13 vedrai gli altri record se esistenti.
Il modo ideale per usare questo metodo e l'uso di chronoconnectivity ed utilizzare l'URL con il numero che viene generato dinamicamente nel campo body per lincare i vari record e mostrarli nei dettagli.
-
Vales, grazie per il tuo aiuto e della tua pazienza!!
Forse la mia difficoltà a comprendere nasceva da una errata interpretazione delle tue parole.
A me interessava capire se era possibile ottenere che i record delle tabelle di CHRONOFROMS, esportabili in formato excell e CSV potessero contenere anche i dati di registrazione del modulo di registrazione di Joomla 1.5.
Seguendo la tua preziosa guida "aggiungere voce al form di registrazione" (http://forum.joomla.it/index.php/topic,89247.msg391144.html#msg391144) ho ottenuto un form di chronoform che conteneva i campi aggiuntivi che mi interessavano oltre a quelli di default. Il problema era che dopo chronoform mi permetteva di esportare le tabelle senza però i dati di default (nome+nome account+ email).
In questo topic mi sembrava che tu fornissi indicazioni per far si che chronoform andasse a recuperare ed integrasse nella sua tabella anche i dati di default di Joomla permettendomi quindi di esportare tutti i dati degli utenti via excell/CSV...
Mi è venuto un dubbio: ho capito male? :(
-
Per l'export ci sono due guide
http://forum.joomla.it/index.php/topic,89142.0.html
-
Grazie vales dei link, veramente preziosi:
seguendo le tue indicazioni sono riuscito a creare l'export per il db di joomla e del form chronoform!
Volevo solo capire: è possibile integrare le 2 tabelle (form chronoform e jos_user sono raggruppati in un'unico form che l'utente andrà a compilare, ma sono però divisi in 2 distinte tabelle )?
Così da poter esportare un'unica tabella?
Mi sembrava di capire che era fattibile? O no?!
Grazie!
-
Si è possibile. Basta utilizzare una query che unisce le due tabelle, con gli opportuni filtri nella where.
Va poi adattato un po' il codice. Ho già provato la cosa con 3 tabelle di eventlist.
-
Purtroppo il tuo "...basta..." per me è una montagna invalicabile: conosco html e css ma non PHP e MySql!
Non so nemmeno da dove iniziare.
Potresti aiutarmi?
te ne sarei veramente grato!
penso anche che l'argomento interesserà sicuramente molti altri
utilizzatori di joomla.
Grazie comunque.