Back to top

Autore Topic: [RISOLTO]chronoforms e tabella utenti joomla!  (Letto 14353 volte)

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
[RISOLTO]chronoforms e tabella utenti joomla!
« il: 10 Feb 2010, 00:22:50 »
Ciao Ragazzi, sto cercando di realizzare l'integrazione di una form fatta con chronoforms e la tabella utenti di joomla!

Ecco quello che devo fare:

l'utente si logga > compila il form > sulla mia mail arriva un messaggio con l'username di chi mi scrive

È importante che l'utente non sia costretto ad inserire di nuovo il suo username

Come faccio??

Grazie a tutti!!
« Ultima modifica: 17 Feb 2010, 12:12:26 da FM Creator »
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #1 il: 10 Feb 2010, 22:54:40 »
Chronoforms salva per default nelle tabelle il campo cf_user_id che contiene il codice dell'utente che compila il form loggato in joomla.

Se vuoi ricavare gli altri dati dell'utente per inserirli eventualmente nel form puoi usare questo codice come base per ricavare i dati:

Codice: [Seleziona]

$user =& JFactory::getUser();
 
  echo 'User name: ' . $user->username . '<br />';
  echo 'Real name: ' . $user->name . '<br />';
  echo 'User ID  : ' . $user->id . '<br />';
  echo 'User mail: ' . $user-<mail.'<br />';
}
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #2 il: 11 Feb 2010, 13:45:35 »
Ciao Valens, intanto grazie! Ti chiedo un altro piccolo aiuto.

Io ho realizato un form che poi ho modificato, questo è il link:

http://www.fmcreator.com/demo/stampaonline/index.php?option=com_chronocontact&Itemid=2

è un modulo per ordinare on-line la stampa dei documenti.
Come già avevo detto, voglio evitare all'utente di inserire di nuovo il nome e la mail.

Ora, come lo uso il codice che mi hai scritto?

Grazie.
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #3 il: 11 Feb 2010, 16:31:03 »
Quel codice puoi inserirlo in Form Code sezione html e serve per popolare dei campi del form che puoi tenere nascosti con il parametro hidden, esempio:

Codice: [Seleziona]
<input type="hidden" name="user_nome" value="<?php echo $user->name?>" />
la tabella del database associata al form dovrà avere un campo "user_nome". Quando invii il form salverà il nome utente nel campo.

Prima di utilizzare i dati dell'user nei campi input devi richiamare con php in cima al codice del form la classe così:

Codice: [Seleziona]
<?php
$user
= & JFactory::getUser();
?>


Non è complicato
« Ultima modifica: 11 Feb 2010, 16:37:39 da vales »
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #4 il: 11 Feb 2010, 16:58:08 »
Perfetto!! Funziona tutto!

Adesso vorrei chiede un ultima cosa. Lo script del form che ho realizzato mi dice anche la spesa per la stampa: es. 2€

Io vorrei creare un campo aggiuntivo nel profilo utente (ho pensato di farlo con CB) e metterci dentro il credito dell'utente: es. 10€

Poi richiamare il campo credito con <?php echo $user->credito; ?> e sottrargli la spesa dell'utente (es. 2€).

Adesso la cosa che non so fare è andare a riscrivere il nuovo dato neel campo "credito" del DB...

Non credo sia difficile, solo che non lo so proprio fare.
Se non è troppo complicato mi potresti dire come si fa?

grazie ancora
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #5 il: 11 Feb 2010, 17:13:16 »
Una via può essere quella. Dovresti creare un nuovo form con il campo credito ed usarlo per andarlo a inserire/modificare. Richiede un po' di lavoro direi con connectivity e l'uso del plugin profile interno di chronoforms per puntare al record dell' user interessato.

Ma questa mi convince poco perchè andiamo a modificare una tabella di joomla.

Opterei per creare una tabella parallela a quella dell'utente in relazione con essa nel campo id.

La procedura di una cosa del genere è già stata illustrata nel forum.

http://forum.joomla.it/index.php/topic,89247.0.html
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #6 il: 11 Feb 2010, 17:19:18 »
grazie, vedo quello che riesco a combinare!
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #7 il: 11 Feb 2010, 17:28:23 »
ho dato una letta veloce e ti chiedo solo una cosa:

