[spip-dev] ! page.php3?fond=...

Salut,

Bon, ça n'est pas le développement informatique du siècle, mais je le passe sur spip-core pour la documentation...

=> Le fichier "page.php3", à la racine du site, est un appel de squelette, dont le $fond n'est pas défini; ce fond peut donc être passé en URL d'appel.

=> L'idée étant de pouvoir livrer des squelettes complets installés dans des sous-dossiers de /squelettes, il n'est pas possible de demander, pour chaque squelette, de créer des fichiers à la racine pour appeler des squelettes spécifiques. Le fichier "page.php3" est destiné à être utilisé pour tous ces squelettes qui n'ont pas de fichier d'appel en propre (comme "article.php3" pour les articles, etc.).

Ainsi:

- si on a besoin d'un affichage spécial des articles (par exemple...), on peut créer un squelette
/squelettes/monsquelette/monarticlespecial.html
pour faire fonctionner ce squelette, on peut ainsi l'appeler par l'URL:
page.php3?fond=monarticlespecial&id_article=12

- même principe, certainement plus fréquent, pour les fichiers inclus (<INCLURE>), quand on découpe sa mise en page en petits fichiers (un squelette pour le titre en haut, un squelette pour la navigation, un squelette pour la colonne de gauche...). On peut ainsi faire:
<INCLURE(page.php3){fond=colonnegauche}{id_article}>

ARNO*

ARNO* a écrit :

Salut,

- même principe, certainement plus fréquent, pour les fichiers inclus (<INCLURE>), quand on découpe sa mise en page en petits fichiers (un squelette pour le titre en haut, un squelette pour la navigation, un squelette pour la colonne de gauche...). On peut ainsi faire:
<INCLURE(page.php3){fond=colonnegauche}{id_article}>

Sur ce point, c'est pas pas forcément utile.
En effet, j'ai constaté que si le .php3 du INCLURE est dans le dossier du squelette, ça passe.

Jacques

ARNO* wrote:

Le fichier "page.php3", à la racine du site, est un appel de squelette,
dont le $fond n'est pas défini; ce fond peut donc être passé
en URL d'appel.

...

On peut ainsi faire:
<INCLURE(page.php3){fond=colonnegauche}{id_article}>

Bonjour,
D'après mes essais cela malheureusement ne marche pas pour <INCLURE>
Je reçois l'erreur : "Erreur(s) dans le squelette Aucun squelette n'est
disponible...,"

Je vois une bonne utilité pour ce fichier avec <INCLURE>; j'aimerais faire:

<BOUCLE_addendum(MOTS){type=addendum}>
    <INCLURE(page.php3){fond=#TITRE}{...}> -->
</BOUCLE_addendum>

Paolo

Hello,
je reposte ce message parti par erreur en direct à ARNO* (désolé, toutes mes confuses ...)

Pour le inclure, j'ai fait la meme chose avec un bloc.php3 dans le repertoire squelettes (qui peut facilement se proteger d'un appel direct).
Ca donne un truc comme ca (auquel il faut ajouter les petits tests de page.php3 histoire de limiter les risques et eventuellement mettre les "blocs" dans un sous repertoire ajouté "en dur") :
$fond = $contexte_inclus['bloc_fond'];
if ($contexte_inclus['bloc_delais']) $delais = $contexte_inclus['bloc_delais'];
include ("inc-public.php3");

avec comme appel dans les squelettes :
<INCLURE (bloc.php3){id_article}{bloc_fond='mon_bloc'}>

Ca fait des beaux squelettes au final, tres propre ...

Le point d'entrée direct à n'importe quel squelette, c'est pas un peu risqué ?

@++

Paolo a écrit :

Stephane wrote:

$fond = $contexte_inclus['bloc_fond'];

Merci, Stephane!
Si dans le fichier page.php3 je remplace la ligne
    $fond = $_GET["fond"];
par
    $fond = $contexte_inclus['fond'];

(y a-t-il nécessité de donner un autre nom à "fond" ?)

tout marche pour l'<INCLURE>.

Cela va m'être assez utile.
Paolo