[réglé] Codes "propre" avant la partie "body" dans index.php

Support et assistance sur les templates Joomla! 1.0.x, design html et css.

Moderators: Aidan38, sarki

Forum rules
Règles du forum
Locked
User avatar
Bigjoom
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Oct 22, 2007 1:22 am
Location: Montréal, Québec, Canada

[réglé] Codes "propre" avant la partie "body" dans index.php

Post by Bigjoom » Wed Oct 24, 2007 2:46 am

Bonjour,

J’ai analysé plusieurs dizaines de fichier index.php de template gratuit que je me suis procuré ici et là sur le net.
Mon but est de me créer un modèle de code « propre » d’introduction du fichier index.php
(que je pourrais copier/coller par la suite pour toutes mes créations personnelles de template)

En première partie, avant la section « head » presque tous les templates possèdent les mêmes lignes de code qui sont :


';?>



Il n’y a que le “explode” qui est pratiquement toujours remplacé par “split”, mais récemment ouly ma suggérer de remplacer le « split » par « explode ».

Mis à part ce détail, tous les template sont pratiquement identiques pour cette partie, alors je la conserve comme ceci.

Dans la partie « head » maintenant, je remarque 3 premières lignes qui sont aussi toujours présentes et inscrites comme suit :

id ) { initEditor(); } ?>

" />


Alors, je conserve ces dernières comme ci-haut.

Par contre, pour ce qui est de la référence à la feuille de style, là j’ai observé plusieurs variantes….

Certaine plus simple comme :

/css/template_css.css" />

Et d’autre plus complexe comme :

" ; ?>

Parfois suivis de cette dernière pour faire référence à un flavicon j’imagine :

" ; ?>

Certaine autre comporte  également cette ligne HTML des plus simple que je connais bien:



J’ai l’impression que le fait d’incorporer plusieurs de ces codes simultanément n’est pas approprié ou pas très « propre »
....Mais toutes fonctionnent !

Devrais-je utiliser la ligne HTML simple ou une des autres? Qu’elle est le mieux ?


Pourriez-vous développer à ce sujet et poster un modèle par défaut avec des lignes de code « propre » S.V.P
Comme par exemple :


';?>




id ) { initEditor(); } ?>

" />

/css/template_css.css" />

" ; ?>
" ; ?>







(mais ans erreur et sans les lignes qui ont une même fonction et qui sont donc non nécessaires)

Merci d'avance !
Last edited by Bigjoom on Fri Nov 30, 2007 2:16 pm, edited 1 time in total.
Bigjoom

User avatar
ouly
Joomla! Ace
Joomla! Ace
Posts: 1074
Joined: Sun Aug 21, 2005 9:18 pm
Contact:

Re: Codes "propre" avant la partie "body" dans index.php

Post by ouly » Wed Oct 24, 2007 6:26 am

Bigjoom wrote: Par contre, pour ce qui est de la référence à la feuille de style, là j’ai observé plusieurs variantes….

Certaine plus simple comme :

/css/template_css.css" />
Dans le cas présent, ils ont probablement défini une constante _TEMPLATE_URL au début du template.
Bigjoom wrote: Et d’autre plus complexe comme :

" ; ?>
Code propre :

Code: Select all

<?php echo "<link rel=\"stylesheet\" href=\"{$mainframe->getCfg( 'live_site' )}/templates/{$mainframe->getTemplate()}/css/template_css.css\" type=\"text/css\"/>" ; ?>
Ou :

Code: Select all

<link rel="stylesheet" href="<?php echo $mainframe->getCfg( 'live_site' ); ?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/template_css.css" type="text/css"/>
Bigjoom wrote: Parfois suivis de cette dernière pour faire référence à un flavicon j’imagine :

" ; ?>
Déjà ajouté par Joomla!... A supprimer.
Bigjoom wrote: Certaine autre comporte  également cette ligne HTML des plus simple que je connais bien:

URL relative ? Je suis sceptique que cela fonctionne avec une extension SEF...

Ouly


P.S. : pour poster du code, utilisez le [ code ] ... [ /code ]

User avatar
infograf768
Joomla! Master
Joomla! Master
Posts: 18870
Joined: Fri Aug 12, 2005 3:47 pm
Location: **Translation Matters**

Re: Codes "propre" avant la partie "body" dans index.php

