merci beaucoup, je vais regarde le wiki EN alors, je n'y avais pas pensé..
les docs dev qui existe sont plutôt dans le wiki EN
pour utiliser {get_combined_scripts load='footer'}
dans ton tpl tu met un truc du genre
{combine_script id='jquery.ui.progressbar' load='footer'}
Gossito a écrit:
par exemple dans ton plugin tu utilise
$pat=trigger_event('AP_render_content', $row['value']);
là je filtre les données qu'il y a dans $row['value'] a l'aide du pluging extension:571
au dessus j'ai
$PAED = pwg_db_fetch_assoc(pwg_query("SELECT state FROM " . PLUGINS_TABLE . " WHERE id = 'ExtendedDescription';"));
if($PAED['state'] == 'active') add_event_handler('AP_render_content', 'get_user_language_desc');
Gossito a écrit:
$template->set_filename('PERSO_FOOTER', realpath(PFT_PATH.'persofooter.tpl'));
ca cela veut dire va chercher le fichier persofooter.tpl et attribue lui la référence PERSO_FOOTER, oui, non?
$template->append('footer_elements', $template->parse('PERSO_FOOTER', true));
et cela se traduirait par insert dans footer_elemeent, le resultat de parse PESRO_FOOTER
oui
get_combined_scripts load='footer'
ou est ce que je peux trouver la doc de get_combined_script? car une recherche dans le wiki est infructeuse
je supoose que si il y a un load, il y a la possibilité de faire un plug dedans (pas un pluging, juste je pense que la function est pluggable/hookable, je ne sais pas trop quelle terminologie vous utiliser avec piwigo, mais mon ider c'est insert='footer' ou peut etre un insert_conbined_scripts ?
par exemple dans ton plugin tu utilise
$pat=trigger_event('AP_render_content', $row['value']);
je suppose que c'est un plug d'affichage non?
apres tu as
$template->set_filename('PERSO_FOOTER', realpath(PFT_PATH.'persofooter.tpl'));
ca cela veut dire va chercher le fichier persofooter.tpl et attribue lui la référence PERSO_FOOTER, oui, non?
$template->append('footer_elements', $template->parse('PERSO_FOOTER', true));
et cela se traduirait par insert dans footer_elemeent, le resultat de parse PESRO_FOOTER
j'ai recherché sur trigger_event, mais quand je fais une recherche dans le wiki sur cette function, elle ne sort pas vraiment
y a t'il quelque par dans la doc un endroit ou toutes ces functions (trigger, ad event..) sont référencés et défnie? quelque chose a la maniere du codex wp?
merci par avance
Gossito a écrit:
{get_combined_scripts load='footer'}
c'est pour 'regrouper' tous les javascript à charger dans le footer
Gossito a écrit:
{if isset($footer_elements)}
{foreach from=$footer_elements item=v}
{$v}
{/foreach}
{/if}
je ne sais pas pour statistique mais je l'utilise pour extension:554
cela permet d'ajouter des infos dans le pied de page
fichier main.inc.php
attention de ne pas en abuser pour que le pied de page ne ressemble pas à un catalogue
une petite question,
je pense que c'st pour traite les hooks du footer
dans le tpl de default, il y a
{get_combined_scripts load='footer'}
{if isset($footer_elements)}
{foreach from=$footer_elements item=v}
{$v}
{/foreach}
{/if}
si je comprends bien, cela sert a appeller des 'widgets' qui seront affichés là les uns à la suite des autres ..
est ce qu'ils sont soit sous forme de plugins (par exemple un plugin analytic) ou soit par des fonctions dans le themeconf.inc.php
est ce qu'ils sont initialisé par un add_event_handler ? je n'arrive pas a trouver dans le wiki bcp d'informations sur le add_event_handler.. je suis sur que c'est cela, mais le search form ne m'aide pas bcp ou n'est ce pas plustot une autre form de hook reservé a des scripts javascripts/css
y a t'il une page qui stipule tous les endroits plugable par le add_even_handler? et comment il se decortique.. je n'arrive pas vraiment a trouver dans le wiki, je vois des bouts ici et la
merci par avance
merci ddtddt ^^
je précise le setprefilter :
$template->set_prefilter('identification', 'Pure_default_prefilter_identification');
on met en place un préfilter avec la fonction qui prend comme premier argument le nom de l'"emplacement" (ici identification qui correspond à la pahe identifcation.php http://piwigo.org/dev/browser/trunk/identification.php qui se trouve ligne 83 à $template->set_filenames( array('identification'=>'identification.tpl') ); ) puis en 2° le nom du filtre (ici Pure_default_prefilter_identification)
le système d'écrasement hiérarchique des tpl est automatique : il suffit de placer identification.tpl dans le dossier template de ton thème pour qu'il soit chargé à la place du thème parent et à la place de default
merci bcp c'est super clair en fait
tu es au top
je reposerais ici au fur et a mesure de mes interrogations
merci encore
Je vais essayer de répondre à tout mais il y a beaucoup de questions ;-)
1/ Piwigo charge en priorité les templates du theme, s'il n'y sont pas il regarde dans le thème parent.
Si tu n'as pas défini de thème parent tu as une erreur (je te conseils de toujours définir un parent)
Piwigo va bien sur chercher dans le parent du parent
il me semble assez logique de toujours avoir en haut de l'arbre default qui regroupe tous les template utiliser par le corps de Piwigo
2/ Tu parles de stuffs_blocks.tpl
ceci c'est un template d'un plugin extension:190
dans ton thème tu peux imposer des templates pour des plugins, il ne sont pas dans le core de Piwigo mais dans les plugins concerné
3/ dans themeconf.inc.php tu peux mettre des fonction ou des paramètres de conf, c'est également la que tu peux ajouter la possibilité d'avoir une page de configuration pour ton thème (la seule limite que je vois c'est de ne pas faire une usine à gaz avec son thème [ou son plugin d’ailleurs)
4/ pour Pure_default_prefilter_identification, tu as
$template->set_prefilter('identification', 'Pure_default_prefilter_identification');
5/title="{'edit'|@translate}"
oui c'est cela, il faut quand même dire à Piwigo ou aller regarder si tu crée un nouveau fichier langue
6/local_head.tpl
c''est automatiquement rajouter au header
il y a bien sur d'autre solution pour ajouter au header mais c'est pour facilité la vie au développeur de thème qui ne connaisse rien au php
dsl si j'ai oublié un point ou si je ne suis pas clair ;-)
@ddtddt merci, je comprends la logique...
la je suis sur la doc de smarty... c'est une nouvelle syntaxe a s'approprier, je n'avais jamais approfondie smarty, cela va en être l'occasion.. faire mon template risque de me prendre un peu plus de temps que prevus eheheh
@flop25 j'ai loadé Pure_default, si je comprends bien c'est un theme parent, il y a necessité d'avoir un theme enfant pour qu'il marche.. le vois tu comme une sorte de framework, que tu rajoutes a piwigo? la ou tu stockes tes .tpl qui seront appelé par tes enfants?
j'ai aussi chargé Pure_tr_clear_blue.
néanmoins je cherche a comprendre un point, dans le theme default de piwigo, il y a tout une série de template (cf image chargée). est ce que c'est la que sont regroupés tous les templates accessibles? je vois que dans les themes que je télécharge, il y a souvent simplement que quelques uns de ces templates.
par exemple menubar.tpl dans Pure_default. donc les autres templates, si ils ne sont pas 'modifiés' sont cherchés par default par piwigo dans le répertoire template du theme default (ou dans une partie du core reprenant ces mêmes templates)?
est ce que l’idée c'est : a l'initialisation, piwigo regarde si dans le theme il y a un répertoire template, si oui il prend les templates qui s'y trouvent, apres il regarde si le theme n'est pas un theme enfant, si c'est le cas il regarde dans le répertoire template du theme parent pour y chercher les tpl, puis il complète avec les template issue du core (ou de default?) (qui n'auraient pas été écrasé par des template eponymes situé dans les theme parents/enfants)
de plus je vois par exemple le template stuffs_blocks.tpl qui n'est pas dans default. est ce que c'est un template qui est propre a ton theme, que tu appelles après quelque par pour qu'il soit inclué dans l'affichage de piwigo? comment et ou se fait cette opération par ce que je ne vois pas par exemple d'appel depuis menubar.tpl
petites questions pratiques
themeconf.inc.php, est ce que c'est le fichier ou je peux écrire des fonctions pour quelles soient traités par piwigo? et utiliser add_event_handler comme hook pour plugger cette fonction dans la page/template que je désire?
cependant dans la partie
identification.tpl
il y a la fonction Pure_default_prefilter_identification, je ne la vois pas rataché a add_event_handler, comment est elle appellée? (ces le cas des autres fonctions apres aussi)
title="{'edit'|@translate}"
est ce que cela veut dire, va regarder dans le fichier de translation la valeur de edit (qui est le defaut si elle n'y existe pas') et affiche ?
local_head.tpl
qu'est ce que je dois mettre dans ce fichier?
j'ai l'impression que c'est que qui doit etre pluggé dans les templates footer et header? pourquoi ne pas passer par themeconf.inc.php a la maniere du add_event_handler ou l'on attriburait un footer/header comme partie a plugger?
un grand merci encore pour l’ignare que je suis
Gossito a écrit:
donnée mais pas qu'un theme soit un ensemble de plugins..
je suis d'accord avec cette partie de phrase :-)
donc tu faits des plugins avec des fonctions
et pour ton thème tu les intègre dans le themeconf.inc.php pour que les utilisateur n'ai pas à les installer.
oui oui je comprends ddtddt, tu as raison..
pour ce premier essai, non je ne pense que le theme sur lequel je vais me faire la main à vocation a être partagé, plus tard j'en ferais peut etre un ou deux, même si pour moi le probleme restera le support car si tu veux bien le faire, il faut du temps, ce que je n'ai pas bcp
pour les plugins versus theme.. je comprends pour le partage de fonctionnalité.. par contre, venant de WP, je trouve qu'il est parfois domage qu'un theme doivent s'installer avec une dependance de plugin..
je pense que les plugins sont parfait pour résoudre une problématique donnée mais pas qu'un theme soit un ensemble de plugins..
Gossito a écrit:
Merci ddtddt
je vais regarder un peu comment le moteur smarty fonctionne, je ne l'ai jamais utilisé.
plus un theme? tout depend ce que l'on appel un theme sur le fond..; mais je comprends ton point de vue.. pour moi la notion de theme touche a tout ce qui concerne l'affichage.. et il faut parfois inclure quelques fonctions pour traiter ce qui va etre affiché..
merci encore
les gout et les couleur ...
l'intérêt de faire des plugin distinct pour chaque changement que l'on veux faire et de pouvoir en faire profiter les autres.
un exemple , si je veux changer ma favicon, je peux le faire dans mon thème, si je fait un plugin pour personnaliser sa favicon tout les thèmes peuvent en profiter donc tous les utilisateurs
et comme il y a de forte chance que tous les utilisateurs n'aime pas la même favicon que moi, en utilisant le plugin il ne perde pas leur favicon à chaque fois que je sort une nouvelle version de mon thème ;-)
Bon cela est très théorique pour plusieurs raisons
1/ tu n'as pas dit que tu voulais partager ton thème par la suite
2/ Je n'ai jamais fait de thème :-D
Merci bcp Flop25, je vais lire avec attention les différents liens que tu m'a donné et je n’hésiterais pas a revenir vers vous pour d'autres conseils
merci encore
Bonjour
je vous conseille de lire post:176415 et la doc smarty http://www.smarty.net/docsv2/fr/
je vous conseille aussi de regarder donc la liste des tpl dans default, de regarder des thèmes comme extension:384 qui utilisent les préfiltres (en gros on faite de la substitution dans le string étant le fichier tpl avant sa compilation par smarty, afin d'améliorer la compatibilité entre les versions des fichiers tpl par défault : si votre tpl perso ne modifie que 2-3 balises, les prefiltres permettent de changer ces balises sans impacter le reste qu'il vous faudrait potentiellement mettre à jour à chaque update de piwigo.)
Sinon, pour gérer le php, il vaut mieux adjoindre du code tpl à un tpl officiel (genre footer ou header) et de assigner les variables Smarty dans le themeconfig.php (extension:551 fait ça par ex, et mon thème perso sur mon site aussi)
si vous avez d'autres questions, on est là
Gossito a écrit:
existe t' il
- une liste de référence des différents template?
- un schéma sur l'architecture des templates?
je ne pense pas que cela existe
mais si tu le réalise on prend :-)