Inserire Html in form di Edit

10 contenuti / 0 new
Ultimo contenuto
Inserire Html in form di Edit

Salve,
ho un form di registrazione utente con vari campi, e all'inizio del formo vorrei inserire:

- 1 div con la classica nota informativa
- 1 checkbox da spuntare per "dichiaro di aver letto la nota...".

La checkbox la so aggiungere senza problemi come per tutti gli altri campi, ma non trovo soluzione per aggiungere il DIV (che all'interno contiene un pò di html).

Tale div dovrà essere visualizzato solo in fase di edit di questo form, ma non voglio che sia un "field", e che venga memorizzato sul database.

Ho intuito quindi il fatto che devo lavorare con hook_form() ma non so come inserire questo campo, come scegliere la posizione di inserimento, e come evitare che venga memorizzato.

Potete suggerirmi qualcosa? tutto su drupal 7

grazie

Drupal Version:

Prova Webform. Puoi creare tutti i tipi di form che ti servono, indipendenti o come parte di altro tipo di contenuto (tipo delle Pagine, dei post del Blog etc.)

...enter at your own risk...

@giuvax: @tunning88 ha parlato di un form di registrazione utente..quindi il webform non so se possa usarlo..
Se non si ha dimestichezza con le modifiche dei form tramite codice ed agganci, ti converrebbe usare un modulo come questo: https://drupal.org/project/markup
che, se non ricordo male, ti permette di inserire un campo fittizio dove inserire univocamente del codice..

Pardon, mi è sfuggito il discorso della registrazione utente, ho letto solo del form.
Allora è più semplice, ci sono vari moduli (Terms of Use, Legal) che fanno esattamente questo infilando nel form di registrazione un disclaimer.

...enter at your own risk...

si vero, non ci avevo pensato..

Ciao ragazzi e grazie per i commenti,
comunque ci sono quasi utilizzando hook_form_alter(). Ho capito come aggiungere un campo e come posizionarlo (tramite attributo weight).

Il problema è che non so quale sia il tipo di campo giusto da utilizzare per poter inserire HTML. Ho provato con Item ma non posso. Mi potete consigliare??

La funzione che ho usato è questa (inserita nel template.php del mio tema).

function bartik_s10l_form_alter(&$form, &$form_state, $form_id){
  if ($form_id == 'user_register_form')
  {
        $form['nuovo_campo'] = array(
'#type' => 'item',
'#title' => t('Titolo item'),
'#weight' => 1,
);
  }
}

Rinnovo il consiglio di uno di quei moduli. Eviti tutta questa fatica, non devi infilare campi nuovi nel form e hai anche il controllo per modifiche successive (parlo del modulo Legal) nel caso tu faccia aggiornamenti al Disclaimer, nel senso che 'forza' gli utenti a ri-sottoscrivere i Termini se li hai cambiati. Anche se sono già registrati insomma.

...enter at your own risk...

Ciao @Giuvax,
ti ringrazio per il consiglio. Ho appena provato il modulo legal che fa "quasi" quello che mi serve però non mi piace perchè:

  • Non mi permette di modificare la prima etichetta, che rimane fissa su "dichiaro di aver letto i termini e le condizioni d'uso"
  • Non mi permette di variare la posizione in cui compare il campo, ma lo posizione sempre in fondo al form come ultimo campo.

Comunque ho risolto, ho utilizzato un campo senza definire il tipo, ma assegnando solo l'attributo #markup. Spero di aver fatto tutto bene, per ora funziona senza problemi.

Posto il codice: (bartik_s10l è il nome del mio sotto tema)

<?php
function bartik_s10l_form_alter(&$form, &$form_state, $form_id){
  if (
$form_id == 'user_register_form'){
     
$form['campo_informativa'] = array(
 
'#markup' => "<div id='informativa1'>.. codice html qui .... </div>"
   
);
  }
}
?>

per gestire il posizionamento del campo tra i vari campi del form utilizzo l'attributo #weight.

Grazie a tutti

https://api.drupal.org/api/drupal/developer%21topics%21forms_api_referen...

che vuol dire che "bartik_s10l" è un tuo sottotema? il codice postato non lo hai inserito in un modulo ad hoc?

ciao,
no, il codice postato lo ho inserito nel file template.php del mio sottotema.
E' scorretto?