Post by infograf768 » Wed Oct 24, 2007 7:22 am

Autre remarque :

le code

Code: Select all

echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
fait fonctionner les navigateurs en mode "quirks".

Il a été souvent utilisé dans le passé pour permettre d'utiliser des CSS communs à IE6 et IE5.5.

Il est déconseillé aujourd'hui.
Mieux vaut utiliser des définitions conditionnelles qui chargent des CSS spécifiques pour les différentes versions de IE.

Du type:

Code: Select all

<!--[if lte IE 6]>
<link href="<?php echo $mainframe->getCfg( 'live_site' ); ?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/ieonly.css" rel="stylesheet" type="text/css" />
<![endif]-->
Ceci pour Joomla 1.0.x.

Pour 1.5 le code serait du type.

Code: Select all

<!--[if lte IE 6]>
<link href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/ieonly.css" rel="stylesheet" type="text/css" />
<![endif]-->
Jean-Marie Simonet / infograf · http://www.info-graf.fr
---------------------------------
ex-Joomla Translation Coordination Team • ex-Joomla! Production Working Group

User avatar
ouly
Joomla! Ace
Joomla! Ace
Posts: 1074
Joined: Sun Aug 21, 2005 9:18 pm
Contact:

Re: Codes "propre" avant la partie "body" dans index.php

Post by ouly » Wed Oct 24, 2007 7:49 am

infograf768 wrote: Autre remarque :

le code

Code: Select all

echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
fait fonctionner les navigateurs en mode "quirks".

Il a été souvent utilisé dans le passé pour permettre d'utiliser des CSS communs à IE6 et IE5.5.

Il est déconseillé aujourd'hui.
Ah ben tiens, j'étais sûr qu'elle était obligatoire cette déclaration... Hé ben non :
http://www.w3.org/TR/xhtml1/#strict wrote:An XML declaration is not required in all XML documents; however XHTML document authors are strongly encouraged to use XML declarations in all their documents.
Comme quoi on en apprend tous les jours  ;)

User avatar
Bigjoom
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Oct 22, 2007 1:22 am
Location: Montréal, Québec, Canada

Re: Codes "propre" avant la partie "body" dans index.php

Post by Bigjoom » Wed Oct 24, 2007 8:11 am

ouly wrote: Code propre :

Code: Select all

<?php echo "<link rel=\"stylesheet\" href=\"{$mainframe->getCfg( 'live_site' )}/templates/{$mainframe->getTemplate()}/css/template_css.css\" type=\"text/css\"/>" ; ?>
Ou :

Code: Select all

<link rel="stylesheet" href="<?php echo $mainframe->getCfg( 'live_site' ); ?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/template_css.css" type="text/css"/>
Merci ouly, alors je retiens une de tes deux lignes de code « propres » pour faire appel à la feuille de style
ouly wrote: P.S. : pour poster du code, utilisez le [ code ] ... [ /code ]
Oups, désolé, je n’y avais pas pensé, excuse-moi  :-[
infograf768 wrote: Autre remarque :

le code

Code: Select all

echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
fait fonctionner les navigateurs en mode "quirks".

Il a été souvent utilisé dans le passé pour permettre d'utiliser des CSS communs à IE6 et IE5.5.

Il est déconseillé aujourd'hui.
Merci pour cette remarque infograf768, en effet c’est déjà tout un casse-tête de faire du CSS qui soit géré de façon identique entre les différents navigateurs que si mes pages sont interprétées en mode « quirk » ça va être encore pire.
Avec le bon « doctype », de nos jours, je remarque que les différences de restitution entre par exemple IE6, IE7 et Firefox v2.0.0.8 sont maintenant très minimes. (bien sûr, si on délaisse certains types de déclaration CSS mal gérés)

Par contre, je n’ai pas vraiment envie de commencer à faire deux fichiers CSS différents, je débute avec Joomla et je m’enligne pour des template « simple » sans artifice et totalement « tableless ».

Je sais bien qu’il est utopique de penser que tous les navigateurs interpréteront correctement, mais si je veux seulement faire un fichier CSS unique et que mes pages ne soit pas interprétées en mode « quirks », mais plutôt en fonction du « doctype transitionel », quel code dois-je utiliser alors ?

merci
Bigjoom

User avatar
Bigjoom
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Oct 22, 2007 1:22 am
Location: Montréal, Québec, Canada

Re: Codes "propre" avant la partie "body" dans index.php

Post by Bigjoom » Wed Oct 24, 2007 8:18 am

ouly wrote:......
Ah ben tiens, j'étais sûr qu'elle était obligatoire cette déclaration... Hé ben non......

....Comme quoi on en apprend tous les jours  ;)
Moi je débute avec Joomla, mais pour ce qui est du HTML/CSS avec des sites statique, je me débrouille un peu et j'ai remarqué que très peu de personnes en fait savent et/ou prennent la peine d'inclure la déclaration du doctype dans leur code HTML!

