Skip to content
This repository was archived by the owner on Nov 9, 2017. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions forms/it/01-Form-Creation.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ creazione di un progetto symfony.
Prima di iniziare
-----------------

Inizieremo aggiungendo un form di contatto ad un'applicazione symfony.
Inizieremo aggiungendo un form di contatto a un'applicazione symfony.

La Figura 1-1 mostra il form di contatto come viene visto dagli utenti
che vogliono inviare un messaggio.
Expand Down Expand Up @@ -266,7 +266,7 @@ template per personalizzare ulteriormente il form.
> 'message' => new sfWidgetFormTextarea(),
> ));
>
>Il metodo `setLabels()` è applicato ad un insieme di widget
>Il metodo `setLabels()` è applicato a un insieme di widget
>inclusi nell'oggetto `widgetSchema`.
>
>Vedremo nel Capitolo 5 che la nozione di "schema widget" rende
Expand Down Expand Up @@ -344,7 +344,7 @@ Il metodo `executeSubmit()` esegue tre azioni:

* Per ragioni di sicurezza, verifichiamo che la pagina sia stata
inviata usando il metodo HTTP `POST`. Se non è stata inviata col
metodo `POST`, l'utente è rediretto ad una pagina 404. Nel template
metodo `POST`, l'utente è rediretto a una pagina 404. Nel template
`indexSuccess`, dichiariamo il metodo di invio come `POST`
(`<form ... method="post">`):

Expand All @@ -359,13 +359,13 @@ Il metodo `executeSubmit()` esegue tre azioni:
'email' => $request->getParameter('email'),
'message' => $request->getParameter('message'),
);
* Infine, redirigiamo l'utente ad una pagina di ringraziamenti
* Infine, redirigiamo l'utente a una pagina di ringraziamenti
(`contact/thankyou`) per mostrare le sue informazioni:

[php]
$this->redirect('contact/thankyou?'.http_build_query($params));

Invece di redirigere l'utente ad un'altra pagina, potremmo creare un
Invece di redirigere l'utente a un'altra pagina, potremmo creare un
template `submitSuccess.php`. Sebbene sia possibile, è una pratica
migliore redirigere sempre l'utente dopo una richiesta con metodo `POST`:

Expand Down
20 changes: 10 additions & 10 deletions forms/it/02-Form-Validation.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Ecco le regole di validazione da implementare per il form di contatto:

>**NOTE**
>Perché abbiamo bisogno di validare il campo `subject`? Il tag
>`<select>` costringe già l'utente ad un elenco di valori
>`<select>` costringe già l'utente a un elenco di valori
>predefiniti. Un utente medio può solo scegliere una delle opzioni
>mostrate, ma altri valori possono essere inviati usando degli
>strumenti come l'estensione Web Developer di Firefox, oppure
Expand Down Expand Up @@ -68,7 +68,7 @@ Validatori

Un form in symfony è fatto di campi. Ciascun campo può essere
identificato da un nome univoco, come osservato nel Capitolo 1.
Abbiamo connesso un widget ad ogni campo per poterlo mostrare
Abbiamo connesso un widget a ogni campo per poterlo mostrare
all'utente, ora vediamo come possiamo applicare le regole di
validazione a ciascun campo.

Expand Down Expand Up @@ -136,7 +136,7 @@ Vediamo le opzioni disponibili per i validatori che abbiamo appena usato:
| sfValidatorChoice | `choices` | |


Se si prova ad inviare il form con valori non validi, non si vedrà
Se si prova a inviare il form con valori non validi, non si vedrà
alcun cambiamento nel comportamento. Dobbiamo aggiornare il modulo
`contact` per validare i valori inviati, come mostrato nel Listato 2-3.

Expand Down Expand Up @@ -175,7 +175,7 @@ Il Listato 2-3 introduce molti nuovi concetti:

* Quando l'utente invia il form con una richiesta `POST`,
il metodo `bind()` lega il form ai dati utente e attiva
il meccanismo di validazione. il form quindi passa ad uno
il meccanismo di validazione. il form quindi passa a uno
**stato vincolato**.

