Back to top

Autore Topic: [RISOLTO] Update Profilo Utente e tabella integrativa Chronoforms con CFv4.-  (Letto 3079 volte)

Offline assospiz

  • Esploratore
  • **
  • Post: 138
    • Mostra profilo
Ciao a tutt*,
a seguito delle preziose indicazioni di Vales nel post
http://forum.joomla.it/index.php/topic,257834.0.html
abbiamo un modulo di registrazione customizzato con CFv4 che funziona a meraviglia.
Così utilizziamo i dati della tabella users di joomla e quelli aggiuntivi della tabella CFv4_custom per pre-compilare i campi dei form di iscrizione alle nostre manifestazioni agli utenti loggati.
Sia la registrazione, che i form di iscrizione funzionano perfettamente.


Abbiamo poi creato un form per permettere agli utenti l'auto-modifica del loro profilo.
Questo form però invece di fare l'update crea un nuovo record nella tabella CFv4_custom e lascia invariati i dati nella tabella users.
Abbiamo cercato in rete ma nel marasma di post non abbiamo trovato nulla di risolutivo.
In allegato lo screenshot della sezione Action.


Vi chiediamo perciò gentilmente se possibile di aiutarci a capire dove sbagliamo.

Grazie infinite.
assospiz
« Ultima modifica: 21 Mar 2016, 20:24:33 da assospiz »
SPIZ Associazione di Promozione Sociale
www.spiz.it

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Re:Update Profilo Utente e tabella integrativa Chronoforms con CFv4.-
« Risposta #1 il: 18 Mar 2016, 17:46:47 »
Secondo me dovreste integrare il form chronoforms con la gestione dei campi supplementari.

i dati di questi campi vengono scritti nella tabella user se non ricordo male, avreste la possibilità di avere una pagina per la lettura/modifica al momento del login

Qui una guida per personalizzarlo
http://www.joomla.it/articoli-community-16-e-17-tab/7260-personaliziamo-il-plug-in-userprofile-di-joomla-25.html
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline assospiz

  • Esploratore
  • **
  • Post: 138
    • Mostra profilo
Re:Update Profilo Utente e tabella integrativa Chronoforms con CFv4.-
« Risposta #2 il: 18 Mar 2016, 18:09:31 »
La prima soluzione che avevamo provato era qualcosa del genere.
Avevamo aggiunto a mano colonne extra alla tabella users e con CFv4 avevamo popolato direttamente la tabella users in fase di registrazione nuovo utente con i dati aggiuntivi.
Qui sul forum ci è stato sconsigliato questo metodo suscettibile di "reset" in caso di aggiornamenti del core di joomla.
Per cui abbiamo usato il plugin di CFv4 "Joomla Users Registration" per aggiornare la tabella users mentre contemporaneamente registravamo i campi extra nella tabella CFv4 (vedi immagine allegata).
Le due tabelle sono in correlazione diretta con cf_id che si popola in fase di registrazione nuovo utente con l'id della tabella users.
Siccome però alcuni campi extra sono a geometria variabile siamo "obbligati" a usare ancora CFv4 per ogni eventuale modifica da parte dell'utente e qui ci siamo impantanati.
Puoi farti un'idea del form di registrazione qui:
http://www.spiz.it/index.php?option=com_chronoforms&chronoform=user_spiz_registration
SPIZ Associazione di Promozione Sociale
www.spiz.it

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Re:Update Profilo Utente e tabella integrativa Chronoforms con CFv4.-
« Risposta #3 il: 18 Mar 2016, 18:34:49 »
Secondo me la prima soluzione era buona in parte, non dovevate creare nessun ulteriore campo. Utilizzando il plug-in user profile, modificato o meno non importa, ciò che viene inserito in quei campi viene inserito in campo specifico della tabella user, quindi in un campo del core e questo caso il problema del reset non lo vedo.

Se perderesti qualcosa perdi anche gli altri dati dell'user.....
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline assospiz

  • Esploratore
  • **
  • Post: 138
    • Mostra profilo
Re:Update Profilo Utente e tabella integrativa Chronoforms con CFv4.-
« Risposta #4 il: 21 Mar 2016, 20:24:01 »

Dopo un bel po' di tentativi abbiamo risolto l'inghippo.
Errore nostro.
L'event "Joomla User Create/Update" di CFv4 aggiorna automaticamente la tabella users di joomla, ma per aggiornare anche la riga della tabella aggiuntiva CFv4 è necessario inserire esplicitamente nel code del form un input hidden con la "chiave primaria" della tabella CFv4.
Noi l'input nascosto l'avevamo inserito ma scrivendo "cf_user_id" mentre andava scritto "cf_id".
Codice: [Seleziona]
<?php
$user 
=& JFactory::getUser();
$campo_id $user->id;
$db =& JFactory::getDBO();
$query "SELECT * FROM tabella_CFv4 WHERE cf_user_id=$campo_id";
$db->setQuery($query);
$row $db->loadAssoc();
$utente=$row['cf_id'];
?>

<input type="hidden" value="<?= $utente; ?>" name="cf_id" />
SPIZ Associazione di Promozione Sociale
www.spiz.it

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
è possibile che questa stringa vada riscritta:
Codice: [Seleziona]
$query = "SELECT * FROM tabella_CFv4 WHERE cf_user_id=$campo_id";
hai detto che cf_user_id diventa cf_id
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline assospiz

  • Esploratore
  • **
  • Post: 138
    • Mostra profilo

Vero!
Nel nostro caso però la tabella CFv4 è nata dopo e già popolata con i valori della tabella users.
Le nuove registrazioni forzano il campo cf_id con il valore id della tabella users cosicché cf_user_id e cf_id coincidono sempre.
SPIZ Associazione di Promozione Sociale
www.spiz.it

 



Web Design Bolzano Kreatif