•  » Plugins
  •  » [Résolu] Utiliser les variables php dans un .tpl

#1 2013-02-15 23:02:20

soussou63
Membre
2013-01-22
27

[Résolu] Utiliser les variables php dans un .tpl

Bonjour,

Je cherche a modifier Community pour lui ajouter le préremplissage du champ "Auteur" avec le login de l'utilisateur.

Pour cela j'ai cherché dans le add_photo.tpl, localisé l'endroit qui va bien et j'essaie d'afficher simplement le contenu de la variable $user['username'] mais ... ca cafouille :-/ help :)

{php}
$my_file_name = $this->get_template_vars($user['username']);
echo $my_file_name;
{/php}

Me retourne < Array > je ne comprends pas pourquoi.

Merci

Hors ligne

#2 2013-02-15 23:34:38

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3556

Re: [Résolu] Utiliser les variables php dans un .tpl

Bonjour

désolé mais... votre code ne rime absolument à rien

"get_template_vars" sert à récupérer des varaibles déjà assignés, là je sais pas trop ce que vous voulez en faire vu que vous donnez en paramètre le nom d'utilisateur

bref faites comme ceci :
{php}
echo $user['username'];
{/php}

cependant l'utilisation des tags {php} est très déconseillée, il faut mieux modifier les fichier php correspondant pour faire un
$template->assign('username', $user['username']);

et dans le template: {$username}


second point : ces modifs sauterons à la prochaine mise à jour du plugin, vous devriez faire un plugin perso avec un préfiltre (c'est dispo dans la documentation)

enfin pour cette donnée spécifique (nom d'utilisateur courant) est déjà disponible dans la variable de template {$USERNAME} donc pas la peine de la réassigner

Hors ligne

#3 2013-02-16 08:34:14

soussou63
Membre
2013-01-22
27

Re: [Résolu] Utiliser les variables php dans un .tpl

Merci beaucoup mistic beaucoup de réponses dans un seiul post :)

{php}
echo $user['username'];
{/php}
dans le .tpl ne fonctionne pas, cela n'affiche rien, c'est pour ca que j'ai cherché plus loin, et plus ... compliqué en me basant sur des chose trouvées sur le forum.

J'ai un peu de mal avec smarty ^^

Je vais regarder du coté des préfiltres, cela permet il de faire des modifications sur les templates des PLUGINS ?

Peut on avoir la liste des variables déjà assignées pour smarty ?

Pour community le préremplissage avait déjà du être prévu avec $AUTHOR mais chez moi ca n'a jamais marché, la case est toujours vide, en définissant $AUTHOR = $USERNAME ca marche.

Bonne journée :)

EDIT : J'ai rien trouvé sur la doc FR mais ceci sur la doc US :
http://piwigo.org/doc/doku.php?id=dev:plugin_tutorial2

Dernière modification par soussou63 (2013-02-16 09:24:39)

Hors ligne

#4 2013-02-16 09:48:29

soussou63
Membre
2013-01-22
27

Re: [Résolu] Utiliser les variables php dans un .tpl

J'ai testé ceci en plugin personnel :

Code:

<?php
/*
Plugin Name: Plugin Personnel
Version: 1.0
Description: Plugin Personnel
Plugin URI: http://piwigo.org
Author:
Author URI:
*/

global $template;
  $template->set_prefilter('add_photos', 'add_photos_perso');



function add_photos_perso($content, &$smarty)
{
  $search = '<input type="text" class="large" name="name" value="{$NAME}">';
 
  $replacement = '<input type="text" class="large" name="name" value="NOMTEST">';

  return str_replace($search, $replacement, $content);
}



?>

avec
// On force la recompilation smarty pour bien afficher le resultat des préfiltres.
$conf['template_force_compile'] = true;

en conf locale et j'ai purgé les templates précompilés smarty depuis Maintenance.

Pour l'instant cela ne fonctionne pas :-(

Hors ligne

#5 2013-02-16 10:30:44

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3556

Re: [Résolu] Utiliser les variables php dans un .tpl

ça ne vous balance pas une grosse erreur ça ? du style

Code:

Fatal error: Call to a member function set_prefilter() on a non-object

ce qui est tout a fait normal au passage (il y a des explications dans http://piwigo.org/svn/extensions/skeleton)

faites :

Code:

<?php
/*
Plugin Name: Plugin Personnel
Version: 1.0
Description: Plugin Personnel
Plugin URI: http://piwigo.org
Author:
Author URI:
*/

add_event_handler('init', 'my_plugin');

function my_plugin()
{
  global $template;

  $template->set_prefilter('add_photos', 'add_photos_perso');

  function add_photos_perso($content, &$smarty)
  {
    $search = '<input type="text" class="large" name="name" value="{$NAME}">';
   
    $replacement = '<input type="text" class="large" name="name" value="NOMTEST">';

    return str_replace($search, $replacement, $content);
  }
}


?>

(si votre gallerie est bloquée, modifiez à la main le fichier plugins/PersonalPlugin/main.inc.php)


ps : ne laissez pas $conf['template_force_compile'] = true; en production

Hors ligne

#6 2013-02-16 13:41:31

soussou63
Membre
2013-01-22
27

Re: [Résolu] Utiliser les variables php dans un .tpl

Aucune erreur n'apparaissait ... et pour cause ... !

Je pensais que le plugin perso de LocalFileEditor était d'office activé, mais en fait il faut aller dans la gestion des plugins l'activer en plus de LocalFileEditor.

Vraiement très modulaire ce piwigo !

J'ai reussi mon affichage de test.

Merci mistic100

Hors ligne

  •  » Plugins
  •  » [Résolu] Utiliser les variables php dans un .tpl

Pied de page des forums

Propulsé par FluxBB

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