dalle discussioni che mi hai linkato riesco a capire come scrivere sul campo CREDITO? Da quello che ho letto (velocemente) ho capito come si possono creare altri campi per la registrazione utente!

fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #8 il: 11 Feb 2010, 21:15:00 »
In questo articolo è illustrata una funzione Javascript che consente di modificare un valore di un campo in funzione del valore inserito in un altro.

http://www.joomla.it/articoli-della-community/3836-from-multi-page-con-chronoforms-1.html

Adattandola al tuo caso dovresti essere a dama.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #9 il: 11 Feb 2010, 21:23:00 »
Ti ringrazio.

a presto!!!
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #10 il: 12 Feb 2010, 00:51:06 »
Sono ancora io. Ho seguito tutti i tuoi tutorial e ti faccio i miei complimenti. Non so però se mi saranno utili. Il campo che devo creare (credito) deve essere gestito dal pannello di controllo, ma con il tutorial sul plugin joomla registration non mi fa vedere nella gestione utenti il campo credito.
il credito una volta esaurito lo devo ricaricare andando ad inserire il valore di volta in volta.
Quindi credo che sono di nuovo a 0

un altra cosa

se per richiamare un dato del profilo inserisco
$user =& JFactory::getUser();
 
  echo 'User name: ' . $user->username . '
';
  echo 'Real name: ' . $user->name . '
';
  echo 'User ID  : ' . $user->id . '
';
  echo 'User mail: ' . $user-<mail.'
';
}

cosa devo inserire per richiamare un dato di CB?

io continuo a fare le mie prove.

Ciaooo
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #11 il: 12 Feb 2010, 03:55:44 »
alla fine ho creato un nuovo campo nel modulo di registrazione e funziona tutto bene.

Ora devo solo capire come far fare l'operazione aritmetica:

credito - spesa = credito(residuo)

come posso fare?

Il ridultato deve andare a sovrascriversi nella tab del DB al posto del precedente credito.
« Ultima modifica: 12 Feb 2010, 12:58:29 da FM Creator »
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #12 il: 17 Feb 2010, 03:22:27 »
Volevo chiedere ancora una cosa senza aprire un altro post simile. Come faccio a visualizzare i solo i dati dell'utente loggato? Ho cercato ovunque ma non sono riuscito a trovare la soluzione.

Il mio form permette di inviare i file e li saqlva nella tabella _chronoforma_inviafile

in questa tabella vengono anche salvati altri dati come il nome la mail ecc. e l'id di chronoforma ossi cf_user_id che è uguale all'id che assegna joomla in _users.

Io vorrei che l'utente loggato visualizzasse i suoi ultimi invii, ma non riesco. La query che uso è la seguente:

Codice: [Seleziona]
$query ='SELECT file, cf_user_id FROM #__chronoforms_fileinviati WHERE cf_user_id=?????';

se al posto dei ????? ci metto il nemero id mi fa evdere tutti i file di quell'utente, ma io vorrei che al posto dei ????? ci fosse l'id dell'utente loggato.

Ho provato di tutto ma senza riuscire.

Confido nella vostra bontà :)
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #13 il: 17 Feb 2010, 09:21:03 »
Codice: [Seleziona]
// questo lo chiami prima della query
$user =& JFactory::getUser();
 
$query ="SELECT file, cf_user_id FROM #__chronoforms_fileinviati WHERE cf_user_id=' ".$user->id." ' ";
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:chronoforms e tabella utenti joomla!
« Risposta #14 il: 17 Feb 2010, 11:54:05 »
Ho montato questa query ma non va...

Codice: [Seleziona]
<?php 


// questo lo chiami prima della query
$user =& JFactory::getUser();
 
$query ="SELECT file, cf_user_id FROM #__chronoforms_fileinviati WHERE cf_user_id='$user->id' ";

// effettuo la query
$user->setQuery$query );

// recupero il resultset
$rows $user->loadObjectList();

// stampo a schermo l'elenco
foreach($rows as $row) {
echo 
$row->name'<br/>' ;
echo 
$row->credito.'<br/>';
}
?>

