Personalizzazione SelfReg + FEU Topic is solved

La discussione sul CMS Made Simple in italiano.

Moderator: magallo

1dMN

Personalizzazione SelfReg + FEU

Post by 1dMN »

Ciao a tutti.
Si, lo so, ultimamente sto postando parecchio, però ho ancora bisogno di qualche suggerimento per migliorare la mia comprensione e l'utilizzo di CMSMS.

Vengo al dunque sintetizzando le operazioni che devo eseguire (CMSMS 1.0.8 - FEU 1.2.0 - SelfReg 1.1.1):
- in homepage del sito, ho inserito un input dove digitare un codice che permette di accedere alla pagina di registrazione;
- sulla pagina di registrazione, tramite un UDT creato appositamente, riconosco il codice inserito e visualizzo il form di SelfReg se il codice è corretto, altrimenti reindirizzo alla home.

Il mio dilemma è presto detto. Ho bisogno che quel codice iniziale venga "trascinato" da SelfReg.

La prima soluzione potrebbe essere quella di inserire quell'input quale user property di FEU; così facendo però permetterei all'utente registrato di modificare il codice, mentre questo non deve succedere poichè il codice, insieme ad username e password, identifica univocamente l'utente.

Una seconda soluzione che ho adottato è quella di inserire l'input del codice quale user property "nascosto" di FEU; in questo caso, però, non posso obbligare l'utente a digitare il codice in quell'input poichè il campo è, appunto, nascosto...

Una terza soluzione, che tra l'altro basterebbe al mio scopo, sarebbe inserire l'input del codice quale user property obbligatorio, però rendere questo input "disabled" quando l'utente prova a modificare i propri dati, così come succede automaticamente per il campo username, ma non so se posso smanettare il codice sorgente né se sono in grado di farlo!

:'( Aiuto, vi prego! Albyyyyyyy!!!!!!!!!!!!!!!!!!!!!
alby

Re: Personalizzazione SelfReg + FEU

Post by alby »

1dMN wrote: Una seconda soluzione che ho adottato è quella di inserire l'input del codice quale user property "nascosto" di FEU; in questo caso, però, non posso obbligare l'utente a digitare il codice in quell'input poichè il campo è, appunto, nascosto...
Questa mi pare la più semplice ma dipende cosa esce dall'UDT.
Potresti fare così:

1. Fai il check con l'UDT, se va bene fai un echo del codice:
.......
.......
echo $code;


2. Nella pagina di SR poco prima del form chiami:
{capture assign=usercode}{nome_del_tuo_udt}{/capture}


3. Nel form il valore dell'input hidden del code lo inizializzi con $smarty.capture.usercode, cioè deve uscire una cosa del tipo:


1dMN wrote: :'( Aiuto, vi prego! Albyyyyyyy!!!!!!!!!!!!!!!!!!!!!
;D  ;D  ;D

Alby
1dMN

Re: Personalizzazione SelfReg + FEU

Post by 1dMN »

alby wrote: Questa mi pare la più semplice ma dipende cosa esce dall'UDT.
Potresti fare così:

1. Fai il check con l'UDT, se va bene fai un echo del codice:
.......
.......
echo $code;
Il punto 1 lo avevo già improntato; ecco il mio udt:

Code: Select all

if ($_POST['codice'] != '')
{
$input_codice = $_POST['codice'];
}
elseif ($_POST['m4hidden_codice'] != '')
{
$input_codice = $_POST['m4hidden_codice'];
}
echo '<input name="m4hidden_codice" type="hidden" value="'.$input_codice.'">'.$input_codice;
In questo modo mi porto dietro il codice dalla home sulla pagina di registrazione; in più ho provato ad inserire anche il campo all'interno del form di SelfReg, nominando l'input con il prefisso "m4hidden_", però ho troppi problemi in seguito (pagina di verifica utente dopo invio mail, pagina di modifica dati, etc.)
alby wrote: 2. Nella pagina di SR poco prima del form chiami:
{capture assign=usercode}{nome_del_tuo_udt}{/capture}
Ignoravo l'esistenza di {capture}, devo capire come funziona...
alby wrote: 3. Nel form il valore dell'input hidden del code lo inizializzi con $smarty.capture.usercode, cioè deve uscire una cosa del tipo:
Ecco, qui già la mia incompetenza regna sovrana! Mi spiegheresti dove e come faccio ad inizializzare l'input hidden che mi serve?

Grazie Alby.
1dMN
alby

Re: Personalizzazione SelfReg + FEU

Post by alby »

1dMN wrote:
Ecco, qui già la mia incompetenza regna sovrana! Mi spiegheresti dove e come faccio ad inizializzare l'input hidden che mi serve?
Dipende cosa intendi con inizializzare. Se era come intendevo io, serve a VALORIZZARE l'attributo value e qui lo effettui con il funzionamento di capture che prende l'output e lo inserisce in una variabile che poi utilizzi

Alby
1dMN

Re: Personalizzazione SelfReg + FEU

Post by 1dMN »

