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 :

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';
	}
  }
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
$inter = current($valeur['motclef']['Translation']);
			$tabcourant[$i] = $inter['intitule'];
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
<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.

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>
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.

Merci par avance.