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)

Gossito
2011-10-11 09:47:51

merci beaucoup, je vais regarde le wiki EN alors, je n'y avais pas pensé..

ddtddt
2011-10-10 12:42:14

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

Gossito
2011-10-10 12:20:22

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

ddtddt
2011-10-10 11:55:09

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

Gossito
2011-10-10 11:35:32

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

flop25
2011-10-10 09:54:35

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

Gossito
2011-10-10 09:48:57

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

ddtddt
2011-10-10 09:45:07

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

Gossito
2011-10-10 08:38:48

@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

ddtddt
2011-10-09 21:02:12

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.

Gossito
2011-10-09 20:57:26

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

ddtddt
2011-10-09 20:50:07

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

Gossito
2011-10-09 20:36:59

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

flop25
2011-10-09 14:01:33

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à

ddtddt
2011-10-09 11:09:04

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

Pied de page des forums

Propulsé par FluxBB

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