[spip-dev] instruction spip pour include

Bonjour Pierre,

> comme l'include me manquait vraimment et que

l'astuce 'par le web' (cf.

> mail d'Arno, ne fonctionne pas chez tous les hébergeurs)

ne me plaisait

> qu'à moitié, j'ai fini par rajouter une fonction

d'include directement à

> spip.

Déjà développée par David <david@nfet.net> et postée ici

même le 2

janvier. La fonction marche très bien.

Je devais pas encore être abonnée à la ml.
Dommage de l'avoir pas dit plus tot, il me semble que la
question a été soulevée plusieurs fois sur la ml utilisateurs.
Pourquoi la fonction n'avait-elle pas été intégrée à
l'époque ? à cause des problèmes d'include récursif ou
d'include multiple du même fichier (cf. mails d'hiers à ce
sujet) ou tout simplement par ce qu'elle ne présenterait pas
un intéret suffisant ?
Si quelqu'un peut me faire suivre les messages importants de
la discussion qui avait du avoir lieu à cette occasion ça
serait cool, que je revienne pas avec des modifs de ma
fonction qui aient aussi déjà été faites... J'ai cherché sans
succès sur les archives browsables de la ml utilisateurs mais
ça devait être sur celle de dvp.

merci

Pierre

-- BohwaZ

---- MESSAGE ORIGINAL ----

**
To: <spip-dev@rezo.net>
Subject: [spip-dev] fonction Include dans les squelettes
From: "David" <david@nfet.net>
Date: Wed, 2 Jan 2002 13:21:56 +0100
**

Bonjour, Voila, il me manquais une fonctionnalité quand j'ai

voulu

créer un squelette pour spip : la possiblilté d'inclure un

squelette

dans un autre.

Pour par exemple créer un menu avec mes rubriques qui soit

toujours le

meme dans les différents squelettes (article, sommaire,

etc.) Donc

voici une fonction qui fait ca, de façon récursive. Elle ne

devrais pas

ralentire le traitement quand elle n'est pas utilisée...

fichier : inc-calcul-squel.php3

function parser_include($texte) {
$result = '';
while ($texte) {
    if (($p=strpos($texte, '<INCLUDE')) === false) {
    $result.=$texte;
    $texte = "";
   } else {
     $result .= substr($texte, 0, $p);
     $f = strpos($texte, '>', $p);
     $incl = substr($texte, $p, $f - $p + 1);
   if ($r = ereg('<INCLUDE[[:space:]]*([^>]*)>', $incl,

$regs)) {

     $result .= parser_include(implode("", file($regs[1])));
    }
    $texte = substr($texte, $f + 1);
   }
}
return $result;
}

Pour que ca fonctionne il faut l'appeler avant tout

traitement sur le

squelette donc je l'ai rajoutée au début de la fonction :

function parser_texte($texte, $id_boucle) {
global $boucles;
$i = 0;
$texte = parser_include($texte);

...

Pour l'utilisation : dans un squelette, je met :
<INCLUDE monfichier.html> tout simplement

_______________________________________________
spip-dev@rezo.net -

http://listes.rezo.net/mailman/listinfo/spip-dev

"Accédez au courrier électronique de La Poste : www.laposte.net ; 3615 LAPOSTENET (0,13 €/mn) ; tél : 08 92 68 13 50 (0,34€/mn)"

Bonjour pierre.rust,

Déjà développée par David <david@nfet.net> et postée ici même le 2
janvier. La fonction marche très bien.

Je devais pas encore être abonnée à la ml.

Voui, sûrement.

Dommage de l'avoir pas dit plus tot,

Je voulais mais j'avais finit par oublier.

il me semble que la
question a été soulevée plusieurs fois sur la ml utilisateurs.
Pourquoi la fonction n'avait-elle pas été intégrée à
l'époque ? à cause des problèmes d'include récursif ou
d'include multiple du même fichier (cf. mails d'hiers à ce
sujet) ou tout simplement par ce qu'elle ne présenterait pas
un intéret suffisant ?

A cause des problèmes cités par ARNO*:
- Includes récursifs
- Problèmes noms de boucles (mais est-ce vraiment un problème?)
- Possibilité de passer des paramètres au fichier inclus, de type
<INCLUDE "skel.php3?id_article=xx">