alby wrote:
1dMN wrote:
Ecco, qui già la mia incompetenza regna sovrana! Mi spiegheresti dove e come faccio ad inizializzare l'input hidden che mi serve?
Dipende cosa intendi con inizializzare. Se era come intendevo io, serve a VALORIZZARE l'attributo value e qui lo effettui con il funzionamento di capture che prende l'output e lo inserisce in una variabile che poi utilizzi

Alby
::) allora forse ho capito... Adesso mi ci metto e poi ti racconto.
GRAZIEEEEEEEEEEEEEEEE
1dMN
1dMN

Re: Personalizzazione SelfReg + FEU

Post by 1dMN »

alby wrote: Questa mi pare la più semplice ma dipende cosa esce dall'UDT.
Potresti fare così:

1. Fai il check con l'UDT, se va bene fai un echo del codice:
.......
.......
echo $code;


2. Nella pagina di SR poco prima del form chiami:
{capture assign=usercode}{nome_del_tuo_udt}{/capture}


3. Nel form il valore dell'input hidden del code lo inizializzi con $smarty.capture.usercode, cioè deve uscire una cosa del tipo:
Ho provato a fare come suggerito:

1. UDT nominato input_codice
if ($_POST['codice'] != '')
{
$input_codice = $_POST['codice'];
}
echo $input_codice;


2. e 3. Inserimento UDT richiamo {capture} sul template del form di SR

{$title}
{if $message != ''}
  {if $error != ''}
    {$message}
  {else}
    {$message}
  {/if}
{/if}
{capture assign=usercode}{input_codice}{/capture}
{$startform}
{if $controlcount > 0}


 
    Codice
    {input_codice}

 
{foreach from=$controls item=control}
 
    {$control->hidden}
    {if $control->color != ''}
      {$control->prompt}color}">{$control->marker}
    {else}
      {$control->prompt}{$control->marker}
    {/if}
   
    {$control->control}
 
{/foreach}
{/if}
 
     
    {$hidden}{$hidden2}{$submit}{$cancel}
 


{$msg_sendanotheremail} {$link_sendanotheremail}

{$endform}


L'output sulla pagina visualizza:
Non è che il name dell'input non deve essere il nome che si trascina via post, bensì "m4hidden_codice"?!?

1dMN
alby

Re: Personalizzazione SelfReg + FEU

Post by alby »

1dMN wrote:
alby wrote: 2. Nella pagina di SR poco prima del form chiami:
{capture assign=usercode}{nome_del_tuo_udt}{/capture}
L'output sulla pagina visualizza:
Non è che il name dell'input non deve essere il nome che si trascina via post, bensì "m4hidden_codice"?!?
No, sono io che ho ...... (name e non assign):
{capture name=usercode}{nome_del_tuo_udt}{/capture}

Alby
1dMN

Re: Personalizzazione SelfReg + FEU

Post by 1dMN »

alby wrote: No, sono io che ho ...... (name e non assign):
{capture name=usercode}{nome_del_tuo_udt}{/capture}

Alby
Ho corretto come mi hai suggerito; ora l'input hidden scrive correttamente il value del codice, però la difficoltà (mia) sta ora nel riuscire ad inserire il valore nel campo sul database...
Io ho creato la user property "codice", però effettuando la registrazione, non viene scritto nulla su quel campo!

Dove ho sbagliato?
1dMN
Attachments
utente-feu.gif
alby

Re: Personalizzazione SelfReg + FEU

Post by alby »

1dMN wrote:
alby wrote: No, sono io che ho ...... (name e non assign):
{capture name=usercode}{nome_del_tuo_udt}{/capture}

Alby
Ho corretto come mi hai suggerito; ora l'input hidden scrive correttamente il value del codice, però la difficoltà (mia) sta ora nel riuscire ad inserire il valore nel campo sul database...
Io ho creato la user property "codice", però effettuando la registrazione, non viene scritto nulla su quel campo!
Non puoi passare direttamente le variabili ad un modulo se non modificando il codice (con un altro parametro).
Nel template della registrazione di SR inserisci questa riga così da stampare le variabili e capire se è possibile fare un hack con il campo hidden....
.................
{foreach from=$controls item=control}
 
  {$control|print_r}
  {$control->hidden}
    {if $control->color != ''}
.................
Alby
1dMN

Re: Personalizzazione SelfReg + FEU

Post by 1dMN »

alby wrote:
1dMN wrote:
alby wrote: No, sono io che ho ...... (name e non assign):
{capture name=usercode}{nome_del_tuo_udt}{/capture}

Alby
Ho corretto come mi hai suggerito; ora l'input hidden scrive correttamente il value del codice, però la difficoltà (mia) sta ora nel riuscire ad inserire il valore nel campo sul database...
Io ho creato la user property "codice", però effettuando la registrazione, non viene scritto nulla su quel campo!
Non puoi passare direttamente le variabili ad un modulo se non modificando il codice (con un altro parametro).
Nel template della registrazione di SR inserisci questa riga così da stampare le variabili e capire se è possibile fare un hack con il campo hidden....
.................
{foreach from=$controls item=control}
 
  {$control|print_r}
  {$control->hidden}
    {if $control->color != ''}
