[spip-dev] xhtml, bdd, langues

Bonjour,

J'aurais quelques propositions pour l'évolution de SPIP.
Vous pourriez les prendre en compte,
les inscrire dans todo.txt.

- Faire en sorte que tous le code html produit par SPIP
soit du xhtml 1.
En particulier les inclusions dans les squelettes (sur ordres
de <BOUCLE>) doivent être en xhtml pour que les sites web
soient en xhtml entièrement. (http://www.openweb.eu.org/)

- Quelles bases de données peuvent fonctionner avec SPIP ?
Est-ce lié à ecrire\inc_db_mysql.php3 ?

- Y aura il dans la version 1.6 une liste des langues de SPIP,
avec leur code (exemple : fr), leur nom (Français ou française),
leur nom en anglais (French ou french), leur nom en français
(Français ou française).
Cela pourrait être ecrire/lang/lang-list.txt
ou un encadré dans la partie administration ou autre.
Dans le deuxième cas cela pourrait être inscirt
avec la liste des différentes versions (selon la langue)
de la partie administration utilisables.

- Faire en sorte que tous le code html produit par SPIP
soit du xhtml 1.

Qu'est-ce qui te manque pour ça ? Nous avons repéré un problème avec les
intertitres, je crois, mais c'est tout. (PS: c'est une question récurrente,
et personne n'a jamais clairement explicité les problèmes - ni même, a
fortiori, les correctifs à apporter...)

- Quelles bases de données peuvent fonctionner avec SPIP ?

MySQL seulement. Certaine société a développé un patch permettant de
fonctionner avec d'autres bases de données, je crois, mais, si j'ai bien
compris, il ne fonctionne qu'avec php4 et il n'a pas été rendu public.

Est-ce lié à ecrire\inc_db_mysql.php3 ?

Euh, oui, en partie :wink:

- Y aura il dans la version 1.6 une liste des langues de SPIP,

Cette liste se trouve dans ecrire/inc_lang.php3 ; fonction
traduire_nom_langue() ; elle comprend le nom de chaque langue dans la langue
elle-même ("arabe" est écrit en langue arabe, par exemple, et pas en
français). Les "langues de spip" dépendent simplement des fichiers
spip_xx.php3 qui se trouvent dans ecrire/lang/ ; si tu veux ajouter une
langue, ajoute un fichier, si tu veux en supprimer une supprime le fichier
correspondant.

Si on veut avoir cette liste (celle donnée dans traduire_nom_langue()) dans
toutes les langues, on va rapidement être débordés : pour 10 langues ça fait
100 lignes de traduction, pour 5000 langues il en faudra 25 millions :wink:
J'exagère un peu, certes, mais c'est comme ça qu'on a raisonné : cela permet
à SPIP de fonctionner avec des fichiers de langues qui sont indépendants
entre eux.

-- Fil

Moi je cherche seulement à faire du 4.01 transitional valide et il y a
par exemple des pbms avec les <p> dans le code généré. Une ligne comme
:

<p class="spip"><ol class="spip"><li class="spip">liste
numérotée</li><li class="spip">liste numérotée</li><li
class="spip">liste numérotée</li></ol></p>

ne passe pas : "Line 147, column 153: end tag for element "P" which is
not open"

Sur EcoParis (1.6a5 CVS) j'arrive à peu près à tout valider mais j'ai
dû modifier une bonne partie des <p> en <div> dans ecrire/inc_texte en
ajoutant un <br /> après les <div> pour retrouver les espacements.

Autre pbms notés :

- il y a pas mal de border='0' qui trainent (cela passe en 4.01
transitional mais pas dans les normes suivantes) ;

- idem pour les hspace vspace pas reconnus en 4.01 strict ;

- tous les <br> devraient être fermés <br /> en xhtml

...

Liste bien entendu pas exhaustive. our le moment je reste sur la cvs
modifiée et j'attends la 1.6 finale pour refaire une version qui
produit du 4.01 transitional valide. Je ferai une liste plus précise
des modifs apportée.

Autrement je n'ai pas retrouvé le if (strlen($val) > 3) dans
inc-calcul-squel.php3 de la 1.6pr1 que je passe à 2 pour autoriser les
recherches sur les mots de 3 lettres... la nouvelle version le
fait-elle directement... je crois avoir vu passer qque chose là-
dessus ? si tel est est le cas il faudrait penser à faire la modif
également dans inc_surligne.php3

Cordialement

<p class="spip"><ol class="spip"><li class="spip">liste
numérotée</li><li class="spip">liste numérotée</li><li
class="spip">liste numérotée</li></ol></p>

ne passe pas : "Line 147, column 153: end tag for element "P" which is
not open"

