Back to top

Autore Topic: [RISOLTO]chronoforms e tabella utenti joomla!  (Letto 14373 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

 



Web Design Bolzano Kreatif