SPIP 2.0: $forcer_lang=true; et <INCLURE(head.php3){lang}>

Bonjour,

Je fait fonction de webmaster d'un site multi(bi)-lingue qui tourne plustôt bien en 1.9.2 mais qui ne semble, pour une raison encore inconnue, pas vouloir migrer en 2.0.2.

J'ai l'impression que:
* d'une part mon "<? $forcer_lang=true; ?>" n'est pas mis au bon endroit pour être interprété
* d'autre part la syntaxe "<INCLURE(head.php3){lang}>" ne fonctionne plus (ou décide de chercher un fichier .php au lieu de .php3).

Est-ce que quelque chose a fondamentallement changé dans le multilinguisme? Est-ce que quelqu'un a une documentation sur comment je suis supposé faire... ou devine où je me suis trompé?

Où devrait se trouver la commande "$forcer_lang=true"?

Quel est la syntaxe de "INCLURE" pour passer le contexte de langue?

Où doivent se trouver mes fichiers d'inclusion (dans la racine ou dans squelette)?

Où est-ce que je dois les dupliquer avec l'extension .php tout en conservant les .php3 dans la racine pour la compatibilité avec les liens connus dans google?

Merci d'avance.

David GLAUDE

PS:

Mon sommaire.html
[[[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="#LANG">
<head>
<INCLURE(head.php3){lang}>
</head>
]]]

Donne en ligne le résultat suivant:
[[[
<?
$forcer_lang=true;
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr">
<head>
<!-- Erreur INCLURE(head.php) -->
</head>
]]]

J'ai déjà un début de réponse et j'espère que cela peut servir à d'autres.

David Glaude wrote:

Bonjour,

Je fait fonction de webmaster d'un site multi(bi)-lingue qui tourne plustôt bien en 1.9.2 mais qui ne semble, pour une raison encore inconnue, pas vouloir migrer en 2.0.2.

J'ai l'impression que:
* d'une part mon "<? $forcer_lang=true; ?>" n'est pas mis au bon endroit pour être interprété
* d'autre part la syntaxe "<INCLURE(head.php3){lang}>" ne fonctionne plus (ou décide de chercher un fichier .php au lieu de .php3).

En effectuant une copie de mes fichiers "*.php3" en fichier "*.php" pour tous ce qui est à inclure, j'obtient les inclusions nécessaires et la mise en page du site revient. Et apparement, ces fichiers ne doivent se trouver que dans le répertoire squelette et pas ailleur (certain de ces fichier se trouvait dans la racine).

Je suppose que je dois a terme remplacer tous mes "<INCLURE(head.php3){lang}> par des "<INCLURE(head.php){lang}> pour être cohérent.

Autre astuce, mes fichiers languages ne sont pas pris en compte et je retrouve la balise <:petition_txt:> traduite en "petition_txt".

Là aussi, en effectuant une copie de mon fichier "local_fr.php3" dans le fichier "local_fr.php" toutes mes traductions par balise <: :> reviennent.

Mais pour l'instant je cherche toujours de l'aide sur mon "forcer_lang=true" que je ne retrouve plus... mais que je trouve au dessus de toutes mes pages.

Est-ce que quelque chose a fondamentallement changé dans le multilinguisme? Est-ce que quelqu'un a une documentation sur comment je suis supposé faire... ou devine où je me suis trompé?

Où devrait se trouver la commande "$forcer_lang=true"?

Quel est la syntaxe de "INCLURE" pour passer le contexte de langue?

Où doivent se trouver mes fichiers d'inclusion (dans la racine ou dans squelette)?

Où est-ce que je dois les dupliquer avec l'extension .php tout en conservant les .php3 dans la racine pour la compatibilité avec les liens connus dans google?

Merci d'avance.

David GLAUDE

PS:

Mon sommaire.html
[[[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="#LANG">
<head>
<INCLURE(head.php3){lang}>
</head>
]]]

Donne en ligne le résultat suivant:
[[[
<?
$forcer_lang=true;
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr">
<head>
<!-- Erreur INCLURE(head.php) -->
</head>
]]]

Le 28 déc. 08 à 11:02, David Glaude a écrit :

Je suppose que je dois a terme remplacer tous mes "<INCLURE(head.php3){lang}> par des "<INCLURE(head.php){lang}> pour être cohérent.

