Pages: 1 2
Bonjour,
Je cherche à trouver dans les fichiers de Piwigo l'endroit est défini la fonction qui gère le fil d'ariane pour faire une petite modification sur mon site.
Je n'ai rien trouvé dans la doc ou sur le forum.
Merci
Dernière modification par notph (2012-06-12 13:17:30)
Hors ligne
Bonjour
première règle de la personnalisation, ne jamais modifier les fichiers fournis. Bon après je ne sais si vous alliez vraiment le faire
Dites nous plutôt ce que vous voulez changer après on pourra vous dire comment
Le principe de la personnalisation de piwigo, c'est soit ça se gère en CSS, soit en php en changeant les variables Smarty, soit en php par préfiltre/prefilter
Hors ligne
Bonjour,
Je ne pensais effectivement pas modifier les fichiers originaux. C'était surtout pour regarder comment s'était construit.
Enfaite le fil d'ariane peut être de temps en temps assez long et ce n'est pas vraiment esthétique dans mon cas.
Je souhaite le séparer en deux parties: Les albums "mère" et le nom de l'album ouvert actuellement.
Par la suite j'ai un bout de code qui à l'aide de jQuery va venir réduire toute la première partie à quelques pixels tout en laissant la deuxième (le nom de l'album ouvert).
Le tout avec un petit "hover" qui va venir ré-étendre cette première partie au survol de la souris afin de pouvoir quand même l'utiliser.
Maintenant j'ai créer un template sur la base de index.php, seulement il n'y a que ($Title) à l'endroit où se situe ce fil d'ariane. Je souhaite remplacer ce ($Title) par un code équivalent à ce qu'il fait actuellement mais seulement en séparant ces deux parties afin de pouvoir en réduire une.
J'espère que c'est plus ou moins clair. ;)
Dernière modification par notph (2012-06-12 18:32:23)
Hors ligne
oui bcp plus merci !
je regarde ça
Hors ligne
Alors ce que j'ai fais, c'est
aller dans index.tpl voir la variable en l'occurence {$TITTLE}
puis fait une simple recherche sur 'TITTLE'
premier résultat index.php l115
$template_title = $page['title']; if (count($page['items']) > 0) { $template_title.= ' ['.count($page['items']).']'; } $template->assign('TITLE', $template_title);
pour utiliser tt ça, prendre l'event 'loc_end_index' :
add_event_handler('loc_end_index', 'my_funct');
Dernière modification par flop25 (2012-06-12 19:05:09)
Hors ligne
Merci pour ta réponse,
Je ne trouve pas cette occurrence chez moi (peut être parceque je suis sur la 2.4 RC3? J'ai préféré utiliser directement celle-ci de manière à ne pas devoir tout refaire dès qu'elle sera officiellement disponible.)
Je ne suis qu'amateur en matière de programmation, n'ayant jamais utiliser ce type de code je ne sais pas trop comment m'en servir (add_event_handler('loc_end_index', 'my_funct'); )
De ce que j'ai compris du code précédent:
On a donc *TITLE qui correspond à $page['title'] auquel vient s'ajouter le nombre d'images entre crochets s'il est supérieur à 0.
Ce qui revient pour moi à cherche ce $page['title'] ;)
Toucher au code que tu m'a montré revient surtout à pouvoir cacher le nombre d'images. Or moi j'ai besoin d'avoir une segmentation du type:
[Accueil > Catégorie1 > Sous-Catégorie2 > ] [Albums [Nb d'image si >0] ]
qui donnerait à l'aide de jQuery quelque chose comme
... > Album 1 [14]
Seulement il faut que j'arrive à attribuer une classe CSS à cette première partie pour pouvoir la manipuler.
Hors ligne
Je ne trouve pas cette occurrence chez moi
change de logiciel alors ;) ou alors fait la gaffe à la casse ou aux espaces
JJe ne suis qu'amateur en matière de programmation, n'ayant jamais utiliser ce type de code je ne sais pas trop comment m'en servir (add_event_handler('loc_end_index', 'my_funct'); )
je ne suis pas programmeur non plus Il me suffit de lire ce que les autres ont fait ; je te conseille donc de lire la doc, mais surtout de lire le code d'autres extensions
Donc là tu as la variable $page['title'], il te suffit de la modifier. Tu la découpes selon le délimiteur $conf['level_separator'], tu comptes, te concatène en string les n-1 avec tes balises à toi et tu concatènes le dernier
et ne pas oublier global $page
Hors ligne
Super merci :)
Je vais essayer de me débrouiller avec ça. J'ai compris le principe déjà c'est le plus important. ;)
Je ne trouve cependant toujours pas le code... J'ai bien $title en ligne 110 mais je n'ai pas "$template_title = $page['title'];.....", j'utilise Notepad++ et mes yeux mais impossible de tomber dessus. J'en viens à me poser la question si on parle bien de la même chose ;)
Hors ligne
http://piwigo.org/dev/browser/trunk/index.php#L115 perso je me base sur la trunk vu que ce sera la 2.4
d'ailleurs la ligne 110 ne sert à rien !
Dernière modification par flop25 (2012-06-12 20:35:36)
Hors ligne
Hum ok, je viens de comprendre, je cherchais ça dans index.tpl et non dans index.php. Le logiciel semble donc bien marcher, le problème viendrai des yeux ou du cerveau ;) Tout s'explique donc.
Merci pour tout tes précieux conseils. Pour la découpe j'avais déjà fait ça à je ne sais quelle occasion donc ça devrait bien ce passer. Je passe le sujet en "Résolu"
Dernière modification par notph (2012-06-12 20:42:34)
Hors ligne
en cas de soucis n'hésite pas !
Hors ligne
Super tout marche impec:
add_event_handler('loc_end_page_header', 'notph1' );
function notph1 ()
{
global $template, $page, $conf;
$template_title = $page['title'];
$bread_array = explode($conf['level_separator'], $template_title);
$bread_array_c = $bread_array;
$bread_count = count($bread_array);
unset($bread_array_c[$bread_count-1]);
$bread_previous_part = implode($conf['level_separator'], $bread_array_c);
$bread_previous = "<span>".$bread_previous_part."</span>";
if (count($page['items']) > 0)
{
$bread_array[$bread_count-1].= ' ['.count($page['items']).']';
}
$template->assign('PREVIOUS_PAGES_TITLES', $bread_previous);
$template->assign('CURRENT_PAGE_TITLE', $bread_array[$bread_count-1]);
}
C'est peut être un peu barbare de temps en temps (j'optimiserai à l'occasion) mais ça marche.
Me reste à ajouter une classe css au deux groupes et rajouter la couche jQuery et tout sera bon :)
Dernière modification par notph (2012-06-12 22:23:46)
Hors ligne
Thumbs up !
Hors ligne
Merci :)
Petit modif au code pour ajouter les balises SPAN dans le post précédent.
Un dernier bout de jQuery et c'est réglé!
Grâce à tes conseils ça m'a aussi permis de mieux cerner le fonctionnement de Piwigo ce qui sera surement très utile par la suite.
Hors ligne
Auriez-vous un exemple de ce que donne votre code ? Genre une capture d'écran "Avant" et un autre "Après" ? Je pense que ça peut intéresser du monde ce genre de chose ;-)
Merci.
Hors ligne
Pages: 1 2