Annonce

  •  » Plugins
  •  » Developpement d'un plugin : checkbox et autre tables

#1 2021-06-02 11:37:48

Yoda
Membre
2021-05-29
5

Developpement d'un plugin : checkbox et autre tables

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

https://nsa40.casimages.com/img/2021/06/02/210602114026838988.jpg

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

#2 2021-06-11 13:19:13

k5
Équipe Piwigo
La reppe
2014-01-26
745

Re: Developpement d'un plugin : checkbox et autre tables

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


Essayez d'Avoir comme premier réflexe de lire les documentations s'il y a des réponses à votre question. merci
Piwigo documentation

Hors ligne

#3 2021-06-11 18:28:23

Yoda
Membre
2021-05-29
5

Re: Developpement d'un plugin : checkbox et autre tables

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 :/

https://nsa40.casimages.com/img/2021/06/11/210611064030701997.jpg


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

#4 2021-06-11 21:07:25

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

Re: Developpement d'un plugin : checkbox et autre tables

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}


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

#5 2021-06-11 21:10:30

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

Re: Developpement d'un plugin : checkbox et autre tables

Bonjour

Pour faciliter la traduction de ton plugin

Yoda a écrit:

<table>
        <tr>
            <th>Utilisateur Wordpress</th>

utiliser plutôt

{'Wordpress Users'|@translate}


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

#6 2021-06-12 07:37:57

Yoda
Membre
2021-05-29
5

Re: Developpement d'un plugin : checkbox et autre tables

Merci pour ces infos !

(Je crois que ça se voit que j'y connais rien en programmation :D )

Je vais continuer à regarder dans ce sens.

Merci !

Hors ligne

#7 2021-06-12 07:47:49

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

Re: Developpement d'un plugin : checkbox et autre tables

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


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

  •  » Plugins
  •  » Developpement d'un plugin : checkbox et autre tables

Pied de page des forums

Propulsé par FluxBB

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