si ton head.php3 renvoi à un squelette XXX.html, alors tu devras écrire
<INCLURE(fond=XXX) {lang}> et mettre tes XXX.html dans /squelettes (de préférence)

Claude

* dlatr tapuscrivait, le 28/12/2008 12:33:

Le 28 déc. 08 à 11:02, David Glaude a écrit :

Je suppose que je dois a terme remplacer tous mes "<INCLURE(head.php3){lang}> par des "<INCLURE(head.php){lang}> pour être cohérent.

si ton head.php3 renvoi à un squelette XXX.html, alors tu devras écrire
<INCLURE(fond=XXX) {lang}> et mettre tes XXX.html dans /squelettes (de préférence)

Avec des {} et non des () :
<INCLURE{fond=XXX} {lang}>

--
RealET

Le 28 déc. 08 à 12:44, RealET a écrit :

* dlatr tapuscrivait, le 28/12/2008 12:33:

Le 28 déc. 08 à 11:02, David Glaude a écrit :

Je suppose que je dois a terme remplacer tous mes "<INCLURE(head.php3){lang}> par des "<INCLURE(head.php){lang}> pour être cohérent.

si ton head.php3 renvoi à un squelette XXX.html, alors tu devras écrire
<INCLURE(fond=XXX) {lang}> et mettre tes XXX.html dans /squelettes (de préférence)

Avec des {} et non des () :
<INCLURE{fond=XXX} {lang}>

et oui

--
RealET

_______________

David Glaude a écrit :

Bonjour,

Je fait fonction de webmaster d'un site multi(bi)-lingue qui tourne
plustôt bien en 1.9.2 mais qui ne semble, pour une raison encore
inconnue, pas vouloir migrer en 2.0.2.

J'ai l'impression que:
* d'une part mon "<? $forcer_lang=true; ?>" n'est pas mis au bon endroit
pour être interprété
* d'autre part la syntaxe "<INCLURE(head.php3){lang}>" ne fonctionne
[...]

Bonjour

Il y a beaucoup de choses qui ont changées depuis les anciennes
versions de Spip 1.8 et 1.9, en particulier, il n'y a plus de
fichier php3.
Il va te falloir réécrire dans tes squelettes tous les appels
inclure, comme l'a précisé RealET.
Il doit y avoir un fichier lisez-moi.txt t'informant comment faire
la migration.

A bientôt
Grégoire

Merci pour votre aide sur mes inclusions de morceaux de squelette dans mon squelette de base.

Pour l'instant, cela marche avec ma syntaxe mais je vais quand même tenter de me rapprocher de la syntaxe officielle:
<INCLURE{fond=XXX} {lang}>

Par contre j'ai toujours un problème avec le "$forcer_lang=true;" qui apparait dans le code HTML généré plustôt que d'être utilisé pour calculer la page HTML à partir du squelette.

Mon sommaire.html
  [[[
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html lang="#LANG">
  ]]]

Donne en ligne le résultat suivant:
  [[[
  <?
  $forcer_lang=true;
  ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html lang="fr">
  ]]]

Pour information, ma commande "forcer_lang" se trouve dans le fichier "mes_options.php" dans le répertoire /ecrire.

Le contenu de ce fichier est:
<?php
$forcer_lang=true;
?>

Et si je rajoute un expace entre le "true" et le ";", je retrouve, après avoir vider le cache, cet espace dans les fichiers *.html généré par mon squelette...

Donc ma question pourrait concerner l'usage et la position du fichier "mes_options.php" avec SPIP 2.0. ou alors quel est l'endroit où il convient de placer mon "$forcer_lang=true;".

Encore merci

David GLAUDE

* David Glaude tapuscrivait, le 28/12/2008 18:16:

Pour information, ma commande "forcer_lang" se trouve dans le fichier "mes_options.php" dans le répertoire /ecrire.

il faut désormais placer ce fichier dans config/

--
RealET

Grégoire wrote:

Il y a beaucoup de choses qui ont changées depuis les anciennes
versions de Spip 1.8 et 1.9, en particulier, il n'y a plus de
fichier php3.

