Annonce

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

tosca
2009-12-12 11:22:48

Gotcha a écrit:

Vous allez me rendre chèvre avec le boulot qu'il y a par derrière à revoir le wiki.


Comment ça on ne m'avait rien demandé de faire ?!
8-)

Scusi, je prends le train en marche, et je fais des enjambées doubles pour essayer de combler mon retard ;)
Je ne sais pas si je peux t'être d'une grande aide, étant donné que j'ai tout à (re)découvrir, mais si je peux donner un coup de main ...

Gotcha
2009-12-12 11:13:22

tosca a écrit:

Un indispensable ... à mettre dans le wiki-nouveau ?

Vous allez me rendre chèvre avec le boulot qu'il y a par derrière à revoir le wiki.


Comment ça on ne m'avait rien demandé de faire ?!
8-)



Les astuces seront à rajouter par la suite c'est certain. Pour le moment, j'ai déjà fort à faire avec rien que l'existant.
Voir la démo pas à jour => ici (pas à jour)
Voir le sujet dédié => ici

[/HS]

tosca
2009-12-12 10:57:02

+1
Un indispensable ... à mettre dans le wiki-nouveau ?

LucMorizur
2009-09-09 00:21:14

Super intéressant ! A retenir !

Encore, des cours sur Piwigo :-)) !

Merci bien Grum !

grum
2009-09-08 23:06:05

Je reprends ici le truc décrit dans le post:119242.
Il est valable valable pour Piwigo 2.0.x


Les éléments du bloc "Menu" sont générés au travers du template menubar_menu.tpl.

Dans le template, les éléments du bloc sont affichés par cette petite boucle :

Code:

  
<ul>
  {foreach from=$block->data item=link}
    {if is_array($link)}
      <li><a href="{$link.URL}" title="{$link.TITLE}" {if isset($link.REL)}{$link.REL}{/if}>{$link.NAME}</a></li>
    {/if}
  {/foreach}
</ul>

Le bloc dispose d'un tableau data au sein duquel sont stockés les éléments du menu.
Chaque élément du tableau data est lui même tableau de la forme Array("URL" => "...", "TITLE"=>"...", "REL" => "...", "NAME" => "...");

Pour modifier dynamiquement le contenu d'un bloc, ou d'un élément de bloc, il faut placer un trigger sur l'évènement blockmanager_apply.

Code:

   add_event_handler('blockmanager_apply', 'ma_fonction_a_moi' );

et dans la fonction 'ma_fonction_a_moi' :

Code:

function ma_fonction_a_moi( $menu_ref_arr )
{
   // on récupère l'objet pointant sur le menu
    $menu = & $menu_ref_arr[0];

   //on récupère les élements du block "menu"
   $block = $menu->get_block( 'mbMenu' );


  // exemple :  pour supprimer le lien 'tags'
  unset( $block->data['tags'] );

  // exemple : on rajoute le lien 'truc'
    $block->data['truc'] =
      array(
        'TITLE'=>'titre de mon lien',
        'NAME'=>'truc',
        'URL'=> 'http://machin.com/mapageamoi.php'
      );
}

Ces bouts de code peuvent être ajoutés facilement au travers d'un plugin personnel.



Les différents blocks de Piwigo sont :

Code:

+------------------+----------------+----------------------------+
| identifiant      | Bloc de menu   | Template associé           |
+ -----------------+----------------+----------------------------+
| mbCategories     | Catégories     | menubar_categories.tpl     |
| mbTags           | Tags           | menubar_tags.tpl           |
| mbSpecials       | Spéciales      | menubar_specials.tpl       |
| mbLinks          | Liens          | menubar_links.tpl          |
| mbMenu           | Menu           | menubar_menu.tpl           |
| mbIdentification | Identification | menubar_identification.tpl |
+------------------+----------------+----------------------------+

Pour modifier dynamiquement le contenu de chacun, il faut :
- étudier le template, pour déterminer les données exploitées dans celui-ci
- étudier le fichier include/menubar.inc.php qui alimente les données du template

A noter que les plugins peuvent intervenir eux aussi sur les éléments de menu au travers du trigger blockmanager_apply.
Deux possibilités :
- votre trigger est déclenché le premier
- votre trigger est déclenché en dernier
En fonction de l'ordre dans lequel les fonctions associées aux évènements sont appelées, les résultats peuvent être différents... Il faudra alors veiller à forcer une priorité haute ou basse) sur votre trigger.

Pied de page des forums

Propulsé par FluxBB

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