Annonce

#1 2005-11-20 22:23:15

chrisaga
Former Piwigo Team
France (92)
2005-08-10
566

[Evolution] Remontée des ressources communes aux templates

A la suite d'échanges sur le bugtrak (bug 213) je pense qu'il serait intéressant de pouvoir remonter un certain nombre de ressources commune aux templates dans un répertoire "site".

La première idée directement issue des discussions autour du bug est un "default_layout.css" de niveau "site" qui reprendrait des configurations valables quelque soit le template :
- tailles maximum des vignettes
- cacher le titre de la galerie
- cacher la boîte quickconnect
- etc.

Chaque template pourrait l'appeler à partir de son propre default_layout.css, ce qui n'empêcherai pas un webmaster qui le souhaite de proposer à ses utilisateurs des templates avec des configurations différentes.

Ce système est souple et permet au webmaster de ne pas avoir à répéter ses préférences dans chaque template.

Dans un 2ème temps, on peut imaginer que tout ou partie de ce css soit généré par un menu de configuration dans la partie admin de PWG. Je rejoint ainsi une suggestion de yoDan (post 24641)

On pourrait également proposer un jeu d'icônes à ce niveau.


Utilisateur depuis la version 1.3, Impliqué depuis la 1.4, Responsable du template des 1.5 et 1.6  ... et en (in)disponibilité sur la 1.7

Hors ligne

#2 2005-11-20 23:00:56

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12644

Re: [Evolution] Remontée des ressources communes aux templates

Je suis tout à fait en faveur. En bidouillant mon installation de Dotclear, j'ai cru comprendre que cette méthode avait été choisie.

Je ne sais pas si c'est en rapport immédiat avec ton topic, mais je voudrais dire qu'il faudra éliminer le nom en dur du template dans les chemins. Par exemple "template/yoga/theme/help.png". On pourrait remplacer par :

- soit "template/{user:template}/theme/help.png"
- soit "{template:help_icon}", "{template:default_layout_stylesheet}"

La deuxième proposition permettrait davantage de souplesse. chrisaga, si je suis hors-sujet, dis le, je créerai un autre topic.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#3 2005-11-20 23:10:17

chrisaga
Former Piwigo Team
France (92)
2005-08-10
566

Re: [Evolution] Remontée des ressources communes aux templates

Disons que ce n'est pas tout à fait dedans, mais c'est assez proche quand-même.

Eliminer le nom du template dans les chemins : je suis à fond pour !
Mais je n'ai pas trop encore cherché à comprendre comment sont évaluées les variables dans les templates.
Si j'utilise "{user:template}" il va le pêcher où ? c'est automagique, déjà récupéré dans le profil utilisateur ?
Et si j'utilise "{template:help_icon}" ou "{template:default_layout_stylesheet}" il va falloir les définir quelque part ?


Utilisateur depuis la version 1.3, Impliqué depuis la 1.4, Responsable du template des 1.5 et 1.6  ... et en (in)disponibilité sur la 1.7

Hors ligne

#4 2005-11-20 23:29:08

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12644

Re: [Evolution] Remontée des ressources communes aux templates

chrisaga a écrit:

Si j'utilise "{user:template}" il va le pêcher où ? c'est automagique, déjà récupéré dans le profil utilisateur ?

Non, c'est pas automagique, il faut une toute petite modification du gestionnaire de template. Comme j'ai fait pour les {lang:english item}. Cela permet de lier directement le template avec les variables de la page, de l'utilisateur, de la configuration ou de langue.

chrisaga a écrit:

Et si j'utilise "{template:help_icon}" ou "{template:default_layout_stylesheet}" il va falloir les définir quelque part ?

pas forcément si on ruse un peu. Genre "{template:theme/help.png}" et "{template:default-layout.css}"... PWG ira dans le template courant, puis s'il ne trouve pas, il ira chercher dans le template par défaut défini pour l'application, et s'il ne trouve toujours pas, il prendra le template par défaut de l'application. A rapprocher avec le comportement de la fonction include/functions_user.inc.php:get_language_filepath()


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#5 2005-11-21 05:44:27

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

Re: [Evolution] Remontée des ressources communes aux templates

Chris,

Bien entendu, l'idée est excellente.
Toi et z0rglub, avez juste un peu d'avance sur tout le monde, c'est normal, vu les infos du bugtracker.

