Que faudrait-il rajouter pour que le bloc ne se cache pas sur la nouvelle page différenciée "racine des catégories" ?
Merci P@t, apriori c'est bon, le bloc principal ne s'affiche toujours pas et le calendrier est de retour.
Encore merci.
Peut-etre comme ca (non testé):
add_event_handler('loc_begin_index', 'remove_main_block');
function remove_main_block()
{
global $page, $template;
if (isset($page['section']) and $page['section'] == 'categories' and !isset($page['category']) and !isset($page['chronology_field']))
{
$template->set_prefilter('index', 'remove_main_block_prefilter');
}
}
function remove_main_block_prefilter($content, $smarty)
{
return preg_replace('#<div id="content" class="content">.*</div> <!-- content -->#s', '', $content);
}
C'est justement en faisant ca que j'ai découvert qu'on ne voyait plus le calendrier.
laraider a écrit:
Comment faire pour ne plus afficher le bloc principal, tout en gardant le calendrier ?
Ajouter un lien vers le calendrier dans le menu ?
Ah ben j'ai trouvé un gros défaut dans ton script !!!
Je n'ai plus accès au calendrier ! Ton script cache bien le bloc principal (ca marche super) mais du coup, ca cache aussi le calendrier car je pense qu'il est placé DANS le bloc principal.
Comment faire pour ne plus afficher le bloc principal, tout en gardant le calendrier ?
Merci.
P@t a écrit:
Et voila le code magique à insérer dans votre plugin perso:
Code:
add_event_handler('loc_begin_index', 'remove_main_block'); function remove_main_block() { global $page, $template; if (isset($page['section']) and $page['section'] == 'categories' and !isset($page['category'])) { $template->set_prefilter('index', 'remove_main_block_prefilter'); } } function remove_main_block_prefilter($content, $smarty) { return preg_replace('#<div id="content" class="content">.*</div> <!-- content -->#s', '', $content); }
BRAVO et MERCI... c'est pile poil ce que je cherchai pour mon prochain site :)
P@t a écrit:
Et voila le code magique à insérer dans votre plugin perso:
Merci,
Je ne comprends pas grand chose au code mais ça marche parfaitement.
J'ai juste ajouté un " if (!is_a_guest()) " avant pour que cela ne s'applique pas aux guests.
Merci beaucoup.
Merci Tosca, il ne me manque pas grand chose pour bien assimilé mais surtout pour reproduire le schéma et faire d'autres manipulations sur le même "exemple".
Un de ces quatre je ferai une page dans le wiki pour décortiquer l'exemple donné par P@t.
C'est court et net et précis. Mais ça ne coule pas de source pour tout le monde ^^
Gotcha a écrit:
Moi pas avoir compris mais tant pis :-(
Le principe en quelques mots :
- ajout d'une fonction qui se lance au chargement de la page
- ... s'exécute avant compilation du template
- ... et vire tout ce qui se trouve dans la div content
=> le template est compilé sans "ce qui gêne".
Moi pas avoir compris mais tant pis :-(
P@t a écrit:
Oui, on peut tout faire.... attention au handler (ici, c'est "index" pour le index.tpl)
Mais pour certaines modifs, un str_replace suffit.
PS: Attention, pour tester, il faut faire un $template->delete_compiled_templates() systématiquement, car le préfiltre n'est lu que la première fois.
En 2.1, j'ai rajouté un $conf['template_force_compile'] à mettre à true pour développer.
Merci pour les bons conseils.
Je vais mettre tout ça sous le coude en attendant la sortie de la 2.1 stable, et je m'attaquerai tranquillement à la personnalisation/migration de ma galerie photos.
tosca a écrit:
Et avec ça, on peut retirer tout ce qu'on veut d'un template, non ?
(il va falloir que je potasse un peu les expressions régulières)
Oui, on peut tout faire.... attention au handler (ici, c'est "index" pour le index.tpl)
Mais pour certaines modifs, un str_replace suffit.
PS: Attention, pour tester, il faut faire un $template->delete_compiled_templates() systématiquement, car le préfiltre n'est lu que la première fois.
En 2.1, j'ai rajouté un $conf['template_force_compile'] à mettre à true pour développer.
Et avec ça, on peut retirer tout ce qu'on veut d'un template, non ?
(il va falloir que je potasse un peu les expressions régulières)
Merci beaucoup P@t ;-)
C'est une excellente démo de l'utilisation du prefilter de Smarty.
Clap! Clap!