Et paf, j'ai finalement finalisé l'ensemble grâce à tes JS flop25.
Donc les champs supplémentaires sont obligatoires grâce aux JS ajoutés à l'enregistrement et se retrouvent, de manière normale, dans les informations de profil.
J'ai laissé la checkbox en alert pour les CGU de la photothèque.
Au final, je suis un peu déçu de ne pas y être arrivé mais je sais que mes compétences sont limitées. Là, le résultat est atteint mais, même si le JS est propre et élégant, j'aurais préféré des messages d'erreur à la sauce Piwigo en haut et rouge.
Rien de bien grave donc. Merci pour vos multiples soutiens les gens :)
sinon ya ça http://parsleyjs.org/
flop25 a écrit:
sinon tu peux aussi t'inspirer de Advanced user manager
J'ai essayé de m'en inspirer mais rien de mieux.
J'ai aussi tenté de vérifier que les champs soient remplis en JS lors de la validation depuis le template-extension mais, comme j'utilise en plus une checkbox pour des CGUs, je n'arrive pas à cumuler les deux instructions...
sinon tu peux aussi t'inspirer de Advanced user manager
ddtddt a écrit:
moi non plus ;-)
En tout cas, tu as plus de bases que moi dans le codage et Piwigo.
Tout ceci juste pour rendre obligatoire des informations à l'enregistrement grrr !
Bref, si j'enlève le bloc suivant, l'inscription est à nouveau fonctionnelle mais les champs supplémentaires ne sont pas plus obligatoires qu'avant.
$page['errors'] = register_user( $_POST['inser1'], $_POST['inser2'], $_POST['inser3'], $_POST['inser4'], $_POST['inser5'], true, $page['errors'] );
J'ai regardé, en fait, le register.php de Piwigo et j'ai tenté de faire la même chose pour la gestion des erreurs mais j'ai du me planter.
D'une, la détection des erreurs se déclenche pour Piwigo au submit, je dois le rajouter ici peut-être à la place d'utiliser la fonction addInfousersT ?
De deux, le code qui stipule que, si les champs ne sont pas remplis, un superbe "Oops sorry" apparait ne fonctionne pas.
if ( !empty($_POST['inser1']) OR !empty($_POST['inser2']) OR !empty($_POST['inser3']) OR !empty($_POST['inser4']) OR !empty($_POST['inser5']) ) { array_push($page['errors'], l10n('Oops sorry !')); }
Faut vraiment que je prenne des cours de codage...
r@in | b0w a écrit:
Non, c'est moi et cela se voit que je suis clairement tout sauf un développeur/codeur de module hein... :(
moi non plus ;-)
flop25 a écrit:
function addInfousersT($errors)
Put$^ù*n, à force de modifier, j'ai enlevé la ligne de son emplacement originel.
ddtddt a écrit:
C'est moi qui ai écrit cela ?
Non, c'est moi et cela se voit que je suis clairement tout sauf un développeur/codeur de module hein... :(
C'est moi qui ai écrit cela ?
il faut déclarer la variable global -ici page- avant son emploi
function addInfousersT($errors)
{
global $prefixeTable, $conf, $page;
...
Bonjour ddtddt.
ddtddt a écrit:
global $prefixeTable, $conf, $page ;
Done. Le serveur mouline puis erreur à la ligne 41 soit :
$page['errors']
Voilà le code tel qu'il est à l'heure actuelle :
add_event_handler('register_user_check', 'addInfousersT'); function addInfousersT($errors) { if ( !empty($_POST['inser1']) OR !empty($_POST['inser2']) OR !empty($_POST['inser3']) OR !empty($_POST['inser4']) OR !empty($_POST['inser5']) ) { array_push($page['errors'], l10n('Oops sorry !')); } $page['errors'] = register_user( $_POST['inser1'], $_POST['inser2'], $_POST['inser3'], $_POST['inser4'], $_POST['inser5'], true, $page['errors'] ); global $prefixeTable, $conf, $page; if (count($errors) == 0) { $query = ' SELECT MAX('.$conf['user_fields']['id'].') + 1 FROM '.USERS_TABLE.' ;'; list($next_id) = pwg_db_fetch_row(pwg_query($query)); $q = ' INSERT INTO ' . $prefixeTable . 'AddInfo_users(id,info1,info2,info3,info4,info5)VALUES ("'.$next_id.'","'.$_POST['inser1'].'","'.$_POST['inser2'].'","'.$_POST['inser3'].'","'.$_POST['inser4'].'","'.$_POST['inser5'].'");'; pwg_query($q); } return $errors; } ?>
...
Bonjour,
tu remplaces par
global $prefixeTable, $conf, $page ;
flop25 a écrit:
global sert à appeler et manipuler les variables définies comme globales.
Je m'en doutais mais, du coup, je le place où ce "global" ?
flop25 a écrit:
C'est comme "global $prefixeTable,$conf;"
Ce bout de code appartient au plugin original de ddtddt, ce n'est pas de moi :)
oulalala
global sert à appeler et manipuler les variables définies comme globales ; c'est comme "global $prefixeTable,$conf;"
Coucou flop25.
flop25 a écrit:
global $page ;-)
Je le mets où?
Ligne :
global $page['errors'] = register_user( $_POST['inser1'], $_POST['inser2'], $_POST['inser3'], $_POST['inser4'], $_POST['inser5'], true, $page['errors'] );
Erreur PHP :)
Ligne :
{ array_push(global $page['errors'], l10n('Oops sorry !')); }
Nouvelle erreur :)
RRRRRRRRRRRRRRRRRRRRRRRRRRRAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaahh ! #RahanInside
global $page ;-)