Il suffit de regarder la source de nombreux site web !

pourtant, même en site statique, cette déclaration est très utile, car elle influe sur l'interprétation des navigateurs

..Si la déclaration du doctype n'est pas là. ils se mettent automatiquement en mode "quirk"
Bigjoom

User avatar
Bigjoom
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Oct 22, 2007 1:22 am
Location: Montréal, Québec, Canada

Re: Codes "propre" avant la partie "body" dans index.php

Post by Bigjoom » Wed Oct 24, 2007 8:29 am

Hey, je viens de remarquer un truc, infograf768 tu dis que le code :

Code: Select all

 echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
Fera interpréter les navigateurs en mode « quirk » mais pourtant, tous de suite après ce code, il y a bien la déclaration suivante :

Code: Select all

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
Pour moi qui suis habitué avec des sites statiques, cette dernière déclaration est suffisante pour faire correctement interpréter les navigateurs en mode transitionnel !

Le premier code annule donc la déclaration du doctype ?

Je suis un peu confus là  ???
Bigjoom

User avatar
infograf768
Joomla! Master
Joomla! Master
Posts: 18870
Joined: Fri Aug 12, 2005 3:47 pm
Location: **Translation Matters**

Re: Codes "propre" avant la partie "body" dans index.php

Post by infograf768 » Wed Oct 24, 2007 8:49 am

Lire ici:
http://4thenextstep.com/forum/YaBB.pl?num=1175441529/0
XML Declaration
If you’re like me and regularly look at other folks’ code you might run across someone using an XML declaration in their source. This is a line of code before the DTD that looks like this:

Code:






It’s an optional tag and I’d suggest against using it since it can have some undesirable results in various browsers depending on your markup. Some browsers read this and automatically render your page in Quirks mode, even if your DTD states otherwise. Another error associated with it is that a browser might render your markup as text and yet another is that it’ll render it as an XML tree. So since there’s doubt, I’d leave it out.
Et aussi http://www.456bereastreet.com/archive/2 ... owser_css/
16. February 8, 2006 by Emil Stenström

    @LakTEK: Transitional makes it render in quirks mode. There's one exception and that's IE5 which will render in standards mode if you supply an URL. That's one of the reasons it's always better to go with strict right away.
17. February 8, 2006 by some1else

    I wish IE7 never gets shipped.
18. February 8, 2006 by Roger Johansson

    Emil: Oops. Embarrassing typo, that. All fixed now.
19. February 8, 2006 by Martin Kliehm

    You are right that the box model had been fixed in IE6 in strict mode. Alas the XML prolog bug prevents XHTML pages to go into strict mode, so XHTML pages in IE6 are always rendered in quirks mode with the screwed box model!

        This switch [the correct doctype declaration] had to be the first line of a page. Sadly the XML prolog required the same and most authors using the XML prolog would add it before the strict type switch. This caused IE6 to ignore the author's intention and IE6 would render the page in quirks mode rather than strict.

    I only found out about it recently. Argggghhhhh! Must ... kill ... IE developers!
Last edited by infograf768 on Wed Oct 24, 2007 8:52 am, edited 1 time in total.
Jean-Marie Simonet / infograf · http://www.info-graf.fr
---------------------------------
ex-Joomla Translation Coordination Team • ex-Joomla! Production Working Group

User avatar
Bigjoom
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Oct 22, 2007 1:22 am
Location: Montréal, Québec, Canada

Re: Codes "propre" avant la partie "body" dans index.php

Post by Bigjoom » Wed Oct 24, 2007 9:20 am

Ok, je viens de piger !

