Pages: 1
Bonjour,
ça fait quelques mois que j'ai decouvert PWG et ca me convient tres bien pour les photos, puis apres j'y ai mis des sons et j'ai decouvert la personnalisation de PWG par l'extension MediaIntegrator.. parfait! mais je souhaitais obtenir un autre traitement pour les sons donc je me suis mis a creuser un peu dans les fichiers ... ceux a la racine, ceux dans "include", ceux dans le template yoga ...
finalement, j'ai essayé de comprendre comment ca marche, recherches et lecture dans le forum, dans le wiki etc... mais la depuis qqes temps je bloque ! j'arrive pas a comprendre le detail du fonctionnement de PWG notamment des fichiers picture.tpl et thumbnail.tpl..
ca doit paraitre bete aux plus developpeurs d'entre vous mais moi je debute tout doucement en php la , j'ai des connaissances en sql et de vagues notions en css donc je rame ;)
... par exemple ou sont declarés les "classes" et comment fonctionne l'iteration qui se passe dans le fichier yoga\thumbnail.tpl , comment faire entrer en jeu d'autres variables, d'autres comportements selon le type de fichier par ex et les traiter dans thumbnail.tpl .ou picture.tpl.. (ce ne sont que des exemples de questions que je me pose et en aucun cas une demande de reponse ici ;) ) ... Un genre de petit synoptique explicatif me ferait le plus grand bien! et je reve d'un cours de syntaxe et d'analyse des fichiers ;)
Mon post est peut etre un peu confus, mais c'etait pour demander eventuellement qqes explications ou docs sur le fonctionnement plus en profondeur de PWG et de l'enchainement des differents fichiers situés à la racine, dans include, dans template et admin essentielllement.
Par exemple aussi, j'ai encore un peu de mal a distinguer les notions de "MODule", de "plugin" et a la limite de "template".:p .. bref ce qui touche a la personnalisation et a l ajout de fonctionnalités.
ça n'est en aucun cas une critique de PWG, juste une suggestion qui pourrait servir a d'autres bidouilleurs debutants comme moi qui trouve en PWG un superbe outil et une communauté compétente et ouverte!:)
En esperant declencher peut etre une vocation de documentaliste ou de prof chez l'un des experts PWG ;).. sinon je continuerai mon travail de petite fourmi travailleuse et liseuse dans le forum et ailleurs ! Bien à vous !
Hors ligne
MODs, Je n'expliquerai pas pour moi ils sont presque morts: Vive les plugins !
Les plugins ne sont pas encore nés, chacun ou presque dans l'équipe en a fait un pour voir. Et c'est génial, cela demande une grande compréhension de PhpWebGallery...
z0rglub a fait un message expliquant le fonctionnement des blocs des templates...
Tu peux le rechercher et mettre le lien dans ce sujet.
Maintenant on peut faire une lecture commentée de thumbnail.tpl, si tu veux.
C'est d'ailleurs très bien choisi car ce n'est pas forcément le plus limpide pour tout le monde mais c'est celui qui demande le plus de personnalisation probablement.
Je t'invite à recopier ici le contenu de thumbnail.tpl jusqu'à ton premier point de blocage.
Nous t'apporterons les éclaircissements nécessaires et tu pourras montrer la suite jusqu'au blocage suivant.
D'accord?
Commence par retrouver sur le forum le message de z0rglub.
8-)
Hors ligne
je cherche :) ... mais il est assez prolixe z0rglub dans le forum (tant mieux pour nous pov'utilisateurs!) je suis 100% d'accord pour la lecture commentée de thumbnail.tp .. le premier point de blocage va vite arriver ;)
1- dans quel fichier php est appelé ce thumbnail.tpl ?
2- Je vois au niveau du fichier category_subcats.inc.php des references a thumbnail.tpl:
$template->set_filenames( array( 'thumbnails' => 'thumbnails.tpl',));
$template->assign_block_vars('thumbnails', array());
// first line
$template->assign_block_vars('thumbnails.line', array());
$template->assign_block_vars('thumbnails.line', array());
// current row displayed
$row_number = 0;
Faudrait peut etre aussi une lecture commentée de category_subcats.inc.php :) surtout du bloc
foreach ($categories as $category)
{
$template->assign_block_vars(
'thumbnails.line.thumbnail',
array(
'IMAGE' => $thumbnail_src_of[ $category['picture'] ],
'IMAGE_ALT' => $category['name'],
'IMAGE_TITLE' => $lang['hint_category'],
'IMAGE_TS' => get_icon(@$category['date_last']),
'U_IMG_LINK' => make_index_url(
array(
'category' => $category['category'],
'cat_name' => $category['name'],
)
),
'CLASS' => 'thumbCat',
)
);
$template->assign_block_vars(
'thumbnails.line.thumbnail.category_name',
array(
'NAME' => $category['name']
)
);
// create a new line ?
if (++$row_number == $user['nb_image_line'])
{
$template->assign_block_vars('thumbnails.line', array());
$row_number = 0;
}
}
ce foreach semble provoquer l'iteration dans le thumbnail.tpl ou qqchose comme ça .. ca ma parait important pour la comprehension generale.. mon niveau de connaissance syntaxique est tres bas!..
dans thumbnail.tpl je vois :
<!-- BEGIN thumbnails -->
<ul class="thumbnails"> <--Qu'est ce qu'appelle ce "thumbnails" ? quel autre fichier le decrit, le definit?
<!-- BEGIN line -->
<!-- BEGIN thumbnail -->
<li class="{thumbnails.line.thumbnail.CLASS}"> <-- 1 explication en francais de cette variable composée?
<span class="wrap1"> <-- c'est koi wrap 1, 2 ?
<span class="wrap2">
<a href="{thumbnails.line.thumbnail.U_IMG_LINK}"> <--- ca rappelle les variables contenues dans le foreach de category_subcats.inc.php, non ?
<img class="thumbnail" src="{thumbnails.line.thumbnail.IMAGE}"
alt="{thumbnails.line.thumbnail.IMAGE_ALT}"
title="{thumbnails.line.thumbnail.IMAGE_TITLE}">
A priori, quand on rajoute un object apres la balise de fermeture ..</ul><!-- END thumbnails --> , il n'y a pas de boucle ou d'iteration.
Voila en l'etat, mes comprehensions en attendant de trouver et comprendre le(s) post de z0rglub .. :) et des autres !
@+
Hors ligne
Le message clé de z0rglub pour la compréhension des itérations:
http://forum.phpwebgallery.net/viewtopi … 655#p47655
Et dans ce message z0rglub n'est pas à son habitude très prolixe.
Pour le reste... Une question précise à la fois, merci.
8-)
Hors ligne
Je reviens a la surface apres un moment de pause..
Comme doc, j'ai trouvé ce tuto: http://phpcodeur.net/articles/php/templates ,
Ca ressemble fort aux fichiers PWG que j'essaie de decortiquer, c'est vraiment sur le meme principe que fonctionne PWG?... avant que je m'y plonge carrement ;) ...
Hors ligne
C'est la version de base effectivement que Chrisaga (Team member) a légèrement modifié déjà.
Et il sera encore modifié dans les prochaines releases sans que les fondementaux ne soient altérés.
Bien vu.
Hors ligne
J'ai essayé de comprendre ce tuto interessant ...puis je commence a bidouiller..
En test pour l'instant, je recupere une variable $Player (objet flash variabilisé selon le numero de la categorie $numpage) dans le fichier index.php a la racine du site.
J'essaie de le declarer par assign_block_vars dans un "bloc jukebox", je suis pas sur du tout de bien faire :
$template->set_filenames( array( 'jukebox' => 'thumbnails.tpl',));
$template->assign_block_vars(
'jukebox',
array(
'PLAYER' => "$Player" ,
'Page' => "$numpage" ,
)
);
Par ailleurs dans thumbnail.tpl, j'aimerais recuperer au moins une des 2 variablesje place
<!-- BEGIN jukebox-->
Le player flash : {jukebox.PLAYER}<BR>
La variable $numpage : {jukebox.Page}
<!-- END jukebox-->
.. Mais ca donne rien.... le code dans les balises <!-- BEGIN> ...<!-- END --> n'est pas exécuté ... j'ai du louper une lecon ou une subtiliité.
Quelqu'un voit la grosse betise-konfusion-oubli que je fais ?
Hors ligne
Supprimes:
$template->set_filenames( array( 'jukebox' => 'thumbnails.tpl',));
$template->assign_block_vars(
'jukebox',
array(
'PLAYER' => $Player ,
'PAGE' => $numpage ,
)
);
Ça n'a rien à faire dans index.php
peut-être dans ./include/category_default.inc.php
Car là on utilise thumbnail.tpl
8-)
thumbnail.tpl (Les noms de variable d'un bloc en Majuscules pour la lisibilité):
<!-- BEGIN jukebox-->
Le player flash : {jukebox.PLAYER}<BR>
La variable $numpage : {jukebox.PAGE}
<!-- END jukebox-->
8-)
Hors ligne
ben oui, j'ai mis les MAJUSCULES pour les variables, et deplacer le bout de code
$template->assign_block_vars(
'jukebox',
array(
'PLAYER' => $Player ,
'PAGE' => $numpage ,
)
);
dans le fichier category_default.inc.php mais toujours rien au sortir de thumbnail.tpl :(
- est ce que mon bloc jukebox doit etre imbriqué dans le bloc thumbnails pour avoir une variable {thumbnails.jukebox.PLAYER} ? ou independant, comme j'ai commencé, mais dans ce cas, je ne vois pas ou je raccroche le bloc "jukebox" au thumbnail.tpl. ....
Y a un truc que j'ai raté la encore dans le focntionement des tpl .....
Hors ligne
1 - -//:---\spam le TPL en entier
2 - -//:---\spam les dix lignes au-dessus du php.
Hors ligne
pour le thumbnail.tpl:
<!-- $Id: thumbnails.tpl 1387 2006-06-24 09:20:43Z chrisaga $ -->
<!-- BEGIN thumbnails -->
<ul class="thumbnails"> {thumbnails.PAGENUM}
<!-- BEGIN line -->
<!-- BEGIN thumbnail -->
<li class="{thumbnails.line.thumbnail.CLASS}">
<span class="wrap1">
<span class="wrap2">
<a href="{thumbnails.line.thumbnail.U_IMG_LINK}">
<img class="thumbnail" src="{thumbnails.line.thumbnail.IMAGE}"
alt="{thumbnails.line.thumbnail.IMAGE_ALT}"
title="{thumbnails.line.thumbnail.IMAGE_TITLE}">
</a>
</span>
<span class="thumbLegend">
<!-- BEGIN element_name -->
{thumbnails.line.thumbnail.element_name.NAME}{thumbnails.line.thumbnail.U_IMG_LINK}
<!-- END element_name -->
<!-- BEGIN category_name -->
[{thumbnails.line.thumbnail.category_name.NAME}]
<!-- END category_name -->
{thumbnails.line.thumbnail.IMAGE_TS}
<!-- BEGIN nb_comments -->
{thumbnails.line.thumbnail.nb_comments.NB_COMMENTS} {lang:comments}
<!-- END nb_comments -->
</span>
</span>
</li>
<!-- END thumbnail -->
<!-- END line -->
</ul>
<!-- END thumbnails -->
<!--BEGIN jukebox -->
{jukebox.PAGE}
{jukebox.PLAYER}
<!--END jukebox -->
et pour le category_default.inc.php, j'ai rajouté me lignes a la fin (tout betement, trop betement peut etre!)
ligne 165:
// create a new line ?
if (++$row_number == $user['nb_image_line'])
{
$template->assign_block_vars('thumbnails.line', array());
$row_number = 0;
}
}
$template->assign_var_from_handle('THUMBNAILS', 'thumbnails');
pwg_debug('end include/category_default.inc.php');
//-----------------------------------------------------------------------
// RAJOUT PERSO
//------------------------------------------------------------------------
$numpage= $page['category'];
if (isset($page['category']))
{echo " num_page=$numpage <BR>";}
else
{echo "pas de num page<BR>";
$numpage=0;
}
// first connect to database
//$dbcnx = @mysql_connect("localhost","USERNAME","PASSWORD");
$dbcnx = @mysql_connect("$cfgHote","$cfgUser","$cfgPassword");
//$dbselect = @mysql_select_db("DATABASE");
$dbselect = @mysql_select_db("$cfgBase");
if ((!$dbcnx) || (!$dbselect)) { echo "Can't connect to database"; }
// next, query for a list of titles, files and links.
$query = "SELECT A.file,A.author,A.path,A.comment
FROM PWGA_images A INNER JOIN PWGA_image_category B
ON A.id=B.image_id WHERE A.file LIKE '%mp3' AND B.category_id = ".$numpage."";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$num_rows = mysql_num_rows($result);
if ( $num_rows > 0 )
{
$Player = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"250\" height=\"400\" id=\"mp3player\"
codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0\">
<param name=\"movie\" value=\"http://pwg.tostaky.org/tools/mp3player.swf?file=http://pwg.tostaky.org/tools/php_mysql_playlist.php?categ=$numpage\" />
<param name=\"wmode\" value=\"transparent\" />
<param name=\"flashvars\"
value=\"config=http://pwg.tostaky.org/tools/config.xml&showeq=true&thumbsinplaylist=true&displayheight=150\" />
<param name=\"showeq\" value=\"true\" />
<param name=\"autostart\" value=\"true\" />
<embed src=\"http://pwg.tostaky.org/tools/mp3player.swf?file=http://pwg.tostaky.org/tools/php_mysql_playlist.php?categ=$numpage&showdisplay=true&showeq=true&thumbsinplaylist=true&displayheight=150&categ=82\" wmode=\"transparent\" width=\"200\" height=\"400\" name=\"mp3player\" autostart=\"false\" config=\"http://pwg.tostaky.org/tools/config.xml\" showdisplay=\"true\" showplaylist=\"true\" showeq=\"true\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" /></object>";
echo "Player = $Player<BR>" ;
$template->assign_block_vars('jukebox',array('PLAYER' => "$Player" ,'PAGE' => "$numpage" ));
}
else
{
echo 'pas la peine d\'afficher le player-son <BR>';
}
Ok, y a plus que 10 lignes, mais bon ... voila l'etat des lieux ...
Dernière modification par radiolak (2007-02-10 13:39:22)
Hors ligne
Pages: 1