$title=$isDynamic?"Import Dynamique, pour afficher des données gérées par quelqu'un d'autre":"Importer des données en dur, depuis un fichier CSV ou une API Json";
$formMapper
->with("Importer des données en dur, depuis un fichier CSV ou une API Json")
->add('sourceName','text',array(
'required'=>true,
'label'=>'Nom de la source des données'))
->add('file','file',array('label'=>'Fichier à importer','required'=>false))
->add('url','text',array('label'=>'Ou Url vers une API Json','required'=>false))
->add('geocodeIfNecessary',null,array('required'=>false,'label'=>'Géocoder les élements sans latitude ni longitude à partir de leur adresse'))
->add('createMissingOptions',null,array('required'=>false,'label'=>'Créer les catégories manquantes à partir des catégories renseignées dans chaque élément'))
->add('sourceName','text',array('required'=>true,'label'=>'Nom de la source '))
->add('file','file',array('label'=>'Fichier CSV à importer','required'=>false))
->add('url','text',array('label'=>"Ou URL vers un API Json",'required'=>false));
if($isDynamic)
$formMapper
->add('refreshFrequencyInDays',null,array('required'=>false,'label'=>"Fréquence de mise à jours des données en jours (laisser vide pour ne jamais mettre à jour automatiquement"))
->add('idsToIgnore','text',array('required'=>false,'attr'=>['class'=>'gogo-display-array'],'label'=>"Liste des IDs qui seront ignorées lors de l'import",'label_attr'=>['title'=>"Pour ignorer un élément, supprimer le (définitivement) et il ne sera plus jamais importé. Si vous supprimez un élément dynamiquement importé juste en changeant son status (soft delete), l'élément sera quand meme importé mais conservera son status supprimé. Vous pourrez donc à tout moment restaurer cet élement pour le voir apparaitre de nouveau"]));
->add('geocodeIfNecessary',null,array('required'=>false,'label'=>'Géocoder les élements sans latitude ni longitude à partir de leur adresse'))
->add('createMissingOptions',null,array('required'=>false,'label'=>'Créer les catégories manquantes','label_attr'=>['title'=>"Si un élément importé a une catégorie qui n'existe pas encore sur votre carte, elle sera automatiquement crée"]))
'label'=>'Catégories à ajouter à chaque élément importé'),array('admin_code'=>'admin.option'))
->add('needToHaveOptionsOtherThanTheOnesAddedToEachElements',null,array('required'=>false,'label'=>'Les éléments importés doivent contenir au moins une catégorie en dehors de celles ajoutées manuellement ci-dessus','label_attr'=>['title'=>"Sans prendre en compte les catégories ajoutés via le champs \"Catégories à ajouter à chaque élément importé\", si les éléments importés n'ont pas de catégories, ils seront marqués comme \"Modération aucune catégorie renseignée\""]));
if($isDynamic)
$formMapper
->add('fieldToCheckElementHaveBeenUpdated',null,array('required'=>false,'label'=>"Nom de l'attribut à comparer pour la mise à jour",'label_attr'=>['title'=>"Lorsqu'on met à jour une source, certains des éléments à importer existent déjà dans notre base de donnée. Vous pouvez renseigner ici un champs qui permettra de comparer si l'élément à été mis à jour au sein de la source depuis le dernier import. Exple de champ: updatedAt, date_maj etc... (laisser vide pour mettre à jour les éléments à chaque fois)"]));
$formMapper->tab('Modifier les données en exécutant du code')
->with('Entrez du code qui sera exécuté à la reception des données, avant leur traitement par GoGoCarto',["description"=>"La variable <b>\$data</b> représente le tableau PHP créé à partir des données Csv ou Json. Quelques examples de transformations simple:
->add('customCode','text',array('label'=>'Code PHP qui sera exécuté','attr'=>['class'=>'gogo-code-editor','format'=>'php','height'=>'500'],'required'=>false))
->add('createMissingOptions',null,array('required'=>false,'label'=>'Créer les catégories manquantes à partir des catégories renseignées dans chaque élément'))
->with("Import Dynamique, pour afficher des données gérées par quelqu'un d'autre",['class'=>'col-md-6'])
->add('sourceName','text',array('required'=>true,'label'=>'Nom de la source '))
->add('url','text',array('label'=>"Url de l'api Json",'required'=>true))
->add('refreshFrequencyInDays',null,array('required'=>false,'label'=>"Fréquence de mise à jours des données en jours (laisser vide pour ne jamais mettre à jour automatiquement"))
->add('idsToIgnore','text',array('required'=>false,'attr'=>['class'=>'gogo-display-array'],'label'=>"Liste des IDs qui seront ignorées lors de l'import",'label_attr'=>['title'=>"Pour ignorer un élément, supprimer le (définitivement) et il ne sera plus jamais importé. Si vous supprimez un élément dynamiquement importé juste en changeant son status (soft delete), l'élément sera quand meme importé mais conservera son status supprimé. Vous pourrez donc à tout moment restaurer cet élement pour le voir apparaitre de nouveau"]))
->add('geocodeIfNecessary',null,array('required'=>false,'label'=>'Géocoder les élements sans latitude ni longitude à partir de leur adresse'))
->add('createMissingOptions',null,array('required'=>false,'label'=>'Créer les catégories manquantes','label_attr'=>['title'=>"Si un élément importé a une catégorie qui n'existe pas encore sur votre carte, elle sera automatiquement crée"]))
'label'=>'Catégories à ajouter à chaque élément importé'),array('admin_code'=>'admin.option'))
->add('needToHaveOptionsOtherThanTheOnesAddedToEachElements',null,array('required'=>false,'label'=>'Les éléments importés doivent contenir au moins une catégorie en dehors de celles ajoutées manuellement ci-dessus','label_attr'=>['title'=>"Sans prendre en compte les catégories ajoutés via le champs \"Catégories à ajouter à chaque élément importé\", si les éléments importés n'ont pas de catégories, ils seront marqués comme \"Modération aucune catégorie renseignée\""]))
->add('fieldToCheckElementHaveBeenUpdated',null,array('required'=>false,'label'=>"Nom de l'attribut à comparer pour la mise à jour",'label_attr'=>['title'=>"Lorsqu'on met à jour une source, certains des éléments à importer existent déjà dans notre base de donnée. Vous pouvez renseigner ici un champs qui permettra de comparer si l'élément à été mis à jour au sein de la source depuis le dernier import. Exple de champ: updatedAt, date_maj etc... (laisser vide pour mettre à jour les éléments à chaque fois)"]))
$formMapper->tab('Modifier les données en exécutant du code')
->with('Entrez du code qui sera exécuté à la reception des données, avant leur traitement par GoGoCarto',["description"=>"La variable <b>\$data</b> représente le tableau PHP créé à partir des données Csv ou Json. Quelques examples de transformations simple:
->add('customCode','text',array('label'=>'Code PHP qui sera exécuté','attr'=>['class'=>'gogo-code-editor','format'=>'php','height'=>'500'],'required'=>false))
$this->addFlash('sonata_flash_success',"Les données ont été chargées avec succès.</br>Voici le résultat obtenu pour le premier élément à importer :<pre>".print_r($result[0],true).'</pre>'."<a href='$showUrl'>Voir toutes les données</a>");