Bonjour,
Je viens vers vous car j'ai un petit souci, en effet je suis en train de développer un module multi-langue donc du coup je gère les traductions en utilisant la base de données,donc c'est l'administrateur qui traduit tous, mon problème c'est que dans la partie back office, j'affiche les annonce en fonction de la langue sélectionnée, le principe c'est qu'il y a que les annonces qui sont traduits qui sont affichées, ce que je n'arrive pas à faire c'est de griser les annonces qui ne sont pas traduites,
donc j'aimerai avoir une idée sur comment le faire:
le tableau que j'affiche est le suivant ( dans la vue)
l'appel au modèle dans mon contrôleur se fait comme suit:
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 <table class="table-bo-thermidor" cellpadding="4" cellspacing="1" border="0" id="#OffresActives"> <tr> <th>Titre de <br>l'offre<br> <a href="/administrathor/recruthor/index/critereDeTri/offreTitre/ordreDeTri/desc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleB.gif" /> </a> <a href="/administrathor/recruthor/index/critereDeTri/offreTitre/ordreDeTri/asc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleH.gif" /> </a> </th> <th>Type de <br>contrat<br> <a href="/administrathor/recruthor/index/critereDeTri/contratTitre/ordreDeTri/desc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleB.gif" /> </a> <a href="/administrathor/recruthor/index/critereDeTri/contratTitre/ordreDeTri/asc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleH.gif" /> </a> </th> <th>Domaine <br>d'activité<br> <a href="/administrathor/recruthor/index/critereDeTri/domaineTitre/ordreDeTri/desc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleB.gif" /> </a> <a href="/administrathor/recruthor/index/critereDeTri/domaineTitre/ordreDeTri/asc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleH.gif" /> </a> </th> <th>Lieu<br> <a href="/administrathor/recruthor/index/critereDeTri/localTitre/ordreDeTri/desc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleB.gif" /> </a> <a href="/administrathor/recruthor/index/critereDeTri/localTitre/ordreDeTri/asc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleH.gif" /> </a> </th> <th>Date de <br>modification<br> <a href="/administrathor/recruthor/index/critereDeTri/offreDateModif/ordreDeTri/desc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleB.gif" /> </a> <a href="/administrathor/recruthor/index/critereDeTri/offreDateModif/ordreDeTri/asc"> <img src="<?php echo PUBLIC_IMAGES ?>triangleH.gif" /> </a> </th> <th>Modifier <br>l'offre</th> <th>Etat de<br> l'offre</th> <th>Supprimer<br> l'offre<br></th> </tr> <?php $nbOffres = count($this->listOffres); ?> <?php if($nbOffres > 0):?> <?php $cptOffres = 0;?> <?php foreach($this->listOffres as $offre): ?> <?php if(($cptOffres % 2) == 0):?> <?php $class = "td2";?> <?php else: ?> <?php $class = "td1";?> <?php endif ?> <tr class="<?php echo $class;?>" onmouseover="this.className='tdover'" onmouseout="this.className='<?php echo $class;?>'"> <td><?php echo $offre->offreTitre; ?></td> <td><?php echo $offre->contratTitre; ?></td> <td><?php echo $offre->domaineTitre ; ?></td> <td><?php echo $offre->localTitre ; ?></td> <td><?php echo $offre->offreDateModif; ?></td> <td> <?php if(is_array($this->listLang) && count($this->listLang)): ?> <?php foreach($this->listLang as $lang):?> <a href="/administrathor/recruthor/index/offreId/<?php echo $offre->offreId;?>/lang/<?php echo $lang->langCode; ?>/view-action/edit"> <img src="<?php echo PUBLIC_IMAGES ?>flags/<?php echo $lang->langCode; ?>.png" /> </a> <?php endforeach; ?> <?php endif;?> </td> <td><?php if($offre->offreActive == 1) :?> <?php $chaine = "activée";?> <?php else:?> <?php $chaine = "désactivée";?> <?php endif ?> <?php echo $chaine; ?><br> <a href="/administrathor/recruthor-traitement/desactiver/offreId/<?php echo $offre->offreId;?>">Désactiver l'offre</a> </td> <td><a href="/administrathor/recruthor-traitement/delete/offreId/<?php echo $offre->offreId;?>" onclick="if(!confirm('Etes-vous sur de vouloir supprimer cette offre.')){ return(false); }">Supprimer</a> </td> <?php $cptOffres++;?> <?php endforeach; ?> <?php endif; ?> </tr> </table>
et enfin le modèle est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part $listOffres = $offresText->getListOffres(1, $this->params["critereDeTri"], $this->params["ordreDeTri"], $defaultLanguage, 1, $this->params['pageCible'], $maxPerPages);
MERCI d'avance pour votre aide
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 public function getListOffres($actif = 1, $critereDeTri = "", $ordreDeTri = "", $langCode, $activatePages=0, $page=0, $rowPerPage=0, $isObject=true){ $sql = "SELECT {$this->alias}.`offreId`, {$this->alias}.`offreTitre`, {$this->alias}.`offreText`, {$this->alias}.`langCode`, o.`offreActive`, ct.`contratTitre`, dt.`domaineTitre`, lt.`localTitre`, o.`offreDateModif` "; $sqlTmp = "FROM `{$this->table}` {$this->alias} INNER JOIN `recrutement_offre` o ON {$this->alias}.`offreId` = o.`offreId` INNER JOIN `recrutement_domaine_text` dt ON o.`domaineId` = dt.`domaineId` AND {$this->alias}.langCode = dt.`langCode` INNER JOIN `recrutement_contrat_text` ct ON o.`contratId` = ct.`contratId` AND {$this->alias}.langCode = ct.`langCode` INNER JOIN `recrutement_local_text` lt ON o.`localId` = lt.`localId` AND {$this->alias}.langCode = lt.`langCode` LEFT JOIN `thermidor_language` l ON {$this->alias}.`langCode` = l.`langCode` WHERE {$this->alias}.langCode = '{$langCode}' AND o.`offreActive` = {$actif} "; $sql .= $sqlTmp; $sql .= " GROUP BY {$this->alias}.`offreId` "; if($critereDeTri != "" && $ordreDeTri != ""){ $sql .= " ORDER BY {$critereDeTri} {$ordreDeTri} "; } $page == "" ? $page = 0 : $page-1; if($activatePages == 1){ $sql .= " LIMIT {$page}, {$rowPerPage} "; } //echo $sql; if($activatePages == 1){ $sqlMax = "SELECT COUNT({$this->alias}.`offreId`) as count "; $sqlMax .= $sqlTmp; $resMax = Database::execute_sql($sqlMax); $reponseMax = $this->parseResult($resMax, $isObject); } if($rc = Database::execute_sql($sql)) $reponses = $this->parseResults($rc,$isObject); if($activatePages == 1){ if($isObject == false){ return array($reponses, $reponseMax['count'], $rowPerPage); }else{ return array($reponses, $reponseMax->count, $rowPerPage); } }else{ return $reponses; } }
Partager