2 votes

Les classes CSS personnalisées pour les étiquettes des formulaires Symfony ?

Y a-t-il un moyen simple de déclarer des classes CSS pour les étiquettes de formulaire Symfony?

Cela ne fonctionne pas:

renderLabel('class' => 'my-css') ?>

J'ai trouvé ceci et ça fonctionne mais cela semble contre-intuitif, car cela rend les étiquettes de formulaire elles-mêmes obsolètes en exigeant que l'étiquette soit écrite dans le modèle:

renderLabel('Ceci est un texte d'étiquette', array('class' => 'my-css') ?>

Quelqu'un sait-il un meilleur moyen?

Merci

7voto

nortron Points 3267

Passer null au premier paramètre ne remplacera pas le texte de l'étiquette :

renderLabel(null, array('class' => 'my-css')) ?>

http://www.symfony-project.org/api/1_4/sfFormField#method_renderlabel

$label Le nom de l'étiquette (non null pour remplacer la valeur actuelle)

2voto

Radu Dragomir Points 438

Vous pouvez modifier le formatteur pour chaque formulaire en créant une classe personnalisée qui étend sfWidgetFormSchemaFormatter

    class sfWidgetFormSchemaFormatterCustom extends sfWidgetFormSchemaFormatter
{
  protected
    $rowFormat       = "\n  %label%\n  %error%%field%%help%%hidden_fields%\n\n",
    $errorRowFormat  = "\n%errors%\n",
    $helpFormat      = '%help%',
    $decoratorFormat = "\n  %content%";
}

Vous pouvez ensuite modifier le formatteur dans la classe du formulaire:

$this->getWidgetSchema()->setFormFormatterName('custom');

ou vous pouvez définir le nouveau formatteur pour chaque formulaire dans le fichier config/ProjectConfiguration.class.php:

sfWidgetFormSchema::setDefaultFormFormatterName('custom');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X