Occupiamoci ora di una parte dell'applicazione di cui non abbiamo ancora parlato: il back-end. Se vogliamo dare la possibilità ad un amministratore di poter gestire la nostra rubrica con Symfony è sufficiente lanciare qualche comando dalla shell DOS e lavorare su alcuni file di configurazione, niente di più!
Apriamo allora la shell DOS e digitiamo (sempre portandoci prima nella directory c:wampwwwsf_rubrica2):
symfony generate:app backend symfony propel:init-admin backend nazione Nazione symfony propel:init-admin backend provincia Provincia symfony propel:init-admin backend comune Comune symfony propel:init-admin backend contatto Contatto
agli indirizzi: http://localhost/sf_rubrica2/web/backend_dev.php/nazione, http://localhost/sf_rubrica2/web/backend_dev.php/comune, http://localhost/sf_rubrica2/web/backend_dev.php/provincia, http://localhost/sf_rubrica2/web/backend_dev.php/contatto troveremo il back office della nostra applicazione.
Come già fatto per il front-end andiamo a modificare il file sf_rubrica2appsbackendtemplateslayout.php per aggiungere i link ai vari moduli.
All'interno dei tag <body> </body>
inseriamo:
Listato 30: Layout
<div id="navigation"> <?php echo link_to('Contatti', 'contatto/index') ?> <?php echo " | " ?> <?php echo link_to('Nazioni', 'nazione/index') ?> <?php echo " | " ?> <?php echo link_to('Province', 'provincia/index') ?> <?php echo " | " ?> <?php echo link_to('Comuni', 'comune/index') ?> </div> <div id="content"> <?php echo $sf_data->getRaw('sf_content') ?> </div>
Il back office ha un file di configurazione per ogni modulo salvati rispettivamente in
- sf_rubrica2appsbackendmodulesnazioneconfiggenerator.yml
- sf_rubrica2appsbackendmodulesprovinciaconfiggenerator.yml
- sf_rubrica2appsbackendmodulescomuneconfiggenerator.yml
- sf_rubrica2appsbackendmodulescontattoconfiggenerator.yml
attraverso i quali è possibile configurare l'applicazione. Andiamo per esempio a personalizzare il modulo di amministrazione dei contatti (sf_rubrica2appsbackendmodulescontattoconfiggenerator.yml).
Listato 31: Personalizzazione del modulo dei contatti
generator:
class: sfPropelAdminGenerator
param:
model_class: Contatto
theme: default
fields:
comune: { name: Comune }
cognome: { name: Cognome }
nome: { name: Nome }
telefono: { name: Telefono }
cellulare: { name: Cellulare }
email: { name: E-mail }
created_at: { name: Data Creazione }
list:
title: Contatti
layout: tabular
display: [=comune, cognome, nome, telefono, cellulare, email, created_at]
object_actions:
_edit: ~
_delete: ~
max_per_page: 10
filters: [cognome, nome]
edit:
title: Contatto
fields:
comune: { type: input_tag, params: size=53 }
cognome: { type: input_tag, params: size=53 }
nome: { type: input_tag, params: size=53 }
telefono: { type: input_tag, params: size=53 }
cellulare: { type: input_tag, params: size=53 }
email: { type: input_tag, params: size=53 }
created_at: { type: input_date_tag, params: rich=on }
Le modifiche così apportate sono visibili all'indirizzo http://localhost/sf_rubrica2/web/backend_dev.php/contatto.