Aug 01 00:57:01 McPeter: tu es encore vivant ? Aug 01 00:57:13 oui oui Aug 01 00:57:17 dernière touche Aug 01 00:57:21 * MaTTuX_CoDe oufffff Aug 01 00:57:24 :-) Aug 01 01:00:39 enfiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiinnnnnnnnnnnnnnnnnnn Aug 01 01:00:40 erf Aug 01 01:00:42 http://blinckers.dnsalias.net/public/user_help/cours/site_multi-langue_01/ Aug 01 01:01:21 et merdeuuu Aug 01 01:01:26 why ? Aug 01 01:01:29 pourquoi y prends pas les php.s lui ? :\ Aug 01 01:01:35 .phps Aug 01 01:01:38 c est phps Aug 01 01:01:43 euhh sais pas Aug 01 01:05:20 eu 2 sec Aug 01 01:05:25 oui oui Aug 01 01:05:26 que je vois pour le phps Aug 01 01:10:37 rhhaaa Aug 01 01:10:40 galette[aw], plize Aug 01 01:10:45 t'es là ? Aug 01 01:10:55 nop c est le pseudo de son taff Aug 01 01:13:02 mmh Aug 01 01:21:55 mais y m'emmerde lui à vouloir dl le phps Aug 01 01:21:58 pfuuu Aug 01 01:22:01 bordel Aug 01 01:22:09 :-( Aug 01 01:26:53 bon vais le mettre sur ev Aug 01 01:26:55 dev Aug 01 01:27:04 ^_^ Aug 01 01:33:55 a voilà Aug 01 01:34:00 scregneugneu Aug 01 01:34:05 http://dev.blinckers-groups.com/site_multi-langue_01/ Aug 01 01:34:08 http://dev.blinckers-groups.com/site_multi-langue_01/index.phps Aug 01 01:34:20 http://dev.blinckers-groups.com/site_multi-langue_01/templates Aug 01 01:34:25 http://dev.blinckers-groups.com/site_multi-langue_01/lang Aug 01 01:34:34 waloo, MaTTuX_CoDe Celtiore Aug 01 01:34:41 ya que moi :S Aug 01 01:34:43 et les autres si ça vous dit Aug 01 01:34:48 sniff Aug 01 01:34:53 oui moi aussi Aug 01 01:35:10 4h de retard Aug 01 01:35:12 bordel Aug 01 01:35:14 :'( Aug 01 01:35:28 :S Aug 01 01:35:58 bon ben go ... Aug 01 01:36:01 MaTTuX_CoDe, http://dev.blinckers-groups.com/site_multi-langue_01/templates/ Aug 01 01:36:05 ouep Aug 01 01:36:07 j y suis Aug 01 01:36:21 et regardes la page base.html Aug 01 01:36:33 oui Aug 01 01:36:43 j'explique la structure : Aug 01 01:37:01 dissociation (pure et dure) du code html <-> php Aug 01 01:37:10 on a une base.html Aug 01 01:37:27 entête, pied de page, etc .. comun à tout le site Aug 01 01:37:41 ok Aug 01 01:37:43 sur cette page on a des partit redondante Aug 01 01:37:52 on les voit toujours quoi Aug 01 01:38:00 parties* Aug 01 01:38:10 oui comme un header ou un footer Aug 01 01:38:15 oui Aug 01 01:38:39 la zone {_PAGE_} équivaut aux pages du site Aug 01 01:38:49 page_01, page_02, etc ... Aug 01 01:39:02 humm ok Aug 01 01:39:14 dans un premier temps on utilise la même technique que le moteur de templates vue précédement Aug 01 01:39:23 sauf que ici : Aug 01 01:39:32 on va avoir une seule page : index.php Aug 01 01:39:55 le reste sera appelé avec GET Aug 01 01:39:56 et une variable en GET soit : $_GET['page'] Aug 01 01:40:08 donc là pour le moment le principe est simpliste Aug 01 01:40:12 oui Aug 01 01:40:28 dans un premier temps on vérifie si une variable $_GET['page'] existe Aug 01 01:40:55 * ahmed (n=ahmed@41.226.160.23) has joined #html-fr Aug 01 01:40:55 sur l index.phps Aug 01 01:41:03 second temps on vérifie sir le fichier existe, soit : 'templates/'.$_GET['page'].'.html' Aug 01 01:41:26 sauf que là mes pages s'appelant : page_01.html, page_02.html Aug 01 01:41:34 on aura en vérification : Aug 01 01:41:45 'templates/page_'.$_GET['page'].'.html' Aug 01 01:42:06 jusque là rien de très compliqué Aug 01 01:42:06 il est important le 0 devant le 1 ? Aug 01 01:42:10 nop Aug 01 01:42:11 oui Aug 01 01:42:25 d'où le $get_page='01'; Aug 01 01:42:38 sinon j'aurais mit : $get_page=1; Aug 01 01:42:40 ah oui exact Aug 01 01:42:49 mais sa revien au meme ? Aug 01 01:42:50 :) Aug 01 01:42:57 non Aug 01 01:43:16 non c est bon Aug 01 01:43:18 compris Aug 01 01:43:19 :D Aug 01 01:43:20 '01' != 1 Aug 01 01:43:34 1 : numérique Aug 01 01:43:42 01 : texte Aug 01 01:43:47 eu Aug 01 01:43:52 '01' : texte Aug 01 01:43:59 lol ok Aug 01 01:44:15 hors 01 en numérique == 1 Aug 01 01:44:27 et si tu cherches page_1.html ... tu auras un bide Aug 01 01:44:37 ok ? Aug 01 01:44:40 oui Aug 01 01:44:44 bon Aug 01 01:45:00 pour le chargement des pages .. petite nouveauté Aug 01 01:45:14 http://dev.blinckers-groups.com/site_multi-langue_01/index.phps Aug 01 01:45:23 if ((@$page = file_get_contents('templates/page_'.$_GET['page'].'.html'))!=false): Aug 01 01:45:30 j'explique Aug 01 01:45:47 le '@' évite l'affichage d'une erreur Aug 01 01:46:14 oui je savais ca Aug 01 01:46:14 si file_get_contents() veut ouvrir un fichier inexistant ça renvoit false Aug 01 01:46:19 tu me l avais deja dit Aug 01 01:46:21 donc là ... Aug 01 01:46:42 donc affichage d une erreur Aug 01 01:46:52 je fais une opération de chargement dans une variable, soit le '$page' Aug 01 01:47:10 la page par degaut Aug 01 01:47:13 defaut* Aug 01 01:47:20 si file_get_contents() arrive à ouvrir le fichier Aug 01 01:47:26 ça sous entend 'true' Aug 01 01:47:34 donc la condition passe Aug 01 01:47:40 oui Aug 01 01:48:02 if ( ($var=true)!=false ) Aug 01 01:48:20 voilà en gros ce qu'il se passe quand file_get_contents() arrive à ouvrir le fichier Aug 01 01:48:36 donc là ça évite d'appeler 2 fonctions Aug 01 01:48:47 une première du type : file_exists() Aug 01 01:48:58 et la seconde file_get_contents() Aug 01 01:49:15 code en moin Aug 01 01:49:35 donc là on vérifie implicitement l'existance du fichier via son ouverture Aug 01 01:50:08 donc là ... si la page existe bien ... on renseigne d'autres valeurs Aug 01 01:50:14 poru la suite du script Aug 01 01:50:20 soit : Aug 01 01:50:45 on écrase $get_page par défaut visible tout en haut avec la nouvelle valeur Aug 01 01:51:03 on écrase $_GET_PAGE avec le nom de la page Aug 01 01:51:30 et on charge la page Aug 01 01:51:36 on écrase $_LOAD_TEMPLATE avec le nouveau chemin de la page qui va être chargée Aug 01 01:51:41 et non Aug 01 01:51:45 oups :S Aug 01 01:51:47 "on charge pas " Aug 01 01:51:52 elle est déjà chargé :) Aug 01 01:51:55 via la condition Aug 01 01:51:57 ᴖ_ᴖ Aug 01 01:52:24 ah oui non j ai rien dit Aug 01 01:52:29 le $_LOAD_TEMPLATE sert juste à gérer l'affichage des chemins en cours Aug 01 01:52:36 j ai pas vu la variable $_LOAD_TEMPLATE au debut Aug 01 01:53:02 là tu peux voir qu'il n'y a que 1 type de page Aug 01 01:53:19 et non un tru genre : page_01_fr.html Aug 01 01:53:29 oui Aug 01 01:53:37 donc la page telle quel là .. est pur tout le site Aug 01 01:53:43 quelque soit la langue utilisée Aug 01 01:53:55 ça c'ets un premier poinr Aug 01 01:53:58 ok Aug 01 01:54:20 la première partie donc sert à gérer l'affichage du contenue de la page Aug 01 01:54:28 avec une gestion d'erreur Aug 01 01:54:55 cette gestion d'erreur permettra d'indiquer que par exemple la page_250.html n'existe pas Aug 01 01:55:12 donc reprenons : Aug 01 01:55:21 la page error.html Aug 01 01:55:29 si pas de $_GET['page'] --> chargement de la page par défaut du site Aug 01 01:55:53 oui Aug 01 01:56:02 si $_GET['page'] --> on cherche à charger la page ou à afficher qu'elle n'existe pas Aug 01 01:56:11 voilà poru la première partie Aug 01 01:56:25 oki Aug 01 01:56:31 seconde partie Aug 01 01:56:38 (et c'est là qu'on rigole) Aug 01 01:56:40 ᒃ‿ᒄ Aug 01 01:56:42 / Vérifiaction de la langue demandée : Aug 01 01:56:44 pour la langue Aug 01 01:56:46 :D Aug 01 01:57:17 http://dev.blinckers-groups.com/site_multi-langue_01/lang/ Aug 01 01:57:26 là tu un dossier par langue Aug 01 01:57:32 yep Aug 01 01:57:34 vas sur le /fr Aug 01 01:57:53 premier point : Aug 01 01:57:54 base.xml et pareil pour les pages Aug 01 01:58:14 pour un fonctionnement normal tu dosi avoir autant de .xml que de templates/*.html Aug 01 01:58:29 et ce pour chaque langue Aug 01 01:58:32 ok ? Aug 01 01:58:35 okay Aug 01 01:58:37 oui normal Aug 01 01:58:44 pas mettre tout dans la meme page Aug 01 01:58:48 ouvre base.xml Aug 01 01:58:52 ouvert ^^ Aug 01 01:59:30 là tu le vois en mode lecture Aug 01 01:59:37 .. Aug 01 01:59:42 oui Aug 01 02:00:12 Aug 01 02:00:15 tout ce qui se trouve entre les <....nom_au_choix...> Aug 01 02:00:24 sont les portions à traduire Aug 01 02:00:39 ce fichier sert en fait à traduite le base.html Aug 01 02:00:46 dans la langue demandé Aug 01 02:00:54 oui Aug 01 02:01:23 donc si on a fait le montage pphp/html Aug 01 02:01:28 pour integré ya pas trop a faire Aug 01 02:01:59 :) Aug 01 02:02:14 le base.xml sert aussi à afficher les erreurs rencontrées Aug 01 02:02:16 ex : Aug 01 02:02:22 page inexistante Aug 01 02:02:28 langue inexistante Aug 01 02:02:46 langue poru la page demandée inexistante Aug 01 02:02:48 oui j ai vu en naviguant un peu sur l index.php Aug 01 02:02:57 ce que tu vosi dans la section Aug 01 02:03:16 ok ? Aug 01 02:03:20 oui Aug 01 02:03:40 alors le code php Aug 01 02:03:46 premier temps : Aug 01 02:03:55 on va vérifier si une langue est demandée Aug 01 02:04:14 par la variable en GET -> $_GET['lang'] Aug 01 02:04:49 pour ce, on vérifie tout simplement si il est possible de charger le base.xml dans le dossier de langue appelée Aug 01 02:04:56 soit : Aug 01 02:04:57 if ( (@$base_lang = simplexml_load_file('lang/'.$_GET['lang'].'/'.'base.xml'))!=false ): Aug 01 02:05:09 même principe que pour file_get_contents() Aug 01 02:05:20 sauf que là on utilise une nouvelle fonction (php5) Aug 01 02:05:28 simplexml_load_file() Aug 01 02:05:46 cette fonction permet de charger un fichier xml Aug 01 02:05:51 dans une variable Aug 01 02:06:09 ok, il charge par rapport a la lang par defaut ? Aug 01 02:06:10 et on peut ainsi afficher ce qu'on veut Aug 01 02:06:11 ex : Aug 01 02:06:21 sur le chargement de fr/base.xml Aug 01 02:06:44 si je veux le Site avec gestion multi langue Aug 01 02:06:49 il me suffit de faire : Aug 01 02:07:03 echo $base_lang->title_h1; Aug 01 02:07:09 et ça affichera : Aug 01 02:07:13 Site avec gestion multi langue Aug 01 02:07:19 simple non ? :) Aug 01 02:07:24 oui Aug 01 02:07:40 donc je reprends Aug 01 02:07:59 premier temps on cherche à savoir si le base.xml existe pour une langue demandée Aug 01 02:08:13 si aucune langue demandée, on charge le xml par défaut Aug 01 02:08:26 soit le --> Aug 01 02:08:26 celui declaré au debut ? Aug 01 02:08:30 else: Aug 01 02:08:30 //--> Chargement par défaut Aug 01 02:08:30 $base_lang = simplexml_load_file($_LOAD_BASE_XML.'base.xml'); Aug 01 02:08:30 $_LOAD_PAGE_XML = $_LOAD_BASE_XML.$get_page.'.xml'; Aug 01 02:08:30 $page_lang = simplexml_load_file($_LOAD_PAGE_XML); Aug 01 02:08:38 oui Aug 01 02:08:47 enfin au début c'ets des variables déclarées Aug 01 02:08:54 avec des valeurs Aug 01 02:09:07 j ai pas ce code dans l index.php Aug 01 02:09:24 la portion que je viens de paste là utilise ces valeurs par défaut Aug 01 02:09:31 MaTTuX_CoDe, http://dev.blinckers-groups.com/site_multi-langue_01/index.phps Aug 01 02:09:35 avec le 's' Aug 01 02:09:42 oui oui Aug 01 02:09:53 ah oui rien dit Aug 01 02:09:58 c etait beaucoup plus bas Aug 01 02:10:09 oui Aug 01 02:10:11 vu Aug 01 02:10:21 dans le cas ou aucune langue n'est demandée :) Aug 01 02:10:27 le chargement par défaut quoi Aug 01 02:10:34 oui Aug 01 02:10:57 donc là une fois qu'on a la base Aug 01 02:11:10 on va chercher à savoir si la page demandée est traduite Aug 01 02:11:27 regardes après le '// .. et on continue .. Aug 01 02:11:27 ' Aug 01 02:11:44 //--> On vérifie si la langue pour la page demandée existe. si oui, elle est chargée .. Aug 01 02:11:44 if ((@$page_lang = simplexml_load_file($load_base_xml.$get_page.'.xml'))!=false): Aug 01 02:11:51 oui Aug 01 02:11:52 donc là toujours le même principe Aug 01 02:12:40 pour la gestion d'erreur que j'ai implémenté je t'invite à regarder ça en détails dans ton soft de prog :) Aug 01 02:12:41 meme primcipe que pour les pages Aug 01 02:12:55 oui c'ets basé sr le même principe Aug 01 02:12:56 ? Aug 01 02:13:05 sauf que là c'est plus poussé Aug 01 02:13:08 je m'explique Aug 01 02:13:13 si la page existe Aug 01 02:13:20 amis que sa traduction non Aug 01 02:13:27 ça va quand même t'afficher la page Aug 01 02:13:34 dans la langue par défaut du site Aug 01 02:13:50 oui logique Aug 01 02:13:55 sauf que ça t'indiquera qu'il n'y a pas de traduction poru cette page dans la langue demandée Aug 01 02:14:27 si la langue existe carrément pas (le lang//base.xml) ça charge tout par défaut Aug 01 02:14:51 si la page n'existe pas ça tele dit aussi Aug 01 02:15:08 et bein sur ça n'affichera pas la page .. mais juste la base Aug 01 02:15:17 Cette page n'existe pas : Page 03 Aug 01 02:15:18 Cette langue n'existe pas : sp Aug 01 02:15:27 voilà :) Aug 01 02:15:36 au lieu de te manger un gros 404 Aug 01 02:15:42 ou un tas d'erreurs Aug 01 02:15:43 :) Aug 01 02:15:47 c est plus agreables Aug 01 02:15:51 clair Aug 01 02:16:14 donc si la page existe pas Aug 01 02:16:16 trop souvent l'erreur de certains pseudo webmaster Aug 01 02:16:26 est de na pas penser aux conneries du client/visiteur Aug 01 02:16:27 sa t affiche la page de base avec l ereur de la page inexistante Aug 01 02:16:47 oui Aug 01 02:16:56 ça t'affiche la "base" Aug 01 02:17:05 sans la "page" Aug 01 02:17:05 :) Aug 01 02:17:11 yep Aug 01 02:17:12 ex : Aug 01 02:17:16 tu peux avoir la langue Aug 01 02:17:21 mais pas de page Aug 01 02:17:31 donc ça t'affichera la "base" dans la langue Aug 01 02:17:35 il va te le traduire alors Aug 01 02:17:40 et ça te dira que "page" existe pas Aug 01 02:17:44 ok Aug 01 02:17:46 oui voilà Aug 01 02:17:48 j ai compris ca Aug 01 02:17:51 :) Aug 01 02:17:54 simple Aug 01 02:18:02 ben oui :) Aug 01 02:18:26 maintenant comment gérer le tout Aug 01 02:18:29 on a : Aug 01 02:18:32 base.html Aug 01 02:18:37 page_01.html Aug 01 02:18:40 base.xml Aug 01 02:18:44 page_01.xml Aug 01 02:18:49 oui Aug 01 02:18:56 alors dans l'ordre : Aug 01 02:19:21 on 'parse' (façon de parler) la variable $base Aug 01 02:19:28 qu contient le fichier base.html Aug 01 02:19:55 et on remplace les valeurs de type {truc} qui sont dedans Aug 01 02:19:58 soit : Aug 01 02:20:12 avec str_replace Aug 01 02:20:23 $base = str_replace('{title_h1}', $base_lang->title_h1, $base); Aug 01 02:20:23 $base = str_replace( '{truc}' , 'coucou', $base); Aug 01 02:20:27 voilà Aug 01 02:20:40 sauf que là ... on va à la place de 'coucou' Aug 01 02:20:49 sauf qu on la gestion de la lang Aug 01 02:20:52 oui exact Aug 01 02:20:54 utiliser c que nous renvoit les différents ficheir xml Aug 01 02:21:01 pour un site en une langue Aug 01 02:21:18 donc d'abord $abse Aug 01 02:21:20 $base* Aug 01 02:21:49 lors de ce "parse" on touche bien sur pas à la zone {_PAGE_} Aug 01 02:22:00 qui sert elle à charger le page_01.html Aug 01 02:22:14 une fois qu'on a tout "parsé" le $base Aug 01 02:22:29 on va s'occuper de "parser" le page_01.html Aug 01 02:22:44 mais ce coup-ci avec le page_01.xml Aug 01 02:22:48 tu suis toujours ? Aug 01 02:22:56 oui oui Aug 01 02:23:09 donc toujours pareil str_replace() Aug 01 02:23:11 ;;) Aug 01 02:23:31 sauf que là c'est plus $base mais $page Aug 01 02:23:39 attends Aug 01 02:23:40 une fois que la $page est traduite Aug 01 02:23:48 on "l'envoi" dans $base Aug 01 02:24:03 oui ? Aug 01 02:24:03 quand je regarde le index.phps Aug 01 02:24:07 oui ? Aug 01 02:24:08 je vois : Aug 01 02:24:18 $base = str_replace('{text_03}', $base_lang->text_03, $base); Aug 01 02:24:19 $base = str_replace('{_LOAD_BASE_TEMPLATE_}', 'templates/base.html', $base); Aug 01 02:24:21 if (!isset($page_error)) Aug 01 02:24:25 pour la gestion d erreur Aug 01 02:24:44 eu ça tu t'en fout :p Aug 01 02:24:54 c'est juste pour les "Informations" Aug 01 02:24:57 euhhh Aug 01 02:25:11 oui oui :) Aug 01 02:25:12 sa sert pas ? Aug 01 02:25:25 regarde là -> http://dev.blinckers-groups.com/site_multi-langue_01/templates/base.html Aug 01 02:25:36 de {text_01} : {_GET_PAGE_} Aug 01 02:25:44 à - {_LOAD_PAGE_XML_} Aug 01 02:25:56 ah pour l afffichage Aug 01 02:26:04 c'est des informations de chargement Aug 01 02:26:07 et rien de plus Aug 01 02:26:09 oki Aug 01 02:26:11 ça dit en gros : Aug 01 02:26:19 sur page=2&lang=en Aug 01 02:26:29 ben que le base.xml est en en Aug 01 02:26:38 et que le page_01.xml est en fr Aug 01 02:26:52 parceque pas de traduction pour le page_01.html Aug 01 02:27:08 c'est juste de l'information pour voir ce qu'il se passe Aug 01 02:27:12 okay Aug 01 02:27:27 donc on avait fini de parsé le $base Aug 01 02:27:37 les seules parties utile en prod' pour toi Aug 01 02:27:38 sont : Aug 01 02:27:39 {title_h2_02} Aug 01 02:27:39 {_ERROR_} {_PAGE_} Aug 01 02:28:02 tu comprends ? Aug 01 02:28:09 oui Aug 01 02:28:10 ca va mieux Aug 01 02:28:16 j ai eu peur d un coup :D Aug 01 02:28:16 :) Aug 01 02:28:27 donc dans : http://dev.blinckers-groups.com/site_multi-langue_01/index.phps Aug 01 02:28:52 on finissait de parsé le $base Aug 01 02:28:53 après : Aug 01 02:28:54 $base = str_replace('{title_h1}', $base_lang->title_h1, $base); Aug 01 02:29:04 et avant : Aug 01 02:29:04 $base = str_replace('{title_h2_03}', $base_lang->title_h2_03, $base); Aug 01 02:29:10 tu t'en fous :) Aug 01 02:29:22 sauf en dev Aug 01 02:29:24 oki :-) Aug 01 02:29:32 pour le debug ? Aug 01 02:29:38 c'est une sorte de debug quoi Aug 01 02:29:41 oui voilà :) Aug 01 02:29:44 t'as compris direct Aug 01 02:29:51 oki ^_^ Aug 01 02:30:07 donc Aug 01 02:30:12 on parse $base Aug 01 02:30:13 $base = str_replace('{title_h1}', $base_lang->title_h1, $base); Aug 01 02:30:22 on a notre titre du site Aug 01 02:30:33 ou tout autre chose du genre Aug 01 02:30:40 comme "contact" Aug 01 02:30:45 "infos légales" Aug 01 02:30:46 etc .. Aug 01 02:31:01 okay donc c est le header footer reuni Aug 01 02:31:07 et on touche pas à {_PAGE_} Aug 01 02:31:09 oui voilà Aug 01 02:31:09 gain de place Aug 01 02:31:12 tu as compris Aug 01 02:31:34 ensuite on s'occupe de la page en cours Aug 01 02:31:38 le $page Aug 01 02:31:56 ex pour page_01.html Aug 01 02:31:57 http://dev.blinckers-groups.com/site_multi-langue_01/templates/page_01.html Aug 01 02:32:21 oui Aug 01 02:32:23 et : Aug 01 02:32:24 http://dev.blinckers-groups.com/site_multi-langue_01/lang/fr/page_01.xml Aug 01 02:32:32 là tu vois les correspondances Aug 01 02:32:42 xml -> Page Une Aug 01 02:32:53 html -> {title} Aug 01 02:32:57 ouais les variable correspondent Aug 01 02:33:03 php -> str_replace() Aug 01 02:33:22 donc très simple :) Aug 01 02:33:29 yep Aug 01 02:33:50 une fois que $page est traduite ("parsé") Aug 01 02:34:02 $page = str_replace('{title}', titrepage, $page); Aug 01 02:34:05 on "injecte" le $page dans le $base Aug 01 02:34:16 euhh Aug 01 02:34:20 c.f.: $base = str_replace('{_PAGE_}', $page, $base); Aug 01 02:34:40 ah oui a la fin Aug 01 02:34:46 tu vas me demander pourquoi in voit ça deux fois Aug 01 02:34:52 oui pkoi ? Aug 01 02:34:56 avant et après le dernier else: Aug 01 02:35:04 très simple : Aug 01 02:35:21 le dernier else: ---> tout est ok .. xml présent / html présent Aug 01 02:35:42 avant le else: ---> si y'a des erreurs Aug 01 02:35:45 la différence Aug 01 02:36:09 avant le else: ça charge une autre page html (error.html) Aug 01 02:36:26 qui va servir à indiquer l'erreur au client/visiteur Aug 01 02:36:31 oui Aug 01 02:36:54 et au final ... tout se trouve dans $base Aug 01 02:36:58 donc suffit de : Aug 01 02:37:04 echo $base; Aug 01 02:37:11 et "the end" Aug 01 02:37:11 :) Aug 01 02:37:17 lol Aug 01 02:37:34 juste 1 echo Aug 01 02:37:38 pour tout le site Aug 01 02:37:40 oui ᴖ_ᴖ Aug 01 02:37:48 et ben chapeau Aug 01 02:38:03 et pas une seule ligne d'html dans ton code php Aug 01 02:38:15 ouais sa s est agreable Aug 01 02:38:34 tiens une question pour le choix de la langue (par le visiteur) Aug 01 02:38:45 les liens en bas Aug 01 02:38:56 http://dev.blinckers-groups.com/site_multi-langue_01/index.php Aug 01 02:39:01 Traduction Aug 01 02:39:01 Français : Page 01 | Page 02 Aug 01 02:39:01 English : Page 01 | Page 02 Aug 01 02:39:01 Spanish : Page 01 | Page 03 Aug 01 02:39:14 sauf que tu peux optimiser ça Aug 01 02:39:18 j'explique : Aug 01 02:39:23 ben oui Aug 01 02:39:26 mettre un drapeau : Aug 01 02:39:29 genre je clique sur englais Aug 01 02:39:33 et sa me traduit tout le site Aug 01 02:39:37 anglais* Aug 01 02:39:41 [fr] [en] [sp] Aug 01 02:40:07 en cliquant tu envois un : &lang=.. Aug 01 02:40:11 dans ton lien Aug 01 02:40:28 donc ca traduit le reste automatiquement ? Aug 01 02:40:32 enfin quand tu vas changer de page Aug 01 02:40:40 tu peux récupérer l'appel de al page en cours Aug 01 02:40:47 et près former tes liens Aug 01 02:40:51 j'explqiue : Aug 01 02:41:31 Page 01 Aug 01 02:41:41 Page 02 Aug 01 02:41:43 ok ? Aug 01 02:41:59 euhhh oui Aug 01 02:42:04 et sur les drapeaux : Aug 01 02:43:11 French Aug 01 02:43:20 mais pour declarer la {lang} :S Aug 01 02:43:21 English Aug 01 02:43:23 etc .. Aug 01 02:43:28 oui atta :) Aug 01 02:43:37 ^_^ Aug 01 02:43:48 if (isset($_GET['lang'])): Aug 01 02:44:33 $link_lang = '&lang='.$_GET['lang']; Aug 01 02:44:35 ... Aug 01 02:44:36 ... Aug 01 02:45:13 else: Aug 01 02:45:22 $link_lang = ''; Aug 01 02:45:25 ensdif; Aug 01 02:45:29 ok ? Aug 01 02:45:33 puis un smple : Aug 01 02:45:34 $base = str_replace('{lang}' , $link_lang, $base); Aug 01 02:45:54 euhhhhh Aug 01 02:45:56 oui Aug 01 02:46:02 si tu es dans le cas de la langue 'fr' (par défaut) Aug 01 02:46:09 et sa sa devrait me donner les liens du site dans la langue selectionné Aug 01 02:46:16 tes liens de page seront formés comme : Aug 01 02:46:24 Page 01 Aug 01 02:46:36 si tu as une langue (ex : en) Aug 01 02:46:39 tu aurras : Aug 01 02:46:50 Page 01 Aug 01 02:47:16 là tous tes liens contiennent la variable lang en anglais Aug 01 02:47:18 ok ? Aug 01 02:47:24 et pour les drapeaux c'ets idem Aug 01 02:47:27 sauf que là : Aug 01 02:47:37 if (isset($_GET['page'])): Aug 01 02:48:05 oui Aug 01 02:48:07 $link_page = '&page='.$_GET['page']; Aug 01 02:48:10 else: Aug 01 02:48:10 faut que je pratique pour ca Aug 01 02:48:12 car suis pas sur Aug 01 02:48:18 $link_page = ''; Aug 01 02:48:24 endif; Aug 01 02:48:49 aucune page (soit la page d'accueil d usite) Aug 01 02:48:56 French Aug 01 02:49:04 English Aug 01 02:49:12 une page encours : Aug 01 02:49:13 moi je faisais ca Aug 01 02:49:25 French Aug 01 02:49:25 et sa me traduisait automatiquement tout le site Aug 01 02:49:40 English Aug 01 02:49:53 tu comprends ? Aug 01 02:50:08 ainsi ça t'évite de multiplier tes liens apr le nombr de langues: ) Aug 01 02:50:19 t uas autant de drapeaux que de traduction Aug 01 02:50:26 et un seul menu de lien Aug 01 02:50:30 oki Aug 01 02:50:45 avec des variable $_GET dynamique Aug 01 02:51:39 regarde ce que j avais moi : Aug 01 02:51:41 http://elgalo.no-ip.org/~mattux/boisSantal3/index.php?lang=fr Aug 01 02:51:53 et si tu passe en es : http://elgalo.no-ip.org/~mattux/boisSantal3/index.php?lang=es Aug 01 02:52:10 et tu clique sur un lien de categorie s est traduit direct Aug 01 02:52:11 erf Aug 01 02:52:18 mise en page cassée :\ Aug 01 02:52:32 ouais je sais il sert pas Aug 01 02:52:35 :D Aug 01 02:52:49 c etait pour des test Aug 01 02:52:59 et il est tombé adns le backup au lieu de la poubelle Aug 01 02:53:02 dans* Aug 01 02:53:08 ᴖ_ᴖ Aug 01 02:53:19 tu comprens ce que je veux dire ? Aug 01 02:54:20 tu passes via une session ? Aug 01 02:55:06 http://elgalo.no-ip.org/~mattux/boisSantal3/decide-lang.phps Aug 01 02:55:10 cookies Aug 01 02:55:26 et la question "qui tue" Aug 01 02:55:39 c est pas moi qui a codé :D Aug 01 02:55:43 comment tu fais à filer un lien direct à un de tes contacts :) Aug 01 02:55:57 comment ca ? Aug 01 02:55:57 il doit se taper toute l'arbo en traduction ? :) Aug 01 02:56:03 ben exemple : Aug 01 02:56:14 ben le site se mets selon la langue du navigateur Aug 01 02:56:21 par defaut s est FR Aug 01 02:56:33 http://domain.tld/categorie_bijoux/pendentif/collier_012478.html Aug 01 02:56:45 ah oui la Aug 01 02:56:52 :S Aug 01 02:57:01 comment l'utilisateur copie/colle un lien en 'es' Aug 01 02:57:03 :)) Aug 01 02:57:09 :D Aug 01 02:57:14 ben il peut pas :p Aug 01 02:57:19 ben voilà Aug 01 02:57:27 donc il peut pas te faire de pub Aug 01 02:57:57 ben ouai saymal Aug 01 02:58:05 le spingoin ça va le faire chier d'arriver sur la page en fr et d'aller après chercher la traduction en es Aug 01 02:58:20 et c'ets trompeur Aug 01 02:58:24 ben si son navigateur est en es Aug 01 02:58:29 il l aura en es Aug 01 02:58:31 le cleint croit surfer sur un site déjà traduit Aug 01 02:58:42 a ben oui .. Aug 01 02:58:55 si tu gère par les header Aug 01 02:58:58 en jS . Aug 01 02:59:08 ou php ? Aug 01 02:59:12 php Aug 01 02:59:18 ok Aug 01 02:59:18 avec le code que je t ai montré Aug 01 02:59:30 testé sur different navigateur Aug 01 02:59:31 et si il est en france ton spaingouin ? Aug 01 02:59:34 et sa prends bien la lang Aug 01 02:59:39 :D Aug 01 02:59:45 ben il parle francais :p Aug 01 02:59:49 :| Aug 01 02:59:53 rhooo Aug 01 02:59:59 nop je sais tu m as eu Aug 01 03:00:05 :)) Aug 01 03:00:06 * MaTTuX_CoDe jette les armes Aug 01 03:00:07 :D Aug 01 03:00:28 ça peu être bien ton système Aug 01 03:00:40 sous condition de donner une sorte e permalien complet Aug 01 03:00:47 pour la page en cours Aug 01 03:00:55 hein ? Aug 01 03:00:59 un genre de "Envoyer à un ami" Aug 01 03:01:16 dans la barre d'adresse : http://domain.tld/categorie_bijoux/pendentif/collier_012478.html Aug 01 03:01:16 sa serai le meme problem e Aug 01 03:01:21 gestion via cookies Aug 01 03:01:28 mais sur la page de l'articles : Aug 01 03:01:38 Lien direct : http://domain.tld/categorie_bijoux/pendentif/collier_012478.html?lang=es Aug 01 03:01:48 :) Aug 01 03:02:32 en gros un "Vous êtes ici : http://lien ... lang=..." Aug 01 03:02:39 :p Aug 01 03:02:40 ah oui Aug 01 03:02:47 ce que je fais sur pelins de site Aug 01 03:02:49 pleins Aug 01 03:03:32 mais avec ton système s est possible aussi Aug 01 03:04:02 ben disons que moi dans mon système je cumule l'url_rewriting Aug 01 03:04:04 ᒃ‿ᒄ Aug 01 03:04:06 soit : Aug 01 03:04:24 http://domaine.tld/page_01-es.html Aug 01 03:04:27 == Aug 01 03:04:55 http://domaine.tld/index.php?page=01&lang=es Aug 01 03:05:01 :) Aug 01 03:05:06 ouais ya pas foto Aug 01 03:05:07 ou encore : Aug 01 03:05:18 http://domaine.tld/es/page_01.html Aug 01 03:05:30 directement référençable Aug 01 03:05:34 j aime bien la 3ieme Aug 01 03:05:46 c'ets le plus chiant :))) Aug 01 03:06:06 donc pour faire de ta facon je devrai faire comme tu as dit plus haut ? Aug 01 03:06:18 avec le rajout du code dans l index.php Aug 01 03:06:28 if (isset($_GET['lang'])): Aug 01 03:06:32 $link_lang = '&lang='.$_GET['lang']; Aug 01 03:06:35 else: Aug 01 03:06:38 $link_lang = ''; Aug 01 03:06:41 ensdif; Aug 01 03:06:43 oui Aug 01 03:06:46 $base = str_replace('{lang}' , $link_lang, $base); Aug 01 03:06:56 ouep Aug 01 03:07:21 bon alors Aug 01 03:07:28 il est ou ce cours ? :) Aug 01 03:07:37 et dans les lien : English Aug 01 03:07:47 arff lang Aug 01 03:08:12 et dans les lien : English Aug 01 03:08:29 waloo: s est levé Aug 01 03:08:35 ouaich Aug 01 03:08:39 trop chaud Aug 01 03:08:48 http://dev.blinckers-groups.com/cours/ Aug 01 03:08:58 je t'ai mit un tar.gz MaTTuX_CoDe :) Aug 01 03:09:02 et le cours est déplacé là Aug 01 03:09:09 http://dev.blinckers-groups.com/cours/site_multi-langue_01/ Aug 01 03:09:25 merci McPeter Aug 01 03:09:44 juste a voir pour les liens quand je vais codé ^^ ... Aug 01 03:12:05 ouais pareil cassé le tar Aug 01 03:12:13 sinon y'a le log ? Aug 01 03:12:18 ou oas encore ? Aug 01 03:12:22 pas encore Aug 01 03:12:41 waloo, tu as un .phps Aug 01 03:12:54 http://dev.blinckers-groups.com/cours/site_multi-langue_01/index.phps Aug 01 03:13:01 http://dev.blinckers-groups.com/cours/site_multi-langue_01/index.phps Aug 01 03:13:04 arff grilled Aug 01 03:13:05 ha merci ... Aug 01 03:23:03 bon le tar fonctionne bien lui bordel Aug 01 03:26:20 jepeux prendre le tar ? Aug 01 03:27:25 ouais Aug 01 03:27:34 ouais ca marche lui Aug 01 03:27:51 bon ben voilà Aug 01 03:27:54 waloo, ? Aug 01 03:28:02 merci merci merci merci Aug 01 03:28:11 ca valait le coup que j attende Aug 01 03:28:15 super bon cours :D Aug 01 03:28:22 oui ? Aug 01 03:28:23 :) Aug 01 03:28:33 waloo, tu as regardé le phps ? Aug 01 03:28:47 je suis en train oui Aug 01 03:28:57 ton avis pour le moment ? Aug 01 03:29:09 * McPeter s'attend à se faire descendre Aug 01 03:29:16 (juste for ze fun) ... Aug 01 03:34:22 ouais ok, c'est un systeme de templates a deux niveaux Aug 01 03:35:27 ton verdict ? :) Aug 01 03:35:37 bah, c'est une approche Aug 01 03:35:50 a ben oui Aug 01 03:35:57 ça doit pas être follement efficace tous ces str_replace Aug 01 03:36:06 rhoo Aug 01 03:36:40 on pourrait passer via du regex aussi Aug 01 03:36:55 puis si tu veux faire un template avec 4 titres h2, tu es obligé de retoucher ton code Aug 01 03:37:08 c'est pas vraiment un système de tempates enfait Aug 01 03:37:36 oui Aug 01 03:37:39 c'est une approche Aug 01 03:37:50 après vaut mieux passer via du regex Aug 01 03:37:58 preg_replace Aug 01 03:38:20 mmm Aug 01 03:38:22 preg_replace($patern, $replace, $template) Aug 01 03:38:22 mouais Aug 01 03:38:32 ça chage quoi ? Aug 01 03:39:01 ben $patern bouge pas Aug 01 03:39:07 seul replace bouge Aug 01 03:39:20 et $replace est calé sur le xml Aug 01 03:39:30 enfin je dis ça à la louche là Aug 01 03:39:51 ha oui tu peux remplacer title_h2_nn par $page_lang->text_nn Aug 01 03:39:56 mmm meme pas sur ... Aug 01 03:51:36 waloo, si tu veux y'a un .tar Aug 01 03:51:39 dans /cours Aug 01 03:51:40 ouais Aug 01 03:51:45 j'ai vu Aug 01 03:51:49 si je peux avoir tes critiques :) Aug 01 03:51:55 (ça sert toujours les critiques) Aug 01 03:52:21 comment tu gère : vous avez 1 message / vous avez 2 messages ? Aug 01 03:52:42 oO Aug 01 03:52:48 comment tu gères : vous avez (select count() from...) messages ? Aug 01 03:53:03 eu Aug 01 03:53:08 je piges pas ᴖ_ᴖ Aug 01 03:53:14 tu parles e quoi ? Aug 01 03:53:16 critiques ? Aug 01 03:53:26 ouais limitations Aug 01 03:53:37 eu Aug 01 03:53:45 mais en fait c'est pas trop fait pour faire du dynamique Aug 01 03:53:46 pas de liitation moi :\ Aug 01 03:54:03 waloo, a non Aug 01 03:54:21 plutôt pour un truc qui bouge tous les 6 mois (max) Aug 01 03:54:25 eu .. Aug 01 03:54:28 s/max/min Aug 01 03:54:36 ouais enfin le contenu peut bouger Aug 01 03:54:43 si faut mettre à jour tous les jours Aug 01 03:54:48 c'est bordel Aug 01 03:54:54 c'est pas pour un forum hein Aug 01 03:55:02 :) Aug 01 03:55:41 non, le contenu des pages peut bouger Aug 01 03:55:51 lange/fr/page_machin.xml Aug 01 03:55:56 oui Aug 01 03:56:07 mais c'est vrai que c'est pas très souple sur la structure Aug 01 03:56:08 j'ai "text" Aug 01 03:56:18 mais ça aurait pu être "paragraphe" Aug 01 03:56:22 mieux d'ailleurs Aug 01 03:57:01 avec des petits replace sur "\n"
" Aug 01 03:57:04 par exemple Aug 01 03:57:08 heu Aug 01 03:57:08 nl2br Aug 01 03:57:17 c'est un peu sale ça Aug 01 03:57:41 "un peu" :) Aug 01 03:57:47 (beaucoup) Aug 01 03:57:52 bon je file :) Aug 01 03:57:58 j'attend tes critiques Aug 01 03:58:05 ;o) Aug 01 03:58:21 au niveau paragraphe, tu vas avoir du mal à faire : 1er amendement de la constitution américaine Aug 01 03:58:23 (a moins toi tu sais de quoi tu parles) Aug 01 03:58:38 waloo, a oui là c'ets sur :) Aug 01 03:58:51 *pulà* Aug 01 03:58:54 ben pourtant c'est un cas qu'on a tout le temps Aug 01 03:58:56 ok Aug 01 03:59:13 waloo, faut que j'améliore cette approche Aug 01 03:59:16 ça viendra Aug 01 03:59:25 quand j'aurait un peu de temps Aug 01 03:59:27 ouais Aug 01 03:59:27 :( Aug 01 03:59:32 @ plus :) Aug 01 03:59:39 enfin c'est pas vraiment l'approche que j'aurais prise perso Aug 01 03:59:41 a+ Aug 01 03:59:56 re Aug 01 04:00:17 bonne nuit McPeter