Annonce

#1 2008-09-16 19:21:07

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Template extensions

Hello
Deux petites questions sur les templates extensions:

- J'ai vu que les templates extensions étaient obligatoirement placés dans le dossier "template-extensions". Ne pourrait-on pas envisager la possibiliter qu'un plugin puisse définir son propre template extension (dans un cas particulier par exemple)? Et par cconséquent, que le fameux template soit situé dans un dossier du plugin...

- Serait-il aussi envisageable de pouvoir définir un template extension pour la partie admin? (vincent, j'ai vu que tu as déjà évoqué dans la partie anglaise du forum)
Ca pourrait etre assez utile qu'un plugin puisse définir  un template extension en partie admin.


P@t

Hors ligne

#2 2008-09-16 19:46:56

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Template extensions

Je n'ai plus en mémoire le principe mais il me semble que si tu veux tu peux assigner n'importe quel fichier en tant que .tpl et dans n'importe quel emplacement.
Donc un plugin devrait pouvoir assigner un template ailleurs que dans template-extension mais je t'avoue que je suis dans les css et que je n'ai pas pris le temps de réfléchir au problème.

La partie Admin: je ne souhaite pas voir de template-extension mais ma réponse précédente devrait t'indiquer la piste à suivre qui devrait être également valable.

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#3 2008-09-16 19:51:29

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Template extensions

Justement, j'ai regardé ce que tu avais codé, et le dossier "template-extensions" est codé en "dur" dans la class template.
D'ou ma question ;-)
Il serait préférable de ne pas avoir ce dossier directement dans la classe, non? Je vais essayer de regarder ca de plus pres.


P@t

Hors ligne

#4 2008-09-16 20:40:21

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Template extensions

Dans ton plugin ton handle peut prendre une valeur totalement "originale", par exemple disons 'twist'...
Du coup, le template-extension ne pourra jamais en faire l'échange.

Donc, tu fais bien ce que tu veux, non?

Je ne suis pas clair? Relis attentivement la fonction set_filenames de template.class.php.

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#5 2008-09-17 19:45:16

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Template extensions

Je vais regarder ca et faire quelques tests ;-)

Au fait, ca ne pose pas de problème si je déplace la fonction "get_extents" (actuellement dans le fichier extend_for_template.php) dans le fichier admin/include/function.php?
Comme ca, LocalFiles Editor pourra s'en servir, et éventuellement d'autres plugins...


P@t

Hors ligne

#6 2008-09-17 20:35:43

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Template extensions

Déplace, je ne sais pas si c'est le meilleur endroit mais...

Je n'avais pas imaginé qu'elle pourrait être utile ailleurs.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#7 2008-09-23 16:00:59

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Template extensions

Une petite question...
Je suis en train de finaliser LocalFiles Editor.

Il permettra  d'édditer un template-extension, mais également d'en créer.

Pour l'instant, le formulaire permettant de créer un nouveau fichier comporte 2 champs:
- Nom du fichier
- Modèle (qui liste les templates-extensions existants, ainsi que les templates "éligibles" dans les répertoires templates existants)

Est-ce que je dois rajouter la possibilité de créer des dossier dans le repertoire "template-extension"?
Une solution serait de pouvoir mettre dans le nom de fichier par exemple:

yoga/local/mon-template.tpl

Il n'y a plus qu'à créer les dossiers yoga et local s'ils n'existent pas.

Je peux aussi faire une liste déroulante des repertoires existants dans template-extension.
Mais il faudra aussi prévoir la possibilité de créer un nouveau ddossier... et le newbie risque d'etre un peu paumé...

Bref, vincent, qu'en penses-tu?


P@t

Hors ligne

#8 2008-09-23 17:03:23

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Template extensions

yoga/local/mon-template.tpl

crée donc le répertoire s'il n'existe pas.
A mon avis, il ne faut pas pour autant l'indiquer comme étant une facilité.

En réalité, je n'ai fait ça que pour permettre à chacun de les organiser à sa guise.
En vrac ou non, cela ne changera rien.

J'espère que tout un chacun comprendra que la partie "distributed" sera enrichie de nouveaux templates (miniatures en vrac, écran de recherche réduit, etc.).
Et donc qu'il ne faudra pas modifier ceux-ci... mais en faire des copies si besoin.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#9 2008-09-23 17:21:12

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Template extensions

VDigital a écrit:

En réalité, je n'ai fait ça que pour permettre à chacun de les organiser à sa guise.
En vrac ou non, cela ne changera rien.

Hum... je me tate...
Tu as raison, et du coup, je serais plus d'avis de faire une liste déroulante "Dossier parent".
Si je veux un dossier perso, je prend mon client ftp, et je vais le créer...

Bref... je vais voir ca ;-)
Et pourquoi pas une dialog box jQuery pour créer un dossier? ;-))


P@t

Hors ligne

#10 2008-09-23 18:53:40

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Template extensions

+1


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#11 2008-10-01 17:34:33

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Template extensions

Bon... je viens de m'arracher les cheveux avec les templates-extension.

