1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
<?php
class ProjectsForm extends sfForm
{
public function configure()
{
//setup les widgets du formulaire
$this->setWidgets(array(
'i_id_project' => new sfWidgetFormInputHidden(),
'c_name_template'=> new sfWidgetFormDoctrineChoice(array('model' => 'TEMPLATE')),
'c_key_project' => new sfWidgetFormInputText(),
'c_desc_project' => new sfWidgetFormTextarea(),
'dir_prj' => new sfWidgetFormDoctrineChoice(array('model' => 'USER')),
'chef_prj' => new sfWidgetFormDoctrineChoice(array('model' => 'USER')),
));
//setup les validators du formulaire
$this->setValidators(array(
'i_id_project' => new sfValidatorInteger(array('required' => false)),
'c_name_template'=> new sfValidatorDoctrineChoice(array('model' => 'TEMPLATE', 'column' => 'c_name_template')),
'c_key_project' => new sfValidatorAnd(array(
new sfValidatorString(array('max_length' => 50)),
new sfValidatorRegex(array('pattern' => '/^[a-z0-9\_\.]+$/i'), array('invalid' => 'La clé ne doit pas contenir des \', des espaces ou des caractères accentués'))
)
),
'c_desc_project' => new sfValidatorAnd(array(
new sfValidatorString(array('max_length' => 900, 'required' => false)),
new sfValidatorRegex(array('pattern' => '/^[a-z0-9\s\_\.]+$/i'), array('invalid' => 'La clé ne doit pas contenir des \' ou des caractères accentués'))
)
),
'dir_prj' => new sfValidatorDoctrineChoice(array('model' => 'USER', 'column' => 'i_id_user')),
'chef_prj' => new sfValidatorDoctrineChoice(array('model' => 'USER', 'column' => 'i_id_user')),
));
//determiner les champs à afficher dans le formulaire tout en spécifiant l'ordre
$this->useFields(array('c_key_project', 'c_name_template', 'c_desc_project', 'dir_prj', 'chef_prj'));
//modifier les lables de chaque champs
$this->widgetSchema->setLabels(array(
'c_key_project' => 'Clé du projet : ',
'c_name_template' => 'Template de l\'arborescence : ',
'c_desc_project' => 'Descriptif du projet : ',
'dir_prj' => 'Directeur de projet',
'chef_prj' => 'Chef de projet',
));
$this->widgetSchema->setNameFormat('project[%s]');
$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
}
public function setValuesPrj($arrVal)
{
$this->widgetSchema->setDefaults(array(
'c_key_project' => $arrVal['key'],
'c_name_template' => $arrVal['tmpl'],
'c_desc_project' => $arrVal['desc'],
'dir_prj' => $arrVal['DP']->getIIdUser(),
'chef_prj' => $arrVal['CP']->getIIdUser(),
));
}
public function mergeRp($arrRp, $lng)
{
$subForm = new sfForm();
$j=1;
for ($i=0; $i<$lng; $i++)
{
$rpF = new RsrcForm();
$rpF->setDefault('rs_prj', $arrRp[$i]);
$subForm->embedForm($j, $rpF);
$j++;
}
$this->embedForm('Ressources', $subForm);
}
public function merge()
{
$subForm = new sfForm();
$rpF = new RsrcForm();
$subForm->embedForm(1, $rpF);
$this->embedForm('Ressources', $subForm);
}
public function addRP($num)
{
$rpF = new RsrcForm();
$num = $num + 1;
$this->embeddedForms['Ressources']->embedForm($num,$rpF);
$this->embedForm('Ressources', $this->embeddedForms['Ressources']);
}
} |
Partager