mailRe: [Galette-discussion] Question de débutante : u tiliser les classes et Zend DB


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Johan Cwiklinski on September 23, 2011 - 18:34:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Salut,

Le 23/09/2011 12:09, Mélissa Djebel a écrit :
Bonjour à tous,

Avec mon oncle, on a choisit Galette pour la gestion d'un aéroclub.
Pour ne pas ré-inventer la roue, on souhaite partir de Galette 0.7 et
ajouter des plugins pour la gestion spécifique à l'aéroclub.
Jusqu'à présent la gestion se faisait entièrement en Access2 sur un
vieux Win2K.

Ça va vous changer un peu ! ;)


Dans un premier temps, je chercher à faire une chose en particulier :
- importer les membres de l'Access2 dans Galette 0.7. Pour ce faire,
j'ai un fichier CSV avec tous les membres et les données habituelles
dont certaines sont à stocker dans la table "galette_adherent" et une
autre partie dans une table complément pour simplifier la gestion avec
un clef étrangère sur "pseudo_adh".

La table de complément ressemble à ça :
[...]

Et là où je suis totalement plantée et je n'arrive pas à avancer, c'est
quelle classe je dois créer dans mon plugin et comment l'interfacer avec
Zend pour faire un insert ou un update.

C'est une question vaste, pas facile d'y répondre précisément...
Je pense qu'une idée serait de prendre le code d'une classe existante
assez simple (soit dans Galette, soit dans les plugins Auto ou Paypal),
de voir comment ça fonctionne, et d'essayer de monter quelque chose de
"simple" à partir de ça (ie. enregistrer « bêtement » les données dans
la nouvelle table serait un fort bon début je pense).


L'import des données ne va pas être fait en one-shot mais va être fait
régulièrement tant que le gros système de comptabilité derrière en
Access2 continue sa vie en attendant de migrer petit à petit vers
Galette 0.7.

Quelqu'un peu m'expliquer succinctement comment trouver si l'adherent
existe déjà via son pseudo, mettre à jour ses infos, enregistrer les
modifs (en insert ou update, selon). Pour la table de complément, je
devrais pouvoir comprendre à partir de l'exemple sur les adherents. Même
si un début de class pourrait m'aider.

Pour savoir si un adhérent existe, tu peux éventuellement utiliser la
méthode "loadFromLoginOrMail" de la classe Adherent.

L'ajout et la modification passent par la classe existante, qui attend
pour le moment un tableau avec l'ensemble des valeurs à attribuer (en
somme le $_POST envoyé par le formulaire adhérent actuel).
Par exemple :
$valeurs = array(
     'nom_adh' => 'Nom',
     'prenom_adh' => 'Prénom',
     'ville_adh' => 'Paris',
     ...
);
$a = new Adherent();
//les champs désactivés (les mêmes que sur self_adherent) - optionnel (à
priori)
$inactifs  = $a->disabled_fields + $a->edit_disabled_fields;
//les champs requis - optionnel (à priori) - gérés par une classe à part
$required = new Required();
$requis = $required->getRequired();
//stockage des valeurs dans l'objet et vérifications (formatage des
dates, etc, etc)
$ok = $member->check($valeurs, $requis, $inactifs);
//si tout est OK, on peut enregistrer dans la base
if ( $ok === true ) {
    $member->store();
}

La liste des champs requis et optionnels peut-être optionnelle ; je n'ai
pas testé ce cas de figure (c'est nécessaire partout dans Galette).


Idéalement, j'ai pensé que ma classe de pilote_adherent_complement
devait hériter de adherent, non ?

Dans l'absolu, oui, la nouvelle classe devrait hériter de adherent ;
mais je crains que ce ne sera pas aussi simple que ça, notamment pour
intégrer le tout ensemble :(
Le système de plugins tel qu'il est implémenté actuellement reste très
rudimentaire ; je me suis cantonné à implémenter des fonctionnalités
complètement annexes, rien encore qui modifie ou étende la fiche adhérent.

Je vais essayer de réfléchir un peu à la meilleure façon d'implémenter
cette fonctionnalité ; ça demande un peu de réflexion. Les autres avis
sont les bienvenus !

Si j'ai l'idée du siècle, je pourrai essayer de faire un début de classe
; je ne sais pas encore si j'aurai assez de temps ce week-end pour m'en
occuper ; je te la ferai parvenir dans ce cas.


D'avance merci,

Mélissa

En espérant que ça aide un peu :-)

Bon courage !

SI vous avez d'autres questions, n'hésitez pas.

@+
Johan

PS : la liste galette-devel serait certainement plus adaptée pour ce
type de discussion ;-)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk58tRIACgkQ7N2B+4uln5SmHwCgxtPjgNQ9oZBPEjXbmCq9BbN4
aw4AoM5h5Mvql+afj0mnzmIj54pOVB8l
=ny+s
-----END PGP SIGNATURE-----




Related Messages


Powered by MHonArc, Updated Sat Sep 24 09:40:10 2011