Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
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 09/06/2011, 15h54   #1
Membre à l'essai
 
Femme
Développeur Web Junior
Inscription : novembre 2009
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Développeur Web Junior

Informations forums :
Inscription : novembre 2009
Messages : 124
Points : 22
Points : 22
Par défaut griser les annonces qui ne sont pas traduites

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)
Code :
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>
l'appel au modèle dans mon contrôleur se fait comme suit:
Code :
$listOffres 			= $offresText->getListOffres(1, $this->params["critereDeTri"], $this->params["ordreDeTri"], $defaultLanguage, 1, $this->params['pageCible'], $maxPerPages);
et enfin le modèle est le suivant:
Code :
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;
			}
		}
MERCI d'avance pour votre aide
nassing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 12h41   #2
Membre à l'essai
 
Femme
Développeur Web Junior
Inscription : novembre 2009
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Développeur Web Junior

Informations forums :
Inscription : novembre 2009
Messages : 124
Points : 22
Points : 22
Mon problème c'est que j'affiche le résultat par langue donc je ne sais pas comment afficher les résultats qui ne sont pas traduits en les grisants:
nassing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 12h13   #3
Membre à l'essai
 
Femme
Développeur Web Junior
Inscription : novembre 2009
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Développeur Web Junior

Informations forums :
Inscription : novembre 2009
Messages : 124
Points : 22
Points : 22
Bonjoour,
Je viens de trouver une solution à mon problème qui est de faire un count sur les offres, et si le nombre d'offre associé à un contrat par exemple, impossible du supprimer ou du moin éviter de faire une erreur de suppression d'une offre associée a ce contrat, donc du coup avant de supprimer un contrat j'affiche le nombre d'offre associé à ce dernier donc ( a ne pas supprimer)
nassing 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 15h57.


 
 
 
 
Partenaires

Hébergement Web