Bonjour/Bonsoir,
Je me suis lancé dans le développement d'un plugin pour lier les utilisateurs wordpress et piwigo.
J'ai suivi certains topics ça et là et de façon basique, ça fonctionne, y compris l'auto-logon.
Mais, les utilisateurs autorisés à se connecter en autologon à la galerie sont codés en dur dans un config.inc.php ce qui n'est pas top (mais c'est la base de travail que j'ai utilisée et ça fonctionne.
Du coup, je me suis dis que j'allais me lancer dans la création d'un plugin pour pouvoir paramétrer ça à partir de l'interface de piwigo plutôt qu'en dur.
J'ai donc suivi la doc de création d'un plugin, mais voilà, je bloque sur plusieurs points que je dois adapter à partir de l'exemple
1. L'affectation des valeurs lues à partir du PHP au template.
Dans l'exemple, ce sont des valeurs de type texte, affectées par un $template->assign('CHAMP_TEMPLATE', $me->my_config['MON_TEXTE']);
Or, si j'ai bien une zone texte à afficher, je veux aussi pouvoir utiliser une checkbox pour valider ou pas l'autologon
Exemple de l'état actuel de l'admin du plugin
Mais, je ne sais pas comment affecter la checkbox à partir de la methode $template->assign(xxx,xxx)
Ma variable contient 1 si l'autologin est actif, 0 sinon.
Comment fait pour cocher la case lorsqu'elle est = à 1 ?
2. La liste des utilisateurs.
Comme indiqué plus haut, j'affiche (pour mes tests) 1 utilisateur. Mais une fois que le problème d'affectation de le checkbox sera réglé (je compte sur vous :D ) je ne vais pas juste le faire pour 1 utilisateur...
Du coup, il faut que cette ligne (login, checkbox) puisse être multipliée x fois.
Pour ça, 2 façons de faire :
A. simplement afficher dans le plugin un bouton pour charger tous les utilisateurs de la BDD wordpress et cocher ceux qui peuvent utiliser l'autologin
B. Avoir la possibilité d'ajouter une ligne (à l'aide d'un bouton ?) pour saisir un nouvel utilisateur.
Mais peu importe que ce soit A ou B, je ne sais pas comment faire pour créer toutes ces lignes (rien qu'à l'affichage déjà) de façon automatique dans le template, en fonction du nombre d'utilisateurs.
Admettons que j'ai 10 utilisateurs qui sont actifs en autologon, je dois afficher 10 lignes. Si j'en ajoute 1, lors que prochain appel à la configuration du plugin, je dois en afficher 11. Bref, ça doit être dynamique, et ça, je ne sais pas faire et mes recherches n'ont pas abouties :/
Du coup, j'appelle à vos compétences :)
Merci d'avance !
Version de Piwigo: 11.5.0
Version de PHP: 7.3.28
Version de MySQL: 5.5.5-10.3.29-MariaDB
URL Piwigo: http://photos.pcco.fr
Hors ligne
Bonjour,
Yoda a écrit:
2. La liste des utilisateurs.....
ce que je ferais : regarder les opérateurs d'incrémentation i++ ou $i++
A très vite
Hors ligne
Merci pour cette réponse :)
Entre-temps, j'ai avancé (ben oui, j'aime bien quand ça avance :D ).
J'ai tout ce qu'il faut je pense pour que ça fonctionne (car ça fonctionne 'presque").
Le point 1 est réglé
Le point 2 est réglé
Par contre, je butte actuellement sur un nouveau souci.
Si je réserve une table de 2 lignes (par exemple) dans mon template et que j'affecte les valeurs à la table, tout va bien.
Si je remplace ma "table statique" de 2 lignes par une variable que je remplis côté php et que j'affecte ensuite, tout fonctionne, mais.... Ca ne s'affiche pas au bon endroit !
Explication :
Si mon template contient les 2 versions de la table (la statique de 2 lignes et la dynamique (variable PLUGINPCCO_PHP_TABLE):
<form method="post" action="{$PLUGINPCCO_F_ACTION}" class="general">
{$PLUGINPCCO_PHP_TABLE}
<table>
<tr>
<th>Utilisateur Wordpress</th><th>Autologin actif</th>
</tr>
<tr>
<td><input type="text" label="L1" name="WPL1" value="{$PLUGINPCCO_WPL1}" /></td>
<td align="center"><input type="checkbox" label="A1" name="ACT1" value="{$PLUGINPCCO_ACT1}" /></td>
</tr>
<tr>
<td><input type="text" label="L2" name="WPL2" value="{$PLUGINPCCO_WPL2}" /></td>
<td align="center"><input type="checkbox" label="A2" name="ACT2" value="{$PLUGINPCCO_ACT2}" /></td>
</tr>
</table>
<p><input type="submit" value="Enregistrer" name="submit" /></p>
</form>
Le résultat est le suivant :
Ma table statique s'affiche correctement, mais la synamique (pourtant au même endroit dans le template, s'affiche (avec une erreur) dans le header :/
Voilà ou je bloque pour l'instant (l'opération suivante sera l'enregistrement des données du template, mais une chose après l'autre :)
Hors ligne
Bonjour,
Je dirais que tu dois plutôt affecter un tableau à smarty, et parcourir ensuite ton tableau par une boucle
Dans la partie php tu fais une requête pour récupérer le tableau des infos
ensuite tu construis ton tableau en php avec tes infos pour une ligne dans un tableau par exemple $items
tu l'envoi ensuite au template avec une truc du genre
$template->append('info_users', $items);
et dans le template
{foreach from=$info_users item=infousers}
<tr>
<td><input type="text" label="$infousers.L1" name="$infousers.WPL1" value="{$infousers.WPL1}" /></td>
<td align="center"><input type="checkbox" label="$infousers.A1" name="infousers.ACT1" value="{$infousers.ACT1}" /></td>
</tr>
{/foreach}
Hors ligne
Bonjour
Pour faciliter la traduction de ton plugin
Yoda a écrit:
<table>
<tr>
<th>Utilisateur Wordpress</th>
utiliser plutôt
{'Wordpress Users'|@translate}
Hors ligne
Bonjour,
il faut bien débuter un jour !
le conseil que je te donne c'est de regarder les plugins qui fond des chose similaire à ce que tu veux faire au des page de piwigo qui fond cela est de regarder ce qui a été fait
Hors ligne