css dynamique couleur mot cle - la voie du triton -

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
   <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue

ca marche ?
cordialement
triton

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier « modeles » si le dossier « modeles » n existe pas, le creer dans le dossier « squelettes »
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable…

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ « descriptif rapide » et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :

mon texte ou ma #BALISE

(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas) Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant

ce tag une fois interprete va generer un html du genre : apres c est pas super complexe, faudra juste creer la css dynamique... Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag et apres on continue ca marche ? cordialement triton

Super cours très détaillé.

J’ai créé le fichier couleur_rubrique.html dans modeles

J’avais déjà

J'ai corrigé par

qui est placé juste avant

(je ne sais pas si ça a un rapport...

Par firebug, je ne vois pas :

mais seulement

Comme si on n’allait pas lire le répertoire modeles
Est-ce qu’il y a une déclaration à faire dans mes_options ou autres pour que ça soit pris en compte ?

Merci de ton aide
RP

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier « modeles » si le dossier « modeles » n existe pas, le creer dans le dossier « squelettes »
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable…

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ « descriptif rapide » et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :

mon texte ou ma #BALISE

(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas) Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant

ce tag une fois interprete va generer un html du genre : apres c est pas super complexe, faudra juste creer la css dynamique... Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag et apres on continue ca marche ? cordialement triton

Super cours très détaillé.

J’ai créé le fichier couleur_rubrique.html dans modeles

J’avais déjà

J'ai corrigé par

Arch, j ai oublie de preciser que le doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >

Le était déjà à l’intérieur d’une boucle RUBRIQUE …

..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*
<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier « modeles » si le dossier « modeles » n existe pas, le creer dans le dossier « squelettes »
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable…

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ « descriptif rapide » et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :

mon texte ou ma #BALISE

(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas) Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant

ce tag une fois interprete va generer un html du genre : apres c est pas super complexe, faudra juste creer la css dynamique... Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag et apres on continue ca marche ? cordialement triton

Super cours très détaillé.

J’ai créé le fichier couleur_rubrique.html dans modeles

J’avais déjà

J'ai corrigé par

Arch, j ai oublie de preciser que le doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >

Le était déjà à l’intérieur d’une boucle RUBRIQUE …

** ..: #NOM_SITE_SPIP [<:beespip:accueil:>] :.. * *

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j’ai mis hhhhhhhhhhhhh avant l’appel du modèle et gggggggggggggg après.
A l’intérieur du modèle j’ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s’affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm…

Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c’est le répertoire SPIP normal) et un 2ème répertoire modeles dans l’arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
|-modeles

Code lors de l’appel :

hhhhhhhhh ggggggggggg

Code dans le modèle

[(#REM)
Couleur dynamique des rubriques
<breve1|mini>
][(#REM)
Modele <breve1|mini>
#MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*
<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

bonsoir,
intéressante cette idée, mais pour quelle version de spip? merci

Michel
----- Original Message ----- From: "triton" <triton@pointcentral.net>
To: <pierre.roger@emera-fr.com>
Cc: "SPIP" <spip@rezo.net>
Sent: Wednesday, November 05, 2008 4:12 PM
Subject: Re: [Spip] css dynamique couleur mot cle - la voie du triton -

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*
<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va
falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas
defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

micbell a écrit :

bonsoir,
intéressante cette idée, mais pour quelle version de spip? merci

Bonjour,
be... je dirai toutes les versions de spip qui supportent les mots cles... de memoire d homme ca doit etre toutes...
par contre sur spip 2 (a venir quand ca sera pret) y a un plugin qui remplacera cette bidouille de facon plus gracieuse...
triton

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*
<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

J'ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j'ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :
<body dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">

le debug me renvoie :
<html id="body33FF33" lang="fr" dir="ltr">

En enlevant body,
<html dir="#LANG_DIR" lang="#LANG" id="#MODELE{couleur_rubrique}">
j'obtiens :
<html id="33FF33" lang="fr" dir="ltr">

Et ça marche quand j'appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode .....

RP

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*
<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

J'ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j'ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :
<body dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">

le debug me renvoie :
<html id="body33FF33" lang="fr" dir="ltr">

En enlevant body,
<html dir="#LANG_DIR" lang="#LANG" id="#MODELE{couleur_rubrique}">
j'obtiens :
<html id="33FF33" lang="fr" dir="ltr">

Et ça marche quand j'appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode .....

"yes we can"
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre..
donc : <html dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:...;
font-size:....;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = "mesCss") ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{24*7*3600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css */
/* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le <head></head> mettre :
<link rel="stylesheet" type="text/css" media="screen" href="spip.php?page=couleur" />
et voila, ca roule...
apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs...
sur ce site par exemple : http://www.boite-a-musique.com/ toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple...
n hesite pas si trucs restent obscures...
triton

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier « modeles » si le dossier « modeles » n existe pas, le creer dans le dossier « squelettes »
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable…

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ « descriptif rapide » et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :

mon texte ou ma #BALISE

(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas) Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant

ce tag une fois interprete va generer un html du genre : apres c est pas super complexe, faudra juste creer la css dynamique... Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag et apres on continue ca marche ? cordialement triton

Super cours très détaillé.

J’ai créé le fichier couleur_rubrique.html dans modeles

J’avais déjà

J'ai corrigé par

Arch, j ai oublie de preciser que le doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >

Le était déjà à l’intérieur d’une boucle RUBRIQUE …

** ..: #NOM_SITE_SPIP [<:beespip:accueil:>] :.. * *

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j’ai mis hhhhhhhhhhhhh avant l’appel du modèle et gggggggggggggg après.
A l’intérieur du modèle j’ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s’affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm…

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c’est le répertoire SPIP normal) et un 2ème répertoire modeles dans l’arborescence du plugin beespip.

Monsite

-modeles
-plugins
-modeles/

Code lors de l’appel :

hhhhhhhhh ggggggggggg

*Code dans le modèle
*
[(#REM)
Couleur dynamique des rubriques
<breve1|mini>
][(#REM)
Modele <breve1|mini>
#MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge…
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans

modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas…
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans…
triton

J’ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j’ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :

le debug me renvoie :

En enlevant body,

j'obtiens :

Et ça marche quand j’appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode …

« yes we can »
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre…
donc :
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:…;
font-size:…;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = « mesCss ») ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{2473600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css /
/
la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le mettre :

et voila, ca roule... apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs... sur ce site par exemple : toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple... n hesite pas si trucs restent obscures... triton

J’ai remis body et suivi tes instructions ;

Créer une feuille de style couleur.html dans squelette/css en recopiant le code que tu as proposé.

Modifier mes_options.php avec rajout de

// Dossier des CSS complémentaires
$dossier_squelettes = « css »

Modif de rubrique.html pour inclure :

[(#REM) Appel de la feuille de style de couleur ]

En debug, l’onglet CSS pour page=couleur (donc il trouve bien le couleur.html), il marque

Aucune règle n’est définie dans cette feuille de style.

Le principe me semble très simple mais il manque un petit truc …

J’ai été voir le site indiqué. Très bien.
Ca me donne envie d’avoir quelques compléments par rapport aux filtres images, et les filtres couleurs.

RP

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*
<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

J'ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j'ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :
<body dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">

le debug me renvoie :
<html id="body33FF33" lang="fr" dir="ltr">

En enlevant body,
<html dir="#LANG_DIR" lang="#LANG" id="#MODELE{couleur_rubrique}">
j'obtiens :
<html id="33FF33" lang="fr" dir="ltr">

Et ça marche quand j'appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode .....

"yes we can"
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre..
donc : <html dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:...;
font-size:....;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = "mesCss") ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{24*7*3600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css */
/* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le <head></head> mettre :
<link rel="stylesheet" type="text/css" media="screen" href="spip.php?page=couleur" />
et voila, ca roule...
apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs...
sur ce site par exemple : http://www.boite-a-musique.com/ toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple...
n hesite pas si trucs restent obscures...
triton

J'ai remis body et suivi tes instructions ;

Créer une feuille de style couleur.html dans squelette/css en recopiant le code que tu as proposé.

Modifier mes_options.php avec rajout de

    // Dossier des CSS complémentaires
    $dossier_squelettes = "css"

Modif de rubrique.html pour inclure :

    [(#REM) Appel de la feuille de style de couleur ]
    <link rel="stylesheet" type="text/css" media="screen"
    href="spip.php?page=couleur" />

En debug, l'onglet CSS pour page=couleur (donc il trouve bien le couleur.html), il marque

    Aucune règle n'est définie dans cette feuille de style.

Le principe me semble très simple mais il manque un petit truc ...

J'ai été voir le site indiqué. Très bien.
Ca me donne envie d'avoir quelques compléments par rapport aux filtres images, et les filtres couleurs.

RP

Est ce que tu peux afficher dans ton navigateur la page :
http://tonSite/spip.php?page=couleur
en principe sur cette page doit s afficher ta css
(ton site est il accessible que j y jette un oeil ?)
si rien, le mode de debug traditionnel :
dans le fichier couleur.html
avant la boucle ecrire : "avant la boucle"
dans la boucle ecrire "dans la boucle"
cela te permettra de voir si le fichier couleur.html est bien trouve par le systeme (si "avant la boucle" s affiche) et si la boucle s execute (si "dans la boucle) s affiche)...
apres, faut voir pour la suite... y a p etre juste une erreur de syntaxe css...
triton

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier « modeles » si le dossier « modeles » n existe pas, le creer dans le dossier « squelettes »
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable…

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ « descriptif rapide » et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :

mon texte ou ma #BALISE

(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas) Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant

ce tag une fois interprete va generer un html du genre : apres c est pas super complexe, faudra juste creer la css dynamique... Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag et apres on continue ca marche ? cordialement triton

Super cours très détaillé.

J’ai créé le fichier couleur_rubrique.html dans modeles

J’avais déjà

J'ai corrigé par

Arch, j ai oublie de preciser que le doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >

Le était déjà à l’intérieur d’une boucle RUBRIQUE …

** ..: #NOM_SITE_SPIP [<:beespip:accueil:>] :.. * *

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j’ai mis hhhhhhhhhhhhh avant l’appel du modèle et gggggggggggggg après.
A l’intérieur du modèle j’ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s’affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm…

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c’est le répertoire SPIP normal) et un 2ème répertoire modeles dans l’arborescence du plugin beespip.

Monsite

-modeles
-plugins
-modeles/

Code lors de l’appel :

hhhhhhhhh ggggggggggg

*Code dans le modèle
*
[(#REM)
Couleur dynamique des rubriques
<breve1|mini>
][(#REM)
Modele <breve1|mini>
#MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge…
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans

modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas…
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans…
triton

J’ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j’ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :

le debug me renvoie :

En enlevant body,

j'obtiens :

Et ça marche quand j’appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode …

« yes we can »
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre…
donc :
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:…;
font-size:…;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = « mesCss ») ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{2473600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css /
/
la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le mettre :

et voila, ca roule... apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs... sur ce site par exemple : toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple... n hesite pas si trucs restent obscures... triton

J’ai remis body et suivi tes instructions ;

Créer une feuille de style couleur.html dans squelette/css en recopiant le code que tu as proposé.

Modifier mes_options.php avec rajout de

// Dossier des CSS complémentaires
$dossier_squelettes = « css »

Modif de rubrique.html pour inclure :

[(#REM) Appel de la feuille de style de couleur ]

En debug, l’onglet CSS pour page=couleur (donc il trouve bien le couleur.html), il marque

Aucune règle n’est définie dans cette feuille de style.

Le principe me semble très simple mais il manque un petit truc …

J’ai été voir le site indiqué. Très bien.
Ca me donne envie d’avoir quelques compléments par rapport aux filtres images, et les filtres couleurs.

RP

Est ce que tu peux afficher dans ton navigateur la page :
en principe sur cette page doit s afficher ta css (ton site est il accessible que j y jette un oeil ?) si rien, le mode de debug traditionnel : dans le fichier couleur.html avant la boucle ecrire : « avant la boucle » dans la boucle ecrire « dans la boucle » cela te permettra de voir si le fichier couleur.html est bien trouve par le systeme (si « avant la boucle » s affiche) et si la boucle s execute (si "dans la boucle) s affiche)… apres, faut voir pour la suite… y a p etre juste une erreur de syntaxe css… triton

Mon site est en local.

J’ai une erreur 404.

  • Erreur(s) dans le squelette

  • Aucun squelette ‹ couleur › n’est disponible…,

Du coup, j’ai déplacé le fichier couleur.html dans le dossier squelettes (pas dans le sous-répertoire css).

Il affiche sans interpréter le code html :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*

<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

J'ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j'ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :
<body dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">

le debug me renvoie :
<html id="body33FF33" lang="fr" dir="ltr">

En enlevant body,
<html dir="#LANG_DIR" lang="#LANG" id="#MODELE{couleur_rubrique}">
j'obtiens :
<html id="33FF33" lang="fr" dir="ltr">

Et ça marche quand j'appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode .....

"yes we can"
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre..
donc : <html dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:...;
font-size:....;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = "mesCss") ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{24*7*3600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css */
/* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le <head></head> mettre :
<link rel="stylesheet" type="text/css" media="screen" href="spip.php?page=couleur" />
et voila, ca roule...
apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs...
sur ce site par exemple : http://www.boite-a-musique.com/ toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple...
n hesite pas si trucs restent obscures...
triton

J'ai remis body et suivi tes instructions ;

Créer une feuille de style couleur.html dans squelette/css en recopiant le code que tu as proposé.

Modifier mes_options.php avec rajout de

    // Dossier des CSS complémentaires
    $dossier_squelettes = "css"

Modif de rubrique.html pour inclure :

    [(#REM) Appel de la feuille de style de couleur ]
    <link rel="stylesheet" type="text/css" media="screen"
    href="spip.php?page=couleur" />

En debug, l'onglet CSS pour page=couleur (donc il trouve bien le couleur.html), il marque

    Aucune règle n'est définie dans cette feuille de style.

Le principe me semble très simple mais il manque un petit truc ...

J'ai été voir le site indiqué. Très bien.
Ca me donne envie d'avoir quelques compléments par rapport aux filtres images, et les filtres couleurs.

RP

Est ce que tu peux afficher dans ton navigateur la page :
http://tonSite/spip.php?page=couleur
en principe sur cette page doit s afficher ta css
(ton site est il accessible que j y jette un oeil ?)
si rien, le mode de debug traditionnel :
dans le fichier couleur.html
avant la boucle ecrire : "avant la boucle"
dans la boucle ecrire "dans la boucle"
cela te permettra de voir si le fichier couleur.html est bien trouve par le systeme (si "avant la boucle" s affiche) et si la boucle s execute (si "dans la boucle) s affiche)...
apres, faut voir pour la suite... y a p etre juste une erreur de syntaxe css...
triton

Mon site est en local.

J'ai une erreur 404.

    * Erreur(s) dans le squelette
          o Aucun squelette *'couleur'* n'est disponible...,

Du coup, j'ai déplacé le fichier couleur.html dans le dossier squelettes (pas dans le sous-répertoire css).

Il affiche sans interpréter le code html :

    /*regler la duree du cache */
    /*cela va creer un fichier avec un mime type css */

    /* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
    Avant la boucle

    Pendant la boucle
    #bodyFF3333 p.spip
    {
    color:#FF3333;
    }

    Pendant la boucle
    #body33FF33 p.spip
    {
    color:#33FF33;
    }
      
et bien voila, c est que ca marche !
te reste plus qu a virer tout ce qui n est pas directives css genre :

/*regler la duree du cache */
/*cela va creer un fichier avec un mime type css */

Avant la boucle

Pendant la boucle
...

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier « modeles » si le dossier « modeles » n existe pas, le creer dans le dossier « squelettes »
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable…

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ « descriptif rapide » et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :

mon texte ou ma #BALISE

(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas) Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant

ce tag une fois interprete va generer un html du genre : apres c est pas super complexe, faudra juste creer la css dynamique... Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag et apres on continue ca marche ? cordialement triton

Super cours très détaillé.

J’ai créé le fichier couleur_rubrique.html dans modeles

J’avais déjà

J'ai corrigé par

Arch, j ai oublie de preciser que le doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >

Le était déjà à l’intérieur d’une boucle RUBRIQUE …

** ..: #NOM_SITE_SPIP [<:beespip:accueil:>] :.. * *

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j’ai mis hhhhhhhhhhhhh avant l’appel du modèle et gggggggggggggg après.
A l’intérieur du modèle j’ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s’affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm…

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c’est le répertoire SPIP normal) et un 2ème répertoire modeles dans l’arborescence du plugin beespip.

Monsite

-modeles
-plugins
-modeles/

Code lors de l’appel :

hhhhhhhhh ggggggggggg

*Code dans le modèle
*
[(#REM)
Couleur dynamique des rubriques
<breve1|mini>
][(#REM)
Modele <breve1|mini>
#MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
<BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>
<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge…
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans

modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas…
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans…
triton

J’ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j’ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :

le debug me renvoie :

En enlevant body,

j'obtiens :

Et ça marche quand j’appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode …

« yes we can »
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre…
donc :
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:…;
font-size:…;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = « mesCss ») ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{2473600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css /
/
la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le mettre :

et voila, ca roule... apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs... sur ce site par exemple : toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple... n hesite pas si trucs restent obscures... triton

J’ai remis body et suivi tes instructions ;

Créer une feuille de style couleur.html dans squelette/css en recopiant le code que tu as proposé.

Modifier mes_options.php avec rajout de

// Dossier des CSS complémentaires
$dossier_squelettes = « css »

Modif de rubrique.html pour inclure :

[(#REM) Appel de la feuille de style de couleur ]

En debug, l’onglet CSS pour page=couleur (donc il trouve bien le couleur.html), il marque

Aucune règle n’est définie dans cette feuille de style.

Le principe me semble très simple mais il manque un petit truc …

J’ai été voir le site indiqué. Très bien.
Ca me donne envie d’avoir quelques compléments par rapport aux filtres images, et les filtres couleurs.

RP

Est ce que tu peux afficher dans ton navigateur la page :
en principe sur cette page doit s afficher ta css (ton site est il accessible que j y jette un oeil ?) si rien, le mode de debug traditionnel : dans le fichier couleur.html avant la boucle ecrire : « avant la boucle » dans la boucle ecrire « dans la boucle » cela te permettra de voir si le fichier couleur.html est bien trouve par le systeme (si « avant la boucle » s affiche) et si la boucle s execute (si "dans la boucle) s affiche)… apres, faut voir pour la suite… y a p etre juste une erreur de syntaxe css… triton

Mon site est en local.

J’ai une erreur 404.

  • Erreur(s) dans le squelette

  • Aucun squelette ‹ couleur › n’est disponible…,

Du coup, j’ai déplacé le fichier couleur.html dans le dossier squelettes (pas dans le sous-répertoire css).

Il affiche sans interpréter le code html :

/*regler la duree du cache */
/*cela va creer un fichier avec un mime type css */

/* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
Avant la boucle

Pendant la boucle
#bodyFF3333 p.spip
{
color:#FF3333;
}

Pendant la boucle
#body33FF33 p.spip
{
color:#33FF33;
}
  

Petite remarque : il parcourt bien les boucles

/*regler la duree du cache */
/*cela va creer un fichier avec un mime type css */

/* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
**Avant la boucle**

**Pendant la boucle**
#bodyFF3333 p.spip
{
color:#FF3333;
}

**Pendant la boucle**
#body33FF33 p.spip
{
color:#33FF33;
}
 
**Après la boucle**

Les valeurs trouvées évoluent entre le vert et le rouge (33FF33 et FF3333)

Ca évolue quand même …

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*

<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

J'ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j'ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :
<body dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">

le debug me renvoie :
<html id="body33FF33" lang="fr" dir="ltr">

En enlevant body,
<html dir="#LANG_DIR" lang="#LANG" id="#MODELE{couleur_rubrique}">
j'obtiens :
<html id="33FF33" lang="fr" dir="ltr">

Et ça marche quand j'appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode .....

"yes we can"
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre..
donc : <html dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:...;
font-size:....;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = "mesCss") ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{24*7*3600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css */
/* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le <head></head> mettre :
<link rel="stylesheet" type="text/css" media="screen" href="spip.php?page=couleur" />
et voila, ca roule...
apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs...
sur ce site par exemple : http://www.boite-a-musique.com/ toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple...
n hesite pas si trucs restent obscures...
triton

J'ai remis body et suivi tes instructions ;

Créer une feuille de style couleur.html dans squelette/css en recopiant le code que tu as proposé.

Modifier mes_options.php avec rajout de

    // Dossier des CSS complémentaires
    $dossier_squelettes = "css"

Modif de rubrique.html pour inclure :

    [(#REM) Appel de la feuille de style de couleur ]
    <link rel="stylesheet" type="text/css" media="screen"
    href="spip.php?page=couleur" />

En debug, l'onglet CSS pour page=couleur (donc il trouve bien le couleur.html), il marque

    Aucune règle n'est définie dans cette feuille de style.

Le principe me semble très simple mais il manque un petit truc ...

J'ai été voir le site indiqué. Très bien.
Ca me donne envie d'avoir quelques compléments par rapport aux filtres images, et les filtres couleurs.

RP

Est ce que tu peux afficher dans ton navigateur la page :
http://tonSite/spip.php?page=couleur
en principe sur cette page doit s afficher ta css
(ton site est il accessible que j y jette un oeil ?)
si rien, le mode de debug traditionnel :
dans le fichier couleur.html
avant la boucle ecrire : "avant la boucle"
dans la boucle ecrire "dans la boucle"
cela te permettra de voir si le fichier couleur.html est bien trouve par le systeme (si "avant la boucle" s affiche) et si la boucle s execute (si "dans la boucle) s affiche)...
apres, faut voir pour la suite... y a p etre juste une erreur de syntaxe css...
triton

Mon site est en local.

J'ai une erreur 404.

    * Erreur(s) dans le squelette
          o Aucun squelette *'couleur'* n'est disponible...,

Du coup, j'ai déplacé le fichier couleur.html dans le dossier squelettes (pas dans le sous-répertoire css).

Il affiche sans interpréter le code html :

    /*regler la duree du cache */
    /*cela va creer un fichier avec un mime type css */

    /* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
    Avant la boucle

    Pendant la boucle
    #bodyFF3333 p.spip
    {
    color:#FF3333;
    }

    Pendant la boucle
    #body33FF33 p.spip
    {
    color:#33FF33;
    }
     
et bien voila, c est que ca marche !
te reste plus qu a virer tout ce qui n est pas directives css genre :

/*regler la duree du cache */
/*cela va creer un fichier avec un mime type css */

Avant la boucle

Pendant la boucle
...

Suis-je bète !!!!!

Super et un grand merci pour ta patience et ta pédagogie.

Sans abuser, peux-tu éclairer ma lanterne sur les filtres images, et les filtres couleurs ?

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*

<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

J'ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j'ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :
<body dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">

le debug me renvoie :
<html id="body33FF33" lang="fr" dir="ltr">

En enlevant body,
<html dir="#LANG_DIR" lang="#LANG" id="#MODELE{couleur_rubrique}">
j'obtiens :
<html id="33FF33" lang="fr" dir="ltr">

Et ça marche quand j'appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode .....

"yes we can"
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre..
donc : <html dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:...;
font-size:....;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = "mesCss") ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{24*7*3600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css */
/* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le <head></head> mettre :
<link rel="stylesheet" type="text/css" media="screen" href="spip.php?page=couleur" />
et voila, ca roule...
apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs...
sur ce site par exemple : http://www.boite-a-musique.com/ toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple...
n hesite pas si trucs restent obscures...
triton

J'ai remis body et suivi tes instructions ;

Créer une feuille de style couleur.html dans squelette/css en recopiant le code que tu as proposé.

Modifier mes_options.php avec rajout de

    // Dossier des CSS complémentaires
    $dossier_squelettes = "css"

Modif de rubrique.html pour inclure :

    [(#REM) Appel de la feuille de style de couleur ]
    <link rel="stylesheet" type="text/css" media="screen"
    href="spip.php?page=couleur" />

En debug, l'onglet CSS pour page=couleur (donc il trouve bien le couleur.html), il marque

    Aucune règle n'est définie dans cette feuille de style.

Le principe me semble très simple mais il manque un petit truc ...

J'ai été voir le site indiqué. Très bien.
Ca me donne envie d'avoir quelques compléments par rapport aux filtres images, et les filtres couleurs.

RP

Est ce que tu peux afficher dans ton navigateur la page :
http://tonSite/spip.php?page=couleur
en principe sur cette page doit s afficher ta css
(ton site est il accessible que j y jette un oeil ?)
si rien, le mode de debug traditionnel :
dans le fichier couleur.html
avant la boucle ecrire : "avant la boucle"
dans la boucle ecrire "dans la boucle"
cela te permettra de voir si le fichier couleur.html est bien trouve par le systeme (si "avant la boucle" s affiche) et si la boucle s execute (si "dans la boucle) s affiche)...
apres, faut voir pour la suite... y a p etre juste une erreur de syntaxe css...
triton

Mon site est en local.

J'ai une erreur 404.

    * Erreur(s) dans le squelette
          o Aucun squelette *'couleur'* n'est disponible...,

Du coup, j'ai déplacé le fichier couleur.html dans le dossier squelettes (pas dans le sous-répertoire css).

Il affiche sans interpréter le code html :

    /*regler la duree du cache */
    /*cela va creer un fichier avec un mime type css */

    /* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
    Avant la boucle

    Pendant la boucle
    #bodyFF3333 p.spip
    {
    color:#FF3333;
    }

    Pendant la boucle
    #body33FF33 p.spip
    {
    color:#33FF33;
    }
    
et bien voila, c est que ca marche !
te reste plus qu a virer tout ce qui n est pas directives css genre :

/*regler la duree du cache */
/*cela va creer un fichier avec un mime type css */

Avant la boucle

Pendant la boucle
...

Suis-je bète !!!!!

Super et un grand merci pour ta patience et ta pédagogie.

Sans abuser, peux-tu éclairer ma lanterne sur les filtres images, et les filtres couleurs ?

.Pour les filtres couleurs y a cet article :

tu peux utiliser directement dans ta css dynamqiue une instruction genre :
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF|couleur_inverser)];
}
Ou tous les autres filtres qui transforment les couleurs
j ai jamais utilise pour ma part (m etais fait un truc maison avant que cela n existe)

pour les images, c est un poil plus complexe, pour l utiliser au niveau de la css, mais dans tes squelettes tu peux facilement mettre des trucs genre :
[(#TITRE|supprimer_numero|image_typo{police=IMPACT.TTF,align=left,taille=34,largeur=430,couleur=#MODELE{couleur_rubrique})]
cela va te transformer le titre de ton article en une image typo de la couleur de ton mot cle, tu peux utiliser #MODELE{couleur_rubrique} avec tous les filtres images quand tu as besoin d indiquer la couleur de ta rubrique...
Par contre, gaffe, ces traitements consomment beaucoup de ressources serveur, en particulier si tu utilises beaucoup de mots cles de couleur...
Si tu peux montrer le resultat sur ton site, ca serait bien
cordialement
triton

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*

<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

J'ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j'ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :
<body dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">

le debug me renvoie :
<html id="body33FF33" lang="fr" dir="ltr">

En enlevant body,
<html dir="#LANG_DIR" lang="#LANG" id="#MODELE{couleur_rubrique}">
j'obtiens :
<html id="33FF33" lang="fr" dir="ltr">

Et ça marche quand j'appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode .....

"yes we can"
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre..
donc : <html dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:...;
font-size:....;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = "mesCss") ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{24*7*3600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css */
/* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le <head></head> mettre :
<link rel="stylesheet" type="text/css" media="screen" href="spip.php?page=couleur" />
et voila, ca roule...
apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs...
sur ce site par exemple : http://www.boite-a-musique.com/ toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple...
n hesite pas si trucs restent obscures...
triton

J'ai remis body et suivi tes instructions ;

Créer une feuille de style couleur.html dans squelette/css en recopiant le code que tu as proposé.

Modifier mes_options.php avec rajout de

    // Dossier des CSS complémentaires
    $dossier_squelettes = "css"

Modif de rubrique.html pour inclure :

    [(#REM) Appel de la feuille de style de couleur ]
    <link rel="stylesheet" type="text/css" media="screen"
    href="spip.php?page=couleur" />

En debug, l'onglet CSS pour page=couleur (donc il trouve bien le couleur.html), il marque

    Aucune règle n'est définie dans cette feuille de style.

Le principe me semble très simple mais il manque un petit truc ...

J'ai été voir le site indiqué. Très bien.
Ca me donne envie d'avoir quelques compléments par rapport aux filtres images, et les filtres couleurs.

RP

Est ce que tu peux afficher dans ton navigateur la page :
http://tonSite/spip.php?page=couleur
en principe sur cette page doit s afficher ta css
(ton site est il accessible que j y jette un oeil ?)
si rien, le mode de debug traditionnel :
dans le fichier couleur.html
avant la boucle ecrire : "avant la boucle"
dans la boucle ecrire "dans la boucle"
cela te permettra de voir si le fichier couleur.html est bien trouve par le systeme (si "avant la boucle" s affiche) et si la boucle s execute (si "dans la boucle) s affiche)...
apres, faut voir pour la suite... y a p etre juste une erreur de syntaxe css...
triton

Mon site est en local.

J'ai une erreur 404.

    * Erreur(s) dans le squelette
          o Aucun squelette *'couleur'* n'est disponible...,

Du coup, j'ai déplacé le fichier couleur.html dans le dossier squelettes (pas dans le sous-répertoire css).

Il affiche sans interpréter le code html :

    /*regler la duree du cache */
    /*cela va creer un fichier avec un mime type css */

    /* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
    Avant la boucle

    Pendant la boucle
    #bodyFF3333 p.spip
    {
    color:#FF3333;
    }

    Pendant la boucle
    #body33FF33 p.spip
    {
    color:#33FF33;
    }
    
et bien voila, c est que ca marche !
te reste plus qu a virer tout ce qui n est pas directives css genre :

/*regler la duree du cache */
/*cela va creer un fichier avec un mime type css */

Avant la boucle

Pendant la boucle
...

Suis-je bète !!!!!

Super et un grand merci pour ta patience et ta pédagogie.

Sans abuser, peux-tu éclairer ma lanterne sur les filtres images, et les filtres couleurs ?

.Pour les filtres couleurs y a cet article :

Couleurs automatiques - SPIP
tu peux utiliser directement dans ta css dynamqiue une instruction genre :
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF|couleur_inverser)];
}
Ou tous les autres filtres qui transforment les couleurs
j ai jamais utilise pour ma part (m etais fait un truc maison avant que cela n existe)

pour les images, c est un poil plus complexe, pour l utiliser au niveau de la css, mais dans tes squelettes tu peux facilement mettre des trucs genre :
[(#TITRE|supprimer_numero|image_typo{police=IMPACT.TTF,align=left,taille=34,largeur=430,couleur=#MODELE{couleur_rubrique})]

cela va te transformer le titre de ton article en une image typo de la couleur de ton mot cle, tu peux utiliser #MODELE{couleur_rubrique} avec tous les filtres images quand tu as besoin d indiquer la couleur de ta rubrique...
Par contre, gaffe, ces traitements consomment beaucoup de ressources serveur, en particulier si tu utilises beaucoup de mots cles de couleur...
Si tu peux montrer le resultat sur ton site, ca serait bien
cordialement
triton

Je ferai des essais demain et relance le poste dès que c'est en ligne.

Merci pour toute ton aide
Pierre

Pierre Roger a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Pierre Roger a écrit :

triton a écrit :

Bonsoir,
alors, une methode pour permettre aux administrateurs/redacteurs de creer, attribuer une couleur par rubrique ou article par adjonction d un mot cle
(en spip 2 un plugin remplacera avantageusement cette bidouille)

je commence par creer un modele, pour cela creer un fichier nomme :
couleur_rubrique.html
dans le dossier "modeles" si le dossier "modeles" n existe pas, le creer dans le dossier "squelettes"
ce fichier contient :
///////////////
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}
////
je ne serai pas surpris que le code ci dessus ne soit pas tres tres optimisable...

sur l administration du site (ecrire)
creer un groupe de mots cle nomme (exactement avec le _ devant) :
_Couleur_Rubrique
dans ce groupe creer les mots cle de couleur en mettant la valeur hexadecimal de la couleur dans le champ "descriptif rapide" et sans le diese # devant (les filtres images n aiment pas les #)
////
A partir de la, au niveau des squelettes, il est normalement possible de recuperer les couleurs en utilsant la syntaxe suivante :
#MODELE{couleur_rubrique}
on pourrait donc faire des truc genre :
<p color="##MODELE{couleur_rubrique}"> mon texte ou ma #BALISE</p>
(le double diese est normal, c est pour ajouter un # devant la valeur hexa qui n en a pas)
Mais comme on est bien eleve, on ne melange pas les directives de mise en forme et le contenu du site, on utilise une css.

Pour cela, faut que l on puisse identifier automatiquement chaque rubrique afin d utiliser une class css specifique, pour cela,
dans les squelettes article et rubriques (ou autres) mettre le tag suivant
<body dir="ltr" id="body#MODELE{couleur_rubrique}">
ce tag une fois interprete va generer un html du genre :

<body dir="ltr" id="body0A418D">
apres c est pas super complexe, faudra juste creer la css dynamique...
Je te propose d essayer d arriver jusque la (cad que dans le code source de ta page tu obtiennes bien le tag <body dir="ltr" id="bodyTaCouleur">
et apres on continue
ca marche ?
cordialement
triton

Super cours très détaillé.

J'ai créé le fichier couleur_rubrique.html dans modeles

J'avais déjà
    <body dir="#LANG_DIR">
J'ai corrigé par
    <body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Arch, j ai oublie de preciser que le <body > doit etre a l intérieur d une boucle lui donnant le contexte, genre :
<BOUCLE_Article_Contexte (ARTICLES){id_article} >
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">

Le <body> était déjà à l'intérieur d'une boucle RUBRIQUE ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

*<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}{id_mot}{lang}>*

<html xmlns="http://www.w3.org/1999/xhtml&quot; lang="#LANG">
<head>
<title>..: #NOM_SITE_SPIP [<:beespip:accueil:>] :..</title>
<INCLURE{fond=includes/inc_beespip_head}{id_rubrique}{lang}>
<INCLURE{fond=includes/inc_beespip_meta}{lang}>
<INCLURE{fond=includes/inc_beespip_css}{id_rubrique}>

</head>

*<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}"> *

<div id="conteneur">

as tu essaye sur un squelette article et un rubrique ?
essaye de mettre une p tite floppee de xxxxxx en haut du modele couleur_rubrique (avant les boucles) pour voir si il est au moins invoque et regarde dans le source si il apparait
triton

Je suis sur le squelette de sommaire-accueil.html, le sommaire de beespip.
Pour mettre en évidence la prise en compte, j'ai mis hhhhhhhhhhhhh avant l'appel du modèle et gggggggggggggg après.
A l'intérieur du modèle j'ai mis mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Malheureusement,
hhhhhhhhh ggggggggggg s'affichent mais pas de mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......

/Précision : dans Beespip, il y a un répertoire modeles à la racine (je pense que c'est le répertoire SPIP normal) et un 2ème répertoire modeles dans l'arborescence du plugin beespip.

Monsite
|-modeles
|-plugins
              |-modeles/

*Code lors de l'appel :*

</head>
hhhhhhhhh
<body dir="#LANG_DIR" id="body#MODELE{couleur_rubrique}">
ggggggggggg
<div id="conteneur">

*Code dans le modèle
*
[(#REM)
    Couleur dynamique des rubriques
    <template><breve1|mini></template>
][(#REM)
    Modele <breve1|mini>
    #MODELE{breve_mini}
]

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
<BOUCLE_Extrait_Mot_Cle00(RUBRIQUES) {id_rubrique=#ENV{id_rubrique}}>
<BOUCLE_Couleur_MC00(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC00>
</BOUCLE_Extrait_Mot_Cle00>

<BOUCLE_Article_Mot_Cle(ARTICLES) {id_article=#ENV{id_article}}>
<BOUCLE_Extrait_Mot_Cle000(RUBRIQUES) {id_rubrique=#ID_RUBRIQUE}>
  <BOUCLE_Couleur_MC000(MOTS){id_rubrique} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC000>
</BOUCLE_Extrait_Mot_Cle000>
</BOUCLE_Article_Mot_Cle>

<BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE(ARTICLES){id_article}{type_mot=_Couleur_Rubrique}>

<BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE(MOTS){id_article} {type=_Couleur_Rubrique}>
#SET{couleur,#DESCRIPTIF}
</BOUCLE_Couleur_MC_ARTICLE_RENSEIGNE>
</BOUCLE_MOT_CLE_ARTICLE_RENSEIGNE> #GET{couleur}

Bonjour,
je ne connais pas beeSpip, mais de toute facon, pour que ca marche, va falloir que le modele soit charge...
En principe, sur la distrib spip normal, le dossier modele se trouve pas defaut dans dist>modeles
mais celui la on y touche as.
Si on a un nouveau modele a utiliser on le met dans
racine>squelettes>modeles
et on cree les dossier squelettes et modeles si ceux ci n existent pas....
Peux tu essayer ca ?
y a rien a declarer pour que spip aille tout seul jeter un oeil la dedans...
triton

J'ai désactivé Beespip.
puis créé un répertoire squelettes (avec copie des html du répertoire de dist) puis modeles et dedans j'ai copié mon fichier couleur_rubrique.html

Quand je laisse body dans :
<body dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">

le debug me renvoie :
<html id="body33FF33" lang="fr" dir="ltr">

En enlevant body,
<html dir="#LANG_DIR" lang="#LANG" id="#MODELE{couleur_rubrique}">
j'obtiens :
<html id="33FF33" lang="fr" dir="ltr">

Et ça marche quand j'appelle une autre rubrique avec une autre couleur.

Donc on peut continuer ta méthode .....

"yes we can"
alors vaut mieux laisser un id du type body33ff33, les anciennes versions de netscape ne supportaient pas les id commencant par un chiffre..
donc : <html dir="#LANG_DIR" lang="#LANG" id="body#MODELE{couleur_rubrique}">
a partir de la, on va faire 2 css, une statique contenant toutes les infos de mise en forme a l exception des indications de couleur, une dynamique ne contenant que les infos de couleurs (ca reduira la consommation de ressources).
Dans la css statique definir les class generales, par exemple :
p.spip
{
font-family:...;
font-size:....;
}
///

et creer un fichier nomme par exemple : couleur.html (oui, html, pas css)
ce fichier doit etre atteignable par spip, donc dans le dossier squelettes, (ou sous dossier pour peu que declare dans mes_options.php dans le dossier config, avec une ligne du genre : $dossier_squelettes = "mesCss") ;
dans ce fichier couleur.html on va mettre les directives de mise en forme couleur en utilisant le principe de cascade css.
////
#CACHE{24*7*3600} /*regeler la duree du cache */
#HTTP_HEADER{Content-Type: text/css;} /*cela va creer un fichier avec un mime type css */
/* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
<BOUCLE_Couleur_MC(MOTS) {type=_Couleur_Rubrique} >
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF)];
}
</BOUCLE_Couleur_MC>
////
cette boucle va creer le html suivant
#body33ff33 p.spip
{
color:#33ff33
}
qui peut se traduire par : tous les p.spip fils de #body33ff33 ont pour couleur #33ff33
pour chaque mot cle trouve dans le groupe _Couleur_Rubrique, cette boucle va donc creer une class #bodyMotCle p.spip specifique, il est donc possible maintenant de creer/modifier de nouveaux mots cles de couleur pour qu ils soient directement utilisables sur le site sans aucune modif de fichier.

Ne reste plus qu a appeler cette feuille css dynamique depuis les squelettes de spip, ca se fait comme ca :
dans le squelette; entre le <head></head> mettre :
<link rel="stylesheet" type="text/css" media="screen" href="spip.php?page=couleur" />
et voila, ca roule...
apres on peut aller beaucoup plus loin en utilisant les filtres images, et les filtres couleurs...
sur ce site par exemple : http://www.boite-a-musique.com/ toute l interface, couleur et traitement des images dynamique en sepia repose sur ce principe tout simple...
n hesite pas si trucs restent obscures...
triton

J'ai remis body et suivi tes instructions ;

Créer une feuille de style couleur.html dans squelette/css en recopiant le code que tu as proposé.

Modifier mes_options.php avec rajout de

    // Dossier des CSS complémentaires
    $dossier_squelettes = "css"

Modif de rubrique.html pour inclure :

    [(#REM) Appel de la feuille de style de couleur ]
    <link rel="stylesheet" type="text/css" media="screen"
    href="spip.php?page=couleur" />

En debug, l'onglet CSS pour page=couleur (donc il trouve bien le couleur.html), il marque

    Aucune règle n'est définie dans cette feuille de style.

Le principe me semble très simple mais il manque un petit truc ...

J'ai été voir le site indiqué. Très bien.
Ca me donne envie d'avoir quelques compléments par rapport aux filtres images, et les filtres couleurs.

RP

Est ce que tu peux afficher dans ton navigateur la page :
http://tonSite/spip.php?page=couleur
en principe sur cette page doit s afficher ta css
(ton site est il accessible que j y jette un oeil ?)
si rien, le mode de debug traditionnel :
dans le fichier couleur.html
avant la boucle ecrire : "avant la boucle"
dans la boucle ecrire "dans la boucle"
cela te permettra de voir si le fichier couleur.html est bien trouve par le systeme (si "avant la boucle" s affiche) et si la boucle s execute (si "dans la boucle) s affiche)...
apres, faut voir pour la suite... y a p etre juste une erreur de syntaxe css...
triton

Mon site est en local.

J'ai une erreur 404.

    * Erreur(s) dans le squelette
          o Aucun squelette *'couleur'* n'est disponible...,

Du coup, j'ai déplacé le fichier couleur.html dans le dossier squelettes (pas dans le sous-répertoire css).

Il affiche sans interpréter le code html :

    /*regler la duree du cache */
    /*cela va creer un fichier avec un mime type css */

    /* la boucle suivante recupere toutes les valeurs des mots cles appartenant au groupe _Couleur_Rubrique */
    Avant la boucle

    Pendant la boucle
    #bodyFF3333 p.spip
    {
    color:#FF3333;
    }

    Pendant la boucle
    #body33FF33 p.spip
    {
    color:#33FF33;
    }
    
et bien voila, c est que ca marche !
te reste plus qu a virer tout ce qui n est pas directives css genre :

/*regler la duree du cache */
/*cela va creer un fichier avec un mime type css */

Avant la boucle

Pendant la boucle
...

Suis-je bète !!!!!

Super et un grand merci pour ta patience et ta pédagogie.

Sans abuser, peux-tu éclairer ma lanterne sur les filtres images, et les filtres couleurs ?

.Pour les filtres couleurs y a cet article :

Couleurs automatiques - SPIP
tu peux utiliser directement dans ta css dynamqiue une instruction genre :
#body#DESCRIPTIF p.spip
{
color:#[(#DESCRIPTIF|couleur_inverser)];
}
Ou tous les autres filtres qui transforment les couleurs
j ai jamais utilise pour ma part (m etais fait un truc maison avant que cela n existe)

pour les images, c est un poil plus complexe, pour l utiliser au niveau de la css, mais dans tes squelettes tu peux facilement mettre des trucs genre :
[(#TITRE|supprimer_numero|image_typo{police=IMPACT.TTF,align=left,taille=34,largeur=430,couleur=#MODELE{couleur_rubrique})]

cela va te transformer le titre de ton article en une image typo de la couleur de ton mot cle, tu peux utiliser #MODELE{couleur_rubrique} avec tous les filtres images quand tu as besoin d indiquer la couleur de ta rubrique...
Par contre, gaffe, ces traitements consomment beaucoup de ressources serveur, en particulier si tu utilises beaucoup de mots cles de couleur...
Si tu peux montrer le resultat sur ton site, ca serait bien
cordialement
triton

Je ferai des essais demain et relance le poste dès que c'est en ligne.

Merci pour toute ton aide
Pierre
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Le fichier est créé correctement puisqu'en debug on trouve :

    AVT BOUCLE COULEUR

    PDT BOUCLE COULEUR
    #bodyFF3333 p.spip
    {
    color:#FF3333;
    }

    PDT BOUCLE COULEUR
    #body33FF33 p.spip
    {
    color:#33FF33;
    }

    APRES BOUCLE COULEUR

Mais je ne vois pas s'afficher les DEBUGS : AVT PDT et APRES BOUCLE

Sans doute , j'oublie quelque chose.

Merci de m'éclairer

Je ne comprends pas la question...
Peux tu envoyer le contenu du fichier css dynamique (couleur.html) ?