Depuis quelque temps, (avant de connaitre Joomla) je me pratiquais avec  du CSS et du XHTML et je déclarais en mode « strict » dans des pages statiques.

Maintenant que je pratique avec Joomla et que ce dernier est encore incapable de généré des pages entièrement conformes à la norme « strict », c’est pourquoi la déclaration du doctype est en « transitional » dans tous les templates et, de ce fait, correspond au mode « quirk » et au code d’ont tu faisais mention plus haut, donc tout est ok pour moi avec ce ce dernier code.

Par contre, ceci m’amène à une autre question….

… je ne veux pas engager de polémique à propos de l’utilisation ou non des tableaux ou des « DIV », mais je vois partout, ici et là que c’est préférable de faire sa page index.php avec le moins de tableaux possible (plutôt utiliser l’emboitement des DIV )

Mais je remarque que même si je fais une page de code entièrement sans tableaux, il restera toujours certain truc que Joomla génèrera avec des tableaux dans les pages générées en sorties (et ce, même si j’utilise le

Code: Select all

$style = -2
(format  XHTML-Joomla!.)

Alors, l’intérêt de ne pas utiliser des tableaux en est amoindri à mon sens

Vous en pensez quoi vous tous ?
Bigjoom

User avatar
ouly
Joomla! Ace
Joomla! Ace
Posts: 1074
Joined: Sun Aug 21, 2005 9:18 pm
Contact:

Re: Codes "propre" avant la partie "body" dans index.php

Post by ouly » Wed Oct 24, 2007 10:16 am

IE accepte le doctype uniquement s'il se trouve tout au début du document.
Etant donné que le prologue XML définit que la déclaration XML précède la déclaration du doctype, il n'est pas possible de satisfaire les deux :

[quote="http://blog.alsacreations.com/2006/10/2 ... -ou-quirks"]En effet, IE 6.0 passe en mode Quirk dans les cas suivants :

    * une page HTML sans DOCTYPE (donc non valide),
    * une page HTML Frameset ou Transitionnel avec un DOCTYPE tronqué (sans URL de la DTD),
    * une page HTML qui contient n'importe quel caractère avant la DTD,
    * une page HTML avec une DTD d’une version de HTML inférieure à la version 4,
    * une page avec un DOCTYPE XHTML précédé du prologue XML (prologue inutile pour une page xhtml servie en text/html),
[/quote]

Le mode quirk ne se réfère pas au doctype transitional :
[quote="http://en.wikipedia.org/wiki/Quirks_mode"]Quirks mode refers to a technique used by some web browsers for the sake of maintaining backwards compatibility with web pages designed for older browsers, instead of strictly complying with W3C and IETF standards in standards mode.[/quote]

User avatar
Bigjoom
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Oct 22, 2007 1:22 am
Location: Montréal, Québec, Canada

Re: Codes "propre" avant la partie "body" dans index.php

Post by Bigjoom » Thu Oct 25, 2007 1:42 am

Bonjour,

Officiellement non, le mode « quirk » ne se réfère pas au « transitional », tu a raison, le DTD n’est qu’une norme de recommandation de la W3C, mais en pratique ont peut presque dire que oui, car sur le même site que tu cites, dans une autre page, on mentionne le phénomène du « doctype switching » :

[quote="http://css.alsacreations.com/Bases-et-i ... nt-choisir"]Le doctype switching, un détail imprévu, important pour le rendu]
Les DTD ont tout de même une influence sur le comportement des navigateurs modernes. Elles n'ont pas été prévues pour cela, mais c'est une "astuce" qui a été créée par les fabriquants de navigateurs pour arriver à distinguer.... [/quote]

Mais j’avoue qu’on peut interpréter de plusieurs façons et je saisis maintenant pourquoi tout ce sujet est si confus pour plusieurs personnes

Mais bref, nos échanges m'ont été instructif, car j'ai appris dans le premier lien que tu citais que...

[quote="http://blog.alsacreations.com/2006/10/2 ... -ou-quirks"]Contrairement à ce que laissent supposer certains articles et propos de designers "chevronnés" qui n’en démordent pas, Internet Explorer 6 de Microsoft interprète les dimensions CSS des pages html et xhml valides de la même manière que les autres navigateurs de même génération......

......Avec la version 6.0 d’Internet Explorer, l’interprétation des dimensions CSS des boîtes est la même que pour les autres navigateurs.....[/quote]