Voici un extrait de ce qui semble être un fichier de documentation de la 1.9 (UPGRADE.txt):
"
Par ailleurs, si vous aviez des fichiers personnalises (mes_options.php3, mes_fonctions.php3, fichiers de langue, ou balises dynamiques), il est temps de les renommer en ".php", et de les ranger a leur nouvelle place.

En effet, si cette version de transition (1.9) est encore compatible avec .php3, la prochaine (2.0) ne le sera pas.
"

Ceci explique une partie de mes problèmes...
Par contre je ne connais pas la nouvelle place pour le fichier "mes_options.php".

Il doit y avoir un fichier lisez-moi.txt t'informant comment faire
la migration.

Par contre, j'ai pas vraiment trouvé ce "lisez-moi.txt".

Après quelques recherches dans la liste... je me demande dans lequel des fichiers suivant il faut mettre ma ligne "$forcer_lang=true;":
* ecrire/mes_options.php
* ecrire/mes_fonctions.php
* squelette/mes_options.php
* squelette/mes_fonctions.php
(et je vous passe toutes les variantes avec .php3.

Je vais faire mes testes... mais si vous avez une réponse... merci d'avance.

David GLAUDE

RealET wrote:

* David Glaude tapuscrivait, le 28/12/2008 18:16:

Pour information, ma commande "forcer_lang" se trouve dans le fichier "mes_options.php" dans le répertoire /ecrire.

il faut désormais placer ce fichier dans config/

J'avais raté cette réponse-ci...

Mais si possible, j'aimerais que mettre cela dans squelette fonctionne afin de pouvoir avoir tous les paramètrages nécessaires au squelette dans le même répertoire.

David GLAUDE

RealET wrote:

* David Glaude tapuscrivait, le 28/12/2008 18:16:

Pour information, ma commande "forcer_lang" se trouve dans le fichier "mes_options.php" dans le répertoire /ecrire.

il faut désormais placer ce fichier dans config/

J'avais raté cette réponse-ci...

Mais si possible, j'aimerais que mettre cela dans squelette fonctionne afin de pouvoir avoir tous les paramètrages nécessaires au squelette dans le même répertoire.

David GLAUDE

* David Glaude tapuscrivait, le 28/12/2008 20:08:

RealET wrote:

* David Glaude tapuscrivait, le 28/12/2008 18:16:

Pour information, ma commande "forcer_lang" se trouve dans le fichier "mes_options.php" dans le répertoire /ecrire.

il faut désormais placer ce fichier dans config/

J'avais raté cette réponse-ci...

Mais si possible, j'aimerais que mettre cela dans squelette fonctionne afin de pouvoir avoir tous les paramètrages nécessaires au squelette dans le même répertoire.

Encore l'histoire de la poule et l'œuf...
mes_options.php permet de régler l'emplacement du dossier de squelettes.
Donc, il ne peut pas être dans l'emplacement qu'il peut définir.

--
RealET

Bonjour,

Après des essais non fructueux (dans le répertoire "ecrire" "config" et "squelette") et les noms de fichiers "mes_fonctions.php" ou "mes_options.php" (sans parler des tentatives avec ".php3") j'ai travaillé comme un sauvage (ou un cowboy c'est une question de point de vue).

En effet, j'ai placé ma ligne au début de "spip.php" le point d'entré principale du site:
<?php
$forcer_lang=true;
...

Au moins je suis plus ou moins certain que ce paramètre soit bien compris comme du php (et non insérer dans mes pages HTML) et que toutes les pages publiques aurront bien ce paramètre intégré dès le début du traitement.

David GLAUDE

RealET wrote:

* David Glaude tapuscrivait, le 28/12/2008 20:08:

RealET wrote:

* David Glaude tapuscrivait, le 28/12/2008 18:16:

Pour information, ma commande "forcer_lang" se trouve dans le fichier "mes_options.php" dans le répertoire /ecrire.

il faut désormais placer ce fichier dans config/

J'avais raté cette réponse-ci...

Mais si possible, j'aimerais que mettre cela dans squelette fonctionne afin de pouvoir avoir tous les paramètrages nécessaires au squelette dans le même répertoire.

Encore l'histoire de la poule et l'œuf...
mes_options.php permet de régler l'emplacement du dossier de squelettes.
Donc, il ne peut pas être dans l'emplacement qu'il peut définir.