Bonjour,
le système de squelette actuel marche avec rubrique, article auxquelles ont peut ajouter un =iddelarubrique ou un -iddelarubrique .
Serait il compliqué à mettre en place en plus de ce systeme la possibilité de nommer ces fichiers avec un =titredelarubrique et un -titredelarubrique. (on supprime les espace, les accents et coupe à n caractères max) un peu comme pour la reecriture d’url
Cela permettrait au webmaster de savoir plus facilement quels squelettes sert à quoi
Bonjour,
le système de squelette actuel marche avec rubrique, article auxquelles ont peut ajouter un =iddelarubrique ou un -iddelarubrique .
Serait il compliqué à mettre en place en plus de ce systeme la possibilité de nommer ces fichiers avec un =titredelarubrique et un -titredelarubrique. (on supprime les espace, les accents et coupe à n caractères max) un peu comme pour la reecriture d'url
Cela permettrait au webmaster de savoir plus facilement quels squelettes sert à quoi
Ca existe déjà avec des mots-clés mais ce n'est pas documenté, que vois tu dans le code ?
Je sais au moins où ca se passe, dans inc-chercher, la fonction
chercher_squelette cherche le bon nom de fichier pour le fond. Mais
justement je n'y ai jamais rien vue relatif aux mots clef.
bonjour,
effectivement c est bien là mais moi non plus rien vu de relatif au mots clef mais par contre il y a çela $GLOBALS['extension_squelette'] ça sert à quoi? c 'est redefinissable dans mes_options?
Ca servira a faire lire au compilateur des squelettes avec une autre syntaxe que celle habituelle,
typequement une syntaxe XML. J'ai ça en projet mais rien de fait encore (c'est dit dans inc_version
d'ailleurs). Ca n'a rien à voir avec les mots-clés.
et rien n'a voir non plus avec mon souhait de pouvoir changer le fonctionnement de nommage des fichiers?
Par contre après reflexion je pense pas que mon idée soit la bonne parcque si on a deux titre identique (anormal au niveau 0 d'un site mais possible pour des sous rubrique) on se retrouverai avec deux fichier ayant le meme nom
Mais je reste également persuadé qu'il serait bien de permettre aux utilisateurs de mieux ranger leur squelette, parcque sur un site complexe on se retrouve vite avec un quinzaine de squelette en - ou =qqchose alors pour savoir qui fait quoi bonjour la prise de tete
Cela pourrait etre une définition iniatiale d'un dossier squelette puis un dossier par titre de rub puis le fonctionnement standart
Je rappelle qu'on peut redéfinir chercher_squelette dans mes_options
en remplacement de sa définition std dans inc-chercher,
donc remplacer l'algorithme de recherche rubrique=3.html etc
par ce qu'on veut, en particulier une recherche de squelette basé sur les mots-clés
associés à l'objet à mettre en page.
Voila un petit exemple de choix de squelette selon le mot-clé associé à une rubrique.
<?php
// Ce fichier ne sera execute qu'une fois
if (defined("_INC_CHERCHE")) return;
define("_INC_CHERCHE", "1");
# Ce fichier doit IMPERATIVEMENT contenir la fonction chercher-squelette
# (cf commentaires dans inc-calcul)
function chercher_squelette($fond, $id_rubrique, $dossier, $lang) {
global $dossier_squelettes;
$e = $GLOBALS['extension_squelette'];
if ($lang)
{
lang_select($lang);
$f = "$fond.$lang";
if (@file_exists($f . '.' . $e)) $fond = $f;
}
$d ="$dossier$fond";
// On selectionne, dans l'ordre :
// fond=10, fond-10 fond-<rubriques parentes> fond fond-dist
$f = "$d=$id_rubrique";
if (($id_rubrique > 0) AND (@file_exists($f . '.' . $e))) return $f;
# interpolation special UPMC
if ($fond == 'rubrique')
{
if ($n = sql_mot_squelette($id_rubrique)) {
include_ecrire("inc_charsets.php3");
$n = $dossier . translitteration(ereg_replace('[0-9 ]', '', $n));
if (file_exists("$n.$e")) return $n;
}
}
# fin de l'interpolation
while ($id_rubrique) {
if (file_exists("$d-$id_rubrique.$e")) {
return "$d-$id_rubrique";
} else {
$r = spip_fetch_array(spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique='$id_rubrique'"));
$id_rubrique = $r['id_parent'];
}
}
if (@file_exists("$d.$e")) {
return $d;
} else if (@file_exists("$fond.$e")) {
return $fond;
} else if (@file_exists("$fond-dist.$e")) {
return "$fond-dist";
} else {
// erreur webmaster : $fond ne correspond a rien
include_ecrire ("inc_presentation.php3");
install_debut_html("Erreur sur le site");
echo "<P>Aucun squelette <b>$d</b> n'est disponible...</P>";
install_fin_html();
spip_log ("ERREUR: aucun squelette $d n'est disponible...");
exit;
}
}
function sql_mot_squelette($id_rubrique)
{
list($groupe) = spip_fetch_array(spip_query("SELECT id_groupe FROM spip_groupes_mots WHERE titre='Squelette'"));
while ($id_rubrique) {
$r = spip_fetch_array(spip_query("SELECT titre FROM spip_mots AS mots, spip_mots_rubriques AS lien WHERE id_rubrique=$id_rubrique AND mots.id_mot=lien.id_mot AND id_groupe=" . intval($groupe)));
if ($r) return $r['titre'];
list($id_rubrique)= spip_fetch_array(spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
}
return '';
}
Si j'ai bien compris on a un groupe de mot clef squelette
A l'interieur différent mot qui correspondent à mes différentes rubriques ex: toto, tutu, et tata
On associé aux rubriques ces mots clefs
j'ai mon rubrique.php3 avec rubrique en $fond mais je peux maintenant creer un toto tutu et tata.html qui automatique seront utilisé si je visite les rubriques qui ont le mot clef toto, tutu, tata
Et je peux toujours faire un tutu=10 ne s'applique qu'à la rub qui a un mot clef tutu et qui a l'id 10, tutu-10 qui s'applique à toutes les sous rub de la rub id 10 qui a le mot clef tutu?
Si je me trompe pas en modifiant un peu on peut également etendre ça aux $fond article
Si j'ai bien compris on a un groupe de mot clef squelette
A l'interieur différent mot qui correspondent à mes différentes rubriques
ex: toto, tutu, et tata
On associé aux rubriques ces mots clefs
j'ai mon rubrique.php3 avec rubrique en $fond mais je peux maintenant creer
un toto tutu et tata.html qui automatique seront utilisé si je visite les
rubriques qui ont le mot clef toto, tutu, tata
oui
Et je peux toujours faire un tutu=10 ne s'applique qu'à la rub qui a un mot
clef tutu et qui a l'id 10, tutu-10 qui s'applique à toutes les sous rub de
la rub id 10 qui a le mot clef tutu?
j'avais pas ça en tête, mais ça devrait marcher.
Si je me trompe pas en modifiant un peu on peut également etendre ça aux
$fond article
Est ce qu'il y a déjà un essai de définition d'une telle syntaxe?
Dans ma tête, oui.
Cela dit l'intéret de l'architecture du compilateur est de permettre à chacun d'utiliser la syntaxe qui correspond à son besoin. Il y a mille et une façons (et pas seulement des mauvaises ;-)) d'utiliser XML, je suis preneur de retour d'expérience si ça tente qq.
Jacques PYRAT wrote:
Déesse A. wrote:
$GLOBALS['extension_squelette'] ça
sert à
quoi? c 'est redefinissable dans mes_options?
Ca servira a faire lire au compilateur des squelettes avec une autre
syntaxe que celle habituelle,
typequement une syntaxe XML. J'ai ça en projet mais rien de fait encore
Ce qui permettrait :
1. d'utiliser NVU pour faire des squelettes SPIP
2. de voir apparaître une extension création de squelettes SPIP pour NVU