En fait le principal obstacle est que les trois mousquetaires de Spip
désiraient une fonction Include qui permettrait que par exemple tu ai
un article recalculé tous les trois mois qui contient des fichiers
inclus qui eux sont recalculés toutes les heures.

Donc Spip n'a pas à recalculer tout l'article mais seulement les
éléments inclus, gain de temps et de performances.

Si quelqu'un peut me faire suivre les messages importants de
la discussion qui avait du avoir lieu à cette occasion ça
serait cool, que je revienne pas avec des modifs de ma
fonction qui aient aussi déjà été faites... J'ai cherché sans
succès sur les archives browsables de la ml utilisateurs mais
ça devait être sur celle de dvp.

C'est sur la liste de dev, début janvier:
- http://listes.rezo.net/mailman/listinfo/spip-dev

Mais si tu fait une recherche sur "include" t'aura plus d'infos.

à++

-- BohwaZ

En réponse à "Dioxyde.org" <dioxyde@free.fr>:

- Possibilité de passer des paramètres au fichier inclus, de type
<INCLUDE "skel.php3?id_article=xx">

En fait le principal obstacle est que les trois mousquetaires de Spip
désiraient une fonction Include qui permettrait que par exemple tu ai
un article recalculé tous les trois mois qui contient des fichiers
inclus qui eux sont recalculés toutes les heures.

Donc Spip n'a pas à recalculer tout l'article mais seulement les
éléments inclus, gain de temps et de performances.

Je rebondis et je poursuis sur mes réflexions sur le multilinguisme...

Avoir des pages avec des articles en plusieurs langues suivant la configuration
de l'utilisateur pose des problèmes de cache (les configurations risquant
d'êtres toutes différentes, les articles à afficher sur la pages seront
différents - le cache perd toute utilité)

Du coup, un système d'inclusion à plusieurs niveaux où les sous-niveaux sont
dans le cache et certains autres (intermédiaires) non, résoud ce problème.

Faut "juste" adapter le fonctionnement du cache...

nst qui va poursuivre sa lecture du code pour comprendre.

From valerie@atelier-ecriture.com Fri Mar 8 15:56:21 2002

Return-Path: <valerie@atelier-ecriture.com>
Received: from mel-rto7.wanadoo.fr (smtp-out-7.wanadoo.fr [193.252.19.26])
  by miel.brainstorm.fr (Postfix) with ESMTP id 6BCD81CB64
  for <spip-dev@rezo.net>; Fri, 8 Mar 2002 15:56:21 +0100 (CET)
Received: from mel-rta4.wanadoo.fr (193.252.19.58) by mel-rto7.wanadoo.fr;
  8 Mar 2002 15:56:21 +0100
Received: from london (217.128.251.26) by mel-rta4.wanadoo.fr;
  8 Mar 2002 15:55:36 +0100
Message-ID: <009a01c1c6b0$e6e20380$0100a8c0@mshome.net>
References: <3c890ca7.30cd.0@australia.edu>
MIME-Version: 1.0
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4133.2400
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
Sender: spip-dev-bounces@rezo.net
Errors-To: spip-dev-bounces@rezo.net
X-BeenThere: spip-dev@rezo.net
X-Mailman-Version: 2.1a4+
Precedence: bulk
List-Help: <mailto:spip-dev-request@rezo.net?subject=help>
List-Post: <mailto:spip-dev@rezo.net>
List-Subscribe: <http://listes.rezo.net/mailman/listinfo/spip-dev&gt;,
  <mailto:spip-dev-request@rezo.net?subject=subscribe>
List-Id: SPIP : developpement <spip-dev.rezo.net>
List-Unsubscribe: <http://listes.rezo.net/mailman/listinfo/spip-dev&gt;,
  <mailto:spip-dev-request@rezo.net?subject=unsubscribe>
List-Archive: Discuter chez rezo.net
X-List-Received-Date: Fri, 08 Mar 2002 14:56:21 -0000
Status: O
Content-Length: 1985
Lines: 61

Bonjour à tous

Je rebondis sur ce message, car je trouve que c'est une excellente idée.
Une internationalisation est-elle prévue ? Si oui, comment ?
Je propose mes services pour la traduction français-anglais, si on me dit
comment on l'intègre... (une simple traduction des fichiers en double me
parait carrément casse-pied à maintenir, donc quelle solution peut-on
envisager ? Y a t-on déjà réfléchi ?)