- Statut : non résolu
- Ce sujet contient 13 réponses, 3 participants et a été mis à jour pour la dernière fois par
piekes, le il y a 15 années et 5 mois.
-
AuteurMessages
-
14 octobre 2009 à 16 h 56 min #474889
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 2.7.1
– Thème utilisé : perso (en construction)
– Extensions en place :
– Nom de l’hebergeur : OVH
– Adresse du site :Problème(s) rencontré(s) :
Je souhaite utiliser une feuile de style différente pour les navigateurs IE6 et plus anciens (beaucoup plus restrictifs pour le CSS).
J’ai donc essayé dans le header de faire un link vers les feuilles de style en fonction du navigateur.
Quelque chose du genreif (($nom_nav== »MSIE ») and ($niveau<=6)){
<link ... style_1.css
else
<link ... style.cssJe me casse la tête avec ça depuis ce matin (peut-être y a-t-il plus simple et je réinvente la roue…)car je tombe sur deux problèmes nouveaux
1) Je dois avoir une fonction php qui me donne le type de navigateur et son niveau. J’en ai une, récupérée sur le web, et qui marche très bien, y compris dans ma maquette de thème, mais je l’ai mise dans functions.php, et WordPress n’aime pas ça du tout. L’administrateur se plante au login. Alors comme c’est la première fois que je veux utiliser une fonction perso, je voudrais savoir où il faut les mettre et quelles règles il faut respecter.
2) Pour mettre dans le j’ai voulu utiliser bloginfo(‘template_url’) qui conduit au répertoire de ma page de style « style_1 ». Mais ça ne marche pas, je ne sais pas pourquoi.
Alors pour éclaicir le problème j’ai fait un petit code très simple, que j’ai mis dans le header$styleIE6blog=bloginfo(‘template_url’); $styleIE6blog= »$styleIE6blog/style_1.css »;
print $styleIE6blog;
$styleIE6= »http://localhost/Wordpress/wp-content/themes/CEM_New/style_1.css »;
print « <br/>« ;
print $styleIE6;
$fichier=fopen($styleIE6, »r »);
$texte=fread($fichier,50);
print « <br/>
print $texte;
$fichier=fopen($styleIE6blog, »r »);
$texte=fread($fichier,50);
print « <br/>
print $texte;D’un côté je récupère l’url de mon fichier par la fonction bloginfo(‘template_url’) et je la mets dans $styleIE6blog, de l’autre j’écris l’url en dur et je le mets dans $styleIE6.
Ensuite j’imprime ces deux variables qui sont en principe identiques, et enfin je les utilise pour ouvrir le fichier et lire les 50 premiers octets.
Résultathttp://localhost/Wordpress/wp-content/themes/CEM_New/style_1.css
http://localhost/Wordpress/wp-content/themes/CEM_New/style_1.css
/* Theme Name: CEM_New Theme URI: http://www.cho
Warning: fopen(/style_1.css) [function.fopen]: failed to open stream: No such file or directory in C:xampplitehtdocswordpresswp-contentthemesCEM_Newheader.php on line 33
Warning: fread(): supplied argument is not a valid stream resource in C:xampplitehtdocswordpresswp-contentthemesCEM_Newheader.php on line 341) Les 2 variables url semblent bien identiques
2) Si j’ouvre le fichier tour à tour avec les 2 variables, celle en dur marche très bien, tandis que celle obtenue à partir de bloginfo(‘template_url’) conduit au plantage de la lecture pour adresse erronnée.
Que me mets donc bloginfo() dans la chaîne pour qu’elle ne soit pas reconnue, et que ça ne se voie pas qund je fais un « print » ?🙂 Gabier
15 octobre 2009 à 10 h 35 min #694480Bonjour,
vous pensez qu’il y a beaucoup de visiteurs sur vos sites ,qu’ils utilisent IE6 ou même plus vieux ?
C’est le widget » wassup » qui vous le dit ?Déjà mettez votre version de WordPress à jour, WP 2.7.1 a des failles de sécurités,passer sous WP 2.8.7.
votre blog est chez OVH ou en local ?
en visitant un autre site,je vu dans le code source de la page ceci
<![endif]–
16 octobre 2009 à 10 h 36 min #694481Lupi wrote:vous pensez qu’il y a beaucoup de visiteurs sur vos sites ,qu’ils utilisent IE6 ou même plus vieux ?
C’est le widget » wassup » qui vous le dit ?Je n’ai pas wasup ni ses statistiques détaillées car actuellement mon site n’est pas sous WordPress. mais il y a environ 10000 visiteurs par mois, or il y a encore environ 10% des navigateurs qui sont IE6. Je ne peux tout de même pas les ignorer …
Lupi wrote:Déjà mettez votre version de WordPress à jour, WP 2.7.1 a des failles de sécurités,passer sous WP 2.8.7.Oui, ça viendra… Si la MAJ automatique marchait, on serait plus réactifs …
Lupi wrote:votre blog est chez OVH ou en local ?Local
Lupi wrote:en visitant un autre site,je vu dans le code source de la page ceci<![endif]–
Ben oui, il met le lien en dur, c’est quand même pas très propre, alors que dans WordPress il ya en principe toutes les fonctions qu’il faut pour avoir les liens du blog, de la CSS, etc …
Car ça veut dire que le jour ou j’installe à distance, il faut changer le code, et si je change de répertoire, il faut aussi changer le code.🙂 Gabier
16 octobre 2009 à 12 h 08 min #694482gabier wrote:Lupi wrote:vous pensez qu’il y a beaucoup de visiteurs sur vos sites ,qu’ils utilisent IE6 ou même plus vieux ?
C’est le widget » wassup » qui vous le dit ?Je n’ai pas wasup ni ses statistiques détaillées car actuellement mon site n’est pas sous WordPress. mais il y a environ 10000 visiteurs par mois, or il y a encore environ 10% des navigateurs qui sont IE6. Je ne peux tout de même pas les ignorer …
Moi si je les ignore, les gens doivent mettre à jour leurs configurations,un petit mot sur le site pour dire que le site est optimisé pour tel ou tel navigateur ou que ceux qui ont IE6 ne pourront pas pleinement profiter du blog,ça je veux bien faire mais pas me prendre la tête avec style.css,c’est assister les gens et ce n’est pas bon !
C’est mon avis.gabier wrote:Lupi wrote:Déjà mettez votre version de WordPress à jour, WP 2.7.1 a des failles de sécurités,passer sous WP 2.8.7.Oui, ça viendra… Si la MAJ automatique marchait, on serait plus réactifs …
Vous parlez de mise à jour automatique ? La msie à jour par ftp fonctionne très bien alors pourquoi s’en passer 😉
gabier wrote:Lupi wrote:votre blog est chez OVH ou en local ?Local
D’accord. eT OVH ????
gabier wrote:Lupi wrote:en visitant un autre site,je vu dans le code source de la page ceci<![endif]–
Ben oui, il met le lien en dur, c’est quand même pas très propre, alors que dans WordPress il y a en principe toutes les fonctions qu’il faut pour avoir les liens du blog, de la CSS, etc …
Car ça veut dire que le jour ou j’installe à distance, il faut changer le code, et si je change de répertoire, il faut aussi changer le code.🙂 Gabier
Peut être mettre …/themes/cordobo-green-park-2/ie6.css ?
16 octobre 2009 à 13 h 40 min #694483Lupi wrote:Moi si je les ignore, les gens doivent mettre à jour leurs configurations,un petit mot sur le site pour dire que le site est optimisé pour tel ou tel navigateur ou que ceux qui ont IE6 ne pourront pas pleinement profiter du blog,ça je veux bien faire mais pas me prendre la tête avec style.css,c’est assister les gens et ce n’est pas bon !
C’est mon avis.Moi pas. Tout le monde n’a pas les connaissances pour savoir ce que ça signifie d’avoir un navigateur comme si ou comme ça.:o
Lupi wrote:Vous parlez de mise à jour automatique ? La msie à jour par ftp fonctionne très bien alors pourquoi s’en passer 😉Oui mais c’est long et pendant ce temps là le site est indisponible 🙂
Lupi wrote:D’accord. eT OVH ????Pas encore présentable en WordPress car je suis parti de scratch.
Lupi wrote:Peut être mettre …/themes/cordobo-green-park-2/ie6.css ?ça ne marche pas.
Et puis il n’y a pas que là que j’ai besoin du chemin. Par exemple si je veux appeler des archives (par exemple celles de Septembre 2008), parhref= »http://monsiteWordpress/?m=200809″
Alors qu’est-ce que je mets pour être indépendant du répertoire de mon thème ?
Non vraiment, bien sûr en attendant je vais le mettre en dur, mais la vraie solution ça serait de pouvoir utiliser les « template tags » il me semble qu’ils ont été faits pour ça, non ?:wp:🙂 Gabier
16 octobre 2009 à 17 h 21 min #694484gabier wrote:1-Moi pas. Tout le monde n’a pas les connaissances pour savoir ce que ça signifie d’avoir un navigateur comme si ou comme ça.:o
2-Oui mais c’est long et pendant ce temps là le site est indisponible 🙂
3-Pas encore présentable en WordPress car je suis parti de scratch.
4-ça ne marche pas.
Et puis il n’y a pas que là que j’ai besoin du chemin. Par exemple si je veux appeler des archives (par exemple celles de Septembre 2008), parhref= »http://monsiteWordpress/?m=200809″
Alors qu’est-ce que je mets pour être indépendant du répertoire de mon thème ?
Non vraiment, bien sûr en attendant je vais le mettre en dur, mais la vraie solution ça serait de pouvoir utiliser les « template tags » il me semble qu’ils ont été faits pour ça, non ?:wp:🙂 Gabier
1- C’est pourquoi je vous dis qu’il faut mettre un mot qui dirait de mettre à jour son navigateur,comme vous les dîtes : « tout le monde n’a pas … » si personne ne leur dit,comment ils vont le savoir ??
2-Long ???? Vous plaisantez ,j’espère,je ne fais que comme ça , moi j’ai essayé 1 fois en automatique,c’est aussi long,et le risque est plus grande de faire foiré son blog.
3- A vous de voir,je n’ai jamais fait de site en local,toujours directement sur l’hébergeur,je trouve que c’est perdre son temps,on le fait là puis il faut le transférer.
4- Au départ c’est pour appeler un style.css pouir IE6 maintenant vous me parlez des archives,c’est différent.
Je ne vous ai pas dit ,de ne pas utiliser les template tag,je vous donnais juste le code que j’ai trouvé sur un thème par hasard,en le voyant,j’ai pensé à votre question, c’est tout.16 octobre 2009 à 18 h 10 min #694485Bonsoir Lupi,
Désolé si je me suis mal exprimé et que je vous ai fait perdre votre temps. Mon sujet est bien l’utilisation du template tag bloginfo(‘template_url’) ou get_bloginfo(‘template_url’). J’ai donné le contexte pour être concret.
Mon problème précis est que je n’arrive pas à récupérer les infos et à les réutiliser comme chaîne de caractère. J’aimerais trouver quelqu’un qui les a déjà utilisés dans le même but, ou quelqu’un qui connaît le mode d’emploi.
Car si j’applique le Codex ça ne marche pas…
Si personne ne peut me renseigner j’essaierai d’éplucher le code de la fonction bloginfo() pour savoir ce qu’elle renvoie exactement.
En tout cas merci pour tout le temps que vous passez a essayer de comprendre ce que nous voulons…🙂 Gabier
16 octobre 2009 à 18 h 26 min #694486je ne perds jamais mon temps 😉
mais j’ai peur que vous perdiez le votre juste pour 10 ou 15% d’utilisateurs « obsolètes » .c’est bizarre que les codes du codex ne fonctionne pas,il n’est pas indiqué code pour une ancienne version de WordPress ?
16 octobre 2009 à 20 h 01 min #694487Lupi wrote:c’est bizarre que les codes du codex ne fonctionne pas,il n’est pas indiqué code pour une ancienne version de WordPress ?Ce n’est pas qu’il ne fonctionne pas. Si j’emploie la fonction dans mon thème quelque part, elle va bien afficher le chemin du répertoire qu’il faut, comme l’a prouvé mon test, mais si au lieu de cela je veux l’utiliser pour concaténer ce chemin et le nom de mon fichier, c’est ça qui ne marche pas.
Par exemple un « echo bloginfo(‘template_url’) » m’affichera bien sur l’écran « http://chemin_du_répertoire_du_thème » mais un ‘echo bloginfo(‘template_url’). »/IE6.css » ‘ affichera un message d’erreur qu’il n’a pas trouvé le fichier.Ceci dit je ne suis pas pressé, en attendant je code le chemin en dur.
🙂 Gabier
16 octobre 2009 à 22 h 33 min #69448817 octobre 2009 à 8 h 43 min #694489Vous connaissez ce site http://browsershots.org/
il permet de tester votre site sous différents navigateurs,j’ai testé le mien c’est l’horreur, des erreurs 500,des pages blanches,etc..17 octobre 2009 à 10 h 34 min #694490Lupi wrote:Vous connaissez ce site http://browsershots.org/
il permet de tester votre site sous différents navigateurs,j’ai testé le mien c’est l’horreur, des erreurs 500,des pages blanches,etc..Non mais j’ai installé IE_Mult sur mon ordinateur, il permet d’éxécuter IE 3, 4.01, 5.01, 5.5 et 6. Je me limite à 6 pour l’instant. Oui IE c’est l’horreur mais il faut vivre avec.
Sinon j’ai résolu mon problème. Comme d’habitude, la réponse est évidente si on ne s’égare pas pour toutes sortes de raisons.
Je pensais que bloginfo() et get_bloginfo() étaient identiques. La confusion vient de ce que les 2 sont utilisés pour afficher des caractéristiques du blog.Or si on lit bien le Codex pour les 2 :
bloginfo() « displays » …
get_bloginfo() « returns » …Donc c’est get_bloginfo() qu’il faut employer car bloginfo() ne retourne rien du tout, il affiche. J’ai été trompé parce que si je faisais « print bloginfo(‘template_url’) », j’avais bien un affichage du chemin, non pas parce que print récupérait l’info (en fait print n’affichait rien) mais parce que bloginfo() l’affichait lui-même.
Je croyais avoir aussi testé get_bloginfo() mais j’avais certainement fait une autre faute à ce moment là.Moralité, en employant soigneusement get_bloginfo(), ça marche nickel. Et ma feuille de style IE6 marche aussi.
Merci pour avoir assuré le répondant, ça aide à chercher.
🙂 Gabier
17 octobre 2009 à 11 h 01 min #694491pas de quoi,ravi pour toi.
17 octobre 2009 à 16 h 51 min #694492Plusieurs problèmes différents évoqués dans ce fil… Je vous livre les solutions que j’utilise en production, sur des sites WP institutionnels qui font dans les 5000 visites / jour. Pas la vérité avec V, juste ma pratique.
Les CSS
Dès que tu travailles pour un « client » quelconque, la prise en charge d’IE6 devient incontournable. Encore heureux si on ne me demande pas de supporter IE 5.5. Je connais quelques grosses entreprises, un hôpital près de chez moi, par exemple, qui ont tous leurs PC sous Windows 2000. Même IE6 ne s’installe pas sur ce système.
Pour la détection des navigateurs et l’utilisation de feuilles de style appropriées, une solution incontournable, les commentaires conditionnels.
<link rel="stylesheet" href=" » type= »text/css » media= »screen » />
<!--[if lt IE 7]>-->
<link rel="stylesheet" type="text/css" href="/ie.css » />
<link rel="stylesheet" href="/econtact.css » type= »text/css » media= »screen » />Remarquez au passage que je charge sélectivement des css non seulement en fonction du navigateur (Ici, tous les IE inférieurs à 7) mais aussi de la page (ou de la catégorie). Pas la peine de charger toutes les pages avec ce qui ne sert qu’une fois.
Les chemins
Toutes les fonctions get_ renvoient une variable PHP et n’affichent… rien. On utilise donc ainsi get_bloginfo pour former le chemin de la feuille de style pour IE6, comme ci-dessus. Il y a pas mal de paramètres possibles, comme le montre le Codex : http://codex.wordpress.org/Function_Reference/get_bloginfo
Ceci étant, répéter les appels à bloginfo n’est certainement pas très efficace : lecture répétée des valeurs dans la base de données. Certains préfèrent donc coder les url en dur. Mais c’est casse-pied quand on développe sur un serveur local pour transférer ensuite le site sur un serveur de production.
Je préfère donc une troisième méthode, qui consiste à déclarer tous les chemins comme des constantes dans wp-config.php Comme ceci :#
define(‘WP_HOME’, ‘http://www.*****.fr/mini_cr/histarts’);
#
define(‘WP_SITEURL’, ‘http://www.*****.fr/mini_cr/histarts’);
#
define(‘TEMPLATEURL’, ‘http://www.*****.fr/mini_cr/histarts/wp-content/themes/hda’);
#
define(‘TEMPLATEPATH’, ‘D:/mini_cr/histarts/wp-content/themes/hda’);
#
define(‘STYLESHEETPATH’, ‘D:/mini_cr/histarts/wp-content/themes/hda’);Je fais ensuite des appels de la façon suivante (petit extrait d’une sidebar) :
<div id="menuDivers">
<ul>
<li class="top_space12"><a href="/rubrique/actus »>Actualités</a></li>
<li><a href="/rubrique/men »>Instructions officielles</a></li>
<li><a href="/rubrique/fiches_pedago »>Fiches pédagogiques</a></li>
<li><a href="/createurs »>Lexique des peintres, écrivains, sculpteurs…</a></li>
<li> <a href="/rubrique/musees »>Musées internationaux</a></li>
</ul>
</div> <!-- div menuDivers -->
<p id="rss">
<a href="/feed/rss »><img src="/images/rss.jpg » alt= »Flux RSS des actualités »/></a>
</p>
</div> <!-- div sidebar -->Voilà, c’était un peu long, mais j’espère que ça pourra aider quelqu’un.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.