Un petit schéma du futur design des templates ne serait sans doute pas de trop (même si j'en ai déjà une idée assez précise, elle n'est peut être pas exactement la même pour tous).
Surtout pour montrer en quoi cela va simplifier les efforts de customisation.

Merci d'avance.
Vincent

PS: Oh, oui. Le chemin des css dans le tpl d'header !!! A chaque fois: plouf, je l'ai oublié (maintenant il me suffit de 3 secondes pour dire "zut".
La toute première fois, on peut chercher un moment "Pourquoi nos adaptations du template ne sont pas visibles?"...
Merci z0rglub.


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

#6 2005-11-21 20:26:29

chrisaga
Former Piwigo Team
France (92)
2005-08-10
566

Re: [Evolution] Remontée des ressources communes aux templates

Pour un petit schéma, c'est un peu flou, disons que pour s'intégrer facilement à l'existant, on pourrait avoir quelque chose du genre :

Code:

|
|-> template-common
|     |-> default-layout.css
|     |-> images
|           |-> (fichiers png de base)
|
|-> template
       |-> yoga
       |      |-> default-layout.css
       |      |-> (autres fichiers css)
       |      |-> (fichiers tpl)
       |
       |-> yoga-dark
       |-> (autres templates)

L'idée est que le défault-layout.css de chaque template appelle (include) le default-layout commun, et que l'on joue sur les chemins des icônes pour aller les chercher dans le répertoire images commun.

On peut bien évidemment pour un thème donné avoir un jeu d'icônes spécial, et même ne pas faire appel au layout commun. Ça permettra aux plus bidouilleurs de s'exprimer, mais ça évite aux autre de reproduire certaines modifications dans chaque template.

Je précise que je suis pour garder une gestion simple avec pas trop de dépense CPU, ce qui peut être appréciable en environnement mutualisé, et donc bien peser les conséquences avant de se lancer dans un gros moulinage de variables. Pour celà, on peut partir du principe qu'un template est complet et dispose de ses propres ressources ou bien fait explicitement appel aux ressources communes qui devront exister dans toute implémentation de PWG.

Enfin, je préfère appeler le répertoire contenant les fichier png images parce que pour moi, le thème, c'est non seulement les images, mais aussi les couleurs et les polices. C'est à dire tout sauf le positionnement.
On peut en discuter, mais en fait je vous emmène tout doucement vers l'étape suivante où l'on aura qu'un ou deux grands templates mais qui pourront chacuns tourner avec des thèmes différents.
A mon avis, ce n'est pas si terrible que ça en à l'air et je pense que l'on peut gérer le nom du thème dans les préférences utilisateur à la place du nom du template, et trouver un moyen de lier chaque thème au bon template.
Ex : les themes yoga-clear et yoga-dark sont tous les deux utilisés avec le template yoga (un seul jeu de fichiers *.tpl)
Avec les pistes évoquées par z0rglub sur les variables on doit pouvoir faire quelque-chose.
Mais on verra ça en temps voulu.

Dernière modification par chrisaga (2005-11-21 20:28:52)


Utilisateur depuis la version 1.3, Impliqué depuis la 1.4, Responsable du template des 1.5 et 1.6  ... et en (in)disponibilité sur la 1.7

Hors ligne

#7 2005-11-21 20:47:35

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

Re: [Evolution] Remontée des ressources communes aux templates

Chris,

C'est exactement ce que je pensais et...

Si on combine bien les choses "gérer le nom du thème dans les préférences utilisateur" et/ou dans les préférences du groupe...
Dans ce cas, inutile d'installer deux ou trois fois PWG pour gérer des sites.

Les groupes/utilisateurs voient des catégories différentes au travers de thèmes différents.
Si on y arrive et je suis persuadé que c'est plus simple qu'il n'y parait, reste les adresses.

Un bon rewriting des URL, on doit pouvoir rendre le tout transparent pour les visiteurs ou membres.
Il n'y a plus que le domaine ou sous-domaine ou redirection web pour chacun des sites.

(Encore une idée qui remonte la barre un cran plus haut).

Merci Chris.
Vincent


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

#8 2005-11-25 18:40:02

Vassae
Membre
2005-01-13
127

Re: [Evolution] Remontée des ressources communes aux templates

A lire le début, j'allais vous parler d'une gestion non commune aux templates mais plutot de la gestion de sous-templates se rattachant à un principal... et Chrisaga l'a fait avant moi :)

En fait, je peux vous proposer un exemple de cette gestion des templates, celle du mod CH des forums phpbb. Avec ce mod, un template principal peut se voir décliner en plein de sous-template : couramment ce sont les couleurs et les icones qui changent mais absolument pas le gabarit général. Et dans le sous-template (qui est un sous-répertoire du template principal) ne sont présents que les fichiers qui diffèrent. Tous les autres sont absents. Quand le programme ne les trouvent pas dans le sous-template, il utilise ceux du template principal.

Par exemple dans notre cas, on aurait un template Yoga avec comme sous-répertoire yoga-dark et yoga-black où l'on trouverait que le fichier layout-color.css correspondant à chaque sous thème.

En fait cette architecture me parrait plus logique que celle où l'on aurait un répertoire commun plus en amont.

Hors ligne

#9 2005-11-25 20:11:22

chrisaga
Former Piwigo Team
France (92)
2005-08-10
566

Re: [Evolution] Remontée des ressources communes aux templates

Vassae a écrit:

A lire le début, j'allais vous parler d'une gestion non commune aux templates mais plutot de la gestion de sous-templates se rattachant à un principal... et Chrisaga l'a fait avant moi :)

C'est ce que j'ai appelé le thème : couleurs, polices et icônes

Vassae a écrit:

[...]Et dans le sous-template (qui est un sous-répertoire du template principal) ne sont présents que les fichiers qui diffèrent. Tous les autres sont absents. Quand le programme ne les trouvent pas dans le sous-template, il utilise ceux du template principal.[...]

Je vois deux objections à cette approche, toutes deux liées au fait que l'on fait mouliner le code de PWG :
1) ça coûte en CPU mutualisée pour recalculer pour chaques pages où sont les fichiers,
2) ça suppose développer du code pour ça.
Je pense que ce n'est pas le rôle principal de PWG, et que l'on peut déjà se baser sur un système plus déclaratif (inclusion des css, déclaration du répertoire d'icônes). Le fait que la découverte des éléments du thème soit automatique n'apporte pas réellement de valeur ajoutée une fois que le thème est bouclé et installé "en production", mais demande des efforts pour la mise au point.

Question pour Z0rglub :
Comment peut-on facilement déclarer au niveau du template un certain nombre de variables qui seraient utilisées dans les *.tpl pour indiquer par exemple le chemin du répertoire d'icônes ?
Est-ce qu'un tpl-inc.php conviendrait ?
Est-ce que ça serait compliqué ?

Vassae a écrit:

En fait cette architecture me parrait plus logique que celle où l'on aurait un répertoire commun plus en amont.

Les deux concepts ne sont pas contradictoires, mais complémentaires : le répertoire commun sert à stocker des informations de présentation/comportement valables pour tous les templates/thèmes (affichage où nom du titre, taille max des vignettes, ...)


Utilisateur depuis la version 1.3, Impliqué depuis la 1.4, Responsable du template des 1.5 et 1.6  ... et en (in)disponibilité sur la 1.7

Hors ligne

#10 2005-11-25 22:17:38

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12644

Re: [Evolution] Remontée des ressources communes aux templates

Je suis d'accord avec chrisaga et particulièrement sur un point particulier : il faut privilégier les solutions les moins coûteuses en CPU.

Comment peut-on facilement déclarer au niveau du template un certain nombre de variables qui seraient utilisées dans les *.tpl pour indiquer par exemple le chemin du répertoire d'icônes ? Est-ce qu'un tpl-inc.php conviendrait ? Est-ce que ça serait compliqué ?

Ce serait une bonne amélioration en effet.

Le fichier template/yoga/tplconf.inc.php contiendrait:

Code:

<?php
$tplconf = array(
  'icon_dir' => PHPWG_ROOT_PATH.'template-common/icons',
  'default-layout stylesheet' => PHPWG_ROOT_PATH.'template/yoga/default-layout.css'
);
?>

et dans les *.tpl, on aurait

Code:

<img src="{tplconf:icon_dir}/delete.png" />

Pour include/template.php, il faut s'inspirer de ce qui a été fait pour {lang:...}

Bref, cela ne me semble pas compliqué du tout. Reste à trouver les bonnes variables, etc.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#11 2005-11-26 00:13:40

chrisaga
Former Piwigo Team
France (92)
2005-08-10
566

Re: [Evolution] Remontée des ressources communes aux templates

z0rglub a écrit:

[...]
Bref, cela ne me semble pas compliqué du tout. Reste à trouver les bonnes variables, etc.

Super !
Merci, je vais essayer d'y réfléchir un peu ce week-end.
Je suppose que ça sera pour la BSF et non la 1.5.1 parce que ça suppose pas mal de ménage dans les fichiers du template.


Utilisateur depuis la version 1.3, Impliqué depuis la 1.4, Responsable du template des 1.5 et 1.6  ... et en (in)disponibilité sur la 1.7

Hors ligne

#12 2005-11-26 08:56:56

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12644

Re: [Evolution] Remontée des ressources communes aux templates

chrisaga a écrit:

Je suppose que ça sera pour la BSF et non la 1.5.1 parce que ça suppose pas mal de ménage dans les fichiers du template.

Oui, évidemment, hors de question de mettre ça en branche 1.5 (qui ne doit bouger que pour corriger des bugs vraiment gênant ou des bugs qui ne touchent pas aux templates et fichiers de langue)


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#13 2005-11-26 22:44:34

chrisaga
Former Piwigo Team
France (92)
2005-08-10
566

Re: [Evolution] Remontée des ressources communes aux templates

Salut à tous, compte tenu de l'ampleur des modifs pour mettre en œuvre ce dont nous avons discuté, j'ai fait un petit point avec z0rglub pour voir si je n'étais pas trop à côté de la plaque. Voici ce que l'on peut en retenir :

chrisaga a écrit:

Comme dit dans la discussion [Evolution] Remontée des ressources communes aux templates, je me suis collé essayer de voir ce que l'on peut mettre en pratique.
J'ai quelque chose qui fonctionnne et que je voulais soumettre Z0rglub avant de faire un commit dans la BSF parce que ça impacte pas mal de fichiers et de répertoires.
Un snapshot est disponible ici : bsf-snapshot-2005-11-26.tar.bz2.

J'ai remonté les ressources communes dans template-common et séparé le thème du template.
Voici ce que ça donne :

Code:

|
|-> template
|      |-> yoga
|      |      |-> default-layout.css
|      |      |-> (autres fichiers css)
|      |      |-> (fichiers tpl)
|      |
|      |-> yoga-dark
|      |-> (autres templates)
|
|-> template-common
|     |-> default-layout.css
|     |-> icons
|           |-> admin
|                  |-> (fichiers png)
|           |-> mimetypes
|                  |-> (fichiers png)
|           |-> (fichiers png de base)
|
|-> theme
       |-> yoga-clear
       |      |-> default-color.css
       |      |-> tplconf.inc.php
       |
       |-> yoga-dark
              |-> default-color.css
              |-> tplconf.inc.php
              |-> images

                     |->tableh1_bg.png
                     |->tableh2_bg.png

Le principe est que la fonction get_templates() renvoie les sous-répertoires du répertoire themes et non plus template, et que le nom du template est stocké dans le tplconf.inc.php.
J'espère que je n'ai pas trop fait de dégats, mais franchement, le système de template est bien fait, et ça a été beaucoup plus facile que je ne m'y attendais.

Reste à faire :
1) l'appel du template/theme pour install.php
2) page_header.php contient encore une référence à $user['template'] pour construire une variable $css, mais je crois que ce n'est plus utilisé
3) renommer $user['template'] en $user['theme'] et get_templates() en get_themes() (d'autres ?) pour la cohérence

Je ne suis pas mécontent du résultat, surtout lorsque l'on voit que yoga-dark ne "pèse plus que" 4 fichier et un répertoire.

OK pour un commit ?

z0rglub a écrit:

1. la fonction get_tplconf, écrite comme cela :

Code:

function get_tplconf($key)
{
  global $tplconf;

  return isset($tplconf[$key]) ? $tplconf[$key] : $key;
}

n'a pas de sens. A quoi sert de renvoyer la clef ? (à rien)

2. theme/*/tplconf.inc.php devrait s'appeler themeconf.inc.php vu l'arborescence

3. je trouve l'arborescence trop complexe. Je n'arrive pas à comprendre pourquoi par exemple tu mets les icones dans template-common (sémantiquement, j'aurai choisi theme-common). Par ailleurs le fait que theme/yoga-clear ne soit pas dans template/yoga me gène un peu. Imaginons qu'un jour il y ait un nouveau template complètement différent de yoga, que nous nommerons "jumbo" (du nom des couches de mon fils en ce moment), on ne saurait plus quels themes vont avec quels templates.

Je te propose une simplification :

Code:

template
|-- jumbo
|   |-- *.css
|   |-- *.tpl
|   |-- icon
|   `-- theme
|       |-- baby
|       |   `-- theme_conf.inc.php
|       |-- crystal
|       |   |-- default-layout.css
|       |   |-- images
|       |   |   `-- tableh1_bg.png
|       |   `-- theme_conf.inc.php
|       `-- piglet
|           |-- icon
|           `-- theme_conf.inc.php
`-- yoga
    |-- *.css
    |-- *.tpl
    |-- icon
    `-- theme
        |-- clear
        |   `-- theme_conf.inc.php
        |-- dark
        |   |-- default-layout.css
        |   |-- images
        |   |   `-- tableh1_bg.png
        |   `-- theme_conf.inc.php
        `-- pooh
            |-- icon
            `-- theme_conf.inc.php

Ainsi on pourrait avoir les couples template/theme suivants : jumbo/baby, jumbo/crystal, jumbo/piglet, yoga/clear, yoga/dark, yoga/pooh. Cette liste serait proposée dans profile.php.

Cela ne casse pas ton principe de surchargement tout en étant à mon avis plus simple en terme d'arborescence. Qu'en penses-tu ?


Utilisateur depuis la version 1.3, Impliqué depuis la 1.4, Responsable du template des 1.5 et 1.6  ... et en (in)disponibilité sur la 1.7

Hors ligne

#14 2005-11-26 23:03:50

chrisaga
Former Piwigo Team
France (92)
2005-08-10
566

Re: [Evolution] Remontée des ressources communes aux templates

z0rglub a écrit:

A quoi sert de renvoyer la clef ? (à rien)

Non, à rien. Je n'ai pas non plus dit que tout ce que j'avais écrit était intelligent :-D
juste que ça fonctionne, déjà pas si mal.
Je modifie.

z0rglub a écrit:

2. theme/*/tplconf.inc.php devrait s'appeler themeconf.inc.php vu l'arborescence

OK je modifie.

z0rglub a écrit:

3. je trouve l'arborescence trop complexe.

Si tu veux, mais ce que tu propose comporte un niveau de profondeur de plus. En quoi est-ce moins complexe ?

z0rglub a écrit:

Je n'arrive pas à comprendre pourquoi par exemple tu mets les icones dans template-common

Parce que le jeux d'icones que nous proposons peut être valable pour différents templates

z0rglub a écrit:

(sémantiquement, j'aurai choisi theme-common).

Ça se discute, il y a aussi les choix de "layout" valables pour tout le site. Est-ce que site-common conviendrait mieux ?

z0rglub a écrit:

Par ailleurs le fait que theme/yoga-clear ne soit pas dans template/yoga me gène un peu.
[...]
Cela ne casse pas ton principe de surchargement tout en étant à mon avis plus simple en terme d'arborescence. Qu'en penses-tu ?

C'est un point de vue, mais ça complexifie la fonction get_templates(), à mon avis inutilement. En fait, je ne sais pas l'écrire en php :-))

