Le problème a été enregistré
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
Si flexible est pratique quand on connait pas le CSS, il est inversement très compliqué de mettre le nez dans son template.php qui fait tout.
Si on est capable de mettre le nez dans le template de flexible, alors autant faire ses templates soit-même.
Pour revenir à la question, de mémoire tu devrais pouvoir implémenter le code de ton composant dans le skin.php de ton template avec un nom de fontion
echo_montruc()
puis dans la page des composants du control, tu écris "montruc" à la fin de la ligne des composants extra.
yacs va donc appeler echo_montruc() , qui doit renvoyer le texte à afficher. Mais là il faut tout faire. Controler la section pour savoir si on s'affiche, construire la boite avec un id qui va bien, etc.
les fonctions de base de yacs permettent de le faire rapidement (par exemple skin::build_box()), mais il faut les connaitres !

Tiens je croyais la création de composants personalisés n'était pas encore prêtes en 10.2 ?
Donc pour m'adier à bien construire la boîte, je peux aussi copier le skin build qui construit déjà les extras, lui donner un identifiant distinct bien sûr et customiser tranquillement dans CSS ensuite ... J'ai bon ?
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
non tu peux partir de plus simple que la construction des tous les extras.
la base sera build_box avec en paramètre 'extra'. la fonction est dans skin_skeleton.
En y pensant j'ai une autre solution sans code php :
- tu créés une page globale, avec un surnom "montruc"
- dans la description de la page, tu écris ton texte, encapsulé dans un box.extra
- dans la fabrication des pages>composant, tu écris le surnom de la page à la fin de la ligne extra.
Ton composant devrait apparaitre, sur toutes les pages, mais avec un id cette fois ci.
- dans le CSS, tu déclare pour cet id : display:none
- dans les sections où tu veux l'afficher, tu déclares l'option variant_avecmontruc, cela donnera l'id "avecmontruc" à la balise body à partir de cette section. Ne touche pas au template.
- dans le CSS, tu déclares #avecmontruc #montruc en display:block

Oui j'avais dans l'idée de tenter quelque chose qui ressemble à cette méthode
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
Création la page globale "Encart" avec surnom
encartBas de page enrichi de
[box.extra=Titre]Contenu[/box]Inscription du composant [code]encart[/encart] dans le panneau extra
A ce stade, le titre de la page : "Encart" apparaît en extra, mais aussi le code
[box.extra=Titre]Contenu[/box]J'ai copié template.php dans un fichier template_with_encart.php
Dans une section, j'ai placé variant_with_encart au menu Options > plus d'options
Dans monskin.css j'ai réglé :
#encart {
display:none;
}
#with_encart #encart {
display:block;
}
Effets direct : dans toutes mes pages, j'ai dans le panneau extra
Encart
[box.extra=Titre]Contenu[/box]
On dirait bien que le code yacs ne peut pas être interprété s'il est placé dans la description de la page.Egalement, la section spéciale à laquelle j'ai spécifié une variante template ne semble pas prendre en compte la démarche, à savoir être la seule à afficher la box.
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
tu n'es pas obligé de faire une copie du template.php en template_with_encart. Si ce dernier n'est pas présent, le template par défaut est gardé, mais la balise body est quand même identifiée, ce qui nous intéresse.
vérifie donc l'id de <body> quand tu es sur la section concernée.
pour l'interprétation de l'extra box, c'est peut être un pb, je vais donc faire l'essai de cette procédure de mon côté aussi.

premier essai :
c'est encore plus simple, pas besoin de code [box] etc. Juste un titre, du texte, yacs fait le reste !

l'id de la nouvelle boite extra est component_encart et non pas encart tout court.

Lorsque je vérifie l'ID l'extra box supplémentaire qui apparaît sur la section, j'ai bien component_encart
Plus exactement, ça donne < dl id="component_encart" class="extra_box" >
Du coup je devrais faire ça dans flexible.css ?
#component_encart {
display:none;
}
#with_encart #component_encart {
display:block;
}
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
Découverte d'un imprévu ! Coller un code yacs du genre [published=section:xx] fait disparaître le background derrière les éléments listés dynamiquement ! Merde !
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
Je parviens à afficher le contenu de la page globale dans le côté extra de certaines de mes sections. Je ne suis pas sûr que mes deux règles css ci-dessus soient au top, mais bon l'effet attendu est à peu près le bon. Je cherche à virer l'affichage du titre par contre.
Dans la page globale, j'ai aussi crée des header et des paragraphes, que j'ai sélectionnés en "class" dans flexible.css pour que chacun prenne une allure qui lui est propre (dans cet encart j'ai besoin d'afficher plusieurs blocs).
Je suis presque au bout, mais contre toute attente certains code yacs désactive mon css personnel, notamment le background de mon paragraphe customisé.
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
Excellente, cette astuce d'Alexis ! Merci.
Et bonne chance à toi, JJ. Tes expérimentations me permettent de découvrir tout plein de trucs. Merci.
J.Juraver :
oui les deux règles au dessus sont les bonnes.
pour virer le titre, il faut #component_encart dt { display:none;}
pour les interférences avec les codes yacs, j'ai pas assez d'éléments ici pour comprendre le pb. En tous si dans la cascade de styles tes règles persos viennent après les règles du noyau (@import yacs.css) et de la configuration flexible (@import configured.css), rien ne devrait être impossible.
si tu veux indique moi sur quelle balise tu appliques un bckg, et quel code yacs le vire, que je reproduise le phéno chez moi.
@alain : de rien mon cher !

