.: HosiriS :.

Informatica e non solo

Symfony: il form di inserimento.

Posted by hosiris su aprile 22, 2010

Oggi andiamo a modificare il form di inserimento dell’attività. Quando abbiamo creato il progetto Symfony ha creato automaticamente il form, ma come potete vedere sono presenti tutti i campi, invece a noi non interessa il campo completed, e vorremmo che il campo priority abbia una set di valori tra cui scegliere.
Le classi relativa al form sono contenute in lib/form, se aprite il file TodoForm.php non vedrete niente ed è in questo file che inseriremo le nostre personalizzazioni.
Cominciamo con il togliere il campo che indica il completamento dell’attività (da notare che per data ho inteso la data entro cui dovrebbe essere completata l’attività, se avete inteso la data di inserimento potete togliere anche quella):


class TodoForm extends BaseTodoForm{
  public function configure(){
    unset($this['completed']);
  }
}

Abbiamo detto anche di avere un insieme di valori predefiniti per la priorità, per cui apriamo lib/model/TodoPeer.php ed inseriamo:


class TodoPeer extends BaseTodoPeer{
  static public $priority = array(
    0 => 0,
    1 => 1,
    2 => 2,
    3 => 3,
    4 => 4,
    5 => 5,
    6 => 6,
    7 => 7,
    8 => 8,
    9 => 9
  );
// ...
}

ed aggiungiamo (al file lib/form/TodoForm.php):


//...
$this->widgetSchema['priority'] = new sfWidgetFormChoice(array(
  'choices' => TodoPeer::$priority,
  'expand' => false
  )
);
//...

Inoltre possiamo modificare le label, che al momento non sono altro che il nome dei campi del database:


//...
$this->widgetSchema->setLabels(
  array(
    'name' => 'Attività',
    'date' => 'Data conclusione',
    'priority => 'Priorità'
//...

inoltre impostiamo un helper per spiegare il significato del campo:


//...
$this->widgetSchema->setHelp('date', 'Rappresenta la data in cui si prevede che deve essere terminata l'attività.');
//...

Bene, adesso la classe è pronta! Non resta che modificare il template. L’azione che genera il form si trova in newSuccess.php e in editSuccess.php, entrambi i file fanno riferimento al partial _form, modifichiamo il file apps/frontend/modules/todo/templates/_form.php per rendere la grafiche più allettante.
Dalla prossima volta cominceremo ad analizzare le funzioni amministrative, ma prima voglio assimilare meglio tutto quello fatto fino ad adesso, aggiungerò dei css e del javascript!

Buona programmazione.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: