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

Guy_M
2006-11-04 01:48:18

tosca a écrit:

C'est quoi une "couche de persistance" ?

La couche de persistance dans PWG c'est la base de donnée.

Pour plus d'informations, consulter dans Wikipédia les articles sur le Modèle-Vue-Contrôleur (MVC) et sur l'architure trois tiers

Guy_M
2006-11-04 01:33:48

Bonjour,

J'avais approximativement compris comment on instancie les données dans le .php et le .tpl

Ta démonstration est faite avec un seul niveau de variable en affectant directement les valeurs aux variables de 'bloc'.

Quand je lis picture.php je tombe sur ce genre de code :

Code:

    $template->assign_block_vars(
      $which_image,
      array(
        'TITLE_IMG' => $picture[$which_image]['name'],
        'IMG' => $picture[$which_image]['thumbnail'],
        'U_IMG' => $picture[$which_image]['url'],
        'U_IMG_SRC' => $picture[$which_image]['src']
        )
      );

Si j'ai bien compris, $picture est un bloc et 'name' une variable de ce bloc.
Quelles sont les autres variable du bloc $picture ?
Où le bloc $picture a-t-il été instancié ?

D'après ce que tu dis de l'organisation du code

z0rglub a écrit:

Dans les fichiers PHP comme picture.php, tu trouveras des requêtes SQL.

On trouve les requêtes SQL dans des variables $query, le résultat de la requête est reversé dans un $result (via la fonction pwg_query) ce résultat étant transformé (a priori partiellement) en un bloc utilisé dans un .tpl

Donc en gros, pour reconstituer le contenu d'un bloc, je dois remonter à la transformations du résultat de la requête SQL en un bloc de variable utilisable dans .tpl (pour avoir la liste des variables disponibles dans le bloc $result, je dois analyser la requête)...

Ai-je enfin compris ?
Donc pour rescencer toutes les données disponibles/utilisables dans un .tpl, il y a du boulot d'analyse !

plg
2006-11-03 17:37:13

Guy_M a écrit:

L'ensemble des données utilisée par PWG sont contenues dans les tables (couche de persistance). Elles sont chargées dans des objets qui sont ensuite utilisés par les templates.

Non. PhpWebGallery ne suit pas le sacrosaint modèle MVC. Dans les fichiers PHP comme picture.php, tu trouveras des requêtes SQL.

Pour ce qui concerne le template, en lisant les fichiers *.tpl, tu y trouveras des blocs :

Code:

<!-- BEGIN foo -->
{foo.BAR1} : {foo.BAR2}
<!-- END foo -->

... est le bloc "foo" contenant 2 variable BAR1 et BAR2. Les blocs du template sont instanciables N fois de 0 à +infini. Dans le code PHP, on instancie le bloc de la façon suivante :

Code:

$template->assign_block_vars(
    'foo',
    array(
        'BAR1' => 'Salut',
        'BAR2' => 'Guy_M',
    )
);

Est-ce que ce début d'explication commence à repondre à ta question ?

Toff
2006-11-01 16:53:08

Voici un petit bout de code qui peux aider, dans le fichier include/template.php modifier la méthode p() comme ci-dessous :

Code:

  function p()
  {
    echo $this->output;
    echo "<hr><pre>".htmlspecialchars(print_r($this->_tpldata, true))."</pre>";
  }

Ca permet d'avoir à la fin de chaque page, un "dump" des tableaux utilisés par le moteur de template. (pas toujours très lisible c'est vrai)

tosca
2006-10-29 19:59:07

C'est quoi une "couche de persistance" ?

Guy_M
2006-10-28 21:50:40

Bonjour,

A la demande générale, je créé 1 sujet qui permettra des répondre à une des questions posées lors de la discussion "Comment faire pour que j'arrête de vous casser les pieds......." plus précisément .

L'ensemble des données utilisée par PWG sont contenues dans les tables (couche de persistance). Elles sont chargées dans des objets qui sont ensuite utilisés par les templates.

La structure de la couche de persisitance est décrite ici : Structure de la base 1.6. Dans la documentation, il manque une description de la la structure des objets. Cette description est importante pour pouvoir personaliser, adapter ou étendre PWG (créer des template, plugin ou MOD) car c'est sur elle que s'appuie le système de templates. Quelle est la structure de données de ces objets ?

J'ai essayé de fouiller mais j'ai eu beaucoup de mal : par exemple dans picture.tpl on voit qu'on a des objets first, previous, next, last faisant partie de la même classe d'objects (qui après analyse se révèle être membres d'un array et basé sur un objet picture qui obtient ses informations d'une fonction 'get_thumbnail_src' et là je me suis perdu). Pour comprendre cette structure de données, il y a besoin d'explorer beaucoup de code.

Pied de page des forums

Propulsé par FluxBB

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