Alexis Raimbault : Les conditions dans lesquelles j'ai remarqué ce phénomène sont les suivantes :
- Dans le corps de la page "encart", des sous-titres et des paragraphes : < h2 > et < p >
- Chaque titre et chaque paragraphe possède un sélecteur CSS de type
class, pour donner essentiellement un background différent à chacun. - Dans un ou des paragraphes, un code yacs de type
[published=section:xx]annule le background du paragraphe et donne dans le blanc. Donc le paragraphe est bien selon le background désiré, sauf la prtie affichée dynamiquement par ce code.
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
J.Juraver : un backround différent à chaque <p> ? s'il la couleur est unique pourquoi pas la mettre en background sur le <dd> du fond ?
en tous cas le code yacs cité coupe le paragraphe par une <ul>, ce qui est normal. Il te suffit d'appliquer le même backround aux <p> et aux <ul>
#component_encart dd p, #component_encart dd ul {background:red;}mais s'il y a des marges entre les éléments cela va se voir.

"J.Juraver : un backround différent à chaque <p> ? s'il la couleur est unique pourquoi pas la mettre en background sur le <dd> du fond ?
"
Oui un background différent, parce que dans l'encarte "mon_truc" il y a plusieurs blocs : chaque bloc possède un en-tête sous forme d'image, différentes, et un contenu type paragraphe qui doit s'harominiser avec l'en-tête.
Donc je suis contraint à donner un sélecteur class à chaque en-tête H2 qui correspond à une intention de background (une image avec tendance bleue par exemple), ainsi qu'un paragraphe en dessous qui s'hamonise avec son en-tête (background bleu).
Et ainsi de suite.
Le bloc suivant contient une image d'en-tête verte, le paragraphe qui le suite a à un background vert.
Le consitutant un encart général (ou u cartouche coloré si tu préfère) qui doit à la fois trouver sa place parmi les autre menu extra (ajouter une page ext) et aussi apparaître et disparaître à l'envie selon la section où l'on se trouve.
" en tous cas le code yacs cité coupe le paragraphe par une <ul>, ce qui est normal. Il te suffit d'appliquer le même backround aux <p> et aux <ul> "
Je vais peaufiner ça
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
Finalement, je me dis qu'en donnant un DIV à chaque bloc de mon encart, je m'en sortirai mieux.
< div id="bloc1"> [ published=section:x1 ] < /div>
< div id="bloc2"> [ published=section:x2 ] < /div>
puis
<p>#bloc1 h2 {background: url..IMAGE 1....;}</p>
#block1 p ul li a {background:red;}
<p>#bloc2 h2 {background: url...IMAGE 2...;}</p>
#block2 p ul li a {background:green;}
De toutes façons, le div #component_encart ne sert qu'à afficher quelque chose en tant que composant. Après on peut se passer de se div -si j'ose dire-pour customiser n'importe quoi à l'intérieur.
Qu'en penses-tu ?
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
(fais pas attention aux P et /P générés par le formatage lors de l'envoi)
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
J.Juraver : tu as fais nuit blanche ?
bien sur avec des blocs tu vas faire +simple. D'ailleurs je donnerais simplement un background au div et au h2. De sorte que les autres éléments du div aient tout de suite le bon background, sans avoir à régler les marges, etc. Par défaut un background sur un <p> suit exactement les mots, il ne va pas remplir la largeur de l'encart.
#component_encart div.bloc1 {background:...;}
#component_encart div.bloc1 h2 {background:...;}

"J.Juraver : tu as fais nuit blanche ?
"
J'en peux plus... un jour avec tel bloc, l'autre jour avec tel bloc.
Je pense prendre des raccourcis, et effectivement travailler avec des DIV pour calquer l'intégralité de chaque bloc.
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
Une coquille subsiste : comment faire apparaître aussi cette variante sur l'accueil...
J'ai voulu gruger en plaçant variant_with_encart dans l'article de couverture, ça marche, mais que sur l'article de couverture en soi, pas sur l'accueil qui coupe ce genre de truc avec son layout particulier de panneaux de côté.
Peut-être en copiant le template.php renommée homepage_variant.php et en collant DIV id= "component_encart" juste au bon endroit ?...
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |
J.Juraver : plus simple
#home #component_encart {display:block;}
par curiosité, fait donc un tour sur un serveur yacs et regarde comment varie la balise body suivant le type de page affichée.

Fin de la recherche de solution
Je ne m'attarde pas, j'ai mon yacs en double file...

Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz |




Suggestions les plus plébiscitées