C'ets cool !
Bigjoom

User avatar
infograf768
Joomla! Master
Joomla! Master
Posts: 18870
Joined: Fri Aug 12, 2005 3:47 pm
Location: **Translation Matters**

Re: Codes "propre" avant la partie "body" dans index.php

Post by infograf768 » Thu Oct 25, 2007 7:05 am

C'est bien pour cette raison que précisais que fonctionner en quirk mode permettait de n'utiliser qu'un fichier CSS pour les hacks nécessaires à IE5 en forcant la version 6 à se comporter comme une 5.

Il reste néanmoins, même en mode strict, des tas de m... dans IE qui nécessitent encore des hacks, y compris dans la version 7.

Example simple: IE7 accepte le max-width, mais pas le min-width
Jean-Marie Simonet / infograf · http://www.info-graf.fr
---------------------------------
ex-Joomla Translation Coordination Team • ex-Joomla! Production Working Group

User avatar
Bigjoom
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Oct 22, 2007 1:22 am
Location: Montréal, Québec, Canada

Re: Codes "propre" avant la partie "body" dans index.php

Post by Bigjoom » Mon Oct 29, 2007 10:34 pm

Pour revenir au sujet de départ, j’ai remarqué une chose…

Si j’observe la source des pages générées par certains templates,  la toute première ligne débute parfois par la déclaration du doctype
Voici un exemple de source de page généré :

Code: Select all

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><?xml version="1.0" encoding="iso-8859-1"?><html xmlns="http://www.w3.org/1999/xhtml">
Donc le doctype étant au tout debut, la page est donc conforme à la recommandation du W3C
(puisque pour être valide, selon ouly, IE accepte le doctype uniquement s'il se trouve au tout au début du document.)

Par contre, avec certains autres template, la source des pages générées débute plutôt par la déclaration xml
Voici une exemple de source de page généré :

Code: Select all

<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
La différence entre ces deux types de page générés provient du fait que certains concepteurs de template intervertissent l’ordre des déclarations dans le marquage html suivant la fameuse ligne :

Code: Select all

<?php defined( "_VALID_MOS" ) or die( "Direct Access to this location is not allowed." ); ?>
Mais ouly mentionne également que la déclaration xml doit précéder la déclaration du doctype, et donc, qu’il est alors impossible de satisfaire les deux exigences!

Ma question est la suivante et se pose d’elle -même…

Laquelle doit-on privilégier en premier ?
Laquelle de ses deux exigences est-il le plus profitable de satisfaire ?

Doit-on faire en sorte que le doctype s’affiche en tout premier dans les pages de notre site qui seront générées?
Ou doit-on faire en sorte que ce soit la déclaration xml qui s’affiche en premier ?

Qu’elles sont les possibles avantages/désavantages de l’un face à l’autre

Merci

(P.S Désoler pour mes questions très techniques, mais j’analyse scrupuleusement tous les codes des template ainsi que leur effet sur les pages générées et j’ai le souci du détailles et la soif d’apprendre)
Bigjoom

User avatar
ouly
Joomla! Ace
Joomla! Ace
Posts: 1074
Joined: Sun Aug 21, 2005 9:18 pm
Contact:

Re: Codes "propre" avant la partie "body" dans index.php

Post by ouly » Sun Nov 04, 2007 9:04 am

Pas de déclaration XML puisqu'elle n'est pas obligatoire : http://forum.joomla.org/index.php/topic ... msg1047844

User avatar
mejean
Joomla! Hero
Joomla! Hero
Posts: 2716
Joined: Thu Aug 18, 2005 12:28 pm
Location: viewforum.php?f=19
Contact:

Re: Codes "propre" avant la partie "body" dans index.php

Post by mejean » Tue Nov 20, 2007 2:58 pm

[réglé] ou pas ?
Jérôme Bussière - simple utilisateur
www.cardabelle.net

User avatar
Bigjoom
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Oct 22, 2007 1:22 am
Location: Montréal, Québec, Canada

Re: Codes "propre" avant la partie "body" dans index.php

Post by Bigjoom » Fri Nov 30, 2007 2:12 pm

oups désolé

....réglé !

Merci à tous !
Bigjoom


Locked

Return to “1.0 - Templates et design”