[php]
Expand Down Expand Up @@ -343,7 +343,7 @@ Figura 2-5 - Messaggi di errore personalizzati
![Messaggi di errore personalizzati](http://www.symfony-project.org/images/forms_book/en/02_05.png "Messaggi di errore personalizzati")

La Figura 2-6 mostra il messaggio di errore ottenuto se si prova
ad inviare un messaggio troppo corto (abbiamo impostato la
a inviare un messaggio troppo corto (abbiamo impostato la
lunghezza minima a 4 caratteri).

Figura 2-6 - Messaggio di errore per stringa troppo corta
Expand Down Expand Up @@ -388,8 +388,8 @@ valori disponibili sono solitamente i dati inseriti dall'utente
(`value`) e i valori delle opzioni del validatore relativo all'errore.

>**TIP**
>Se si vogliono conoscere tutti i codici di errore, le opzioni,
>ed i messaggi predefiniti di un validatore, fare riferimento
>Se si vogliono conoscere tutti i codici di errore, le opzioni
>e i messaggi predefiniti di un validatore, fare riferimento
>alla documentazione online delle API (http://www.symfony-project.org/api/1_2/).
>Ogni codice, opzione e messaggio di errore è descritto in dettaglio,
>insieme con i valori predefiniti (per esempio, l'API del
Expand Down Expand Up @@ -683,7 +683,7 @@ default, si comportano ignorando ogni altro dato inviato dall'utente,
ma talvolta la validazione di un campo dipende dal contesto o
dipende da molti altri campi. Per esempio, serve un validatore
globale quando due password devono coincidere, oppure quando
una data d'inizio deve essere antecedente ad una data di fine.
una data d'inizio deve essere antecedente a una data di fine.

In entrambi questi casi, dobbiamo usare un validatore globale
per validare i dati inviati dall'utente nel loro contesto.
Expand Down Expand Up @@ -715,7 +715,7 @@ L'esempio precedente è equivalente a:
>di ogni campo.

Il Listato 2-14 mostra come usare un singolo validatore per
validare una data di inizio che debba essere antecedente ad
validare una data di inizio che debba essere antecedente a
una data di fine, personalizzando il messaggio di errore.

Listato 2-14 - Usare il validatore `sfValidatorSchemaCompare`
Expand All @@ -736,7 +736,7 @@ sarà sempre convertito in un formato comparabile (di default

Per default, i pre-validatori e i post-validatori restituiscono
errori globali al form. Tuttavia, alcuni di essi possono associare
un errore ad un campo specifico. Per esempio, l'opzione
un errore a un campo specifico. Per esempio, l'opzione
`throw_global_error` del validatore `sfValidatorSchemaCompare` può
scegliere tra un errore globale (Figura 2-10) o un errore associato
al primo campo (Figura 2-11). Il Listato 2-15 mostra come usare
Expand Down
12 changes: 6 additions & 6 deletions forms/it/03-Forms-for-web-Designers.txt
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ Listato 3-2 - Template generato in caso di invio non valido
>anche di passare un numero arbitrario di attributi addizionali al tag
>form in modo più semplice, usando un array. Lo svantaggio di usare questa
>scorciatoia sta nel fatto che gli strumenti di design avranno più
>difficoltà ad individuare correttamente il form.
>difficoltà a individuare correttamente il form.

Analizziamo questo codice. La Figura 3-2 evidenzia le righe
`<tr>` prodotte per ogni campo.
Expand Down Expand Up @@ -241,7 +241,7 @@ Listato 3-4 - Uso di `renderRow()`
</table>
</form>

Possiamo accedere ad ogni campo usando l'oggetto `form` come un
Possiamo accedere a ogni campo usando l'oggetto `form` come un
array PHP. Si può accedere al campo `email` tramite
`$form['email']`. Il metodo `renderRow()` visualizza il campo
come una riga di una tabella HTML. L'espressione
Expand All @@ -255,7 +255,7 @@ visualizzazione del form.
>
>Dalla versione 5 di PHP, agli oggetti possono essere dati gli
>stessi comportamenti di un array. La classe `sfForm` implementa
>l'interfaccia `ArrayAccess` per consentire l'accesso ad ogni
>l'interfaccia `ArrayAccess` per consentire l'accesso a ogni
>campo usando una sintassi breve e semplice. La chiave
>dell'array è il nome del campo e il valore restituito è
>associato con l'oggetto `widget`:
Expand Down Expand Up @@ -553,7 +553,7 @@ Listato 3-11 - Mostrare i messaggi di errore usando il metodo `renderError()`
### Personalizzazione avanzata dei messaggi di errore

Il metodo `renderError()` genera la lista degli errori
associati ad un campo. Genera codice HTML solo se il campo
associati a un campo. Genera codice HTML solo se il campo
ha degli errori. Per default, la list è generata come una
lista HTML non ordinata (`<ul>`).

Expand Down Expand Up @@ -633,13 +633,13 @@ Listato 3-14 - Generazione dei messaggi di errore globali

Ci sono tre tipi di errore in un form:

* Errori associati ad un campo specifico
* Errori associati a un campo specifico
* Errori globali
* Errori su campi nascosti o su campi che non sono visualizzati
nel form. Questi sono aggiunti agli errori globali.

Abbiamo già visto l'implementazione dei messaggi di errore associati
ad un campo e il Listato 3-15 mostra l'implementazione dei
a un campo e il Listato 3-15 mostra l'implementazione dei
messaggi di errore globali.

Listato 3-15 - Implementazione dei messaggi di errore globali
Expand Down
22 changes: 11 additions & 11 deletions forms/it/04-Propel-Integration.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Capitolo 4 - Integrazione con Propel

In un progetto web, la maggior parte dei form è usata per creare o
modificare oggetti del modello. Questi oggetti sono solitamente
serializzati in un database grazie ad un ORM. Il sistema di form
serializzati in un database grazie a un ORM. Il sistema di form
di symfony offre un livello addizionale per interfacciarsi con
Propel, l'ORM predefinito in symfony, rendendo l'implementazione
dei form basati su questi oggetti più facile.
Expand Down Expand Up @@ -66,7 +66,7 @@ Ecco le relazioni tra le tabelle:
* Relazione 1-n tra la tabella `article` e la tabella `author`:
un articolo è scritto da uno e un solo autore
* Relazione 1-n tra la tabella `article` e la tabella `category`:
un articolo appartiene ad una o nessuna categoria
un articolo appartiene a una o nessuna categoria
* Relazione n-n tra le tabelle `article` e `tag`

Generazione delle classi dei form
Expand Down Expand Up @@ -153,7 +153,7 @@ coinvolte nella definizione del form `AuthorForm`.
| **Classe** | **Package** | **Per** | **Descrizione**
| --------------- | ------------- | ------------- | ---------------
| AuthorForm | project | sviluppatore | Sovrascrive il form generato
| BaseAuthorForm | project | symfony | Basato sullo schema e sovrascritto ad ogni esecuzione di `propel:build-forms`
| BaseAuthorForm | project | symfony | Basato sullo schema e sovrascritto a ogni esecuzione di `propel:build-forms`
| BaseFormPropel | project | sviluppatore | Consente la personalizzazione globale dei form Propel
| sfFormPropel | Propel plugin | symfony | Base dei form Propel
| sfForm | symfony | symfony | Base dei form symfony
Expand All @@ -176,7 +176,7 @@ Listato 4-2 - Classe `AuthorForm`
}

Il Listato 4-3 mostra la classe `BaseAuthorForm`, con i validatori
ed i widget generati tramite l'introspezione del modello per la
e i widget generati tramite l'introspezione del modello per la
tabella `author`.

Listato 4-3 - Classe `BaseAuthorForm`, che rappresenta il form della tabella `author`
Expand Down Expand Up @@ -527,7 +527,7 @@ essere sovrascritto esplicitamente dall'utente. Anche se questo campo è
obbligatorio nello schema, non può esserlo nel form. Per questo motivo
modifichiamo il validatore e lo rendiamo opzionale, come nel Listato 4-8.
Personalizzeremo anche il campo `content`, aumentando la sua dimensione e
forzando l'utente ad inserirvi almeno cinque caratteri.
forzando l'utente a inserirvi almeno cinque caratteri.

Listato 4-8 - Personalizzare i validatori e i widget

Expand Down Expand Up @@ -879,10 +879,10 @@ di vita dei form, iniziando dal codice generato dal task `propel:generate-crud`.

### Valori di default

**Un'istanza Propel è sempre connessa ad un oggetto Propel**. L'oggetto
**Un'istanza Propel è sempre connessa a un oggetto Propel**. L'oggetto
Propel collegato appartiene sempre alla classe restituita dal metodo
`getModelName()`. Ad esempio, il form `AuthorForm` può essere collegato solo
ad oggetti che appartengono alla classe `Author`. Questo oggetto è o un
a oggetti che appartengono alla classe `Author`. Questo oggetto è o un
oggetto vuoto (un'istanza vuota della classe `Author`), oppure l'oggetto
inviato al costruttore come primo parametro. Dal momento che il costruttore
di un form "medio" accetta un array di valori come primo parametro, il
Expand Down Expand Up @@ -972,7 +972,7 @@ modifica di oggetti della classe `Author`:

* La chiamata a `retrieveByPk()` di conseguenza restituisce `null`

* L'oggetto `form` quindi è collegato ad un oggetto Propel `Author`
* L'oggetto `form` quindi è collegato a un oggetto Propel `Author`
vuoto

* La chiamata a `$this->form->save()` crea di conseguenza un nuovo
Expand All @@ -997,7 +997,7 @@ modifica di oggetti della classe `Author`:
Quando un form Propel è valido, il metodo `save()` aggiorna l'oggetto
correlato e lo memorizza nel database. Questo metodo in realtà memorizza
non solo l'oggetto principale, ma anche gli eventuali oggetti correlati. Ad
esempio, il form `ArticleForm` aggiorna i tag connessi ad un articolo.
esempio, il form `ArticleForm` aggiorna i tag connessi a un articolo.
Essendo la relazione tra le tabelle `article` e `tag` n-n, i tag relativi
all'articolo sono salvati nella tabella `article_tag` (usando il metodo
generato `saveArticleTagList()`).
Expand Down Expand Up @@ -1037,7 +1037,7 @@ ogni aggiornamento in una transazione.
Il metodo `save()` aggiorna automaticamente gli oggetti Propel, ma non può
gestire gli elementi collaterali come l'invio di file.

Vediamo come allegare un file ad ogni articolo. I file sono memorizzati
Vediamo come allegare un file a ogni articolo. I file sono memorizzati
nella cartella `web/uploads` e un riferimento al percorso del file viene
tenuto nel campo `file` della tabella `article`, come mostrato nel Listato 4-24.

Expand All @@ -1059,7 +1059,7 @@ oggetti, il database e i relativi form:
>Ricordare che il task `propel:build-all` cancella tutte le tabelle dello
>schema e le ricrea. I dati presenti nelle tabelle sono quindi
>sovrascritti. Per questo è importante creare dei dati di test (`fixtures`),
>che si possono ricaricare ad ogni modifica del modello.
>che si possono ricaricare a ogni modifica del modello.

Il Listato 4-25 mostra come modificare la classe `ArticleForm` per
collegare un widget e un validatore al campo `file`.
Expand Down
4 changes: 2 additions & 2 deletions forms/it/08-Internationalisation-and-Localisation.txt
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ può essere una delle seguenti tre cose:

* una stringa rappresentante un nome funzione, come `my_function`

* un array con riferimento ad una istanza di una classe e al nome di
* un array con riferimento a una istanza di una classe e al nome di
uno dei suoi metodi, come `array($anObject, 'oneOfItsMethodsName')`

* una istanza `sfCallable`. Questa classe incapsula un PHP callable
Expand All @@ -156,7 +156,7 @@ può essere una delle seguenti tre cose:
>**Note**
>Un PHP callable è un riferimento a una funzione o all'istanza di un
>metodo. È anche una variabile PHP che restituisce `true` quando
>passata ad una funzione `is_callable()`.
>passata a una funzione `is_callable()`.

Facciamo un esempio. Si deve migrare un progetto che ha già il suo
sistema di internazionalizzazione, fornito dalla classe mostrata nel
Expand Down
20 changes: 10 additions & 10 deletions forms/it/11-Doctrine-Integration.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Capitolo 11 - Integrazione con Doctrine

In un progetto web, la maggior parte dei form è usata per creare o
modificare oggetti del modello. Questi oggetti sono solitamente
serializzati in un database grazie ad un ORM. Il sistema di form
serializzati in un database grazie a un ORM. Il sistema di form
di symfony offre un livello addizionale per interfacciarsi con
Doctrine, l'ORM predefinito in symfony, rendendo l'implementazione
dei form basati su questi oggetti più facile.
Expand Down Expand Up @@ -79,7 +79,7 @@ Ecco le relazioni tra le tabelle:
* Relazione 1-n tra la tabella `article` e la tabella `author`:
un articolo è scritto da uno e un solo autore
* Relazione 1-n tra la tabella `article` e la tabella `category`:
un articolo appartiene ad una o nessuna categoria
un articolo appartiene a una o nessuna categoria
* Relazione n-n tra le tabelle `article` e `tag`

Generazione delle classi dei form
Expand Down Expand Up @@ -141,7 +141,7 @@ coinvolte nella definizione del form `AuthorForm`.
| **Classe** | **Package** | **Per** | **Descrizione**
| ---------------- | --------------- | ------------- | ---------------
| AuthorForm | project | sviluppatore | Sovrascrive il form generato
| BaseAuthorForm | project | symfony | Basato sullo schema e sovrascritto ad ogni esecuzione di `doctrine:build-forms`
| BaseAuthorForm | project | symfony | Basato sullo schema e sovrascritto a ogni esecuzione di `doctrine:build-forms`
| BaseFormDoctrine | project | sviluppatore | Consente la personalizzazione globale dei form Doctrine
| sfFormDoctrine | Doctrine plugin | symfony | Base dei form Doctrine
| sfForm | symfony | symfony | Base dei form symfony
Expand Down Expand Up @@ -527,7 +527,7 @@ essere sovrascritto esplicitamente dall'utente. Anche se questo campo è
obbligatorio nello schema, non può esserlo nel form. Per questo motivo
modifichiamo il validatore e lo rendiamo opzionale, come nel Listato 4-8.
Personalizzeremo anche il campo `content`, aumentando la sua dimensione e
forzando l'utente ad inserirvi almeno cinque caratteri.
forzando l'utente a inserirvi almeno cinque caratteri.

Listato 4-8 - Personalizzare i validatori e i widget

Expand Down Expand Up @@ -885,10 +885,10 @@ di vita dei form, iniziando dal codice generato dal task `doctrine:generate-crud

### Valori di default

**Un'istanza Doctrine è sempre connessa ad un oggetto Doctrine**. L'oggetto
**Un'istanza Doctrine è sempre connessa a un oggetto Doctrine**. L'oggetto
Doctrine collegato appartiene sempre alla classe restituita dal metodo
`getModelName()`. Ad esempio, il form `AuthorForm` può essere collegato solo
ad oggetti che appartengono alla classe `Author`. Questo oggetto è o un
a oggetti che appartengono alla classe `Author`. Questo oggetto è o un
oggetto vuoto (un'istanza vuota della classe `Author`), oppure l'oggetto
inviato al costruttore come primo parametro. Dal momento che il costruttore
di un form "medio" accetta un array di valori come primo parametro, il
Expand Down Expand Up @@ -993,7 +993,7 @@ modifica di oggetti della classe `Author`:

* La chiamata a `find()` di conseguenza restituisce `null`

* L'oggetto `form` quindi è collegato ad un oggetto Doctrine `Author`
* L'oggetto `form` quindi è collegato a un oggetto Doctrine `Author`
vuoto

* La chiamata a `$this->form->save()` crea di conseguenza un nuovo
Expand All @@ -1018,7 +1018,7 @@ modifica di oggetti della classe `Author`:
Quando un form Doctrine è valido, il metodo `save()` aggiorna l'oggetto
correlato e lo memorizza nel database. Questo metodo in realtà memorizza
non solo l'oggetto principale, ma anche gli eventuali oggetti correlati. Ad
esempio, il form `ArticleForm` aggiorna i tag connessi ad un articolo.
esempio, il form `ArticleForm` aggiorna i tag connessi a un articolo.
Essendo la relazione tra le tabelle `article` e `tag` n-n, i tag relativi
all'articolo sono salvati nella tabella `article_tag` (usando il metodo
generato `saveArticleTagList()`).
Expand Down Expand Up @@ -1058,7 +1058,7 @@ ogni aggiornamento in una transazione.
Il metodo `save()` aggiorna automaticamente gli oggetti Doctrine, ma non può
gestire gli elementi collaterali come l'invio di file.

Vediamo come allegare un file ad ogni articolo. I file sono memorizzati
Vediamo come allegare un file a ogni articolo. I file sono memorizzati
nella cartella `web/uploads` e un riferimento al percorso del file viene
tenuto nel campo `file` della tabella `article`, come mostrato nel Listato 4-24.

Expand All @@ -1080,7 +1080,7 @@ oggetti, il database e i relativi form:
>Ricordare che il task `doctrine:build-all` cancella tutte le tabelle dello
>schema e le ricrea. I dati presenti nelle tabelle sono quindi
>sovrascritti. Per questo è importante creare dei dati di test (`fixtures`),
>che si possono ricaricare ad ogni modifica del modello.
>che si possono ricaricare a ogni modifica del modello.

Il Listato 4-25 mostra come modificare la classe `ArticleForm` per
collegare un widget e un validatore al campo `file`.
Expand Down
2 changes: 1 addition & 1 deletion forms/it/A-Widgets.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1067,7 +1067,7 @@ all'utente di cercare date vuote.
~`sfWidgetFormSchema`~
----------------------

`sfWidgetFormSchema` rappresenta un widget composo da più campi.
`sfWidgetFormSchema` rappresenta un widget composto da più campi.
Un campo è semplicemente un widget con un nome:

[php]
Expand Down
Loading