.................
Alby
Ciao Alby. Ho allegato il risultato... Sinceramente non ci capisco nulla (beata ignoranza!), e continuo ad aver bisogno che quel campo Codice venga in qualche modo "preso con sé" dal form di SelfReg.
Come riesco a sbloccarmi?
1dMN
Attachments
pag-register.gif
alby

Re: Personalizzazione SelfReg + FEU

Post by alby »

1dMN wrote: Io ho creato la user property "codice", però effettuando la registrazione, non viene scritto nulla su quel campo!
Come o cosa crea la user property "codice" perchè dall'immagine che hai postato non è un campo di SR?

Alby
1dMN

Re: Personalizzazione SelfReg + FEU

Post by 1dMN »

alby wrote:
1dMN wrote: Io ho creato la user property "codice", però effettuando la registrazione, non viene scritto nulla su quel campo!
Come o cosa crea la user property "codice" perchè dall'immagine che hai postato non è un campo di SR?

Alby
Ti allego allora le due schermate di user properties e gruppo pending di FEU; nella prima ho inserito la proprietà codice, nella seconda vedi che codice fa parte dell proprietà del gruppo pending, con valore "nascosto".

L'immagine precedente si riferisce all'output html della schermata che visualizza il form di SR con le proprietà impostate in FEU.
Attachments
feu-pending-group.gif
feu-user-properties.gif
alby

Re: Personalizzazione SelfReg + FEU

Post by alby »

1dMN wrote:
alby wrote:
1dMN wrote: Io ho creato la user property "codice", però effettuando la registrazione, non viene scritto nulla su quel campo!
Come o cosa crea la user property "codice" perchè dall'immagine che hai postato non è un campo di SR?

Alby
Ti allego allora le due schermate di user properties e gruppo pending di FEU; nella prima ho inserito la proprietà codice, nella seconda vedi che codice fa parte dell proprietà del gruppo pending, con valore "nascosto".

L'immagine precedente si riferisce all'output html della schermata che visualizza il form di SR con le proprietà impostate in FEU.
Premetto che ho la versione SVN ma vedo che non è cambiato molto dalla 1.1.1
Ripeto come stampi il campo codice del form di SR come nella figura della replica #9?

Dal file action.default.php:

Code: Select all

      // don't process hidden fields here
      if( $reln['required'] == 3 ) continue;
Non stampa nessun campo definito hidden in quel modo (ma solo codici di controllo). Lo stampi mediante l'UDT?

Alby
1dMN

Re: Personalizzazione SelfReg + FEU

Post by 1dMN »

alby wrote: Premetto che ho la versione SVN ma vedo che non è cambiato molto dalla 1.1.1
Ripeto come stampi il campo codice del form di SR come nella figura della replica #9?

Dal file action.default.php:

Code: Select all

      // don't process hidden fields here
      if( $reln['required'] == 3 ) continue;
Non stampa nessun campo definito hidden in quel modo (ma solo codici di controllo). Lo stampi mediante l'UDT?

Alby
Esatto! Lo stampo con l'UDT input_codice

Code: Select all

if ($_POST['codice'] != '')
{
$input_codice = $_POST['codice'];
}
echo $input_codice;
alby

Re: Personalizzazione SelfReg + FEU

Post by alby »

1dMN wrote: Esatto! Lo stampo con l'UDT input_codice
No, non va bene in questo modo perchè deve essere formattato in modo tale che SR accetti poi il risultato

8) 8) Ma.........

Sono o non sono un bravo bambino  ;D ;D

Apri il file action.default.php e cerca:
      // don't process hidden fields here
      // if( $reln['required'] == 3 ) continue;
Commenta la seconda riga inserendo davanti, come nell'esempio in rosso, un doppio //


Cerca ancora il seguente testo ed inserisci il codice in rosso:
case 5: // multiselect
  $onerow->control = $module->CreateInputSelectList($id,
  'input_'.$defn['name'].'[]',
  $feusers->GetSelectOptions($defn['name'], 1),
  array(),
  $val);
  break;
}

if( $reln['required'] == 3 )
{
$onerow->control = $module->CreateInputHidden( $id, 'input_'.$reln['name'], $params['codice']);
$onerow->prompt = '';
}

      array_push( $rowarray, $onerow );
    }

Infine nella chiamata a SelfRegistration inserisci il nuovo parametro codice:
{cms_module module="SelfRegistration" group="pending" nocaptcha="true" lang="it_IT" codice="ALBY"}
Dopo, al posto di ALBY (il mio codice personale  :D ) gli metti l'uscita dall'UDT (solo il valore del codice) $smarty.capure.usercode:
{cms_module module="SelfRegistration" group="pending" nocaptcha="true" lang="it_IT" codice=$smarty.capure.usercode}
8) 8)  8)
Alby


PS: l'ho testato tutto sotto il multilingual versione 1.1rc3  :P
Last edited by alby on Fri Jun 29, 2007 8:37 pm, edited 1 time in total.
Post Reply

Return to “Italian - Italiano”