Bonjour tout le monde.
Est-ce que, par hasard, quelqu'un pourrait m'aiguiller un peu ? J'ai du mal avec le codage de Piwigo...
ddtddt, tu es toujours AFK ? :)
J'essaye de finir cette semaine alors, si je n'y arrive pas, ce sera sans cette option. A+ ;)
Hors ligne
J'ai essayé d'avancer mais c'est toujours la mouise.
D'ailleurs, je viens d'ajouter dans le fichier register.php de Piwigo à la ligne 53 ceci :
$page['errors'] = register_user($_POST['login'], $_POST['password'], $_POST['mail_address'], $_POST['inser1'], $_POST['inser2'], $_POST['inser3'], $_POST['inser4'], $_POST['inser5'], true, $page['errors']);
Du coup, quand tout est OK sauf un des champs inserX, j'ai un message d'erreur malheureusement sans contenu qui s'affiche dans le cadre rouge des erreurs.
Donc il faudrait peut-être, en plus de contrôler les champs depuis le plugin, faire un hack pour ajouter ces lignes dans register.php non ?
Car, de deux, j'ai testé en ajoutant ce code dans initregister.php :
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; if (count($errors) == 0) // La suite
Et là, j'ai une erreur sur la ligne 42 soit $page['errors']); :
Notice: Undefined variable: page in /plugins/AddInfousers/initregister.php on line 42
Je patauge hein ?!
Hors ligne
global $page ;-)
Hors ligne
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
Hors ligne
oulalala
global sert à appeler et manipuler les variables définies comme globales ; c'est comme "global $prefixeTable,$conf;"
Hors ligne
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 :)
Hors ligne
Bonjour,
tu remplaces par
global $prefixeTable, $conf, $page ;
Hors ligne
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; } ?>
...
Hors ligne
il faut déclarer la variable global -ici page- avant son emploi
function addInfousersT($errors)
{
global $prefixeTable, $conf, $page;
...
Hors ligne
C'est moi qui ai écrit cela ?
Hors ligne
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... :(
Hors ligne
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 ;-)
Hors ligne
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...
Hors ligne
sinon tu peux aussi t'inspirer de Advanced user manager
Hors ligne
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...
Hors ligne