Voila mon problème: dans extended description, je voudrais utiliser 2 templates-extensions (pour remplacer le input du nom de catégorie par un textarea, et pour rajouter quelques infobulles).
Donc (après quelques essais infructueux avec jQuery pour faire ca à la volée -> problème avec les sauts de lignes), je me suis tourné vers les template-extensions.

Problème: dans la fonction set_filenames, on a ca:

foreach ($tpl_extension as $file => $conditions)
        {
          $localtpl = './template-extension/' . $file;
          if ($handle == $conditions[0] and
             (stripos(implode('/',array_flip($_GET)),$conditions[1])>0
              or $conditions[1] == 'N/A')
              and file_exists($localtpl))
          { /* examples: Are best_rated, created-monthly-calendar, list, ... set? */
              $this->files[$handle] = '../.' . $localtpl;
              /* assign their tpl-extension */
          }

C'est ce que je signalais plus haut... tant pis, je vais tricher...
J'assigne donc mon template-extension ainsi dans mon plugin:

$array = unserialize($conf['extents_for_templates']);
$array['../plugins/ExtendedDescription/template/cat_modify.tpl'] = array('categories', 'N/A');
$conf['extents_for_templates'] = serialize($array);

Avec le ../, je remonte donc d'un répertoire, et mon chemin relatif est correct.
MMais le chemin absolu pour smmarty ne le sera plus!
Il faudra donc dans la fonction set_filenames mettre un chemin absolu ainsi:

foreach ($tpl_extension as $file => $conditions)
        {
          $localtpl = './template-extension/' . $file;
          if ($handle == $conditions[0] and
             (stripos(implode('/',array_flip($_GET)),$conditions[1])>0
              or $conditions[1] == 'N/A')
              and file_exists($localtpl))
          { /* examples: Are best_rated, created-monthly-calendar, list, ... set? */
              $this->files[$handle] = realpath($localtpl);
              /* assign their tpl-extension */
          }

Donc ma question, en plus du chemin relatif qui me parait indispensable (smarty a du mal avec les chemins relatifs!) , ne serait-il pas bon de virer le './template-common' de la fonction?

Dernière modification par P@t (2008-10-01 17:35:53)


P@t

Hors ligne

#12 2008-10-01 18:49:23

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Template extensions

Je regarde comment faire ce soir...
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#13 2008-10-01 21:21:09

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Template extensions

Je n'ai toujours pas compris le besoin.

Je sais substituer l'appel d'un set_filenames par un
template->files[$handle] =  dirname(__FILE__) . '/xxxxxx.tpl';

J'ai l'impression que tu cherches à installer la permutation de templates afin que le plugin puisse être désactivé sans conséquence.

1 - Je préfère que le plugin fasse le set_filenames.
2 - Peut-être que tu as plus besoin d'un event render que tu n'as pas.

Dans tous les cas, vas-y si tu crois que ta solution est là.

Mais attention, il te manque peut être un trigger à mettre dans extend_for_templates.php afin de maintenir tes substitutions en place même en cas de....

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#14 2008-10-02 00:14:32

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Template extensions

VDigital a écrit:

Je n'ai toujours pas compris le besoin.

Je sais substituer l'appel d'un set_filenames par un
template->files[$handle] =  dirname(__FILE__) . '/xxxxxx.tpl';

Oui, cela revient à faire un set_filenames ;-)
Le problème, c'est que je veux changer un fichier template sur une page d'admin qui n'a pas de triggers!
Je reprend mon exemple, je veux substituer le fichier cat_modify.tpl

VDigital a écrit:

J'ai l'impression que tu cherches à installer la permutation de templates afin que le plugin puisse être désactivé sans conséquence.

1 - Je préfère que le plugin fasse le set_filenames.
2 - Peut-être que tu as plus besoin d'un event render que tu n'as pas.

J'aimerai bien que le plugin fasse tout simplement un set_filenames pour substituer un template.
Faut-il encore un trigger entre le set_filename original et le assign_var_from_handle.
Mais je n'ai pas envie de rajouter des triggers à tout va... et le render trigger n'est pas adapté à ce que je veux faire.
C'est pour ca que la solution du template_extent est vraiment idéal

VDigital a écrit:

Mais attention, il te manque peut être un trigger à mettre dans extend_for_templates.php afin de maintenir tes substitutions en place même en cas de....

Je ne veux pas que extend_for_templates.php s'occupe des templates extensions rajoutés par plugins.
Le plugin rajoute ses propres template-extensions directement dans le main.inc.php, directement en modifiant le $conf['extents_for_templates']
Ce n'est pas un soucis...

Dernière modification par P@t (2008-10-02 00:16:37)


P@t

Hors ligne

#15 2008-10-02 00:36:47

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Template extensions

Je vais peut-etre faire une fonction template genre:

$template->set_template_extent($array)

Elle permettrait aux plugins de rajouter des templates extensions au coup par coup, qui ne sont pas sauvegardés en bdd.
Par contre, je suis toujours d'avis de mettre le './template-common' en base de donnée, et non pas dans la fonction set_filenames.


P@t

Hors ligne

Pied de page des forums

Propulsé par FluxBB

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