generator.yml
Le fichier «generator.yml» est utilisé dans les versions de Symfony 1.0, 1.1, 1.2, 1.3 et 1.4 afin d'offrir un modèle de gestion administrative des classes et des modèles. Le fichier utilise le même standard que «.yml» et permet autant la gestion d'une liste, que l'édition de formulaire. Le fichier est donc construit sous forme d'un arbre de données mais il est beaucoup plus facile à lire qu'un fichier «.XML».
L'entête du fichier
Le fichier «generator.yml» comme toujours par les 3 lignes suivantes et avec un nom de classe spécifique comme ceci :
generator: class: nomdeclasse param: |
Syntaxe
generator: class: <sfDoctrineGenerator | sfPropelGenerator> param: model_class: nom_classe_modele theme: nom_theme non_verbose_templates: <true | false> with_show: <true | false> singular: ~ plural: ~ with_doctrine_route: <true | false> route_prefix: nom_prefixe_route actions_base_class: nom_classe css: <nomfichier_css | false> config: actions: action_name: label: etiquette_action action: nom_action credentials: autorisation_action params: html_attribute: valeur absolute: <true | false> query_string: valeur_requete_chaine anchor: valeur_ancre confirm: message_confirmation popup: <true | false> post: <true | false> method: >POST | DELETE | PUT> fields: field_name: label: etiquette_champ help: texte_aide attributes: { attribue1: valeur1, attribue2: valeur2, ... } credentials: autorisation_champ renderer: nom_rendu renderer_arguments: [argument1, argument2, ...] type: type_of_column date_format: chaine_format is_link: <true | false> is_real: <true | false> is_partial: <true | false> is_component: <true | false> list: title: vue_titre display: [=nomchamp1, nomchamp2, ...] hide: [nomchamp1, nomchamp2, ...] layout: <tabular | stacked> params: chaine_params sort: [nomchamp, <asc | desc>] max_per_page: <items_par_page | false> pager_class: nom_classe fields: liste_champs batch_actions: liste_action object_actions: liste_action actions: liste_action table_method: nom_methode peer_method: nom_methode table_count_method: nom_methode peer_count_method: nom_methode filter: display: [nomchamp1, nomchamp2, ...] class: <nom_classe | false> fields: liste_champs form: display: [nomchamp1, nomchamp2, ...] class: nom_classe fields: liste_champs actions: liste_action edit: display: [nomchamp1, nomchamp2, ...] title: titre_vue fields: liste_champs actions: liste_action new: display: [nomchamp1, nomchamp2, ...] title: titre_vue fields: liste_champs actions: liste_action |
Liste des options
Au niveau «generator:/param:», on retrouvera les options suivantes :
Options | Description | ||
---|---|---|---|
actions | Cet option de configuration permet d'indiquer les actions globales pour le module. Elle peut avoir les options suivantes : | ||
Option | Description | ||
name | Cet option permet d'indiquer le nom à utiliser pour l'action. | ||
action | Cet option permet d'indiquer l'action à exécuter (sans le préfixe «execute») dans le contrôleur avec les méthodes commençant par «execute». | ||
credentials | Cet option permet d'indiquer les rôles d'utilisateur ayant le droit d'accéder à cette action. | ||
fields | Cet option de configuration permet d'indiquer la configuration par défaut de chaque champs. | ||
Option | Description | ||
label | Cet option permet d'indiquer l'étiquette d'affichage à utiliser pour les champs. | ||
help | Cet option permet d'indiquer un texte d'aide associé au champ. | ||
attributes | Cet option permet d'indiquer les attributs HTML (comme le nom de la classe CSS par exemple) à passer au widget. | ||
credentials | Cet option permet d'indiquer les rôles d'utilisateur ayant le droit de voir ce champ. | ||
renderer | Cet option permet d'indiquer l'appel en arrière-plan pour le rendu de ce champ. | ||
renderer_arguments | Cet option permet d'indiquer les paramètres d'appel en arrière-plan pour le rendu de ce champ. | ||
type | Cet option permet d'indiquer le type de champ : | ||
Valeur | Description | ||
ForeignKey | Cette valeur permet d'indiquer une clef étrangère. | ||
Boolean | Cette valeur permet d'indiquer un booléen. | ||
Date | Cette valeur permet d'indiquer une date. | ||
Time | Cette valeur permet d'indiquer l'heure. | ||
Text | Cette valeur permet d'indiquer du texte. | ||
Enum | Cette valeur permet d'indiquer une énumération. Vous devez utiliser «Doctrine» pour pouvoir utiliser ce type de champ. | ||
date_format | Cet option permet d'indiquer le format de date du champ. On peut utiliser les caractères suivants et les combinés : | ||
Valeur | Description | ||
G | Ce caractère permet d'indiquer l'Era. | ||
y | Ce caractère permet d'indiquer l'année. | ||
M | Ce caractère permet d'indiquer les 3 premières lettres du jour de semaine en anglais. | ||
d | Ce caractère permet d'indiquer le jour du mois. | ||
h | Ce caractère permet d'indiquer l'heure en format 12 heures. | ||
H | Ce caractère permet d'indiquer l'heure en format 24 heures. | ||
m | Ce caractère permet d'indiquer les minutes. | ||
s | Ce caractère permet d'indiquer les secondes. | ||
E | Ce caractère permet d'indiquer le jour de semaine. | ||
D | Ce caractère permet d'indiquer le jour de l'année. | ||
F | Ce caractère permet d'indiquer le nombre de jours dans le mois. | ||
w | Ce caractère permet d'indiquer le nombre de semaines dans l'année. | ||
W | Ce caractère permet d'indiquer le nombre de semaines dans le mois. | ||
a | Ce caractère permet d'indiquer si c'est l'avant-midi (AM) ou l'après-midi (PM). | ||
k | Ce caractère permet d'indiquer le nombre d'heures dans la journée. | ||
K | Ce caractère permet d'indiquer le nombre d'heures dans une journée avec une avant-midi et une après-midi. | ||
z | Ce caractère permet d'indiquer le fuseau horaire. | ||
list | Cet option de configuration permet d'indiquer une liste de données. | ||
Option | Description | ||
title | Cet option permet d'indiquer le titre de la liste de données. | ||
display | Cet option permet d'indiquer la liste des champs de la liste de données à afficher. | ||
hide | Cet option permet de cacher les champs spécifiés dans la liste. | ||
layout | Cet option permet de fixer la mise en page pour effectuer l'affichage de la liste. | ||
params | Cet option permet de fixer une chaîne de caractères HMTL à utiliser comme modèle pour la mise en page. | ||
sort | Cet option permet de fixer le champ trié par défaut. | ||
max_per_page | Cet option permet de fixer le nombre maximum d'objets affiché dans une page Web. | ||
pager_class | Cet option permet de fixer la classe CSS utilisé pour la pagination de la liste. | ||
batch_actions | Cet option permet de fixer la liste des actions autorisées a s'exécuter par la sélection d'objet de la liste. | ||
object_actions | Cet option permet de fixer la liste des actions s'exécuter sur chacun des objets de la liste. | ||
actions | Cet option permet de fixer les actions à utiliser pour un nouvel objet. | ||
peer_method | Cet option permet de fixer la méthode de récupérations d'objet dans la liste. | ||
table_method | Cet option permet de fixer la méthode de récupérations d'objet dans la liste. | ||
table_count_method | Cet option permet de fixer le nom de la méthode pour le compteur d'objets du filtre en cours. | ||
filter | Cet option permet d'indiquer les configuration de filtre à appliquer aux listes | ||
Option | Description | ||
display | Cet option permet d'indiquer le nom des champs à utiliser. | ||
class | Cet option permet d'indiquer le nom de la classe. | ||
form | Cet option permet d'indiquer le formulaire (pour l'ajout ou la modification) | ||
Option | Description | ||
display | Cet option permet d'indiquer le nom des champs à utiliser. | ||
class | Cet option permet d'indiquer le nom de la classe. | ||
edit | Cet option permet d'indiquer un modèle d'édition (Modification) | ||
Option | Description | ||
title | Cet option permet de fixer la chaine de caractères du titre de modèle d'édition de la liste. | ||
display | Cet option permet de fixer la liste des champs du modèle d'édition, dans l'ordre de leur définition plus loin dans le schéma. | ||
fields | Cet option permet de définir les champs du modèle d'édition. | ||
actions | Cet option permet d'indiquer la liste des boutons pouvant être utiliser dans le modèle d'édition. | ||
new | Cet option permet d'indiquer un nouveau modèle d'édition (Ajout) | ||
Option | Description | ||
title | Cet option permet de fixer la chaîne de caractères du titre de modèle d'édition d'ajout de la liste. | ||
actions | Cet option permet d'indiquer la liste des boutons pouvant être utiliser dans le modèle d'édition d'ajout. |
Remarque
- Édition d'un modèle : Si vous souhaitez ajouter un bouton supplémentaires avec un traitement sur le formulaire principale du modèle d'édition, vous ne pourrez faire cette modification à partir de «generator.yml», vous devrez donc modifier la fonction «button_to» du fichier «UrlHelper.php». Bien qu'il est possible d'inclure un formulaire avec une méthode «POST», il n'est pas possible d'utiliser le formulaire principale. Ainsi, il s'agit d'un manque de vision des concepteurs du cadre d'application Symfony pour se genre de problématique.
Exemple
L'exemple suivant permet d'ajouter un bouton «duplicate» avec une méthode «post» dans l'édition :
generator:
class: sfPropelAdminGenerator
param:
model_class: Article
theme: default
edit:
title: Edition de l'article - <span>%%title%%</span>
actions:
_delete: ~
_list: ~
duplicate: { action: duplicate, params: method=post }
_save: ~
_save_and_add: ~
Voir également
Extension de fichier - «.YML» ou «.YAML»