Autore Topic: [RISOLTO] Modifica profilo registrazione utente  (Letto 6568 volte)

Offline MarcoJ

  • Appassionato
  • ***
  • Post: 408
  • Sesso: Maschio
    • Mostra profilo
[RISOLTO] Modifica profilo registrazione utente
« il: 15 Set 2013, 19:21:52 »
Ciao,
premetto che si tratta di una cosa abbastanza incasinata.
Ho personalizzato il profilo per la registrazione degli utenti, perchè le solite cose (utente-password-email) non mi bastavano.
Sono andato quindi a lavorare su "www.miosito.it/plugins/user/profile" ed ho creato il mio plugin personale "www.miosito.it/plugins/user/mioprofile".
Ho dovuto fare tutto manualmente perchè nella registrazione devo interfacciarmi ad un AS400 per caricare e confrontare delle informazioni e quindi...
Per l'interfacciamento ho personalizzato le funzioni "onuserbeforesave" e "onuseraftersave" presenti nel mio file "mioprofile.php" ed in mezzo a quelle ho messo le mie funzioni verso/da AS400.
Sembra difficile, ma in realtà funziona tutto come un orologio: inserisco i dati, li passo ad AS, confronto i dati, accetto o rifiuto la registrazione in base a quanto letto.
Solo un piccolo problema, che non riesco a risolvere: quando la mia registrazione termina con successo,mi ritorna sempre una pagina bianca, senza il classico messaggio "Il tuo account è stato creato...".
Insomma funziona, ma ho perso i messaggi.
Agendo sulle due funzioni e mettendo lì dei messaggi, questi non vengono visualizzati (credo perchè la pagina viene rinfrescata e quindi la cosa dei messaggi persa).
Non riesco a capire bene chi chiama le funzioni stesse e quindi non so dove andare a parare.
Da dove sono lanciati ?
Qualcuno dei senior sa darmi qualche dritta ?
Grazie
« Ultima modifica: 18 Set 2013, 16:27:53 da MarcoJ »
È più facile fare la cosa corretta, quando sappiamo qual’è la cosa corretta da fare.

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #1 il: 15 Set 2013, 20:13:59 »
ciao, due consigli: elimina i link a pagine fasulle perchè distraggono solo l'attenzione. chi non si accorge che il dominio è un fake si aspetta di trovare un anteprima del tuo plugin per poterlo analizzare mentre si ritrova con un bel (per modo di dire) 404.
Inoltre, chiedi ad un moderatore di spostare la discussione in "sviluppo", sicuramente troverai una migliore assistenza

mau_develop

  • Visitatore
Re:Modifica profilo registrazione utente
« Risposta #2 il: 15 Set 2013, 23:26:40 »
dove salvi i dati dell'utente?
se non crei un utente joomla come fanno a funzionare le acl?

se il salvataggio va a buon fine viene fatto il redirect inserendo un messaggio. esempi ne trovi molti se spulci un po di codice , sta in tutti i punti dove in caso di errore o successo è previsto un messaggio di sistema

Offline j3n4

  • Esploratore
  • **
  • Post: 77
  • Sesso: Maschio
  • We are Borg
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #3 il: 15 Set 2013, 23:38:47 »
Non conosco benissimo le API joomla, ma io farei così: Se il tuo template supporta l'output standard, a cose fatte fai un redirect sulla home e scrivi un messaggio di conferma. Magari ricordagli anche che deve validare l'iscrizione (ovviamente se lo hai impostato come requisito tra i parametri del sito).

Bei giocattoli gli AS400 ci ho lavorato ai tempi delle reti Novell, che bei ricordi, non ci pensavo da una vita. Grazie.
 
We are BORG

Offline MarcoJ

  • Appassionato
  • ***
  • Post: 408
  • Sesso: Maschio
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #4 il: 16 Set 2013, 10:03:09 »
Grazie Giovi dei suggerimenti.
Farò come dici
È più facile fare la cosa corretta, quando sappiamo qual’è la cosa corretta da fare.

Offline MarcoJ

  • Appassionato
  • ***
  • Post: 408
  • Sesso: Maschio
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #5 il: 16 Set 2013, 10:15:25 »
Ciao M_W_C,
la procedura di registrazione è esattemente quella di sempre, ossia salvo l'utente su Joomla, con i dati del profilo personalizzato, utilizzando le funzioni standard.
L'unica cosa diversa è che prima di salvare faccio una sorta di pre-validazione su AS400: se i dati introdotti non esistono anche su AS => errore.
Se invece corrispondono creo l'utente con i meccanismi di Joomla.
Peraltro la creazione dell'utente con tutti i dati del profilo su Joomla avviene correttamente e viene fatto un redirect ad una pagina, ma senza che sia visualizzato nessun messaggio.

È più facile fare la cosa corretta, quando sappiamo qual’è la cosa corretta da fare.

Offline MarcoJ

  • Appassionato
  • ***
  • Post: 408
  • Sesso: Maschio
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #6 il: 16 Set 2013, 10:21:03 »
Ciao j3n4,
come dici M_W_C Joomla già prevede che a fine registrazione ci sia un redirect ad un apagina con un messaggio ad-hoc.
Per me fa il redirect, ma non visualizza il messaggio.
Sono anche sicuro di non avere fatto danni, ma ho solo aggiunto la funzione "onuserbefaoresave" e modificato la "onuseraftersave".
In sostanza, prima di salvare vedo se l'utente è registrato anche su AS400.
Poi salvo con i meccanismi di Joomla e scrivo su AS che l'utente è registrato correttamente.
Come dicevo funziona tutto, tranne il messaggio che manca.
Grazie comunque

È più facile fare la cosa corretta, quando sappiamo qual’è la cosa corretta da fare.

Offline MarcoJ

  • Appassionato
  • ***
  • Post: 408
  • Sesso: Maschio
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #7 il: 16 Set 2013, 10:21:54 »
Scusami M_W_C,
ma sai dove fisicamente viene eseguito il redirect della pagina a fine registrazione ?
È più facile fare la cosa corretta, quando sappiamo qual’è la cosa corretta da fare.

Offline j3n4

  • Esploratore
  • **
  • Post: 77
  • Sesso: Maschio
  • We are Borg
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #8 il: 16 Set 2013, 11:02:21 »
Ciao,
nella documentazione credo che ti tornerebbe utile questo link:
http://docs.joomla.org/API15:JApplication/redirect

A conti fatti la chiamata che ti serve è questa:

redirect($url, $msg='', $msgType='message')

In pratica dopo aver validato l'utente, chiami il redirect e ci appendi vicino il messaggio.

MODIFICA AL MESSAGGIO:
Scusami, mi sono accorto che c'è una lieve differenza tra le API 1.5 e 2.5, la stringa che ti serve è leggermente diversa:

$app->redirect($link, $msg, $msgType='message',$moved=false);
Ne parlano qui:
http://www.techportal.co.za/joomla/joomla-tutorials/485-how-to-redirect-using-the-joomla-15-and-25-api-


Magari non è proprio un metodo raffinato ma penso che risolvi velocemente.
Chiaramente il template che adoperi deve avere uno spazio dedicato ai messaggi, possibilmente in una locazione consona al tuo scopo, ma sicuramente già lo sai.

Saluti
« Ultima modifica: 16 Set 2013, 11:08:19 da j3n4 »
We are BORG

Offline MarcoJ

  • Appassionato
  • ***
  • Post: 408
  • Sesso: Maschio
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #9 il: 16 Set 2013, 15:28:28 »
Grazie j3n4,
la tua soluzione mi sembra di quelle molto brutali, nel senso che un redirect viene comunque fatto e te proponi di aggiungerne un altro che "taglia la testa al toro".
Sarebbe giusto capire perchè fa il redirect, ma senza messaggi e non aggiungerne un altro.
Comunque poi alla fine qualunque cosa è utile ed a mali estremi...
Ti ringrazio e ti farò sapere come è andata la prova.
È più facile fare la cosa corretta, quando sappiamo qual’è la cosa corretta da fare.

Offline j3n4

  • Esploratore
  • **
  • Post: 77
  • Sesso: Maschio
  • We are Borg
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #10 il: 16 Set 2013, 17:38:11 »
Secondo me risolvi.
Buona fortuna ;)

P.S. E' anche probabile che invece il tuo sistema stia già funzionando ma non visualizza i messaggi per via del template... controlla bene questa cosa prima di impazzire con il resto.
We are BORG

mau_develop

  • Visitatore
Re:Modifica profilo registrazione utente
« Risposta #11 il: 16 Set 2013, 22:17:26 »
vedo qualche messaggio di errore nel model registration in com_users.

comunque non credo ti serva mettere un redirect se è già previsto basta che accodi un messaggio di sistema

