Précédent   Forum des professionnels en informatique > PHP > Scripts > CMS
CMS Avant de poster -> Cours CMS et Scripts CMS
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 26/05/2011, 17h52   #1
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 1
Points : 0
Points : 0
Par défaut wordpress cookie multi-langue

Bonjour à tous,

Après des recherches interminables, parce que oui j'ai cherché, comme un taré et je sais après avoir lu 150 fois que mon problème à déjà été traité et que les gens en ont marre de voir ce genre de message mais j'ai un problème avec des cookies.

Je suis stagiaire en dev-web et le problème c'est que je suis seul dans la boite qui ai des notions de programmation...bon on est pas ici pour parlé de ma vie.
Les sites sur lesquels je travail ont été fait avec Wordpress et je suis censé créé une gestion du multilingue à l'aide de drapeaux qui font office de lien et change la langue du site si "click" il y a eu sur les drapeau (qui sont des images).

Pour stocker la langue sélectionnée j'ai choisit de passer par l'incorporation de cookies. Je ne peut pas utiliser les autres supers globales; $_GET $_POST ni $_SESSION à cause des paramètres url wordpress mis en place et du fait que ce n'est pas un formulaire.

Du coup j'utilise le code suivant mis avant le header:

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
<?php
$id_page = get_the_ID();
 
if (isset($_COOKIE['language']))
setcookie('language','',-1);
 
if ($id_page == 2) /*if the biography is french*/
{
	setcookie('language', 'fr', time() + 24*3600, null, null, false, true);
	echo 'j\'ai mis le cookie en ' . $_COOKIE['language'];
}
if ($id_page == 826)  /*if the biography is english*/
{
	setcookie('language', 'en', time() + 24*3600, null, null, false, true);
	echo 'j\'ai mis le cookie en ' . $_COOKIE['language'];
}
if ($id_page == 841)   /*if the biography is spanish*/
{
	setcookie('language', 'esp', time() + 24*3600, null, null, false, true);
	echo 'j\'ai mis le cookie en ' . $_COOKIE['language'];
}
if ($id_page == 839)  /*if the biography is italian*/
{
	setcookie('language', 'it', time() + 24*3600, null, null, false, true);
	echo 'j\'ai mis le cookie en ' . $_COOKIE['language'];
}
if ($id_page == 837)  /*if the biography is german*/
{
	setcookie('language', 'de', time() + 24*3600, null, null, false, true);
	echo 'j\'ai mis le cookie en ' . $_COOKIE['language'];
}
?>

Les cookies se créent bien mais c'est lors du changement de page que mon cookie redevient fr et je ne trouve pas pour quoi?!

Pour passer de page en page j’utilise un menu via ce code qui est aussi de moi:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<div id="menu">
		<?php if (isset($_COOKIE['language'])): echo $_COOKIE['language']; ?>
			<h3>
				 <?php if (strcmp($_COOKIE['language'], 'fr') == 0):?><a href="<?php echo get_permalink(2); endif; ?>
				  <?php if (strcmp($_COOKIE['language'], 'en') == 0) :?><a href="<?php 	echo get_permalink(826); endif; ?>
				  <?php	if (strcmp($_COOKIE['language'], 'esp') == 0) :?><a href="<?php  echo get_permalink(841); endif; ?>
				 <?php if (strcmp($_COOKIE['language'], 'de') == 0) :?><a href="<?php 	echo get_permalink(837); endif; ?>
				  <?php	if (strcmp($_COOKIE['language'], 'it') == 0) :?><a href="<?php	echo get_permalink(839); endif; ?>
				 ">THE JAZZ THING &nbsp;&nbsp;&nbsp;</a> 
				| <a href="<?php echo get_permalink(874); ?>">&nbsp;&nbsp;&nbsp; BLOG &nbsp;&nbsp;&nbsp;</a>
				| <a href="<?php echo get_permalink(810);?>">&nbsp;&nbsp;&nbsp; SHOWS &nbsp;&nbsp;&nbsp;</a>
				| <a href="">&nbsp;&nbsp;&nbsp; IMAGES &nbsp;&nbsp;&nbsp;</a> 
				| <?php if (strcmp($_COOKIE['language'], 'fr') == 0): echo '1';?><a href="<?php echo get_permalink(412); endif;?>
				  <?php	if (strcmp($_COOKIE['language'], 'en') == 0) : echo '2';?><a href="<?php	echo get_permalink(696); endif; ?>
				 <?php	if (strcmp($_COOKIE['language'], 'esp') == 0) : echo '5';?><a href="<?php  echo get_permalink(848); endif; ?>
				  <?php	if (strcmp($_COOKIE['language'], 'de') == 0) : echo '4';?><a href="<?php echo get_permalink(854); endif; ?>
				  <?php	if (strcmp($_COOKIE['language'], 'it') == 0) : echo '3';?><a href="<?php 	echo get_permalink(846); endif; ?>
				  ">&nbsp;&nbsp;&nbsp; PRO &nbsp;&nbsp;&nbsp;</a>
			</h3>
			<?php endif; ?>
		</div>
Pour ceux qui se pose la question oui c'est crade, ça brule les yeux ect mais apparement on est obligé de coder comme cela avec wordpress...

Si vous avez une solution qui me ferais avancer ça serais vraiment génial ! Si vous avez la flem parce que je suis le xième gars qui demande ce genre d'info je me contenterais aisément de l'url pour résoudre mon problème.

P.S: Tout ceci est dans mon header.php, de plus, j'utilise un seul page.php pour les pages du site, grâce à comment dire la hiérarchie Wordpress...
Le_Pierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web