Aller au contenu

[Spip] Squelette "personnalisé"


Loupilo

Sujets conseillés

Salut,

Je suis en train de monter un site sous SPIP.

J'espère qu'il sera internationalisé, même si pour l'instant il n'est prévu que le français.

Pour ce faire, j'essaie de ne pas mettre de texte brut dans mes squelettes, afin de pouvoir les traduire facilement.

Ainsi, ma page "Contact" n'est en fait qu'un article de Spip : si j'ajoute une langue, je n'aurai qu'à traduire l'article sans toucher au "dur".

Le problème, c'est que vu que c'est une page d'article, j'ai un item "Auteur", une catégorie dans le menu "Mêmes Auteurs",... Et les gens ne sont pas sensé voir ça, l'article n'est pas sensé avoir d'auteur, puisque c'est une page de contact (pareil pour l'aide, le "à propos", etc.) !

Est-il possible de faire un squelette qui ne s'appliquerait qu'à l'article n°1 et à ses éventuelles traductions, par exemple ?

J'ai essayé de créer une page "article1.html" avec le squelette désiré, mais ça ne marche pas.

Il faut peut être faire une page php Spip du type :

$fond = "article1";
$delais = 24 * 3600;

include ("inc-public.php");

Mais dans ce cas, comment indiquer que l'ID de l'article est 1+ses éventuelles traductions ?

Éventuellement, existe-t-il une meilleure solution ?

Loupilo.

Lien vers le commentaire
Partager sur d’autres sites

Salut Loupilo,

Je ne vois pas où est le problème : il te suffit tout simplement de créer une page contacter.php3 contenant ce code :

<?php
$fond = "contacter";
$delais = 24 * 3600;
include ("inc-public.php3");
?>

Et après, tu crées le fichier contacter.html avec les boucles que tu veux.

Sinon, si tu veux t'en tenir à un seul fichier d'appel, tu modifies le fichier article.php3 en indiquant le fond comme ceci :

$num = $_GET['id_article'];
if ($num==1)
$fond = "contacter";
else
$fond = "article";

Mais à mon avis cette méthode est déconseillée puisqu'elle modifie un fichier du noyau.

Au plaisir,

Ernestine

Modifié par Ernestine
Lien vers le commentaire
Partager sur d’autres sites

Salut Loupilo,

Je ne vois pas où est le problème : il te suffit tout simplement de créer une page contacter.php3 contenant ce code :

<?php
$fond = "contacter";
$delais = 24 * 3600;
include ("inc-public.php3");
?>

Et après, tu crées le fichier contacter.html avec les boucles que tu veux.

Tout d'abord, merci ;)

Mais le truc avec cette solution, c'est que je ne sais pas si les éventuelles traductions de l'article utiliseront également ce squelette (car leur id ne sera pas 1, si ?)...

Loupilo.

Lien vers le commentaire
Partager sur d’autres sites

J'avoue que je ne parle que le français (et aussi un peu le belge mais pas beaucoup) : je ne me suis donc jamais penchée sur la question d'un site multilingue. J'ai lu l'article spip qui en parle (ici), et à première vue je ne vois pas trop comment résoudre ton problème... Car en effet, les éventuelles traductions de l'article n'utiliseront pas ce quelette. Tu peux eventuellement faire un truc pas terrible : si les différentes traductions de l'article ont par exemple les numéros 1, 4 et 12 :

$num = $_GET['id_article'];
if (($num==1) || ($num==4) || ($num==12))
$fond = "contacter";
else
$fond = "article";

A toi de voir,

Ernestine

Lien vers le commentaire
Partager sur d’autres sites

N'en étant pas encore au multi-linguisme, je pense que je vais le mettre de côté pour l'instant.

Quand il sera à l'ordre du jour et près à être mis en oeuvre, je verrais ce que je peux faire...

Au pire, je créerais une nouvelle page avec un nouveau squelette, spécialement dédiés à la langue pour laquelle je les fais...

Heureusement, il n'y a que aide, articles, actualites, contact et apropos :lol:

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines plus tard...

Pour un squelette personnalisé, il y a notamment deux solutions :

- soit on crée un couple php3/html comme expliqué dans les contributions plus haut, genre contact.php3 / contact.html

- soit on crée un squelette article-xx.html, xx étant le numéro de l'article, et on personnalise donc le squelette pour cet article spécifique. Idem pour les rubriques et autres objets sauf que les rubriques filles héritent du squelettes rubrique-xx.html de la rubrique parente.

Il y a encore quelques subtilités si on veut aller plus loin, qu'on trouvera notamment dans les sites et forums dédiés à spip.

Lien vers le commentaire
Partager sur d’autres sites

Tiens, je ne connaissais pas cette technique. C'est vrai, il y a un chapitre de la doc Spip qui a pour titre : "un squelette différent pour chaque rubrique", et ça fait des mois que je me dis que je dois le lire et que je remets ça à plus tard... Merci Philipe, je crois que je ne vais pas attendre plus longtemps avant de le lire :)

Ernestine

Lien vers le commentaire
Partager sur d’autres sites

- soit on crée un squelette article-xx.html, xx étant le numéro de l'article, et on personnalise donc le squelette pour cet article spécifique. Idem pour les rubriques et autres objets sauf que les rubriques filles héritent du squelettes rubrique-xx.html de la rubrique parente.

<{POST_SNAPBACK}>

Voilà, c'est ce que j'ai longtemps cherché !

Je me souvenais d'un truc de ce genre, mais j'essayais desperement articlexx.html au lieu d'article-xx.html...

Et pas moyen de remettre la main sur cette astuce.

Ça va simplifier mes problèmes, ça !

Merci à toi.

Loupilo

Lien vers le commentaire
Partager sur d’autres sites

Attention, si tu crées un squelette personalisé, dans article-xx.html, xx n'est pas un numéro d'article mais de rubrique.

Pour que cela marche, il faut donc que tu places l'article 1 dans une nouvelle rubrique (au hasard la 22), et que tu créées un squelette article-22.html et pas article-1.html ;)

Lien vers le commentaire
Partager sur d’autres sites

Attention, si tu crées un squelette personalisé, dans article-xx.html, xx n'est pas un numéro d'article mais de rubrique.

Pour que cela marche, il faut donc que tu places l'article 1 dans une nouvelle rubrique (au hasard la 22), et que tu créées un squelette article-22.html et pas article-1.html ;)

<{POST_SNAPBACK}>

Oh non :blink:

Donc je vais devoir me retrouver à faire pleins de rubriques fictives, dans le seul but d'avoir un squelette par article...

Autant utiliser la solution du couple xxx.php et xxx.html, dans ce cas...

Merci de l'info,

Loupilo.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
Attention, si tu crées un squelette personalisé, dans article-xx.html, xx n'est pas un numéro d'article mais de rubrique.

Pour que cela marche, il faut donc que tu places l'article 1 dans une nouvelle rubrique (au hasard la 22), et que tu créées un squelette article-22.html et pas article-1.html ;)

<{POST_SNAPBACK}>

Pas du tout.

On peut personnaliser article par article le squelette, un article n'hérite pas d'un squelette de rubrique et je ne vois pas comment cela se pourrait.

article-2.html par exemple est bien le squelette de l'article n° 2 quelque soit la rubrique.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Petite solution que j'ai mis en pratique sur mon site :

- Tu créé un mot clés "Sans_auteur" dans un groupe "Option squelette";

- Tu ratache ce mot clés aux articles dont tu souhaites ne pas afficher l'auteur

- Dans ton squellette tu boucle sur ce mot-clé et si il existe tu n'affiche rien sinon ton auteur :

<B_AUTEUR>
<BOUCLE_AUTEUR(MOTS){titre = Sans_auteur}{id_article}> </BOUCLE_Votre_Boucle>
</B_Votre_Boucle>
L'auteur est [(#LESAUTEURS)]
<//B_Votre_Boucle>

J'utilise ce moyen pour permettre à mes auteurs de personnaliser leurs articles avec des options prédéfinis dans les squelettes.

Benoit

Lien vers le commentaire
Partager sur d’autres sites

Pas du tout.

On peut personnaliser article par article le squelette, un article n'hérite pas d'un squelette de rubrique et je ne vois pas comment cela se pourrait.

article-2.html par exemple est bien le squelette de l'article n° 2 quelque soit la rubrique.

<{POST_SNAPBACK}>

A vérifier dans la doc mais si je me souviens bien c'est Cariboo qui a raison. Je me suis fait piégé comme ça... :unsure:

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...
Pas du tout.

On peut personnaliser article par article le squelette, un article n'hérite pas d'un squelette de rubrique et je ne vois pas comment cela se pourrait.

article-2.html par exemple est bien le squelette de l'article n° 2 quelque soit la rubrique.

<{POST_SNAPBACK}>

Je confirme, c'est le numero de la rubrique, dommage, moi aussi j'aurais aimé que ce soit le numéro de l'article.

Kdubs

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...