Annonce

#1 2011-10-27 17:30:18

BDZ
Invité

nouveau plugin

Je me lance dans la création d'un plugin fortement inspiré de "http://fr.piwigo.org/doc/doku.php?id=projet:developpement:plugins" et je bloque sur l'ajout de ligne via le php dans la definition de page "testplugin_admin.tpl".
En fait la fonction je bloque sur ce qu'est le tpl_handle, est la classe du testplugin_admin.tpl ("titrePage") , ou bien c'est le chemin d'accès a ce fichier, ou autre chose...

Merci de votre aide.

#2 2011-10-27 19:04:28

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16816

Re: nouveau plugin

Bienvenue pour développer des plugins :-)

je ne suis pas sur de bien comprendre ta question mais je vais quand même essayer d'y répondre.
je ne sais pas si tu souhaite un explication très technique ou la compréhension du fonctionnement

Donc si je répond à coté n'hésite pas à le dire !

Donc si tu parle de la ligne

$template->set_filenames( array('plugin_admin_content' => dirname(__FILE__).'/testplugin_admin.tpl') );

c'est expliquer à Piwigo que quand tu clics sur le lien de l'admin de ton plugin le fichier tpl à utiliser est 'testplugin_admin.tpl'

Tu peux bien sur donner le nom que tu veux au fichier tpl


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#3 2011-10-27 20:56:45

BDZ
Invité

Re: nouveau plugin

Merci pour votre réponse, je n'ai pas été assez précis.
Sur le squelette mentionné ci-dessus, je tente d'utiliser :
function personal_add_before_tpl_code($tlp_handle, $insert_before, $code)
{
  global $template;

  $template->loadfile($tlp_handle);
  $template->uncompiled_code[$tlp_handle] = str_replace($insert_before, $code.$insert_before, $template->uncompiled_code[$tlp_handle]);
}

pour ajouter des lignes avec des valeurs extraites de la base.

Et c'est là qu'il me manque cette notion de $tlp_template(objet,nom de fichier...?)
le $template je l'ai, je réussi a initialiser des valeurs qui sont affichées, mais dés que ,
souhaite utiliser "personal_add_before_tpl_code" je ne sais quoi indiquer pour $tlp_handle
que je passe le nom du *tpl, $self (...) j'ai une alerte que loadfile n'existe pas.

#4 2011-11-04 13:40:14

BDZ
Invité

Re: nouveau plugin

Y'a pas un tuto qui permet de mieux comprendre comment utiliser toutes ces fonctions , car là je n'ai toujours pas solutionné ce simple problème.

#5 2011-11-04 14:40:03

flop25
Équipe Piwigo
2006-07-06
6544

Re: nouveau plugin

Bonjour comme tuto vous avez http://piwigo.org/doc/doku.php?id=plugi … ial1&s[]=skeleton
mais malheureusement à part comprendre par vous même, comme tout le monde fait, je n'ai pas d'autre solutions à vous proposer

Mais je viens de comprendre un détail important : le code que vous utilisez là me disait qqchose... et j'ai trouvé ! Vous utilisez de l'ancien code d'avant smarty !
Alors désormais pour manipuler de les chaines de caractères de tpl, regardez Image preview
Il y a :

Code:

/** thumbnails.tpl **/
add_event_handler('loc_end_index_thumbnails', 'imgpreview_thumbnails');
function imgpreview_thumbnails($tpl_thumbnails_var)
{
......
  $template->set_prefilter('index_thumbnails', 'imgpreview_prefilter_thumbnails');
....
}
function imgpreview_prefilter_thumbnails($content, &$smarty)
{
  global $template;
  $search = 'href="{$thumbnail.URL}"';
  
  $replacement = 'href="{$thumbnail.URL}" imgsrc="{$thumbnail.FILE_PATH}"';

  $content= str_replace($search, $replacement, $content);

  $content='{$IMGPREVIEW}'.$content;
  return $content;
}

pour changer un bout de code à l'intérieur : str_replace($search, $replacement, $content);
pour concaténer $content='{$IMGPREVIEW}'.$content; Ici je passe une variable smarty que j'ai initialisé dans imgpreview_thumbnails() mais vous pouvez y mettre de l'html...

Pour savoir ce qu'il faut mettre cad add_event_handler('loc_end_index_thumbnails',XXX) et set_prefilter('index_thumbnails', 'XXX'); il faut ouvrir les fichier php qui vous intéresse dans /include et rechercher
trigger_event('loc_end_index_thumbnails',
et
// template thumbnail initialization
$template->set_filenames( array( 'index_thumbnails' => 'thumbnails.tpl',));

Hors ligne

Pied de page des forums

Propulsé par FluxBB

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