Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2011, 13h47   #1
Membre habitué
 
Homme Jean-François
Développeur Web
Inscription : février 2003
Messages : 124
Détails du profil
Informations personnelles :
Nom : Homme Jean-François
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : février 2003
Messages : 124
Points : 142
Points : 142
Par défaut sfWidgetFormSelectDoubleList personnaliser les valeurs à gauche et à droite

Hello,

Pour personnaliser les éléments non associés, pas difficile :

Code :
1
2
 
$this->widgetSchema['newss_list']->setOption('renderer_options', array('choices' => NewsTable::getNewsOrphan()));
Jusque là ça va, ce qui se complique dans mon cas, c'est la colonne des associés

Je m'explique, dans les non associés, tous les articles non attachés à une newsletter
A droite, les articles associés à la newsletter en cours d'édition

Le soucis, c'est que lorsque je suis en action "edit" la colonne des associés reste vide, car elle est alimentée de la sorte via ma méthode render de la class sfWidgetFormSelectDoubleList

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
public function render($name, $value = null, $attributes = array(), $errors = array())
  {
...
#$choices = tableau fournit par NewsTable::getNewsOrphan()
#$value = tableau contenant les éléments associés
foreach ($choices as $key => $option)
    {
      if (in_array(strval($key), $value))
      {
        $associated[$key] = $option;
      }
      else
      {
        $unassociated[$key] = $option;
      }
    }
...
On voit que les éléments associés sont puisés dans les éléments non associés
Or dans mon cas, j'exclut les éléments déjà associés pour alimenter ma colonne de droite

Autre exemple :

Code :
1
2
3
4
5
 
#colonne non associés
array('pomme','poire', 'orange')
#colonne associés
array('fraise','kiwi')
Dans ce cas ci dessous la condition if (in_array(strval($key), $value))
ne sera jamais valide

Alors ma question est, peut-on surcharger la méthode render, ou dans mon cas voyez vous une autre solution ?

Merci
jfsenechal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 09h42   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Et zut, je n'ai plus de paracétamol près de moi !

Je ne suis pas sur (en fait, si, j'en suis sur) d'avoir compris tes propos.

Tu veux utiliser le widget permettant de lier deux tables en relation (n-n) mais en n'envoyant que les données déjà associées au widget, ce qui l’empêche d'afficher le non associée, qu'il ne peut deviner seul.

Je ne comprend pas trop l'intérêt.

De plus es-tu bien dans un schéma de relation n-n pure ?

Si oui, pourquoi ne pas passer par le fonctionnement "normal" ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 10h34   #3
Membre habitué
 
Homme Jean-François
Développeur Web
Inscription : février 2003
Messages : 124
Détails du profil
Informations personnelles :
Nom : Homme Jean-François
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : février 2003
Messages : 124
Points : 142
Points : 142
Citation:
Et zut, je n'ai plus de paracétamol près de moi !
Pourtant j'ai essayé d'être claire

L'intérêt ?

Ici il s'agit d'un système de newsletter, quand on crée une nouvelle newsletter, on associe des news déjà encodées.
Ce n'a pas de sens dans mon cas, d'avoir toute la liste news, même celles qui sont déjà associées aux autres newsletter.
Une news ne se retrouvera jamais dans n newsletters
Il s'agit d'une relation 1-n

En faite en écrivant ces lignes, je me rend compte que j'ai fait une co****ie

J'avais prévus une n-n pensant que une news serait dans plusieurs newsletter, hors après les premiers usages de l'applic, ce n'est pas nécessaire

je vais refaire mon schéma
jfsenechal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 11h16   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Comme quoi, en parlécrire peut servir...

Bon, j'ai retrouvé du paracétamol et ma tête va mieux

Je te laisse revoir ton schéma et revenir ici pour refaire la question, éventuellement
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h36.


 
 
 
 
Partenaires

Hébergement Web