dove sbaglio??
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
[RISOLTO]Re:chronoforms e tabella utenti joomla!
« Risposta #15 il: 17 Feb 2010, 12:11:50 »
Così va:
Codice: [Seleziona]
<?php 

// qualora non fosse globalizzato, recupero il mainframe
global $mainframe;

// istanzio un oggetto di accesso al DB
$db=& JFactory::getDBO();


// questo lo chiami prima della query
$user=& JFactory::getUser();
 
$query ="SELECT file, cf_user_id, costo FROM #__chronoforms_fileinviati WHERE cf_user_id='".$user->id."'";

// effettuo la query
$db->setQuery$query );

// recupero il resultset
$rows $db->loadObjectList();

// stampo a schermo l'elenco
foreach($rows as $row) {
echo 
$row->name'<br/>' ;
echo 
$row->credito.'<br/>';

}

?>



Il tuo user è: <?php echo $row->cf_user_id?>
Il tuo file è:<?php echo $row->file?>
Il costo del file è:<?php echo $row->costo?>

adesso devo solo capire come farli visulizzare tutti.

grazie Vales!!
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #16 il: 17 Feb 2010, 12:42:45 »
Ho raggiunto un altro risultato.Con questo codice

Codice: [Seleziona]
<?php 

// qualora non fosse globalizzato, recupero il mainframe
global $mainframe;

// istanzio un oggetto di accesso al DB
$db=& JFactory::getDBO();


// questo lo chiami prima della query
$user=& JFactory::getUser();
 
$query ="SELECT file, cf_user_id, costo FROM #__chronoforms_fileinviati WHERE cf_user_id='".$user->id."'";

// recupero il resultset
$db->setQuery($query);
$row $db->loadRowList();
print_r($row);

// stampo a schermo l'elenco
foreach($rows as $rows) {
}
?>


USER ID:<?php echo $rows->cf_user_id?>
FILE: <?php echo $rows->file?>

ottengo la stampa ti tutti dati che mi interessano.

Fonte:

http://docs.joomla.org/How_to_use_the_database_classes_in_your_script#loadObjectList.28.29

Adesso devo provare a formattarli perchè escono in un modo incomprensibile!!
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #17 il: 17 Feb 2010, 14:12:08 »
Chiedo un ultimo aiuto. Non riesco a trasformare l'array in una stringa leggibile per l'utente.

Il cad che uso è:

Codice: [Seleziona]
$row = $db->loadRowList();
$string = implode (",", $row);
echo $string;

non va!! Mi sto documentando ma non trovo la soluzione!!

Help
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #18 il: 17 Feb 2010, 15:22:55 »
Prova

Codice: [Seleziona]
$row = $db->loadRowList();

echo implode (",", $row);
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #19 il: 17 Feb 2010, 15:40:04 »
Prova

Codice: [Seleziona]
$row = $db->loadRowList();

echo implode (",", $row);

mi visualizza Array,Array,Array

:o
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #20 il: 18 Feb 2010, 02:54:26 »
ecco come ho risolto:

http://sviluppare-in-rete.blogspot.com/2007/09/joomla-15-funzioni-di-accesso-al.html

Codice: [Seleziona]
$database = &JFactory::getDBO();
$database->setQuery('SELECT * FROM #__users');
$results = $database->loadAssocList();

foreach($results as $r) {
  echo $r['name'],' | ',$r['username'],' | ', $r['email'],
  '<br />';
}

Grazie a tutti!
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #21 il: 04 Mar 2010, 15:25:54 »
Ciao, anch'io vorrei fare una cosa simile, ma ho dei dubbi in merito a

Codice: [Seleziona]
<?php
$user
= & JFactory::getUser();
?>

mi spiego meglio... ho creato un form per l'iscrizione al sito un po' più dettagliato e che prevede l'inserimento di nome, cognome ed altri dati utili.

Quello che vorrei fosse visualizzato nella mail non fa parte della tabella utenti di com_user ma della tabella di riferimento al form creato con chronoform.

come faccio a collegare quei campi li al posto dei campi della jos_user?

Grazie per tutte le dritte!!!



Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #22 il: 05 Mar 2010, 19:43:48 »
Per inserire i campi del form nella mail basta inserire tra parentesi {} nel box dedicato alla redazione delle mail, il nome che assegni al "Field Name" del modulo.

Mi spiego meglio. Se creo un form con un unico textbox e al Field Name inserisco "nome" allora nel box dedicato alla redazione della mail inseriro ad esempio:

Ciao {nome}

e così verrà inserito il nome che l'utente inserirà nel textbox!

Sperò di essere stato chiaro :)

Una cosa, ma hai provato a utilizzare CB?
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #23 il: 08 Mar 2010, 08:33:28 »
No, non mi sono espresso bene probabilmente.
Io vorrei che l'utente loggato al sito  abbia la possibilità di compilare un form all'interno del quale NON debba nuovamente inserire i propri dati personali.
Ora, avendo creato un form personalizzato per l'iscrizione che già prevede l'inserimento dei campi richiesti vorrei che all'interno della mail fossero inseriti quei dati e non i campi di default richiamati dalla tabella jos_user (id, user, etc..) ma i campi della tabella "iscrizione".

Ora, se io inserissi {Nome}{Cognome}ed altri dati presi dalla tabella "iscrizioni" il form dovrebbe pescare quelli di riferimento all'utente loggato.

Non penso che basti inserire il nome del campo per ottenere questo risultato.  :) :)

Grazie per l'aiuto!!

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #24 il: 08 Mar 2010, 11:28:42 »
Non so se ho capito bene. Tu vuoi richiamare nei campi del tuo form i dati che l utente ha gia inserito durante la registrazione.

Provo ad aiutarti.

Questo codice va sopra utto

Codice: [Seleziona]
<?php
$db 
=& JFactory::getDBO();
$user=& JFactory::getUser();

$query "SELECT * FROM `#__nome della tua tabella` WHERE `cf_user_id`=('".$user->id."')";

$db->setQuery($query);
?>

Nel campo VALUE del textbox insersci questo
Codice: [Seleziona]
<?php echo $user->name?>per i richiamare i dati inseriti nella tabella jos_user

e questo
Codice: [Seleziona]
<?php echo $file;?>per richiamare i dati inseriti nell'altra tabella.

Spero di esserti stato di aiuto.
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #25 il: 08 Mar 2010, 17:13:39 »
... grazie mille ma ho ancora un dubbio :o
mentre mi è chiaro questo
Codice: [Seleziona]
  echo 'User name: ' . $user->username . '<br />';
  echo 'Real name: ' . $user->name . '<br />';
  echo 'User ID  : ' . $user->id . '<br />';
  echo 'User mail: ' . $user-<mail.'<br />';


non riesco a capire come faccio con questo a richiamare esattamente la colonna desiderata.

Codice: [Seleziona]
<?php echo $file;?>
voglio dire:
mettiamo che abbia 4 campi che voglio stampare, creerò 4 campi nascosti, con name="nome_colonna" e value=<?php echo $file;?> 

E' sufficiente? Oppure mi son perso qualcosa?

Offline Arkimede360

  • Appassionato
  • ***
  • Post: 592
  • Sesso: Maschio
  • www.arkimede360.it
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #26 il: 08 Mar 2010, 17:32:28 »
in teoria è cosi perche hai richiamato la tabella nella query. Pero non essendo un esperto di php ti ho detto un po quello che ho imparato negli ultimi giorni :)
fabio@arkimede360.it
www.arkimede360.it
p.iva 02532850597

Offline chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:[RISOLTO]chronoforms e tabella utenti joomla!
« Risposta #27 il: 08 Mar 2010, 17:40:39 »
Bhe hai fatto moltissimo e ti ringrazio ;D ;D... adesso provo a fare qualche tentativo cercando qua e la di vedere se riesco a far funzionare... spero di poter essere d'aiuto
anch'io.

credo che
Codice: [Seleziona]
$file vada dichiarato prima di essere usato...


« Ultima modifica: 08 Mar 2010, 18:04:20 da chesslore »

 



Web Design Bolzano Kreatif