[edited]
Bon la nuit a porté conseil, et je pense que laisser tous les themes ensemble au même niveau que les templates comporte plusieurs avantages :
1) gestion simplifiée que ce soit pour get_templates() ou pour l'utilisation du template/theme choisi (à chaque page affichée donc important)
2) discours simplifié : theme = personalisation  / template = pas touche sauf si vous savez vraiment ce que vous faites

Pour s'y retrouver, il est de toutes façons souhaitable de donner au theme un nom qui rappelle le template auquel il est rattaché car il y a peu de chance qu'un theme créé pour yoga fonctionnne sans modification pour jumbo.

Enfin, vu les questions sur le forum concernant le nombre de vignettes par page non respecté, je crois qu'on sais quel sera le prochain template.
[/edited]

PS. Sinon, pour yoga/pooh, ce thème là je te laisse l'écrire, ok ?   ;-)

Dernière modification par chrisaga (2005-11-27 10:49:20)


Utilisateur depuis la version 1.3, Impliqué depuis la 1.4, Responsable du template des 1.5 et 1.6  ... et en (in)disponibilité sur la 1.7

Hors ligne

#15 2005-11-27 11:10:48

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12644

Re: [Evolution] Remontée des ressources communes aux templates

edit : j'ai écris ce post avant que tu édites le tien... j'ai l'impression que nos opinions se rejoignent.

