Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-10-2009 15:30:21

Yeepee
Nouveau membre
Date d'inscription: 25-08-2009
Messages: 7

Zend_Form_Element_Select - Appliquer un style CSS aux balises option

Bonjour la communauté,

J'essaye de résoudre la problématique suivante (aucune info trouvée malheureusement sad )
Je souhaiterais appliquer un style CSS aux options d'une liste déroulante générée via Zend_Form_Element_Select.

Concrètement, j'aimerai affecter une couleur spécifique à chacune de mes options.

Dans la pratique: j'affiche un calendrier avec des cases colorées sur ma page. Les couleurs de mes cases correspondent chacune à une personne (soit un item de ma liste déroulante). L'application de CSS sur les options de mon select me permettrait simplement de faire une association visuelle entre les cases de mon calendrier et les personnes de ma liste déroulante (pour ensuite faire des tri par exemple...)

Voici le code que j'utilise pour générer mon select:

Code:

        $ordonnateurs = new DatabaseReference();
        $listeOrdonnateurs = new Zend_Form_Element_Select('utilisateur_id');
        $this->addElement($listeOrdonnateurs);
        $listeOrdonnateurs
        ->    setLabel('Instructeur')
        ->    setMultiOptions($ordonnateurs->makeSelect($tables->utilisateurs, array('prenom', 'nom'), array('nom' => 'ASC'), NULL, 'utilisateur_id', NULL, 'Tous'))
        ->    setRequired(false)
        ->     setAttribs(array('onChange' => 'document.forms.Instructeurs.submit();jWait(\'Récupération du planning de cet utilisateur...\');'))
        ->    addFilter(new Zend_Filter_StripTags())
        ->    addValidator('NotEmpty', true);

Voici une vue de ce que j'ai actuellement:
http://img32.imageshack.us/img32/978/vuei.th.png

Quelqu'un saurait-il s'il est possible d'assigner un style à mes options (via l'utilisation d'un array, par exemple?)

Merci d'avoir pris le temps de me lire, merci pour votre aide wink

Hors ligne

 

#2 20-10-2009 22:21:35

Willmore
Membre
Lieu: Savigny Le Temple
Date d'inscription: 25-05-2009
Messages: 31

Re: Zend_Form_Element_Select - Appliquer un style CSS aux balises option

Ça m'a fait penser à cette solution :
Il est possible d'utiliser les sélecteurs CSS de la forme balise[attribut="valeur"]

J'utiliserai un bloc de <style></style> dont le contenu serai généré à partir de la liste des valeurs injectées dans le select.

de but-en-blanc ça donnerai quelque chose du style :

Code:

$style_tpl = <<<EOT
.classeDuSelect option[value="%s"] {
    background-color: #%s;
}
EOT;

/**
 * Liste des ID utilisateurs extrait depuis le model
 * en correspondance avec les codes couleur désirés
 */
$valueArray = array(
    '1' => '336699',
    '2' => '990000',
...
    'X' => 'code couleur RGB'
);

$cssBlock = '';

foreach ($valueArray as $id => $color) {
    $cssBlock .= sprintf($style_tpl, $id, $color);
}
$cssBlock = sprintf("<style type=\"text/css\">%s</style>", $cssBlock);

echo ($cssBlock);

Bon là c'est un peu brut de pomme mais ça doit pouvoir s'adapter avec le cas présenté.


Amicalement,

Will

Hors ligne

 

#3 21-10-2009 08:02:45

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: Zend_Form_Element_Select - Appliquer un style CSS aux balises option

L'aide de vue FormSelect ne permet pas d'affecter un attribut class ou style aux options (seul les attributs value, label, selected et disabled sont gérés). Tu dois créer une nouvelle aide de vue dérivée de FormSelect et l'affecter à ton Zend_Form_Element_Select via sa propriété publique $helper.

Hors ligne

 

#4 21-10-2009 12:14:27

Yeepee
Nouveau membre
Date d'inscription: 25-08-2009
Messages: 7

Re: Zend_Form_Element_Select - Appliquer un style CSS aux balises option

@Willmore: merci pour ton approche qui a le mérite de me faire découvrir une manière "d'attaquer" le CSS que je ne connaissait pas et qui pourrait s'avérer fort utile à l'avenir wink
Toutefois, je pense qu'il faut s'appuyer sur les outils du framework pour garder une certaine homogénéité.

@mdelanno: Il est vrai que je ne suis pas très familier des view helpers, c'est la raison pour laquelle je cherchais surtout, en premier lieu, à voir dans quelle mesure les méthodes existantes pouvaient répondre à mon problème.
Je vais donc creuser un peu plus de ce côté là et posterai ici, le cas échéant, le petit bout de code que je créerai pour l'occasion smile

Merci beaucoup pour m'avoir apporté votre aide car même en essayant de résoudre des "détails", on continue d'apprendre de nouvelles choses wink

Hors ligne

 

#5 21-10-2009 19:43:43

Willmore
Membre
Lieu: Savigny Le Temple
Date d'inscription: 25-05-2009
Messages: 31

Re: Zend_Form_Element_Select - Appliquer un style CSS aux balises option

Yeepee a écrit:

@Willmore: merci pour ton approche qui a le mérite de me faire découvrir une manière "d'attaquer" le CSS que je ne connaissait pas et qui pourrait s'avérer fort utile à l'avenir wink
Toutefois, je pense qu'il faut s'appuyer sur les outils du framework pour garder une certaine homogénéité.

...

C'est pas faux

A vrai dire jusqu'ici je suis plus calé sur CSS et la partie design que sur le Z-F (je n'ai commencé que récemment la pratique du framework)

N'hésite pas à exposer ici ta solution ça pourrai m'intéresser aussi (c'est toujours bon à prendre wink


Amicalement,

Will

Hors ligne

 

#6 29-10-2009 09:27:53

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: Zend_Form_Element_Select - Appliquer un style CSS aux balises option

Un exemple : http://www.nabble.com/Re%3A-css-class-t … 16154.html
Et sauf erreur de ma part les sélecteurs CSS balise[attribut="valeur"] ne fonctionnent pas sous IE5.5/6 -> http://www.quirksmode.org/css/contents.html

Dernière modification par mdelanno (29-10-2009 09:28:54)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages