Pages: 1
Bonjour,
Après recherche sur le forum, je n'ai rien trouvé pour résoudre mon problème, hormis ce post qui m'a aidé à avancer : http://fr.piwigo.org/forum/viewtopic.php?id=23817, mais aujourd'hui et ce depuis trois jours je n'avance pas plus, voici mon soucis…
Lors d'une nouvelle inscription :
- Je souhaiterai dans la page "s'enregistrer", dans le formulaire qui s'affiche ajouter de nouveaux champs à remplir (ça c'est ok, grace au post ci-dessus, voir capture écran ci-dessous) les modifications ont été faites dans le fichier "register.php" (j'ai créé un template extension de celui-ci que j'ai activé ;o), je vous joins également le code.
<fieldset>
<legend>{'Enter your personnal informations'|@translate}</legend>
<ul>
<li>
<span class="property">
<label for="prenom">* {'Prénom'|@translate}</label>
</span>
<input type="text" name="prenom" id="prenom" >
</li>
<li>
<span class="property">
<label for="nom">* {'Nom'|@translate}</label>
</span>
<input type="text" name="nom" id="nom" >
</li>
<li>
<span class="property">
<label for="media">* {'Nom du média'|@translate}</label>
</span>
<input type="text" name="media" id="media" >
</li>
<li>
<span class="property">
<label for="fonction">* {'Fonction'|@translate}</label>
</span>
<input type="text" name="fonction" id="fonction" >
</li>
<li>
<span class="property">
<label for="telephone">* {'Téléphone'|@translate}</label>
</span>
<input type="text" name="telephone" id="telephone" >
</li>
<li>
<span class="property">
<label for="login">* {'Username'|@translate}</label>
</span>
<input type="text" name="login" id="login" value="{$F_LOGIN}" >
</li>
<li>
<span class="property">
<label for="password">* {'Password'|@translate}</label>
</span>
<input type="password" name="password" id="password" >
</li>
<li>
<span class="property">
<label for="password_conf">* {'Confirm Password'|@translate}</label>
</span>
<input type="password" name="password_conf" id="password_conf" >
</li>
<li>
<span class="property">
<label for="mail_address">{if $obligatory_user_mail_address}* {/if}{'Email address'|@translate}</label>
</span>
<input type="text" name="mail_address" id="mail_address" value="{$F_EMAIL}" >
{if not $obligatory_user_mail_address}
({'useful when password forgotten'|@translate})
{/if}
</li>
<li>
<span class="property">
<label for="send_password_by_mail">{'Send my connection settings by email'|@translate}</label>
</span>
<input type="checkbox" name="send_password_by_mail" id="send_password_by_mail" value="1" checked="checked">
</li>
</ul>
</fieldset>
- Je souhaiterai, une fois ces informations envoyées par email, que le mail reçu coté administration, notifiant qu'une nouvelle personne c'est inscrite, contienne toutes ces informations afin de vérifier et valider l'inscription. Et là je sèche…
Voici ou j'en suis :
- Modification du fichier "functions_user.inc.php"
Ci-dessous les modifications apportées, pour récupérer les informations, elles se situent au niveau suivant, je vous joins également plus bas la partie du fichier php englobant mes modifications :
include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
$admin_url = get_absolute_root_url().'admin.php?page=user_list&username='.$login;
$keyargs_content = array(
get_l10n_args('Prénom: %s', stripslashes($prenom) ),
get_l10n_args('Nom: %s', stripslashes($nom) ),
get_l10n_args('Media: %s', stripslashes($media) ),
get_l10n_args('Fonction: %s', stripslashes($fonction) ),
get_l10n_args('Telephone: %s', stripslashes($telephone) ),
get_l10n_args('User: %s', stripslashes($login) ),
get_l10n_args('Password: %s', stripslashes($password)),
get_l10n_args('Email: %s', $mail_address),
get_l10n_args(''),
get_l10n_args('Admin: %s', $admin_url),
);
______________________________
Partie du fichier php englobant mes modifications
______________________________
/**
* Creates a new user.
*
* @param string $login
* @param string $password
* @param string $mail_adress
* @param bool $notify_admin
* @param array &$errors populated with error messages
* @param bool $notify_user
* @return int|false user id or false
*/
function register_user($login, $password, $mail_address, $notify_admin=true, &$errors = array(), $notify_user=false)
{
global $conf;
if ($login == '')
{
$errors[] = l10n('Please, enter a login');
}
if (preg_match('/^.* $/', $login))
{
$errors[] = l10n('login mustn\'t end with a space character');
}
if (preg_match('/^ .*$/', $login))
{
$errors[] = l10n('login mustn\'t start with a space character');
}
if (get_userid($login))
{
$errors[] = l10n('this login is already used');
}
if ($login != strip_tags($login))
{
$errors[] = l10n('html tags are not allowed in login');
}
$mail_error = validate_mail_address(null, $mail_address);
if ('' != $mail_error)
{
$errors[] = $mail_error;
}
if ($conf['insensitive_case_logon'] == true)
{
$login_error = validate_login_case($login);
if ($login_error != '')
{
$errors[] = $login_error;
}
}
$errors = trigger_change(
'register_user_check',
$errors,
array(
'username'=>$login,
'password'=>$password,
'email'=>$mail_address,
)
);
// if no error until here, registration of the user
if (count($errors) == 0)
{
$insert = array(
$conf['user_fields']['username'] => pwg_db_real_escape_string($login),
$conf['user_fields']['password'] => $conf['password_hash']($password),
$conf['user_fields']['email'] => $mail_address
);
single_insert(USERS_TABLE, $insert);
$user_id = pwg_db_insert_id();
// Assign by default groups
$query = '
SELECT id
FROM '.GROUPS_TABLE.'
WHERE is_default = \''.boolean_to_string(true).'\'
ORDER BY id ASC
;';
$result = pwg_query($query);
$inserts = array();
while ($row = pwg_db_fetch_assoc($result))
{
$inserts[] = array(
'user_id' => $user_id,
'group_id' => $row['id']
);
}
if (count($inserts) != 0)
{
mass_inserts(USER_GROUP_TABLE, array('user_id', 'group_id'), $inserts);
}
$override = null;
if ($notify_admin and $conf['browser_language'])
{
if (!get_browser_language($override['language']))
{
$override=null;
}
}
create_user_infos($user_id, $override);
if ($notify_admin and $conf['email_admin_on_new_user'])
{
include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
$admin_url = get_absolute_root_url().'admin.php?page=user_list&username='.$login;
$keyargs_content = array(
get_l10n_args('Prénom: %s', stripslashes($prenom) ),
get_l10n_args('Nom: %s', stripslashes($nom) ),
get_l10n_args('Media: %s', stripslashes($media) ),
get_l10n_args('Fonction: %s', stripslashes($fonction) ),
get_l10n_args('Telephone: %s', stripslashes($telephone) ),
get_l10n_args('User: %s', stripslashes($login) ),
get_l10n_args('Password: %s', stripslashes($password)),
get_l10n_args('Email: %s', $mail_address),
get_l10n_args(''),
get_l10n_args('Admin: %s', $admin_url),
);
pwg_mail_notification_admins(
get_l10n_args('Registration of %s', stripslashes($login) ),
$keyargs_content
);
}
if ($notify_user and email_check_format($mail_address))
{
include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
$keyargs_content = array(
get_l10n_args('Hello %s,', stripslashes($login)),
get_l10n_args('Thank you for registering at %s!', $conf['gallery_title']),
get_l10n_args('', ''),
get_l10n_args('Here are your connection settings', ''),
get_l10n_args('', ''),
get_l10n_args('Link: %s', get_absolute_root_url()),
get_l10n_args('Username: %s', stripslashes($login)),
get_l10n_args('Password: %s', stripslashes($password)),
get_l10n_args('Email: %s', $mail_address),
get_l10n_args('', ''),
get_l10n_args('If you think you\'ve received this email in error, please contact us at %s', get_webmaster_mail_address()),
);
pwg_mail(
$mail_address,
array(
'subject' => '['.$conf['gallery_title'].'] '.l10n('Registration'),
'content' => l10n_args($keyargs_content),
'content_format' => 'text/plain',
)
);
}
trigger_notify(
'register_user',
array(
'id'=>$user_id,
'username'=>$login,
'email'=>$mail_address,
)
);
return $user_id;
}
else
{
return false;
}
}
Ci-dessous une capture d'écran de l'inscription de l'utilisateur et une capture d'écran du mail reçu par l'administrateur, les champs prénom, nom,… me sont bien retournée mes aucunes données à l'intérieur. D'ailleurs vous constaterez que j'ai ajouté, pour mon test, le password du nouvel inscrit et ça fonctionne.
Précision : je ne souhaite pas forcément que ces informations soit intégrées à la base de données (sauf si c'est obligatoire pour que cela fonctionne) mais simplement les récupérer dans le mail de retour.
Merci par avance pour votre aide.
Alain
Version de Piwigo: 2.7.1
Version de PHP:
Version de MySQL:
URL Piwigo: http://
Hors ligne
Pages: 1