A propos de la fonction get_tplconf... écrire une fonction qui renvoie $tplconf[$key] au lieu d'aller chercher directement $tplconf[$key] évite d'avoir à rendre global $tplconf dans toutes les fonctions qui ont besoin de $tplconf. Bref,

Code:

function get_themeconf ($key)
{
  $global $themeconf;

  return $themeconf[$key];
}

(j'ai donc remplacé "tpl" par "theme" puisqu'il s'agit de la configuration du theme et pas du template)

chrisaga a écrit:

ce que tu propose comporte un niveau de profondeur de plus. En quoi est-ce moins complexe ?

Ajouter une niveau de profondeur n'apporte pas de complexité à mon sens. C'est surtout moins complexe car on identifie clairement un template qui peut être légèrement modifié par un theme. Si on veut une modification lourde, alors il faut un nouveau template.

Ce que nous -//:---\spam le système actuel, c'est que le niveau "theme" est manquant et que dupliquer un tempalte entier uniquement pour changer la couleur des liens et la largeur de la menubar, c'est stupide. (j'ai le droit de le dire, c'est ma faute) Enfin, c'est dommage surtout. Cela a ralenti la livraison en standard du template yoga-dark alors que s'il avait s'agit d'un thème, nous l'aurions certainement intégré immédiatement en standard en gestion de version.

Pour le moment, dans l'histoire de PhpWebGallery, en 4 ans, je n'ai vu que deux vraies modifications lourdes du template faite par torode (dont le site est malheureusement en travaux au 27 novembre 2005) et par jillij pour son intégration de PhpWebGallery dans Wordpress. Ce type de modification rare nécessite la possibilité de faire des templates aditionnels. Mais dans l'extrêmement grande majorité des cas, c'est du theme dont on a besoin. C'est pour cela que je trouve personnellement inutile template-common. Le jeu d'icône dans le template, ça me semble plutôt normal. Dupliquer un jeu d'icône, c'est vraiment rien du tout, d'autant que ce sera rarement utile. Et même si c'est utile uniquement pour un theme donné, on peut très bien comme dans jumbo/piglet redéfinir un jeu d'icône au niveau du theme.

Maintenant à propos de la séparation template et theme au même niveau d'arborescence, je maintiens ma position, surtout qu'elle semble opposée à une simple difficulté technique (complexification de la fonction get_templates) : un theme dépend d'un template donné, à ce titre, les thèmes d'un template devrait être dans le répertoire du template.

Passons à la petite difficulté technique, la fonction get_templates ou get_themes. Elle doit nous présenter <nom du template>/<nom du theme>. C'est ainsi que nous le stockerions en base de données dans le champ user_infos.template (à renommer éventuellement en quelque chose de plus générique comme user_infos.layout).

Code:

function get_themes()
{
  $themes = array();

  foreach (get_dirs(PHPWG_ROOT_PATH.'template') as $template)
  {
    foreach (get_dirs(PHPWG_ROOT_PATH.'template/'.$template.'/theme' as $theme)
    {
      array_push($themes, $template.'/'.$theme);
    }
  }

  return $themes;
}

Il faudra ensuite dans include/common.inc.php découper $user['template'] récupéré dans phpwebgallery_user_infos.template en 2 : $user['template'] et $user['theme']. A améliorer bien sûr car on doit redéfinir une variable et c'est bof... certainement que le changement du nom de la colonne en phpwebgallery_user_infos.layout rendra cela plus clair.

Code:

// include template/theme configuration
list($user['template'], $user['theme']) = explode('/', $user['template']); // TODO : replace initial $user['template'] by $user['layout']

include(PHPWG_ROOT_PATH.'theme/'.$user['template'].'/theme/'.$user['theme'].'/theme_conf.inc.php');
$template = new Template(PHPWG_ROOT_PATH.'template/'.$user['template']); // or $themeconf['template'], should be equal

Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

Pied de page des forums

Propulsé par FluxBB

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