Offline MarcoJ

  • Appassionato
  • ***
  • Post: 408
  • Sesso: Maschio
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #12 il: 17 Set 2013, 09:11:33 »

Sono d'accordo con M_W_C, nel senso che il redirect c'è già.Ho provato però a mettere nelle funzioni "onUserBeforeSave" e "onUserAfterSave" il messaggio:
JFactory::getApplication()->enqueueMessage(JText::_('MIO MESSAGGIO'), 'error');
ma questo non viene visualizzato.
Per me questo accade perchè il messaggio viene giustamente accodato, ma al termine delle funzioni avviene un redirect alla nuova pagina e quindi viene sostanzialmente perduto.
Per questo sto cercando di capire dov'è il redirect e vedere lì cosa accade.
Peccato che non so dove sia...
È più facile fare la cosa corretta, quando sappiamo qual’è la cosa corretta da fare.

Offline j3n4

  • Esploratore
  • **
  • Post: 77
  • Sesso: Maschio
  • We are Borg
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #13 il: 17 Set 2013, 12:11:38 »
Capisco che il mio metodo ti può sembrare troppo brutale, tra le varie ozioni potresti provare ad intercettare:
onContentAfterDisplay
onContentBeforeDisplay
E poi scrivi il messaggio. Se funzionasse dovrebbe risultarti meno brutale.

Ma rimane il fatto che comunque dopo la registrazione ti porta su una pagina vuota (così hai detto tu), quindi (fossi in te), prima risolverei quello e poi la faccenda del messaggio.
Ti ricordo che se il template è fatto bene dovrebbe avere qualcosa di questo tipo:
 <jdoc:include type="message" />
Inoltre ne hanno parlato anche qui:

http://forum.joomla.org/viewtopic.php?f=428&t=338593&p=2988006#p2788521
In sostanza oltre al redirect si tratta di fare un override del template (tanto per cambiare... sempre lui).


We are BORG

mau_develop

  • Visitatore
Re:Modifica profilo registrazione utente
« Risposta #14 il: 17 Set 2013, 12:34:55 »
..ma gli altri messaggi di sistema li vedi? Hai l'include nel template? Jdoc include type message

Offline MarcoJ

  • Appassionato
  • ***
  • Post: 408
  • Sesso: Maschio
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #15 il: 17 Set 2013, 12:55:17 »
Gli altri messaggi di sistema li vedo tutti o quasi, nel senso che se non riempio un campo obbligatorio mi avverte, se il mio AS mi risponde in modo negativo segnala l'errore.
Ma se la registrazione non va in porto per altri motivi (per esempio perchè l'email è già utilizzata) non segnala nulla e mi rimanda alla form di registrazione.
Se invece va in porto, allora mi fa un redirect ad una pagina vuota.

Questo farebbe pensare che in qualche modo ho interrotto con le funzioni "onuserbeforesave" e "onuseraftersave" il meccanismo. Non sono come, perchè il codice è tranquillo e non ho modificato nessuna struttura...

È più facile fare la cosa corretta, quando sappiamo qual’è la cosa corretta da fare.

Offline j3n4

  • Esploratore
  • **
  • Post: 77
  • Sesso: Maschio
  • We are Borg
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #16 il: 17 Set 2013, 14:04:22 »
Cioè, posso fare una domanda stupida?
Ma se disattivi il plugin tutto funziona normalmente?

Mi spiego meglio: Se non ricordo male le omissioni di campi obbligatori vengono segnalate sul form, mentre i messaggi di sistema no. A questo punto prima di scervellarsi con un redirect che funziona male io proverei a vedere se il problema esiste nel plugin o nel template.
We are BORG

Offline MarcoJ

  • Appassionato
  • ***
  • Post: 408
  • Sesso: Maschio
    • Mostra profilo
Re:Modifica profilo registrazione utente
« Risposta #17 il: 18 Set 2013, 16:27:31 »
Ok, alla fine sono arrivato in fondo.
Il problema è derivato sostanzialmente da un "include" rimasto nelle intenzioni, che quindi sostanzialmente lanciava messaggi inesistenti.
Da questo la mancata scrittura degli stessi.
In compenso ha accumulato una buona esperienza sulle connessioni con il mondo AS400 da Joomla.
Grazie a tutti

È più facile fare la cosa corretta, quando sappiamo qual’è la cosa corretta da fare.

 

Host

Torna su