bonjour,
je rencontre des difficultés pour afficher une liste de mots-clés liés à des fichiers.
Voici le fichier components.class.php du module fichiers :
Ce modèle fonctionne bien avec notamment la partie suivante, affichage du libellé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 public function executeMotsclefs(sfWebRequest $request) { //Liaison avec la table fichiers_motsclefs dans la langue par défaut $q = Doctrine_Query::create() ->from('fichiersmotsclef f') ->addFrom('f.motclef m') ->leftJoin('m.Translation t') ->where('f.fichier_id = ?',$this->fichier); $motsclefs_defaut = $q->fetchArray(); //Liaison avec la table fichiers_motsclefs dans la langue courantre de l'utilisateur $q = Doctrine_Query::create() ->from('fichiersmotsclef f') ->addFrom('f.motclef m') ->leftJoin('m.Translation t WITH t.lang = ?', $this->getUser()->getCulture()) ->where('f.fichier_id = ?',$this->fichier); $motsclefs_courant = $q->fetchArray(); if($motsclefs_defaut) { //Création de la chaine à afficher $chaine = ''; $i = 0; //Par pertinence foreach(array_reverse($motsclefs_courant, TRUE) as $motsclef=>$valeur) { $inter = current($valeur['motclef']['Translation']); $tabcourant[$i] = $inter['intitule']; $i = $i + 1; } $i = 0; foreach(array_reverse($motsclefs_defaut, TRUE) as $motsclef_courant=>$valeur) { if($i<count($tabcourant)) { if($tabcourant[$i] == '') { $inter = current($valeur['motclef']['Translation']); $tabcourant[$i] = $inter['intitule']; } } $i = $i + 1; } $this->motsclefs = $tabcourant; } else { $this->motsclefs = 'no'; } }
Cependant, pour des besoins de routing, je souhaiterais passer non seulement l'intitule du mot-clé mais la variable complète de manière à pouvoir écrire mon routing ainsi dans mon template :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $inter = current($valeur['motclef']['Translation']); $tabcourant[$i] = $inter['intitule'];
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href='".url_for('recherche_show_motsclef',$motsclef['Identifiant'])."' title='".$motsclef['Intitule']."'>".$motsclef['Intitule']."</a>
Sur une autre portion de code, j'avais ainsi réalisé l'opération d'affichage dans un autre template, mais je n'y arrive pas avec la requête ci-dessus.
Pourriez-vous m'indiquer comment procéder de la sorte avec un fetchArray, j'ai du mal avec l'extraction des données sous cette forme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <!-- Parcours des mots-clés pour mise en tableau --> <?php foreach($motsclefs as $motsclef): ?> <?php $intitule=$motsclef->getIntitule(); $id=$motsclef->getId(); $mc[$id] = array('Id'=>$id,'Intitule'=>$intitule,'Identifiant'=>$motsclef); ?> <?php array_push($tabmc,$mc[$id]);?> <?php endforeach; ?> <li><a href='".url_for('recherche_show_motsclef',$motsclef['Identifiant'])."' title='".$motsclef['Intitule']."'>".$motsclef['Intitule']."</a></li>
Merci par avance.
Partager