Je me rends compte qu'avec les histoire de sections restreintes ou pas, ça complique un peu le problème
En tout cas dans sections/section.php j'ai trouvé peut-être un début de réponse vers la ligne 394, mais ça sent la galère pour intégrer tout ça avec l'effet déroulant en plus
function count_for_anchor($anchor) {
global $context;
// sanity check
if(!$anchor)
return NULL;
// profiling mode
if($context['with_profile'] == 'Y')
logger::profile('sections::count_for_anchor');
// limit the query to one level
if($anchor)
$where = "(sections.anchor LIKE '".SQL::escape($anchor)."')";
else
$where = "(sections.anchor='' OR sections.anchor is NULL)";
// display active and restricted items
$where .= "AND (sections.active='Y'";
// list restricted sections to authenticated surfers
if(Surfer::is_logged())
$where .= " OR sections.active='R'";
// list hidden sections to associates, editors and readers
if(Surfer::is_empowered('S'))
$where .= " OR sections.active='N'";
// include managed sections
if(count($my_sections = Surfer::assigned_sections())) {
$where .= " OR sections.id = ".join(" OR sections.id = ", $my_sections);
$where .= " OR sections.anchor LIKE 'section:".join("' OR sections.anchor LIKE 'section:", $my_sections)."'";
}
$where .= ")";
// hide sections removed from index maps
$where .= " AND ((sections.index_map IS NULL) OR (sections.index_map != 'N'))";
// non-associates will have only live sections
$now = gmstrftime('%Y-%m-%d %H:%M:%S');
if($anchor && !Surfer::is_empowered()) {
$where .= " AND ((sections.activation_date is NULL)"
." OR (sections.activation_date <= '".$now."'))"
." AND ((sections.expiry_date is NULL)"
." OR (sections.expiry_date <= '".NULL_DATE."') OR (sections.expiry_date > '".$now."'))";
}
// list sections
$query = "SELECT COUNT(*) as count"
." FROM ".SQL::table_name('sections')." AS sections"
." WHERE ".$where;
return SQL::query_scalar($query);
}
Yacs on my blog | Yacs on social media | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz | Find Yacs anywhere with your phone!
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 veux donc un menu horizontal déroulant dont tu ne connais pas à priori les entrées à l'avance ? Ton idée est donc de reprendre le code du menu contextuel pour en faire un menu déroulant ?
Cela va te faire descendre profond dans le code. J'ai néanmoins une solution plus facile à te proposer mais pour un menu de une profondeur seulement.
> crée une page globale pour contenir ton menu.
> établie la liste de entrées de menu niveau 1 : les entrées horizontales. utilise la liste classique.
- menu 1
- menu 2
- menu 3
- menu 4
> puis dans chaque entrée de liste, appel par code yacs la liste des sections à utiliser comme entrées. Cela va construire dynamiquement les listes à dérouler verticalement
- menu 1
[sections.compact=section:id1] - menu 2
[sections.compact=section:id2] - etc.
exemple avec les sections yacs.fr
- Documentation
- Support
- Communauté
> après il faudra appeler la description de cette page globale par le template pour positionner le menu. Ensuite un boulot de css pour mettre horizontal et afficher au survol, à moins que tu veuilles du jvscript.
Moi aussi je prépare un site avec menu horizontal, mais les entrées sont statiques.
Bien à toi,
Alexis
Alexis Raimbault webmaster free-lance
Pas mal du tout comme technique !
L'avantage c'est de passer par une page propre à yacs déjà crée et de la réexploiter à l'envie. Le désavantage, c'est que celà utilise beaucoup les codes yacs, et qu'au moindre changement par Bernard de ceux-ci, tout le menu va foirer. Je vais quand même essayer ta technique par curiosité.
J'aurais cru pouvoir réutiliser :
- soit le menu d'affichage contextuel en arborescence, natif dans yacs (encore faut-il que je le trouve)
- soit une simple requête SQL
Mais dans tous les cas la question des rubriques restreintes reste majeure
Yacs on my blog | Yacs on social media | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz | Find Yacs anywhere with your phone!
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 |
Note : ton commentaire sur le groupe de 9.8 RC 3 semblait déjà se pencher sur le sujet, me trompe-je ?.. Positionner un composant via le template.php
Yacs on my blog | Yacs on social media | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz | Find Yacs anywhere with your phone!
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 |
JJ :
" et qu'au moindre changement par Bernard de ceux-ci, tout le menu va foirer "
Un changement dans le code yacs
[sections] ? j'y crois pas trop. Par contre le layout pourrait changer. dans mon exemple j'appelle le layout compact, mais tu peux appeler un layout perso qui ne bougera pas (qui peut être une simple copie du 'compact' existant).
" Mais dans tous les cas la question des rubriques restreintes reste majeure"
tu veux quel comportement ? Avec la solution ci-dessus les entrées restreinte s'affichent à ceux qui ont les droits pour les voir.
Alexis Raimbault webmaster free-lance
JJ :
la solution donnée par bernard permet de positionner le texte d'une page dans le template. c'est comme ça que je fais un menu horizontal dans un projet en cours, je peux te donner un lien en page privée.
Alexis Raimbault webmaster free-lance
"tu veux quel comportement ? Avec la solution ci-dessus les entrées restreinte s'affichent à ceux qui ont les droits pour les voir.
"
Tout à fait ! Je m'en suis rendu compte en m'identifiant pour te répondre... aupravant je naviguais sans session perso.
Quant au layout, je pensais effectivement à celui des codes section.compact
Le code sections n'aurait pas de raison de bouger sans crier gare, mais on a bien déjà vu le code [ login ] disparaître de cette façon..
"
la solution donnée par bernard permet de positionner le texte d'une page dans le template. c'est comme ça que je fais un menu horizontal dans un projet en cours, je peux te donner un lien en page privée.
"
Oui ça m'intéresse !
Si je comprends bien, dans le fil de discussion avec Bernard tu fais avec un component exactement la même chose que ce que tu fais avec un appel php dans le template de la description d'un article comme tu l'indiques plus haut ici même.
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 |
JJ :
" tu fais avec un component exactement la même chose que ce que tu fais avec un appel php dans le template "
oui mais finalement je préfère la solution via le template car avec le componnent cela induit un 'enrobage' html de mon menu.
Alexis Raimbault webmaster free-lance
Super intéressant, les gars ! J'ai hâte de voir le résultat. On va pouvoir en bénéficier, n'est-ce pas ?
Pour la portion CSS, vous trouverez peut-être cette ressource utile : http://aext.net/2009/12/incred...-with-css-only/
Bon succès !
On a si peu d'idée de ce qui est possible...
En ce qui me concerne, si je parviens à mes fins ce sera en production sur mes deux plus gros projets importants sous yacs...
Je pense depuis un moment que l'arborescence affichée dès le survol reste probablement la solution ergonomiquement la plus efficace pour guider l'internaute, favoriser la mémorisation des thèmes, inciter la curiosité, tout en restant élégant dans l'affichage et réduisant la pénibilité de navigation.
Yacs on my blog | Yacs on social media | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz | Find Yacs anywhere with your phone!
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 |
Tes essais avec page::tabs me font penser qu'on pourrait enrichir cette fonction pour construire la liste horizontale et chaque liste verticale, de sorte que tout soit automatique.
Alexis Raimbault webmaster free-lance
"Et hop l'astuce est illico dans la doc ! Afficher un menu déroulant de sections et sous-sectionsJ'ai néanmoins une solution plus facile à te proposer mais pour un menu de une profondeur seulement.
"
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 |
ah t'es rapide.
bon j'ai corrigé une erreur : t'avais oublié de génerer le div #menuderoulant dans ton exemple.
Alexis Raimbault webmaster free-lance













