Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

Zaphod
2010-10-31 02:26:30

Que faudrait-il rajouter pour que le bloc ne se cache pas sur la nouvelle page différenciée "racine des catégories" ?

laraider
2010-09-26 17:33:05

Merci P@t, apriori c'est bon, le bloc principal ne s'affiche toujours pas et le calendrier est de retour.

Encore merci.

P@t
2010-09-26 10:31:11

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);
}

laraider
2010-09-26 09:56:37

C'est justement en faisant ca que j'ai découvert qu'on ne voyait plus le calendrier.

ddtddt
2010-09-26 07:12:44

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 ?

laraider
2010-09-26 01:26:18

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.

laraider
2010-09-26 01:08:47

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 :)

Zaphod
2010-03-27 23:30:31

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.

Gotcha
2010-03-27 13:48:40

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 ^^

tosca
2010-03-27 11:15:16

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".

Gotcha
2010-03-27 10:53:17

Moi pas avoir compris mais tant pis :-(

tosca
2010-03-27 00:39:50

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.

P@t
2010-03-27 00:36:32

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.

tosca
2010-03-26 23:52:38

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 ;-)

VDigital
2010-03-26 23:49:53

C'est une excellente démo de l'utilisation du prefilter de Smarty.
Clap! Clap!

Pied de page des forums

Propulsé par FluxBB

github twitter facebook newsletter Faire un don Piwigo.org © 2002-2019 · Contact