Annonce

  •  » Utilisation
  •  » [Résolu] Ajout de champs lors de l'enregistrement

#31 2013-01-21 10:20:05

r@in | b0w
Membre
France
2010-04-15
127

Re: [Résolu] Ajout de champs lors de l'enregistrement

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+ ;)


Je mange des pizzas https://fours-a-pizza.fr/

Hors ligne

#32 2013-01-21 12:28:17

r@in | b0w
Membre
France
2010-04-15
127

Re: [Résolu] Ajout de champs lors de l'enregistrement

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 :

Code:

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

Code:

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']); :

Code:

Notice: Undefined variable: page in /plugins/AddInfousers/initregister.php on line 42

Je patauge hein ?!


Je mange des pizzas https://fours-a-pizza.fr/

Hors ligne

#33 2013-01-21 14:10:28

flop25
Équipe Piwigo
2006-07-06
6544

Re: [Résolu] Ajout de champs lors de l'enregistrement

global $page ;-)

Hors ligne

#34 2013-01-22 10:28:37

r@in | b0w
Membre
France
2010-04-15
127

Re: [Résolu] Ajout de champs lors de l'enregistrement

Coucou flop25.

flop25 a écrit:

global $page ;-)

Je le mets où?

Ligne :

Code:

  global $page['errors'] =
    register_user(
      $_POST['inser1'],
      $_POST['inser2'],
      $_POST['inser3'],
      $_POST['inser4'],
      $_POST['inser5'],
        true,
      $page['errors']
    );

Erreur PHP :)

Ligne :

Code:

{ array_push(global $page['errors'], l10n('Oops sorry !')); }

Nouvelle erreur :)

RRRRRRRRRRRRRRRRRRRRRRRRRRRAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaahh ! #RahanInside


Je mange des pizzas https://fours-a-pizza.fr/

Hors ligne

#35 2013-01-22 11:34:22

flop25
Équipe Piwigo
2006-07-06
6544

Re: [Résolu] Ajout de champs lors de l'enregistrement

oulalala
global sert à appeler et manipuler les variables définies comme globales ; c'est comme "global $prefixeTable,$conf;"

Hors ligne

#36 2013-01-22 11:52:36

r@in | b0w
Membre
France
2010-04-15
127

Re: [Résolu] Ajout de champs lors de l'enregistrement

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


Je mange des pizzas https://fours-a-pizza.fr/

Hors ligne

#37 2013-01-22 11:58:25

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

Re: [Résolu] Ajout de champs lors de l'enregistrement

Bonjour,

tu remplaces par

global $prefixeTable, $conf, $page ;


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

#38 2013-01-22 12:05:08

r@in | b0w
Membre
France
2010-04-15
127

Re: [Résolu] Ajout de champs lors de l'enregistrement

Bonjour ddtddt.

ddtddt a écrit:

global $prefixeTable, $conf, $page ;

Done. Le serveur mouline puis erreur à la ligne 41 soit :

Code:

$page['errors']

Voilà le code tel qu'il est à l'heure actuelle :

Code:

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;
}

?>

...


Je mange des pizzas https://fours-a-pizza.fr/

Hors ligne

#39 2013-01-22 12:07:50

flop25
Équipe Piwigo
2006-07-06
6544

Re: [Résolu] Ajout de champs lors de l'enregistrement

il faut déclarer la variable global -ici page- avant son emploi

function addInfousersT($errors)
{
  global $prefixeTable, $conf, $page;
...

Hors ligne

#40 2013-01-22 12:08:50

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

Re: [Résolu] Ajout de champs lors de l'enregistrement

C'est moi qui ai écrit cela ?


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

#41 2013-01-22 12:11:34

r@in | b0w
Membre
France
2010-04-15
127

Re: [Résolu] Ajout de champs lors de l'enregistrement

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... :(


Je mange des pizzas https://fours-a-pizza.fr/

Hors ligne

#42 2013-01-22 12:18:43

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

Re: [Résolu] Ajout de champs lors de l'enregistrement

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 ;-)


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

#43 2013-01-22 12:23:11

r@in | b0w
Membre
France
2010-04-15
127

Re: [Résolu] Ajout de champs lors de l'enregistrement

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.

Code:

  $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.

Code:

  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...


Je mange des pizzas https://fours-a-pizza.fr/

Hors ligne

#44 2013-01-22 12:24:35

flop25
Équipe Piwigo
2006-07-06
6544

Re: [Résolu] Ajout de champs lors de l'enregistrement

sinon tu peux aussi t'inspirer de Advanced user manager

Hors ligne

#45 2013-01-22 12:50:28

r@in | b0w
Membre
France
2010-04-15
127

Re: [Résolu] Ajout de champs lors de l'enregistrement

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...


Je mange des pizzas https://fours-a-pizza.fr/

Hors ligne

  •  » Utilisation
  •  » [Résolu] Ajout de champs lors de l'enregistrement

Pied de page des forums

Propulsé par FluxBB

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