Oui, si on cherche la petite bête :wink:

Autrement je n'ai pas retrouvé le if (strlen($val) > 3) dans
inc-calcul-squel.php3 de la 1.6pr1 que je passe à 2 pour autoriser les
recherches sur les mots de 3 lettres... la nouvelle version le
fait-elle directement... je crois avoir vu passer qque chose là-
dessus ?

Oui, c'est indiqué dans le message de mise à jour. Les mots de 3 lettres en
majuscules sont indexés.

si tel est est le cas il faudrait penser à faire la modif
également dans inc_surligne.php3

Oui.

-- Fil

Moi je cherche seulement à faire du 4.01 transitional valide et il y a
par exemple des pbms avec les <p> dans le code généré. Une ligne comme
:

<p class="spip"><ol class="spip"><li class="spip">liste
numérotée</li><li class="spip">liste numérotée</li><li
class="spip">liste numérotée</li></ol></p>

ne passe pas : "Line 147, column 153: end tag for element "P" which is
not open"

Pourtant dans l'extrait que tu cites, le <p> est bien ouvert puis refermé ?!

Oui, si on cherche la petite bête :wink:

... le validateur w3c a effectivement une fâcheuse tendance à chercher
les petites bêtes :slight_smile:

Oui, c'est indiqué dans le message de mise à jour. Les mots de 3 lettres en
majuscules sont indexés.

sorry j'avais laissé passé l'info

Merci, cordialement

Oui le message du validateur est pour le moins ambigu... d'autant plus
qu'en 4.01 la balise de fermeture </p> n'est qu'optionnelle.

En fait je pense que cela vient plutôt du fait que (je cite la norme)
:

"The P element represents a paragraph. It cannot contain block-level
elements (including P itself)."

http://www.w3.org/TR/html4/struct/text.html#h-9.3.1

et je pense qu'<ul>, <ol>, etc. sont justement des block-level
elements... un spécialiste pourrait certainement confirmer

Cordialement

Oui c'est marqué dans la DTD HTML 4

comme <p> n'a pas besoin d'être fermé, l'ouverture de <ul> ferme implicitement <p> et le </p> n'a effectivement pas de correspondance

Cordialement

"Fil" <fil@rezo.net> a écrit dans le message news:
20030419141127.GA16627@rezo.net...

> - Faire en sorte que tous le code html produit par SPIP
> soit du xhtml 1.

Qu'est-ce qui te manque pour ça ? Nous avons repéré un problème avec les
intertitres, je crois, mais c'est tout. (PS: c'est une question

récurrente,

et personne n'a jamais clairement explicité les problèmes - ni même, a
fortiori, les correctifs à apporter...)

Sans aller jusqu'au xhtml, j'ai repéré (dans la version 1.6pr1) un petit
problème avec un raccourci SPIP de type <img3|center> en utilisant tidy pour
valider le HTML4.0:

*** dans le code html fabriqué:
     <div class="texte"><p class="spip"><p align='center'><img
src='IMG/jpg/triple.jpg' border=0 width='345' height='121' align='center'
hspace='5' vspace='3'></p> <br> </p>
*** les erreurs (warning) trouvées par tidy:
<img> attribute "align" has invalid value "center"
<img> lacks "alt" attribute
inserting implicit <br>
replacing element </p> by <br>
trimming empty <p>

*** ce que dit le w3c:
align = bottom|middle|top|left|right
Deprecated. This attribute specifies the position of an IMG, OBJECT, or
APPLET with respect to its context.

The alt attribute must be specified for the IMG and AREA elements. It is
optional for the INPUT and APPLET elements.

*** mon commentaire sur "alt"
dans le fichier "inc_documents.php3", il serait possible d'insérer une
clause "else" pour avoir un attribut "alt" vide, après la ligne 109, et
après la ligne 199
else { $vignette .= " alt=\"\" title=\"\""; }

*** mon commentaire sur l'attribut align
la variable $align provient si je ne me trompe pas de inc_texte.php3, ligne
618.
La valeur attendue est left ou center ou right.
Les lignes 203 à 208 pourraient être modifiées pour ne pas inclure
l'attribut si $align vaut center, mais aussi pour éviter d'inclure une
balise <p> si $align vaut center, en la remplaçant par <div>.

Désolé,
dans le code que j'indique, il traine un </p> dans $vignette = "<div
align='center'>$vignette</p>";
il faut le remplacer par </div>, soit: $vignette = "<div
align='center'>$vignette</div>";

"Yves Grenier" <Grenier.Yves@wanadoo.fr> a écrit dans le message news:
b7unpu$tgo$1@main.gmane.org...