PEEL Shopping
Open source ecommerce : PEEL Shopping
change_params.php
Go to the documentation of this file.
1 <?php
2 // This file should be in UTF8 without BOM - Accents examples: éèê
3 // +----------------------------------------------------------------------+
4 // | Copyright (c) 2004-2015 Advisto SAS, service PEEL - contact@peel.fr |
5 // +----------------------------------------------------------------------+
6 // | This file is part of PEEL Shopping 8.0.0, which is subject to an |
7 // | opensource GPL license: you are allowed to customize the code |
8 // | for your own needs, but must keep your changes under GPL |
9 // | More information: https://www.peel.fr/lire/licence-gpl-70.html |
10 // +----------------------------------------------------------------------+
11 // | Author: Advisto SAS, RCS 479 205 452, France, https://www.peel.fr/ |
12 // +----------------------------------------------------------------------+
13 // $Id: change_params.php 46935 2015-09-18 08:49:48Z gboussin $
14 include("../configuration.inc.php");
16 
17 define('IN_CHANGE_PARAMS', true);
18 $GLOBALS['page_name'] = 'change_params';
19 $GLOBALS['DOC_TITLE'] = $GLOBALS['STR_CHANGE_PARAMS'];
20 $GLOBALS['allow_fineuploader_on_page'] = true;
21 include("../lib/fonctions/display_user_forms.php");
22 
24 // Dans un premier temps on stocke dans $mandatory_fields les champs obligatoires indiqués dans $GLOBALS['site_parameters']['user_change_mandatory_fields'].
26 if(isset($GLOBALS['site_parameters']['user_change_mandatory_fields'])) {
27  foreach($GLOBALS['site_parameters']['user_change_mandatory_fields'] as $key => $value) {
28  if(check_if_module_active('annonces')) {
29  if($key == 'pseudo') {
30  // Si le module d'annonce est présent, le pseudo n'est éditable donc pas transmit dans le formulaire. Le test sur le champ pseudo est prévu dans user_change_mandatory_fields uniquement pour l'inscription dans ce cas.
31  continue;
32  }
33  }
34  if($key == 'code' || $key == 'mot_passe_confirm') {
35  // il n'y a pas de module captcha dans le formulaire de mise à jour d'utilisateur. Le test sur le champ code est prévu dans user_change_mandatory_fields uniquement pour l'inscription
36  continue;
37  }
38  $mandatory_fields[$key] = $value;
39  }
40 }
41 // Dans un second temps on ajoute à cette variable les champs obligatoires qui doivent être vérifiés dans tous les cas, ou si des modules ou variables de configurations sont présents.
42 if(!empty($GLOBALS['site_parameters']['add_b2b_form_inputs'])) {
43  $mandatory_fields['societe'] = 'STR_ERR_SOCIETY';
44  $mandatory_fields['type'] = 'STR_ERR_YOU_ARE';
45  $mandatory_fields['activity'] = 'STR_ERR_ACTIVITY';
46  $mandatory_fields['siret'] = 'STR_ERR_SIREN';
47 }
48 if(check_if_module_active('annonces')) {
49  if(vb($GLOBALS['site_parameters']['type_affichage_user_favorite_id_categories']) == 'checkbox') {
50  $mandatory_fields['id_categories'] = 'STR_ERR_FIRST_CHOICE';
51  } elseif(vb($GLOBALS['site_parameters']['type_affichage_user_favorite_id_categories']) == 'select') {
52  $mandatory_fields['id_cat_1'] = 'STR_ERR_FIRST_CHOICE';
53  }
54 }
55 foreach($mandatory_fields as $key => $value) {
56  // Transformation des valeurs du tableau avec les variables de langue du même nom
57  if (!empty($GLOBALS[$value])) {
58  $mandatory_fields[$key] = $GLOBALS[$value];
59  }
60 }
61 $frm = $_POST;
62 /* Supprime l'image associée à l'utilisateur. */
63 switch (vb($_REQUEST['mode'])) {
64  case "supprfile" :
65  $id = intval(vn($_REQUEST['id']));
66  $sql = "SELECT logo
67  FROM peel_utilisateurs
68  WHERE id_utilisateur = '" . intval($id)."'";
69  $res = query($sql);
70  $file = fetch_assoc($res);
71  query("UPDATE peel_utilisateurs
72  SET logo = ''
73  WHERE id_utilisateur = '" . intval($id)."'");
74  delete_uploaded_file_and_thumbs($file['logo']);
75  $noticemsg_keep_form = $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_MSG_CHANGE_PARAMS'], $file['logo'])))->fetch();
76  break;
77 }
78 if (a_priv('demo')) {
79  $noticemsg = $GLOBALS['tplEngine']->createTemplate('global_error.tpl', array('message' => $GLOBALS['STR_DEMO_RIGHTS_LIMITED']))->fetch();
80 } elseif (!empty($frm)) {
81  // D'abord on génère une erreur pour tous les champs obligatoires qui sont vides
83 
84  if (check_if_module_active('abonnement') && is_user_verified($_SESSION['session_utilisateur']['id_utilisateur'])) {
85  $disabled_verified_fields = true;
86  $original_frm = get_user_information($_SESSION['session_utilisateur']['id_utilisateur']);
87  foreach(array('email', 'telephone', 'portable', 'fax', 'prenom', 'nom_famille', 'societe', 'siret', 'adresse', 'code_postal', 'ville', 'pays', 'intracom_for_billing') as $this_key) {
88  // On complète les infos transmises par le formulaire avec ce qui est dans la BDD pour mettre à jour l'utilisateur
89  $frm[$this_key] = vb($original_frm[$this_key]);
90  }
91  }
92  /* Le formulaire a été soumis, vérifie si les infos de l'utilisateur sont correctes */
93  if(!empty($frm['email'])) {
94  if (function_exists('searchKeywordFiltersInMail')) {
95  $add_mail_error = searchKeywordFiltersInMail($frm['email']);
96  if ($add_mail_error) {
97  $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL']);
98  }
99  }
100  if (!$form_error_object->has_error('email')) {
101  if (!EmailOK($frm['email'])) {
102  $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL_BAD']);
103  } elseif ((num_rows(query("SELECT 1
104  FROM peel_utilisateurs
105  WHERE id_utilisateur!='" . intval($frm['id_utilisateur']) . "' AND email = '" . nohtml_real_escape_string($frm['email']) . "' AND priv NOT IN ('" . implode("','", $GLOBALS['disable_login_by_privilege']) . "') AND " . get_filter_site_cond('utilisateurs'))) > 0)) {
106  // Test de l'unicité de l'email, sauf pour les utilisateurs n'étant pas inscrit via le téléchargement.
107  $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL_STILL']);
108  }
109  }
110  }
111  if(!empty($frm['pseudo'])) {
112  $add_pseudo_error = (String::strpos($frm['pseudo'], '@') !== false);
113  if (function_exists('searchKeywordFiltersInLogin')) {
114  $add_pseudo_error = ($add_pseudo_error || searchKeywordFiltersInLogin($frm['pseudo'])) ;
115  }
116  if ($add_pseudo_error) {
117  $form_error_object->add('pseudo', $GLOBALS['STR_ERR_PSEUDO']);
118  } elseif ((num_rows(query("SELECT 1
119  FROM peel_utilisateurs
120  WHERE id_utilisateur!='" . intval($frm['id_utilisateur']) . "' AND pseudo = '" . nohtml_real_escape_string($frm['pseudo']) . "' AND " . get_filter_site_cond('utilisateurs') . "")) > 0)) {
121  $form_error_object->add('pseudo', $GLOBALS['STR_ERR_NICKNAME_STILL']);
122  }
123  }
124  if(!empty($frm['token'])) {
125  if (!verify_token('change_params', 120, false)) {
126  $form_error_object->add('token', $GLOBALS['STR_INVALID_TOKEN']);
127  }
128  }
129  if (!empty($frm['siret']) && vb($frm['pays']) == 1 && !preg_match("#([0-9]){9,14}#", str_replace(array(' ', '.'), '', $frm['siret']))) {
130  // Si nous sommes en France, nous avons renseigné le numéro $GLOBALS['STR_SIREN'], cela nécessite un contrôle de la valeur rentrée par l'utilisateur
131  $form_error_object->add('siret', $GLOBALS['STR_ERR_SIREN']);
132  }
133  if (!empty($GLOBALS['site_parameters']['user_tva_intracom_validation_on_change_params_page']) && check_if_module_active('vatlayer') && !empty($frm['intracom_for_billing']) && !vatlayer_check_vat($frm['intracom_for_billing'])) {
134  $form_error_object->add('intracom_for_billing', $GLOBALS['STR_MODULE_VATLAYER_ERR_INTRACOM']);
135  }
136  if (!$form_error_object->count()) {
137  $frm['logo'] = upload('logo', false, 'any', $GLOBALS['site_parameters']['image_max_width'], $GLOBALS['site_parameters']['image_max_height'], null, null, vb($frm['logo']));
138  $frm['priv'] = $_SESSION['session_utilisateur']['priv'];
139  maj_utilisateur($frm, true);
140  $noticemsg = $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => $GLOBALS['STR_MSG_CHANGE_PARAMS'], 'list_content' => $GLOBALS['STR_CHANGE_PARAMS_OK']))->fetch();
141  }
142 } else {
143  $frm = get_user_information($_SESSION['session_utilisateur']['id_utilisateur']);
144 }
145 include($GLOBALS['repertoire_modele'] . "/haut.php");
146 
147 if (empty($noticemsg)) {
148  echo vb($noticemsg_keep_form) . get_user_change_params_form($frm, $form_error_object);
149 } else {
150  echo $noticemsg;
151 }
152 
153 include($GLOBALS['repertoire_modele'] . "/bas.php");
get_user_information($user_id=null, $get_full_infos=false)
Chargement des détails de l'utilisateur.
Definition: user.php:906
static strpos($haystack, $needle, $offset=0)
Returns the numeric position of the first occurrence of needle in the haystack string.
Definition: String.php:54
upload($field_name, $rename_file=true, $file_kind=null, $image_max_width=null, $image_max_height=null, $path=null, $new_file_name_without_extension=null, $default_return_value=null)
Fonction d'upload de fichiers.
Definition: fonctions.php:3302
$form_error_object
nohtml_real_escape_string($value, $allowed_tags=null)
Protège les données pour insertion dans MySQL ET supprime les tags HTML pour protéger de toute sorte ...
Definition: database.php:400
get_filter_site_cond($table_technical_code, $table_alias=null, $use_strict_rights_if_in_admin=false, $specific_site_id=null, $exclude_public_items=false, $admin_force_multisite_if_allowed=false)
Retourne la condition SQL permettant de filtrer les données pour une table.
Definition: fonctions.php:4643
query($query, $die_if_error=false, $database_object=null, $silent_if_error=false, $security_sql_filter=true)
The query() function is meant to be called anywhere you want to make a query.
Definition: database.php:158
$mandatory_fields
vb(&$var, $default=null)
Variable blanche if $var n'est pas défini, retourne $default, sinon retourne $var.
Definition: format.php:97
if(strlen($date2)== '10') if($type== 'users-by-age'&&a_priv('admin_users', true)) elseif($type== 'forums-count'&&a_priv('admin_content', true)) elseif($type== 'forums-categories'&&a_priv('admin_content', true)) elseif($type== 'users-count'&&a_priv('admin_users', true)) elseif($type== 'product-categories'&&a_priv('admin_products', true)) elseif($type== 'users-by-sex'&&a_priv('admin_users', true)) elseif($type== 'users-by-country'&&a_priv('admin_users', true)) elseif($type== 'sales'&&a_priv('admin_sales', true))
Definition: chart-data.php:160
necessite_identification()
Si l'utilisateur n'est pas connecté à un compte, on affiche une page d'identification et arrête le sc...
Definition: fonctions.php:1596
num_rows($query_result)
num_rows()
Definition: database.php:321
EmailOK($email)
Vérification du format d'adresse email trouvée sur http://www.phpinfo.net/?p=trucs&rub=astuces.
Definition: emails.php:282
delete_uploaded_file_and_thumbs($filename)
delete_uploaded_file_and_thumbs()
Definition: fonctions.php:3417
if(isset($GLOBALS['site_parameters']['user_change_mandatory_fields'])) if(!empty($GLOBALS['site_parameters']['add_b2b_form_inputs'])) if(check_if_module_active('annonces')) foreach($mandatory_fields as $key=> $value) $frm
fetch_assoc($query_result)
fetch_assoc()
Definition: database.php:283
$noticemsg
$GLOBALS['page_name']
vn(&$var, $default=0)
Variable nulle if $var n'est pas défini, retourne $default, sinon retourne $var.
Definition: format.php:110
a_priv($requested_priv, $demo_allowed=false, $site_configuration_modification=false, $user_id=null)
Renvoie true si l'utilisateur de la session a le privilège $requested_priv ou un droit supérieur Des ...
Definition: user.php:63
maj_utilisateur(&$frm, $update_current_session=false)
Mise à jour d'un enregistrement d'utilisateur.
Definition: user.php:467
verify_token($name= 'general', $delay_in_minutes=60, $check_referer_if_set_by_server=true, $cancel_token=true, $minimum_wait_in_seconds_before_use=0)
Vérification de la validité d'un token Par défaut, un token est valide 1h, et utilisable 1 seule fois...
Definition: fonctions.php:118
$id
Definition: articles.php:22
check_if_module_active($module_name, $specific_file_name=null)
Renvoie si un module est présent et activé ou non - Peut être appelé avant ou après le chargement d'u...
if(defined('IN_PEEL_ADMIN')||IN_INSTALLATION) $_SESSION['session_langue']

This documentation for Open ecommerce PEEL Shopping and PEEL.fr has been generated by Doxygen on Thu Oct 15 2015 14:41:38 - Peel ecommerce is a product of Agence web Advisto SAS. All rights reserved.