PEEL Shopping
Open source ecommerce : PEEL Shopping
utilisateurs.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: utilisateurs.php 47353 2015-10-12 20:35:23Z gboussin $
14 define('IN_PEEL_ADMIN', true);
15 include("../configuration.inc.php");
17 necessite_priv("admin_users");
18 
19 $GLOBALS['DOC_TITLE'] = $GLOBALS['STR_ADMIN_UTILISATEURS_TITLE'];
20 /* Initialisation des variables */
21 $id = intval(vn($_REQUEST['id']));
22 $id_utilisateur = intval(vn($_REQUEST['id_utilisateur']));
23 $frm = $_POST;
25 $output = '';
26 
27 $priv = vb($_GET['priv']);
28 $cle = trim(vb($_GET['cle']));
29 
30 if (!empty($_POST['print_all_bill'])) {
31  include("../lib/class/Invoice.php");
32  $invoice_pdf = new Invoice('P', 'mm', 'A4');
33  $user_id = vb($_POST['user_id']);
34  if (!verify_token($_SERVER['PHP_SELF'] . $user_id)) {
35  $form_error_object->add('token', $GLOBALS['STR_INVALID_TOKEN']);
36  }
37  if (!$form_error_object->count()) {
38  $is_pdf_generated = $invoice_pdf->FillDocument(null, null, null, null, null, $user_id, null, 'standard', false);
39  if($is_pdf_generated) {
40  die();
41  }
42  } else {
43  if ($form_error_object->has_error('token')) {
44  $output .= $form_error_object->text('token');
45  }
46  }
47 }
48 
49 switch (vb($_REQUEST['mode'])) {
50  case "modif_etat" :
51  if (isset($_GET['etat']) && !empty($_GET['id'])) {
52  if(!a_priv('admin*', false, false, $_GET['id']) || a_priv('admin', false, true)) {
53  // L'utilisateur qu'on veut modifier n'est pas un administrateur, ou alors l'utilisateur loggué n'a pas le droit de le modifier
54  // NB : il faut être administrateur général pour avoir le droit de modifier les autres administrateurs
55  if ($_GET['etat'] == 1) {
56  $etat = 0 ;
57  } else {
58  $etat = 1 ;
59  }
60  query('UPDATE peel_utilisateurs
61  SET etat="' . intval($etat) . '"
62  WHERE id_utilisateur="' . intval($_GET['id']) . '" AND ' . get_filter_site_cond('utilisateurs', null, true));
63  $annonce_active = false;
64  if (check_if_module_active('annonces')) {
65  update_state_ads($_GET['id'], $etat);
66  $annonce_active = true;
67  }
68  if($etat == 1) {
69  $message = $GLOBALS['STR_ADMIN_UTILISATEURS_MSG_ACTIVATED_OK'] . ($annonce_active?' - ' . $GLOBALS['STR_MODULE_ANNONCES_ADMIN_UTILISATEURS_ADS_ALSO_ACTIVATED'] : '');
70  } else {
71  $message = $GLOBALS['STR_ADMIN_UTILISATEURS_MSG_DEACTIVATED_OK'] . ($annonce_active?' - ' . $GLOBALS['STR_MODULE_ANNONCES_ADMIN_UTILISATEURS_ADS_ALSO_DEACTIVATED'] : '');
72  }
73  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($message, vb($utilisateur['email']))))->fetch();
74  }
75  if (!empty($GLOBALS['site_parameters']['validating_registration_by_admin'])) {
76  // Vérification de l'état actuel de l'utilisateur. On envoie un email lors d'un changement d'état uniquement.
77  $query = query("SELECT etat, email
78  FROM peel_utilisateurs
79  WHERE id_utilisateur='" . intval($_GET['id']) . "'");
80  if ($result = fetch_assoc($query)) {
81  if($result['etat'] != $etat && $etat == 1) {
82  // activation de l'utilisateur, on avertit l'utilisateur de l'activation de son compte
83  send_email($result['email'],'','','validating_registration_by_admin');
84  }
85  }
86  }
87  query('UPDATE peel_utilisateurs
88  SET etat="' . intval($etat) . '"
89  WHERE id_utilisateur="' . intval($_GET['id']) . '" AND ' . get_filter_site_cond('utilisateurs', null, true));
90  $annonce_active = false;
91  if (check_if_module_active('annonces')) {
92  update_state_ads($_GET['id'], $etat);
93  $annonce_active = true;
94  }
95  }
97  break;
98 
99  case "ajout" :
101  break;
102 
103  case "modif" :
104  if(!a_priv('admin*', false, false, $id_utilisateur) || a_priv('admin', false, true)) {
105  // L'utilisateur qu'on veut modifier n'est pas un administrateur, ou alors l'utilisateur loggué a pas le droit de le modifier
107  }
108  break;
109 
110  case "suppr" :
111  if(!a_priv('admin*', false, false, $id_utilisateur) || a_priv('admin', false, true)) {
112  // L'utilisateur qu'on veut modifier n'est pas un administrateur, ou alors l'utilisateur loggué a pas le droit de le modifier
113  $utilisateur = get_user_information($id_utilisateur);
115  $annonce_active = false;
116  if (check_if_module_active('annonces')) {
117  $output .= delete_user_ads($id_utilisateur);
118  $annonce_active = true;
119  }
120  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_UTILISATEURS_MSG_DELETED_OK'] . ($annonce_active?' - ' . $GLOBALS['STR_MODULE_ANNONCES_ADMIN_UTILISATEURS_ADS_ALSO_DEACTIVATED'] : ''), $utilisateur['email'])))->fetch();
121  }
123  break;
124 
125  case "supprlogo" :
126  if(!a_priv('admin*', false, false, $id_utilisateur) || a_priv('admin', false, true)) {
127  // L'utilisateur qu'on veut modifier n'est pas un administrateur, ou alors l'utilisateur loggué a pas le droit de le modifier
130  }
131  break;
132 
133  case "insere" :
134  $form_error_object->valide_form($frm,
135  array('email' => 'Vous devez insérez un email'));
136  if (!verify_token($_SERVER['PHP_SELF'] . $frm['mode'] . $id_utilisateur)) {
137  $form_error_object->add('token', $GLOBALS['STR_INVALID_TOKEN']);
138  }
139  if (!EmailOk($frm['email'])) {
140  // si il y a un email on teste l'email
141  $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL_BAD']);
142  } elseif ((num_rows(query("SELECT 1
143  FROM peel_utilisateurs
144  WHERE email = '" . nohtml_real_escape_string($frm['email']) . "' AND " . get_filter_site_cond('utilisateurs', null, true) . "")) > 0)) {
145  // Test d'unicité de l'email. On ne veut pas plusieurs comptes avec le même email en base de données
146  $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL_STILL']);
147  }
148  if (empty($GLOBALS['site_parameters']['pseudo_is_not_used']) && (num_rows(query("SELECT 1
149  FROM peel_utilisateurs
150  WHERE pseudo = '" . nohtml_real_escape_string($frm['pseudo']) . "' AND " . get_filter_site_cond('utilisateurs', null, true) . "")) > 0)) {
151  $form_error_object->add('pseudo', $GLOBALS['STR_ERR_NICKNAME_STILL']);
152  }
153  if (!$form_error_object->count()) {
154  $frm['logo'] = upload('logo', false, 'any', $GLOBALS['site_parameters']['image_max_width'], $GLOBALS['site_parameters']['image_max_height'], null, null, vb($frm['logo']));
155  $frm['document'] = upload('document', false, 'any', $GLOBALS['site_parameters']['image_max_width'], $GLOBALS['site_parameters']['image_max_height'], null, null, vb($frm['document']));
156  $frm['mot_passe'] = (!empty($frm['mot_passe']))?$frm['mot_passe']:MDP();
157  if (insere_utilisateur($frm, false, false, false)) {
158  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_UTILISATEURS_MSG_CREATED_OK'], vb($frm['email']))))->fetch();
159  }
160  // Envoi de l'e-mail de création de l'utilisateur avec le mot de passe
161  if (isset($frm['notify'])) {
162  $output .= send_mail_for_account_creation(vb($frm['email']), vb($frm['mot_passe']), vb($frm['priv']));
163  }
165  } else {
166  if ($form_error_object->has_error('token')) {
167  $output .= $form_error_object->text('token');
168  } elseif ($form_error_object->has_error('email')) {
169  $output .= $form_error_object->text('email');
170  }
171  if (empty($GLOBALS['site_parameters']['pseudo_is_not_used']) && $form_error_object->has_error('pseudo')) {
172  $output .= $form_error_object->text('pseudo');
173  }
175  }
176  break;
177 
178  case "maj" :
179  $form_error_object->valide_form($frm,
180  array('email' => 'Vous devez insérez un email'));
181  if (!verify_token($_SERVER['PHP_SELF'] . $frm['mode'] . $id_utilisateur)) {
182  $form_error_object->add('token', $GLOBALS['STR_INVALID_TOKEN']);
183  }
184  if (!EmailOk($frm['email'])) {
185  // si il y a un email on teste l'email
186  $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL_BAD']);
187  } elseif ((num_rows(query("SELECT 1
188  FROM peel_utilisateurs
189  WHERE email = '" . nohtml_real_escape_string($frm['email']) . "' AND " . get_filter_site_cond('utilisateurs', null, true) . " AND id_utilisateur!='" . intval($frm['id_utilisateur']) . "'")) > 0)) {
190  // Test d'unicité de l'email. On ne veut pas plusieurs comptes avec le même email en base de données
191  $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL_STILL']);
192  }
193  if(!empty($frm['id_offre'])) {
194  foreach($frm['id_offre'] as $id_offre){
195  $frm_offre = array('id_offre' => $id_offre, 'id_utilisateur' => $frm['id_utilisateur']);
196  insere_assoc_offre($frm_offre);
197  }
198  }
199  if (empty($GLOBALS['site_parameters']['pseudo_is_not_used']) && !empty($frm['pseudo']) && (num_rows(query("SELECT 1
200  FROM peel_utilisateurs
201  WHERE id_utilisateur!='" . intval($frm['id_utilisateur']) . "' AND pseudo = '" . nohtml_real_escape_string($frm['pseudo']) . "' AND " . get_filter_site_cond('utilisateurs', null, true) . "")) > 0)) {
202  $form_error_object->add('pseudo', $GLOBALS['STR_ERR_NICKNAME_STILL']);
203  }
204  if (!empty($GLOBALS['site_parameters']['validating_registration_by_admin'])) {
205  // Vérification de l'état actuel de l'utilisateur. On envoie un email lors d'un changement d'état uniquement.
206  $query = query("SELECT etat, email
207  FROM peel_utilisateurs
208  WHERE id_utilisateur='" . intval($frm['id_utilisateur']) . "'");
209  if ($result = fetch_assoc($query)) {
210  if($result['etat'] != $frm['etat'] && $frm['etat'] == 1) {
211  // activation de l'utilisateur, on avertit l'utilisateur de l'activation de son compte
212  send_email($result['email'],'','','validating_registration_by_admin');
213  }
214  }
215  }
216  if (!$form_error_object->count()) {
217  $frm['logo'] = upload('logo', false, 'any', $GLOBALS['site_parameters']['image_max_width'], $GLOBALS['site_parameters']['image_max_height'], null, null, vb($frm['logo']));
218  $frm['document'] = upload('document', false, 'any', $GLOBALS['site_parameters']['image_max_width'], $GLOBALS['site_parameters']['image_max_height'], null, null, vb($frm['document']));
219  // Suppression de l'ancien fichier
220  if (!empty($frm['old_document']) && $frm['document'] != $frm['old_document']) {
221  delete_uploaded_file_and_thumbs($frm['old_document']);
222  }
223  maj_utilisateur($frm, false);
224  $output .= tracert_history_admin(intval(vn($frm['id_utilisateur'])), 'EDIT_PROFIL', 'Compte : ' . vb($frm['email']));
225  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_UTILISATEURS_MSG_UPDATED_OK'], vb($frm['email']))))->fetch();
226  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
227  } else {
228  if ($form_error_object->has_error('token')) {
229  $output .= $form_error_object->text('token');
230  } elseif ($form_error_object->has_error('email')) {
231  $output .= $form_error_object->text('email');
232  }
233  if (empty($GLOBALS['site_parameters']['pseudo_is_not_used']) && $form_error_object->has_error('pseudo')) {
234  $output .= $form_error_object->text('pseudo');
235  }
236  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
237  }
238  break;
239 
240  case "liste" :
242  break;
243 
244  case "cheque" :
245  if (check_if_module_active('gift_check')) {
246  // L'administrateur a validé l'envoi d'un chèque cadeau à l'utilisateur
247  cree_cheque_cadeau_client(vn($id_utilisateur), "CHQ", $GLOBALS['site_parameters']['avoir'], 2);
248  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => $GLOBALS['STR_ADMIN_UTILISATEURS_GIFT_CHECK_SENT']))->fetch();
249  }
251  break;
252 
253  case "init_mdp" :
254  if(!a_priv('admin*', false, false, $id_utilisateur) || a_priv('admin', false, true)) {
255  // L'utilisateur qu'on veut modifier n'est pas un administrateur, ou alors l'utilisateur loggué a pas le droit de le modifier. initialise_mot_passe retourne un boolean
256  initialise_mot_passe($_REQUEST['email']);
257  $qid = query("SELECT email
258  FROM peel_utilisateurs
259  WHERE email = '" . nohtml_real_escape_string($_REQUEST['email']) . "' AND " . get_filter_site_cond('utilisateurs', null, true) . "");
260  if ($user = fetch_object($qid)) {
261  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_UTILISATEURS_NEW_PASSWORD_SENT'], vb($user->email))))->fetch();
262  }
263  }
265 
266  break;
267 
268  case "enligne_liste_annonce" :
269  case "update_list_annonce" :
270  if (check_if_module_active('annonces')) {
271  $output .= annonce_manipulation($form_error_object, 'users');
272  }
273  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
274  break;
275 
276  case "phone_call" :
277  if ((!empty($_POST['phone_emitted_submit']) || !empty($_GET['phone_emitted_submit']))) {
278  tracert_history_admin(intval($_REQUEST['id_utilisateur']), 'PHONE_EMITTED', 'NOT_ENDED_CALL', nohtml_real_escape_string((!empty($_POST['form_phone_comment'])?$_POST['form_phone_comment']:'')));
279  if (!empty($_GET['callee']) && check_if_module_active('phone_cti')) {
280  $query = query('SELECT telephone, pays
281  FROM peel_utilisateurs
282  WHERE id_utilisateur="' . intval($_SESSION['session_utilisateur']['id_utilisateur']) . '" AND telephone!="" AND ' . get_filter_site_cond('utilisateurs', null, true) . '');
283  if ($admin_infos = fetch_assoc($query)) {
284  // Déclenchement de l'appel
285  $makecall = file('https://ssl.keyyo.com/makecall.html?ACCOUNT=' . getCleanInternationalTelephone($admin_infos['telephone'], $admin_infos['pays'], true) . '&CALLEE=' . $_GET['callee'] . '&CALLEE_NAME=' . $_GET['callee_name']);
286  if (!empty($makecall)) {
287  $output .=$GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_UTILISATEURS_CALL_INITIATED_KEYYO'], getCleanInternationalTelephone($admin_infos['telephone'], $admin_infos['pays'], true), $_GET['callee_name'], $_GET['callee'], implode(' - ', $makecall))))->fetch();
288  }
289  }
290  }
291  }
292  if (!empty($_POST['phone_received_submit'])) {
293  tracert_history_admin(intval($_REQUEST['id_utilisateur']), 'PHONE_RECEIVED', 'NOT_ENDED_CALL', nohtml_real_escape_string((!empty($_POST['form_phone_comment'])?$_POST['form_phone_comment']:'')));
294  }
295  if (!empty($_POST['turn_off_phone'])) {
296  // On ne peut pas utiliser tracert_history_admin car action SQL trop particulière
297  $q = query('UPDATE peel_admins_actions
298  SET raison="",
299  remarque="' . nohtml_real_escape_string($_POST['form_phone_comment']) . '",
300  data="' . date('Y-m-d H:i:s', time()) . '"
301  WHERE id_user="' . intval($_SESSION['session_utilisateur']['id_utilisateur']) . '" AND id_membre="' . intval($_REQUEST['id_utilisateur']) . '" AND ((action = "PHONE_EMITTED") OR (action = "PHONE_RECEIVED")) AND data="NOT_ENDED_CALL" AND ' . get_filter_site_cond('admins_actions', null, true) . '');
302  }
303  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
304  break;
305 
306  case "event_comment":
307  if (!empty($_POST['form_event_comment'])) {
308  // On n'enregistre que les événements avec du texte
309  tracert_history_admin(intval($_REQUEST['id_utilisateur']), 'EVENT', '', (!empty($_POST['form_event_comment'])?$_POST['form_event_comment']:''));
310  }
311  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
312  break;
313 
314  case "add_credit_gold" :
315  // Ajoute un crédit gold
316  if (!empty($_POST['id_utilisateur']) && !empty($_POST['add_gold_ad']) && check_if_module_active('annonces')) {
317  $output .= add_credit_gold_user ($_POST['id_utilisateur'], $_POST['add_gold_ad']);
318  tracert_history_admin($_POST['id_utilisateur'], 'CREATE_ORDER', 'Ajout de credit gold');
319  }
320  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
321  break;
322 
323  case "suppr_credit_gold" :
324  // Supprime le crédit gold
325  if (!empty($_GET['id_utilisateur']) && !empty($_GET['id_gold']) && check_if_module_active('annonces')) {
326  $output .= suppr_credit_gold_user ($_GET['id_utilisateur'], $_GET['id_gold']);
327  tracert_history_admin($_GET['id_utilisateur'], 'SUP_ORDER', $GLOBALS['STR_MODULE_ANNONCES_ADMIN_UTILISATEURS_GOLD_CREDIT_DELETED'] . ' ' . intval(vn($_GET['id_gold'])));
328  }
329  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
330  break;
331 
332  case "maj_abo_platinum":
333  // Mise à jour de l'abonnement platinium si le module abonnement existe
334  if (!empty($_POST['id_utilisateur']) && check_if_module_active('abonnement')) {
335  $output .= maj_abonnement_admin($_POST);
336  tracert_history_admin($_POST['id_utilisateur'], 'EDIT_ORDER', $GLOBALS['STR_MODULE_ABONNEMENT_ADMIN_MSG_PLATINUM_UPDATED_OK']);
337  }
338  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
339  break;
340 
341  case "maj_abo_diamond":
342  // Mise à jour de l'abonnement diamond si le module abonnement existe
343  if (!empty($_POST['id_utilisateur']) && check_if_module_active('abonnement')) {
344  $output .= maj_abonnement_admin($_POST);
345  tracert_history_admin($_POST['id_utilisateur'], 'EDIT_ORDER', $GLOBALS['STR_MODULE_ABONNEMENT_ADMIN_MSG_DIAMOND_UPDATED_OK']);
346  }
347  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
348  break;
349 
350  case "convert_abo":
351  // Conversion d'un abonnement en un autre si le module abonnement existe
352  if (!empty($_POST['id_utilisateur']) && check_if_module_active('abonnement')) {
353  if (!empty($_POST['convert_diamond_to_platinum'])) {
354  $output .= userConvertSubscription($_POST['id_utilisateur'], 'diamond', 'platinum');
355  tracert_history_admin($_POST['id_utilisateur'], 'EDIT_ORDER', $GLOBALS['STR_MODULE_ABONNEMENT_ADMIN_MSG_DIAMOND_CONVERTED_TO_PLATINUM_OK']);
356  } elseif (!empty($_POST['convert_platinum_to_diamond'])) {
357  $output .= userConvertSubscription($_POST['id_utilisateur'], 'platinum', 'diamond');
358  tracert_history_admin($_POST['id_utilisateur'], 'EDIT_ORDER', $GLOBALS['STR_MODULE_ABONNEMENT_ADMIN_MSG_PLATINUM_CONVERTED_TO_DIAMOND_OK']);
359  }
360  }
361  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
362  break;
363 
364  case "add_contact_planified":
365  // Ajout d'une planification de contact
366  if (!empty($_POST['form_edit_contact_user_id']) && check_if_module_active('commerciale')) {
368  }
369  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
370  break;
371 
372  case "update_contact_planified":
373  // Mise à jour d'une planification de contact
374  if (!empty($_POST['form_edit_contact_planified_id']) && check_if_module_active('commerciale')) {
376  }
377  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
378  break;
379 
380  case "suppr_contact_planified":
381  // Supression d'une planification de contact
382  if (!empty($_POST['form_delete_admins_contacts']) && check_if_module_active('commerciale')) {
383  foreach($_POST['form_delete_admins_contacts'] as $form_edit_contact_planified_id) {
384  $output .= delete_contact_planified($form_edit_contact_planified_id);
385  }
386  }
387  $output .= affiche_formulaire_modif_utilisateur($id_utilisateur);
388  break;
389  case "search" :
390  // recupération des informations client du critère de recherche sous forme de tableau, afin de les envoyés en paramètre dans la fonction tracert.
391  $user_info = array();
392  if (!empty($_GET['client_info'])) {
393  $user_info [] = 'Prénom / Nom : ' . $_GET['client_info'];
394  }
395  if (!empty($_GET['email'])) {
396  $user_info [] = 'Email : ' . $_GET['email'];
397  }
398  if (!empty($_GET['pays'])) {
399  $user_info [] = 'Pays : ' . $_GET['pays'];
400  }
401  if (!empty($_GET['societe'])) {
402  $user_info [] = 'Société : ' . $_GET['societe'];
403  }
404  if (!empty($_GET['origin'])) {
405  $user_info [] = 'Origin : ' . $_GET['origin'];
406  }
407  if (!empty($_GET['tel'])) {
408  $user_info [] = 'Tel : ' . $_GET['tel'];
409  }
410  if (!empty($_GET['fax'])) {
411  $user_info [] = 'Fax : ' . $_GET['fax'];
412  }
413  if (!empty($_GET['date_insert_to'])) {
414  $user_info [] = 'Date inscription : ' . nohtml_real_escape_string(date('Y-m-d', strtotime(str_replace('/', '-', $_GET['date_insert_to']))));
415  }
416  if (!empty($_GET['seg_who'])) {
417  $user_info [] = 'Seg_who : ' . $_GET['seg_who'];
418  }
419  if (!empty($_GET['seg_buy'])) {
420  $user_info [] = 'seg_buy : ' . $_GET['seg_buy'];
421  }
422  if (!empty($_GET['seg_want'])) {
423  $user_info [] = 'seg_want : ' . $_GET['seg_want'];
424  }
425  if (!empty($_GET['seg_think'])) {
426  $user_info [] = 'seg_think : ' . $_GET['seg_think'];
427  }
428  if (!empty($_GET['seg_followed'])) {
429  $user_info [] = 'seg_followed : ' . $_GET['seg_followed'];
430  }
431  if (!empty($_GET['type'])) {
432  $user_info [] = 'type : ' . $_GET['type'];
433  }
434  if (!empty($_GET['control_plus'])) {
435  $user_info [] = 'control_plus : ' . $_GET['control_plus'];
436  }
437  if (!empty($_GET['fonction'])) {
438  $user_info [] = 'fonction : ' . $_GET['fonction'];
439  }
440  if (!empty($_GET['site_on'])) {
441  $user_info [] = 'site_on : ' . $_GET['site_on'];
442  }
443  if (!empty($_GET['id_cat'])) {
444  $user_info [] = 'id_cat : ' . $_GET['id_cat'];
445  }
446  if (!empty($_GET['activity'])) {
447  $user_info [] = 'activity : ' . $_GET['activity'];
448  }
449  tracert_history_admin(0, 'SEARCH_USER', implode(' | ', $user_info));
451  break;
452 
453  case "phone":
454  if (!empty($_POST)) {
455  if (!empty($_POST['phone_emitted_submit'])) {
456  tracert_history_admin($_POST['id_utilisateur'], 'PHONE_EMITTED', 'NOT_ENDED_CALL', $_POST['form_phone_comment']);
457  $output .= affiche_formulaire_modif_utilisateur($_POST['id_utilisateur']);
458  } elseif (!empty($_POST['phone_received_submit'])) {
459  tracert_history_admin($_POST['id_utilisateur'], 'PHONE_RECEIVED', 'NOT_ENDED_CALL', $_POST['form_phone_comment']);
460  $output .= affiche_formulaire_modif_utilisateur($_POST['id_utilisateur']);
461  } elseif (!empty($_POST['turn_off_phone'])) {
462  $q = query('UPDATE peel_admins_actions
463  SET raison="",
464  remarque="' . nohtml_real_escape_string($_POST['form_phone_comment']) . '",
465  data="' . date('Y-m-d H:i:s', time()) . '"
466  WHERE id_user="' . $_SESSION['session_utilisateur']['id_utilisateur'] . '" AND id_membre="' . $_POST['id_utilisateur'] . '" AND ((action = "PHONE_EMITTED") OR (action = "PHONE_RECEIVED")) AND data="NOT_ENDED_CALL" AND ' . get_filter_site_cond('admins_actions', null, true) . '
467  ');
468  $output .= affiche_formulaire_modif_utilisateur($_POST['id_utilisateur']);
469  }
470  }
471  break;
472 
473  default :
474  if (!empty($_GET['commercial_contact_id']) && check_if_module_active('commerciale')) {
475  $output .= afficher_liste_utilisateurs($priv, $cle, null, 'date_insert', $_GET['commercial_contact_id']);
476  } else {
478  if (check_if_module_active('chart', 'open-flash-chart.php') && empty($_GET['page'])) {
479  if(vb($GLOBALS['site_parameters']['chart_product']) == 'flot') {
480  include($GLOBALS['dirroot'] . '/modules/chart/flot.php');
481  } else {
482  include($GLOBALS['dirroot'] . '/modules/chart/open_flash_chart_object.php');
483  }
484 
485  if(empty($_SESSION['session_admin_multisite']) || $_SESSION['session_admin_multisite'] != $GLOBALS['site_id']) {
486  $this_wwwroot = get_site_wwwroot($_SESSION['session_admin_multisite']);
487  } else {
488  $this_wwwroot = $GLOBALS['wwwroot'];
489  }
490  if(vb($GLOBALS['site_parameters']['chart_product']) == 'flot') {
491  $output .= '<div class="center">' . get_flot_chart('100%', 300, $GLOBALS['administrer_url'] . '/chart-data.php?type=users-count&date1=' . date('Y-m-d', time()-3600 * 24 * 90) . '&date2=' . date('Y-m-d', time()) . '&width=1000', 'line', $this_wwwroot . '/modules/chart/', 'date_format_veryshort') . '</div>';
492  } else {
493  $output .= '<div class="center">' . open_flash_chart_object_str('100%', 300, $GLOBALS['administrer_url'] . '/chart-data.php?type=users-count&date1=' . date('Y-m-d', time()-3600 * 24 * 90) . '&date2=' . date('Y-m-d', time()) . '&width=1000', true, $this_wwwroot . '/modules/chart/') . '</div>';
494  }
495  }
496  }
497  break;
498 }
499 
500 include($GLOBALS['repertoire_modele'] . "/admin_haut.php");
501 echo $output;
502 include($GLOBALS['repertoire_modele'] . "/admin_bas.php");
503 
515 {
516  if(empty($frm)) {
517  $frm = array();
518  $frm['pseudo'] = "";
519  $frm['commercial_contact_id'] = "";
520  $frm['mot_passe'] = "";
521  $frm['id_groupe'] = "";
522  $frm['email'] = "";
523  $frm['civilite'] = "";
524  $frm['prenom'] = "";
525  $frm['nom_famille'] = "";
526  $frm['email'] = "";
527  $frm['telephone'] = "";
528  $frm['fax'] = "";
529  $frm['portable'] = "";
530  $frm['adresse'] = "";
531  $frm['code_postal'] = "";
532  $frm['ville'] = "";
533  $frm['pays'] = "";
534  $frm['societe'] = "";
535  $frm['intracom_for_billing'] = "";
536  $frm['siret'] = "";
537  $frm['ape'] = "";
538  $frm['remise_percent'] = "0";
539  $frm['remise_valeur'] = "0";
540  $frm['naissance'] = "";
541  $frm['points'] = "0";
542  $frm['on_vacances'] = "0";
543  $frm['on_vacances_date'] = "";
544  $frm['pays'] = vn($GLOBALS['site_parameters']['default_country_id']);
545  $frm['priv'] = 'util';
546  $frm['format'] = "";
547  $frm['code_banque'] = "";
548  $frm['code_guiche'] = "";
549  $frm['numero_compte'] = "";
550  $frm['cle_rib'] = "";
551  $frm['domiciliation'] = "";
552  $frm['iban'] = "";
553  $frm['bic'] = "";
554  $frm['url'] = "";
555  $frm['description'] = "";
556  $frm['date_insert'] = "";
557  $frm['date_update'] = "";
558  $frm['avoir'] = 0;
559  $frm['newsletter'] = "1";
560  $frm['commercial'] = "1";
561  $frm['comments'] = "";
562  $frm['seg_who'] = 'no_info';
563  $frm['seg_buy'] = 'no_info';
564  $frm['seg_want'] = 'no_info';
565  $frm['seg_think'] = 'no_info';
566  $frm['seg_followed'] = 'no_info';
567  $frm['logo'] = '';
568  $frm['on_client_module'] = 0;
569  $frm['description_document'] = "";
570  $frm['document'] = "";
571  }
572  $frm['id_utilisateur'] = "";
573  $frm['nouveau_mode'] = "insere";
574  $frm['titre_soumet'] = $GLOBALS['STR_ADMIN_UTILISATEURS_CREATE'];
575 
577 }
578 
586 {
587  $output = '';
589  if (!empty($frm)) {
590  $qcomments = query("SELECT comments
591  FROM peel_admins_comments
592  WHERE id_user = '" . intval($id_utilisateur) . "'");
593  $comments = fetch_assoc($qcomments);
594  // Recupération de la date de la dernière connexion de l'utilisateur
595  $qlast_date = query("SELECT date, user_ip
596  FROM peel_utilisateur_connexions
597  WHERE user_id = '" . intval($id_utilisateur) . "' AND " . get_filter_site_cond('utilisateur_connexions', null, true) . "
598  ORDER BY id DESC
599  LIMIT 1");
600  $last_date = fetch_assoc($qlast_date);
601  if (!empty($last_date['date'])) {
602  $frm['last_date'] = $last_date['date'];
603  }
604  if (!empty($last_date['user_ip'])) {
605  $frm['user_ip'] = long2ip($last_date['user_ip']);
606  }
607  if (!empty($comments['comments'])) {
608  $frm['comments'] = $comments['comments'];
609  }
610  $frm['nouveau_mode'] = "maj";
611  $frm['titre_soumet'] = $GLOBALS['STR_ADMIN_FORM_SAVE_CHANGES'];
613  } else {
614  $output .= $GLOBALS['tplEngine']->createTemplate('global_error.tpl', array('message' => $GLOBALS['STR_ADMIN_UTILISATEURS_NOT_FOUND']))->fetch();
615  }
616  return $output;
617 }
618 
626 {
627  $output = '';
628  $GLOBALS['multipage_avoid_redirect_if_page_over_limit'] = true;
629  $tpl = $GLOBALS['tplEngine']->createTemplate('admin_utilisateur_form.tpl');
630  $tpl->assign('hook_actions', call_module_hook('user_edit_actions', array('id_utilisateur' => vb($frm['id_utilisateur'])), 'string'));
631  $tpl->assign('action', get_current_url(false) . '?start=' . (isset($_GET['start']) ? $_GET['start'] : 0));
632  $tpl->assign('form_token', get_form_token_input($_SERVER['PHP_SELF'] . $frm['nouveau_mode'] . intval(vn($frm['id_utilisateur']))));
633  $tpl->assign('mode', vb($frm['nouveau_mode']));
634  $tpl->assign('id_utilisateur', vb($frm['id_utilisateur']));
635  $tpl->assign('site_id_select_options', get_site_id_select_options(isset($frm['site_id'])?$frm['site_id']:null));
636  $tpl->assign('site_id_select_multiple', !empty($GLOBALS['site_parameters']['multisite_using_array_for_site_id']));
637  $tpl->assign('remise_valeur', vb($frm['remise_valeur']));
638  $tpl->assign('administrer_url', $GLOBALS['administrer_url']);
639  $tpl->assign('wwwroot_in_admin', $GLOBALS['wwwroot_in_admin']);
640  // user_site_id permet de désactiver le champ select pour éviter les erreur d'administration. Le select est désactivé avec disabled="disabled", la valeur de site_id est transmis via un champ hidden.
641  $tpl->assign('disable_user_siteweb',isset($frm['site_id']) && nohtml_real_escape_string(get_site_id_sql_set_value($frm['site_id'])) === 0);
642  if (!empty($frm['date_insert'])) {
643  $tpl->assign('date_insert', get_formatted_date($frm['date_insert']));
644  }
645  if (!empty($frm['last_date'])) {
646  $tpl->assign('last_date', get_formatted_date($frm['last_date']));
647  }
648  $tpl->assign('user_ip', vb($frm['user_ip']));
649 
650  if (!empty($frm['date_update'])) {
651  $tpl->assign('date_update', get_formatted_date($frm['date_update']));
652  }
653  $tpl->assign('is_id_utilisateur', !empty($frm['id_utilisateur']));
654  $tpl->assign('email', (!a_priv('demo')?vb($frm['email']):'private [demo]'));
655  if(check_if_module_active('bounces')) {
656  include($GLOBALS['dirroot'] . '/modules/bounces/rfc1893.error.codes.php');
657  $temp = explode('.', $frm['email_bounce']);
658  if(!empty($temp[0]) && !empty($status_code_classes[$temp[0]])) {
659  $email_infos_array[] = vb($status_code_classes[$temp[0]]['title']);
660  }
661  $email_infos_array[] = vb($frm['email_bounce']);
662  if(isset($temp[1]) && isset($temp[2]) && !empty($status_code_subclasses[$temp[1].'.'.$temp[2]])) {
663  $email_infos_array[] = vb($status_code_subclasses[$temp[1].'.'.$temp[2]]['title'], $frm['email_bounce']);
664  $email_infos_array[] = vb($status_code_subclasses[$temp[1].'.'.$temp[2]]['descr'], $frm['email_bounce']);
665  }
666  $email_infos = implode(' - ', $email_infos_array);
667  } else {
668  $email_infos = vb($frm['email_bounce']);
669  }
670  if(String::substr(vb($frm['email_bounce']), 0, 1) === '5') {
671  $email_infos = $GLOBALS['tplEngine']->createTemplate('global_error.tpl', array('message' => $email_infos))->fetch();
672  }
673  $tpl->assign('email_infos', $email_infos);
674  $tpl->assign('pseudo', (!a_priv('demo')?vb($frm['pseudo']):'private [demo]'));
675  $all_sites_name_array = get_all_sites_name_array(true);
676  if (isset($_SESSION['session_admin_multisite']) && $_SESSION['session_admin_multisite'] === 0) {
677  // L'administrateur multisite peut voir des informations qui s'applique à tous les sites. Donc cette mention doit être retournée dans le tableau.
678  $all_sites_name_array[0] = $GLOBALS['STR_ADMIN_ALL_SITES'];
679  }
680  $resPriv = query("SELECT *, name_".$_SESSION['session_langue']." AS name
681  FROM peel_profil
682  WHERE " . get_filter_site_cond('profil') ."
683  ORDER BY name");
684  if (num_rows($resPriv)) {
685  $user_priv_array = explode('+', vb($frm['priv']));
686  // Sélection du privilège du l'utilisateur. Si le privilège de l'utilisateur n'est pas défini dans la table, le privilège 'util' est présélectionné
687  $res_user_priv = query("SELECT name_".$_SESSION['session_langue']." AS name
688  FROM peel_profil
689  WHERE " . get_filter_site_cond('profil') ." AND priv IN ('" . implode("','", real_escape_string($user_priv_array)) . "')");
690  $user_priv = fetch_assoc($res_user_priv);
691  while ($Priv = fetch_assoc($resPriv)) {
692  if (isset($_SESSION['session_admin_multisite']) && $_SESSION['session_admin_multisite'] === 0) {
693  // L'administrateur multisite consulte la liste des couleurs existantes. Dans ce cas toutes les couleurs des tous les sont affichées, on affiche dans ce cas le nom du site à coté du nom de la couleurs pour éviter des erreurs d'administration.
694  $priv_name = '[' . $all_sites_name_array[$Priv['site_id']] . '] ' . $Priv['name'];
695  } else {
696  $priv_name = $Priv['name'];
697  }
698  $tpl_priv_options[] = array('value' => $Priv['priv'],
699  'issel' => (!empty($user_priv['name']) ? in_array($Priv['priv'], $user_priv_array) : $Priv['priv'] == 'util'),
700  'name' => $priv_name
701  );
702  }
703  $tpl->assign('priv_options', $tpl_priv_options);
704  }
705 
706  $tpl->assign('commercial_contact_id', vb($frm['commercial_contact_id']));
707 
708  $tpl_util_options = array();
709  $q = query('SELECT id_utilisateur, pseudo, email, etat, commercial_contact_id
710  FROM peel_utilisateurs
711  WHERE priv LIKE "admin%" AND pseudo!="" AND ' . get_filter_site_cond('utilisateurs', null, true) . '');
712  while ($result = fetch_assoc($q)) {
713  $tpl_util_options[] = array('value' => $result['id_utilisateur'],
714  'issel' => vb($frm['commercial_contact_id']) == $result['id_utilisateur'],
715  'name' => (!a_priv('demo')?(!empty($result['pseudo'])?$result['pseudo']:$result['email']):'private [demo]')
716  );
717  }
718  $tpl->assign('util_options', $tpl_util_options);
719 
720  $tpl->assign('is_annonce_module_active', check_if_module_active('annonces'));
721  $tpl->assign('is_modif_mode', vb($_REQUEST['mode']) == "modif");
722  $tpl->assign('mot_passe', vb($frm['mot_passe']));
723  $tpl->assign('control_plus', vb($frm['control_plus']));
724  $tpl->assign('note_administrateur', vb($frm['note_administrateur']));
725  $tpl->assign('activity', vb($frm['activity']));
726  if (function_exists("afficher_offres_utilisateur")) {
727  $afficher_offres_utilisateur = afficher_offres_utilisateur($frm['id_utilisateur'], true);
728  $tpl->assign('display_offres', $afficher_offres_utilisateur['output']);
729  $tpl->assign('nb_offres', $afficher_offres_utilisateur['nb_offres']);
730  }
731  $tpl->assign('is_groups_module_active', check_if_module_active('groups'));
732  if (check_if_module_active('groups')) {
733  $resGroupe = query("SELECT *
734  FROM peel_groupes
735  WHERE " . get_filter_site_cond('groupes') . "
736  ORDER BY nom");
737  if (num_rows($resGroupe)) {
738  $tpl_groupes_options = array();
739  while ($Groupe = fetch_assoc($resGroupe)) {
740  $tpl_groupes_options[] = array('value' => $Groupe['id'],
741  'issel' => vb($frm['id_groupe']) == $Groupe['id'],
742  'name' => $Groupe['nom'],
743  'remise' => $Groupe['remise']
744  );
745  }
746  $tpl->assign('groupes_options', $tpl_groupes_options);
747  }
748  $tpl->assign('STR_ADMIN_GROUP', $GLOBALS['STR_ADMIN_GROUP']);
749  $tpl->assign('STR_ADMIN_UTILISATEURS_NO_GROUP_DEFINED', $GLOBALS['STR_ADMIN_UTILISATEURS_NO_GROUP_DEFINED']);
750  }
751 
752  $tpl->assign('site_symbole', $GLOBALS['site_parameters']['symbole']);
753  $tpl->assign('telephone_calllink', (check_if_module_active('phone_cti') && !empty($frm['id_utilisateur']) ? getCallLink(vb($frm['id_utilisateur']), vb($frm['telephone']), vb($frm['nom_famille']), vb($frm['pays'])) : ''));
754  $tpl->assign('portable_calllink', (check_if_module_active('phone_cti') && !empty($frm['id_utilisateur']) ? getCallLink(vb($frm['id_utilisateur']), vb($frm['portable']), vb($frm['nom_famille']), vb($frm['pays'])) : ''));
755  $tpl->assign('country_select_options', get_country_select_options(null, vb($frm['pays']), 'id', true));
756 
757  $tpl->assign('specific_fields', get_specific_field_infos($frm, null, 'user'));
758  $tpl->assign('code_client', vb($frm['code_client']));
759  $tpl->assign('societe', vb($frm['societe']));
760  $tpl->assign('civilite', vb($frm['civilite']));
761  $tpl->assign('prenom', vb($frm['prenom']));
762  $tpl->assign('nom_famille', vb($frm['nom_famille']));
763  $tpl->assign('telephone', vb($frm['telephone']));
764  $tpl->assign('fax', vb($frm['fax']));
765  $tpl->assign('portable', vb($frm['portable']));
766  $tpl->assign('adresse', vb($frm['adresse']));
767  $tpl->assign('code_postal', vb($frm['code_postal']));
768  $tpl->assign('ville', vb($frm['ville']));
769  $tpl->assign('naissance', get_formatted_date(vb($frm['naissance'])));
770  $tpl->assign('remise_percent', vb($frm['remise_percent']));
771  $tpl->assign('avoir', vb($frm['avoir']));
772  $tpl->assign('points', vb($frm['points']));
773  $tpl->assign('is_module_vacances_active', check_if_module_active('vacances'));
774  if (check_if_module_active('vacances')) {
775  $tpl->assign('vacances_type', get_vacances_type());
776  } else {
777  $tpl->assign('vacances_type', '');
778  }
779  $tpl_origin_options = array();
780  $i = 1;
781  while (isset($GLOBALS['STR_USER_ORIGIN_OPTIONS_' . $i])) {
782  $tpl_origin_options[] = array('value' => $i,
783  'issel' => vb($frm['origin']) == $i,
784  'name' => $GLOBALS['STR_USER_ORIGIN_OPTIONS_' . $i]
785  );
786  $i++;
787  }
788  $tpl->assign('origin_infos', array('options' => $tpl_origin_options,
789  'is_origin_other_activated' => in_array(vb($frm['origin']), $GLOBALS['origin_other_ids']),
790  'origin_other_ids_for_javascript' => 'new Array('.implode(',', $GLOBALS['origin_other_ids']).')',
791  'origin_other' => vb($frm['origin_other']),
792  'error_text' => '',
793  'STR_CHOOSE' => $GLOBALS['STR_CHOOSE']
794  ));
795 
796  $tpl->assign('STR_LANGUAGE_FOR_AUTOMATIC_EMAILS', $GLOBALS['STR_LANGUAGE_FOR_AUTOMATIC_EMAILS']);
797 
798  $tpl_langues = array();
799  if (empty($frm['lang'])) {
800  $frm['lang'] = $_SESSION['session_langue'];
801  }
802  $resLng = query("SELECT *, nom_" . $_SESSION['session_langue'] . " AS nom_lang
803  FROM peel_langues
804  WHERE (etat='1'" . (!empty($_GET['langue']) ? " OR lang='" . word_real_escape_string($_GET['langue']) . "'" : '') . ") AND " . get_filter_site_cond('langues') . "
805  GROUP BY lang
806  ORDER BY position");
807  while ($lng = fetch_assoc($resLng)) {
808  $tpl_langues[] = array('value' => vb($lng['lang']),
809  'issel' => ($lng['lang'] == vb($frm['lang'])),
810  'name' => vb($lng['lang'])
811  );
812  $i++;
813  }
814  $tpl->assign('langues', $tpl_langues);
815 
816  $tpl->assign('drop_src', $GLOBALS['administrer_url'] . '/images/b_drop.png');
817  if (!empty($frm['logo'])) {
818  $tpl->assign('logo_src', $GLOBALS['repertoire_upload'] . '/' . $frm['logo']);
819  $tpl->assign('logo_del_href', get_current_url(false) . '?mode=supprlogo&id_utilisateur=' . vn($frm['id_utilisateur']));
820  }
821 
822  $tpl->assign('is_clients_module_active', check_if_module_active('clients'));
823  $tpl->assign('issel_on_client_module', !isset($frm['on_client_module']) || !empty($frm['on_client_module']));
824  $tpl->assign('is_photodesk_module_active', check_if_module_active('photodesk'));
825  $tpl->assign('issel_on_photodesk_module', !isset($frm['on_photodesk']) || !empty($frm['on_photodesk']));
826  $tpl->assign('gift_check_link', check_if_module_active('gift_check') && !empty($frm['id_utilisateur']));
827 
828  $tpl->assign('issel_newsletter', !isset($frm['newsletter']) || !empty($frm['newsletter']));
829  $tpl->assign('issel_commercial', !isset($frm['commercial']) || $frm['commercial']);
830 
831  $tpl->assign('is_module_gift_checks_active', check_if_module_active('gift_check'));
832  $tpl->assign('mail_src', $GLOBALS['wwwroot_in_admin'] . '/images/mail.gif');
833  if (check_if_module_active('gift_check') && !empty($frm['id_utilisateur'])) {
834  $tpl->assign('gift_checks_href', get_current_url(false) . '?mode=cheque&id_utilisateur=' . $frm['id_utilisateur']);
835  $tpl->assign('gift_checks_prix', fprix($GLOBALS['site_parameters']['avoir'], true, $GLOBALS['site_parameters']['code'], false));
836  }
837  if (check_if_module_active('telechargement')) {
838  $tpl->assign('download_files', affiche_liste_telechargement($frm['id_utilisateur']));
839  }
840  $tpl->assign('is_annonce_module_active', check_if_module_active('annonces'));
841  $tpl->assign('add_b2b_form_inputs', !empty($GLOBALS['site_parameters']['add_b2b_form_inputs']));
842  $tpl->assign('fonction_options', get_user_job_options(vb($frm['fonction'])));
843  $tpl->assign('type', vb($frm['type']));
844  $tpl->assign('client_note', intval(getClientNote($frm)));
845  $tpl->assign('seg_who', formSelect('seg_who', tab_who(), vb($frm['seg_who'])));
846  $tpl->assign('seg_buy', formSelect('seg_buy', tab_buy(), vb($frm['seg_buy'])));
847  $tpl->assign('seg_want', formSelect('seg_want', tab_want(), vb($frm['seg_want'])));
848  $tpl->assign('seg_think', formSelect('seg_think', tab_think(), vb($frm['seg_think'])));
849  $tpl->assign('seg_followed', formSelect('seg_followed', tab_followed(), vb($frm['seg_followed'])));
850 
851  $tpl->assign('is_vitrine_module_active', check_if_module_active('vitrine'));
852  if (check_if_module_active('vitrine') && !empty($frm['id_utilisateur'])) {
853  $tpl->assign('vitrine_admin', affiche_vitrine_admin($frm['id_utilisateur']));
854  }
855 
856  $tpl->assign('is_abonnement_module_active', check_if_module_active('abonnement'));
857  if (check_if_module_active('abonnement') && !empty($frm['id_utilisateur'])) {
858  $tpl->assign('abonnement_admin', affiche_abonnement_admin($frm['id_utilisateur'], true));
859  $tpl->assign('STR_MODULE_ABONNEMENT_ADMIN_MANAGE_SUBSCRIPTIONS', $GLOBALS['STR_MODULE_ABONNEMENT_ADMIN_MANAGE_SUBSCRIPTIONS']);
860  }
861 
862  if (check_if_module_active('annonces') && !empty($frm['pseudo'])) {
863  $recherche['login'] = $frm['pseudo'];
864  $tpl->assign('add_credit_gold_user', affiche_add_credit_gold_user($frm['id_utilisateur'], true));
865  $tpl->assign('liste_annonces_admin', affiche_liste_annonces_admin($recherche, false, $frm['id_utilisateur']));
866  }
867 
868  $tpl->assign('is_commerciale_module_active', check_if_module_active('commerciale'));
869  if (check_if_module_active('commerciale') && !empty($frm['id_utilisateur'])) {
870  $tpl->assign('form_contact_user', affiche_form_contact_user($frm['id_utilisateur'], true));
871  }
872 
873  if (vb($_REQUEST['mode']) != "ajout") { // si c'est l'édition
874  $tpl->assign('phone_event', affiche_phone_event($frm['id_utilisateur']));
875  }
876 
877  $tpl->assign('is_webmail_module_active', check_if_module_active('webmail'));
878  if (!empty($frm['id_utilisateur'])) {
879  $tpl->assign('list_user_mail', call_module_hook('list_user_mail', array('id_utilisateur' => $frm['id_utilisateur']), 'string'));
880  }
881  if (!empty($frm['user_ip'])) {
882  // Insertion du module de géoip permettant de définir en fonction de la dernière ip le lieu où s'est connecté la personne dernièrement
883  if (!isset($_SESSION['session_site_country']) && check_if_module_active('geoip')) {
884  include($GLOBALS['dirroot'] . '/modules/geoip/class/geoIP.php');
885  $geoIP = new geoIP();
886  $_SESSION['session_site_country'] = $geoIP->geoIPCountryIDByAddr($frm['user_ip']);
887  $geoIP->geoIPClose();
888  }
889  if (!empty($_SESSION['session_site_country'])) {
890  $query = query("SELECT pays_" . $_SESSION['session_langue'] . "
891  FROM peel_pays
892  WHERE id='" . intval($_SESSION['session_site_country']) . "' AND " . get_filter_site_cond('pays') . "");
894  $country_name = vb($result['pays_' . $_SESSION['session_langue']]);
895  }
896  }
897  $tpl->assign('country_name', vb($country_name));
898  $tpl->assign('on_vacances_date', vb($frm['on_vacances_date']));
899 
900  $tpl->assign('siret', vb($frm['siret']));
901  $tpl->assign('intracom_for_billing', vb($frm['intracom_for_billing']));
902  $tpl->assign('ape', vb($frm['ape']));
903  $tpl->assign('url', vb($frm['url']));
904  $tpl->assign('description', vb($frm['description']));
905  $tpl->assign('code_banque', vb($frm['code_banque']));
906  $tpl->assign('code_guichet', vb($frm['code_guichet']));
907  $tpl->assign('numero_compte', vb($frm['numero_compte']));
908  $tpl->assign('cle_rib', vb($frm['cle_rib']));
909  $tpl->assign('domiciliation', vb($frm['domiciliation']));
910  $tpl->assign('bic', vb($frm['bic']));
911  $tpl->assign('iban', vb($frm['iban']));
912  $tpl->assign('origin_other', vb($frm['origin_other']));
913  $tpl->assign('project_budget_ht', vb($frm['project_budget_ht']));
914  $tpl->assign('project_chances_estimated', vb($frm['project_chances_estimated']));
915  $tpl->assign('comments', vb($frm['comments']));
916  $tpl->assign('project_product_proposed', vb($frm['project_product_proposed']));
917  $tpl->assign('project_date_forecasted', get_formatted_date(vb($frm['project_date_forecasted'])));
918  $tpl->assign('etat', vb($frm['etat']));
919  $tpl->assign('on_vacances', vb($frm['on_vacances']));
920  $tpl->assign('titre_soumet', vb($frm['titre_soumet']));
921  $tpl->assign('pseudo_is_not_used', !empty($GLOBALS['site_parameters']['pseudo_is_not_used']));
922  if (check_if_module_active('annonces')) {
923  if (vb($GLOBALS['site_parameters']['type_affichage_user_favorite_id_categories']) == 'checkbox') {
924  $tpl->assign('id_categories', get_ad_select_options(null, vb($frm['id_categories']), 'id', false, false, 'checkbox', 'id_categories'));
925  } elseif (vb($GLOBALS['site_parameters']['type_affichage_user_favorite_id_categories']) == 'select') {
926  $tpl->assign('id_cat_1', get_ad_select_options(null, vb($frm['id_cat_1']), 'id'));
927  $tpl->assign('id_cat_2', get_ad_select_options(null, vb($frm['id_cat_2']), 'id'));
928  $tpl->assign('id_cat_3', get_ad_select_options(null, vb($frm['id_cat_3']), 'id'));
929  }
930  }
931  $tpl->assign('is_devises_module_active', check_if_module_active('devises'));
932  if (!empty($GLOBALS['site_parameters']['devise_force_user_choices']) && check_if_module_active('devises')) {
933  // Gestion du fait de pouvoir forcer un utilisateur a utiliser une devise lorsqu'il est loggué et aucune autre
934  // Si vous activez cette fonction avec création d'une variable devise_force_user_choices dans la table de configuration,
935  // alors vous devez créer un champ devise dans peel_utilisateur int(11)
936  $tpl_devises_options = array();
937  $res_devise = query("SELECT p.id, p.code
938  FROM peel_devises p
939  WHERE etat='1' AND " . get_filter_site_cond('devises', 'p') . "");
940  while ($tab_devise = fetch_assoc($res_devise)) {
941  $tpl_devises_options[] = array('value' => $tab_devise['id'],
942  'issel' => $tab_devise['id'] == vb($frm['devise']),
943  'name' => $tab_devise['code']
944  );
945  }
946  $tpl->assign('STR_ALL', $GLOBALS['STR_ALL']);
947  $tpl->assign('STR_DEVISE', $GLOBALS['STR_DEVISE']);
948  $tpl->assign('devises_options', $tpl_devises_options);
949  }
950  if(!empty($GLOBALS['site_parameters']['site_country_forced_by_user']) && !empty($GLOBALS['site_parameters']['site_country_allowed_array'])) {
951  $tpl->assign('STR_ADMIN_SITE_COUNTRY', $GLOBALS['STR_ADMIN_SITE_COUNTRY']);
952  $tpl->assign('site_country_select_options', get_country_select_options(null, vb($frm['site_country']), 'id', false, null, false, null, vb($GLOBALS['site_parameters']['site_country_allowed_array'], null)));
953  }
954  if(!empty($GLOBALS['site_parameters']['user_offers_table_enable'])) {
955  $tpl->assign('STR_OFFER_NAME', vb($GLOBALS['STR_OFFER_NAME']));
956  $tpl->assign('STR_SEARCH_OFFERT_STARTING_WITH', vb($GLOBALS['STR_SEARCH_OFFERT_STARTING_WITH']));
957  }
958  $tpl->assign('STR_PSEUDO', $GLOBALS['STR_PSEUDO']);
959  $tpl->assign('STR_MODIFY', $GLOBALS['STR_MODIFY']);
960  $tpl->assign('STR_ADMIN_WEBSITE', $GLOBALS['STR_ADMIN_WEBSITE']);
961  $tpl->assign('STR_MLLE', $GLOBALS['STR_MLLE']);
962  $tpl->assign('STR_MME', $GLOBALS['STR_MME']);
963  $tpl->assign('STR_M', $GLOBALS['STR_M']);
964  $tpl->assign('STR_NAISSANCE', $GLOBALS['STR_NAISSANCE']);
965  $tpl->assign('STR_LEADER', $GLOBALS['STR_LEADER']);
966  $tpl->assign('STR_MANAGER', $GLOBALS['STR_MANAGER']);
967  $tpl->assign('STR_EMPLOYEE', $GLOBALS['STR_EMPLOYEE']);
968  $tpl->assign('STR_CHOOSE', $GLOBALS['STR_CHOOSE']);
969  $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']);
970  $tpl->assign('STR_BUYERS', $GLOBALS['STR_BUYERS']);
971  $tpl->assign('STR_IMPORTERS_EXPORTERS', $GLOBALS['STR_IMPORTERS_EXPORTERS']);
972  $tpl->assign('STR_COMMERCIAL_AGENT', $GLOBALS['STR_COMMERCIAL_AGENT']);
973  $tpl->assign('STR_PURCHASING_MANAGER', $GLOBALS['STR_PURCHASING_MANAGER']);
974  $tpl->assign('STR_WORD_SELLERS', $GLOBALS['STR_WORD_SELLERS']);
975  $tpl->assign('STR_WHOLESALER', $GLOBALS['STR_WHOLESALER']);
976  $tpl->assign('STR_HALF_WHOLESALER', $GLOBALS['STR_HALF_WHOLESALER']);
977  $tpl->assign('STR_RETAILERS', $GLOBALS['STR_RETAILERS']);
978  $tpl->assign('STR_ADMIN_UTILISATEURS_EDIT_TITLE', $GLOBALS['STR_ADMIN_UTILISATEURS_EDIT_TITLE']);
979  $tpl->assign('STR_ADMIN_UTILISATEURS_SEND_EMAIL', $GLOBALS['STR_ADMIN_UTILISATEURS_SEND_EMAIL']);
980  $tpl->assign('STR_ADMIN_UTILISATEURS_CREATE_ORDER_TO_THIS_USER', $GLOBALS['STR_ADMIN_UTILISATEURS_CREATE_ORDER_TO_THIS_USER']);
981  $tpl->assign('STR_ADMIN_UTILISATEURS_CREATE_GIFT_CHECK', sprintf($GLOBALS['STR_ADMIN_UTILISATEURS_CREATE_GIFT_CHECK'], fprix($GLOBALS['site_parameters']['avoir'], true, $GLOBALS['site_parameters']['code'], false)));
982  $tpl->assign('STR_ADMIN_UTILISATEURS_CREATE_GIFT_CHECK_CONFIRM', $GLOBALS['STR_ADMIN_UTILISATEURS_CREATE_GIFT_CHECK_CONFIRM']);
983  $tpl->assign('STR_ADMIN_UTILISATEURS_SOCIETE_COM', $GLOBALS['STR_ADMIN_UTILISATEURS_SOCIETE_COM']);
984  $tpl->assign('STR_ADMIN_UTILISATEURS_INFOGREFFE', $GLOBALS['STR_ADMIN_UTILISATEURS_INFOGREFFE']);
985  $tpl->assign('STR_ADMIN_UTILISATEURS_EDIT_TITLE', $GLOBALS['STR_ADMIN_UTILISATEURS_EDIT_TITLE']);
986  $tpl->assign('STR_ADMIN_UTILISATEURS_UPDATE_EXPLAIN', $GLOBALS['STR_ADMIN_UTILISATEURS_UPDATE_EXPLAIN']);
987  $tpl->assign('STR_ADMIN_UTILISATEURS_REGISTRATION_DATE', $GLOBALS['STR_ADMIN_UTILISATEURS_REGISTRATION_DATE']);
988  $tpl->assign('STR_ADMIN_UTILISATEURS_LAST_CONNECTION', $GLOBALS['STR_ADMIN_UTILISATEURS_LAST_CONNECTION']);
989  $tpl->assign('STR_ADMIN_UTILISATEURS_LAST_IP', $GLOBALS['STR_ADMIN_UTILISATEURS_LAST_IP']);
990  $tpl->assign('STR_ADMIN_UTILISATEURS_LAST_UPDATE', $GLOBALS['STR_ADMIN_UTILISATEURS_LAST_UPDATE']);
991  $tpl->assign('STR_ADMIN_UTILISATEURS_ADMIN_NOTE', $GLOBALS['STR_ADMIN_UTILISATEURS_ADMIN_NOTE']);
992  $tpl->assign('STR_ADMIN_UTILISATEURS_MODERATION_MORE_STRICT', $GLOBALS['STR_ADMIN_UTILISATEURS_MODERATION_MORE_STRICT']);
993  $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']);
994  $tpl->assign('STR_EMAIL', $GLOBALS['STR_EMAIL']);
995  $tpl->assign('STR_STATUS', $GLOBALS['STR_STATUS']);
996  $tpl->assign('STR_CHOOSE', $GLOBALS['STR_CHOOSE']);
997  $tpl->assign('STR_ADMIN_ACTIVATED', $GLOBALS['STR_ADMIN_ACTIVATED']);
998  $tpl->assign('STR_ADMIN_DEACTIVATED', $GLOBALS['STR_ADMIN_DEACTIVATED']);
999  $tpl->assign('STR_ADMIN_PRIVILEGE', $GLOBALS['STR_ADMIN_PRIVILEGE']);
1000  $tpl->assign('STR_ADMIN_UTILISATEURS_ACCOUNT_MANAGER', $GLOBALS['STR_ADMIN_UTILISATEURS_ACCOUNT_MANAGER']);
1001  $tpl->assign('STR_ADMIN_UTILISATEURS_NO_ACCOUNT_MANAGER', $GLOBALS['STR_ADMIN_UTILISATEURS_NO_ACCOUNT_MANAGER']);
1002  $tpl->assign('STR_ADMIN_UTILISATEURS_CLIENT_CODE', $GLOBALS['STR_ADMIN_UTILISATEURS_CLIENT_CODE']);
1003  $tpl->assign('STR_ADMIN_UTILISATEURS_CLIENT_CODE_HELP', $GLOBALS['STR_ADMIN_UTILISATEURS_CLIENT_CODE_HELP']);
1004  $tpl->assign('STR_COMPANY', $GLOBALS['STR_COMPANY']);
1005  $tpl->assign('STR_ACTIVITY', $GLOBALS['STR_ACTIVITY']);
1006  $tpl->assign('STR_PUNCTUAL', $GLOBALS['STR_PUNCTUAL']);
1007  $tpl->assign('STR_RECURRENT', $GLOBALS['STR_RECURRENT']);
1008  $tpl->assign('STR_GENDER', $GLOBALS['STR_GENDER']);
1009  $tpl->assign('STR_FIRST_NAME', $GLOBALS['STR_FIRST_NAME']);
1010  $tpl->assign('STR_LAST_NAME', $GLOBALS['STR_LAST_NAME']);
1011  $tpl->assign('STR_TELEPHONE', $GLOBALS['STR_TELEPHONE']);
1012  $tpl->assign('STR_FAX', $GLOBALS['STR_FAX']);
1013  $tpl->assign('STR_PORTABLE', $GLOBALS['STR_PORTABLE']);
1014  $tpl->assign('STR_ADDRESS', $GLOBALS['STR_ADDRESS']);
1015  $tpl->assign('STR_ZIP', $GLOBALS['STR_ZIP']);
1016  $tpl->assign('STR_TOWN', $GLOBALS['STR_TOWN']);
1017  $tpl->assign('STR_COUNTRY', $GLOBALS['STR_COUNTRY']);
1018  $tpl->assign('STR_NAISSANCE', $GLOBALS['STR_NAISSANCE']);
1019  $tpl->assign('STR_ADMIN_CODES_PROMOS_PERCENT', $GLOBALS['STR_ADMIN_CODES_PROMOS_PERCENT']);
1020  $tpl->assign('STR_AVOIR', $GLOBALS['STR_AVOIR']);
1021  $tpl->assign('STR_GIFT_POINTS', $GLOBALS['STR_GIFT_POINTS']);
1022  $tpl->assign('STR_GIFT_POINTS', $GLOBALS['STR_GIFT_POINTS']);
1023  $tpl->assign('STR_ADMIN_UTILISATEURS_ON_HOLIDAY_SUPPLIER', $GLOBALS['STR_ADMIN_UTILISATEURS_ON_HOLIDAY_SUPPLIER']);
1024  $tpl->assign('STR_ADMIN_UTILISATEURS_SUPPLIER_RETURN_DATE', $GLOBALS['STR_ADMIN_UTILISATEURS_SUPPLIER_RETURN_DATE']);
1025  $tpl->assign('STR_SIREN', $GLOBALS['STR_SIREN']);
1026  $tpl->assign('STR_VAT_INTRACOM', $GLOBALS['STR_VAT_INTRACOM']);
1027  $tpl->assign('STR_MODULE_PREMIUM_APE', $GLOBALS['STR_MODULE_PREMIUM_APE']);
1028  $tpl->assign('STR_WEBSITE', $GLOBALS['STR_WEBSITE']);
1029  $tpl->assign('STR_ADMIN_UTILISATEURS_WEBSITE_DESCRIPTION', $GLOBALS['STR_ADMIN_UTILISATEURS_WEBSITE_DESCRIPTION']);
1030  $tpl->assign('STR_BANK_ACCOUNT_CODE', $GLOBALS['STR_BANK_ACCOUNT_CODE']);
1031  $tpl->assign('STR_BANK_ACCOUNT_COUNTER', $GLOBALS['STR_BANK_ACCOUNT_COUNTER']);
1032  $tpl->assign('STR_BANK_ACCOUNT_NUMBER', $GLOBALS['STR_BANK_ACCOUNT_NUMBER']);
1033  $tpl->assign('STR_BANK_ACCOUNT_RIB', $GLOBALS['STR_BANK_ACCOUNT_RIB']);
1034  $tpl->assign('STR_BANK_ACCOUNT_DOMICILIATION', $GLOBALS['STR_BANK_ACCOUNT_DOMICILIATION']);
1035  $tpl->assign('STR_SWIFT', $GLOBALS['STR_SWIFT']);
1036  $tpl->assign('STR_IBAN', $GLOBALS['STR_IBAN']);
1037  $tpl->assign('STR_ORIGIN', $GLOBALS['STR_ORIGIN']);
1038  $tpl->assign('STR_ADMIN_GIVE_DETAIL', $GLOBALS['STR_ADMIN_GIVE_DETAIL']);
1039  $tpl->assign('STR_ADMIN_CHOOSE_FAVORITE_CATEGORIES', $GLOBALS['STR_ADMIN_CHOOSE_FAVORITE_CATEGORIES']);
1040  $tpl->assign('STR_FIRST_CHOICE', $GLOBALS['STR_FIRST_CHOICE']);
1041  $tpl->assign('STR_SECOND_CHOICE', $GLOBALS['STR_SECOND_CHOICE']);
1042  $tpl->assign('STR_THIRD_CHOICE', $GLOBALS['STR_THIRD_CHOICE']);
1043  $tpl->assign('STR_ADMIN_UTILISATEURS_CLIENT_BUDGET', $GLOBALS['STR_ADMIN_UTILISATEURS_CLIENT_BUDGET']);
1044  $tpl->assign('STR_HT', $GLOBALS['STR_HT']);
1045  $tpl->assign('STR_ADMIN_UTILISATEURS_CLIENT_PROJECT_CHANCES', $GLOBALS['STR_ADMIN_UTILISATEURS_CLIENT_PROJECT_CHANCES']);
1046  $tpl->assign('STR_COMMENTS', $GLOBALS['STR_COMMENTS']);
1047  $tpl->assign('STR_ADMIN_DELETE_LOGO', $GLOBALS['STR_ADMIN_DELETE_LOGO']);
1048  $tpl->assign('STR_ADMIN_UTILISATEURS_PROJECT_PRODUCT_PROPOSED', $GLOBALS['STR_ADMIN_UTILISATEURS_PROJECT_PRODUCT_PROPOSED']);
1049  $tpl->assign('STR_ADMIN_UTILISATEURS_PROJECT_DATE_FORECASTED', $GLOBALS['STR_ADMIN_UTILISATEURS_PROJECT_DATE_FORECASTED']);
1050  $tpl->assign('STR_ADMIN_UTILISATEURS_PROJECT_DESCRIPTION_DISPLAY', $GLOBALS['STR_ADMIN_UTILISATEURS_PROJECT_DESCRIPTION_DISPLAY']);
1051  $tpl->assign('STR_ADMIN_UTILISATEURS_DISPLAY_IMAGE_IN_PHOTODESK', $GLOBALS['STR_ADMIN_UTILISATEURS_DISPLAY_IMAGE_IN_PHOTODESK']);
1052  $tpl->assign('STR_NEWSLETTER', $GLOBALS['STR_NEWSLETTER']);
1053  $tpl->assign('STR_ADMIN_UTILISATEURS_NEWSLETTER_CHECKBOX', $GLOBALS['STR_ADMIN_UTILISATEURS_NEWSLETTER_CHECKBOX']);
1054  $tpl->assign('STR_ADMIN_UTILISATEURS_COMMERCIAL', $GLOBALS['STR_ADMIN_UTILISATEURS_COMMERCIAL']);
1055  $tpl->assign('STR_ADMIN_UTILISATEURS_COMMERCIAL_CHECKBOX', $GLOBALS['STR_ADMIN_UTILISATEURS_COMMERCIAL_CHECKBOX']);
1056  $tpl->assign('STR_ADMIN_UTILISATEURS_SEND_NEW_PASSWORD', $GLOBALS['STR_ADMIN_UTILISATEURS_SEND_NEW_PASSWORD']);
1057  $tpl->assign('STR_ADMIN_COMMANDER_CLIENT_INFORMATION', $GLOBALS['STR_ADMIN_COMMANDER_CLIENT_INFORMATION']);
1058  $tpl->assign('STR_STATUS', $GLOBALS['STR_STATUS']);
1059  $tpl->assign('STR_ADMIN_UTILISATEURS_CLIENT_TYPE', $GLOBALS['STR_ADMIN_UTILISATEURS_CLIENT_TYPE']);
1060  $tpl->assign('STR_ADMIN_UTILISATEURS_WHO', $GLOBALS['STR_ADMIN_UTILISATEURS_WHO']);
1061  $tpl->assign('STR_ADMIN_UTILISATEURS_BUY', $GLOBALS['STR_ADMIN_UTILISATEURS_BUY']);
1062  $tpl->assign('STR_ADMIN_UTILISATEURS_WANTS', $GLOBALS['STR_ADMIN_UTILISATEURS_WANTS']);
1063  $tpl->assign('STR_ADMIN_UTILISATEURS_THINKS', $GLOBALS['STR_ADMIN_UTILISATEURS_THINKS']);
1064  $tpl->assign('STR_ADMIN_UTILISATEURS_FOLLOWED_BY', $GLOBALS['STR_ADMIN_UTILISATEURS_FOLLOWED_BY']);
1065  $tpl->assign('STR_ADMIN_UTILISATEURS_JOB', $GLOBALS['STR_ADMIN_UTILISATEURS_JOB']);
1066  $tpl->assign('STR_ADMIN_UTILISATEURS_SEGMENTATION_TOTAL', $GLOBALS['STR_ADMIN_UTILISATEURS_SEGMENTATION_TOTAL']);
1067  $tpl->assign('STR_ADMIN_UTILISATEURS_ADD_CONTACT_DATE', $GLOBALS['STR_ADMIN_UTILISATEURS_ADD_CONTACT_DATE']);
1068  $tpl->assign('STR_ADMIN_UTILISATEURS_MANAGE_CALLS', $GLOBALS['STR_ADMIN_UTILISATEURS_MANAGE_CALLS']);
1069  $tpl->assign('STR_LOGO', $GLOBALS['STR_LOGO']);
1070  $tpl->assign('STR_NONE', $GLOBALS['STR_NONE']);
1071  $tpl->assign('STR_YES', $GLOBALS['STR_YES']);
1072  $tpl->assign('STR_NO', $GLOBALS['STR_NO']);
1073  $output = $tpl->fetch();
1074 
1075  if (!empty($frm['id_utilisateur'])) {
1076  $columns = 8;
1077  if (check_if_module_active('parrainage')) {
1078  $columns++;
1079  }
1080 
1081  $tpl2 = $GLOBALS['tplEngine']->createTemplate('admin_utilisateur_form_isutil.tpl');
1082 
1083  $tpl2->assign('action', get_current_url(false) . '?id_utilisateur=' . intval($_REQUEST['id_utilisateur']) . '&mode=modif');
1084  $tpl2->assign('pseudo', (!empty($frm['pseudo'])?$frm['pseudo']:vb($frm['email'])));
1085  $tpl2->assign('event_comment', (!empty($_POST['event_comment']) ? $_POST['event_comment'] : ''));
1086  $tpl2->assign('affiche_recherche_connexion_user', affiche_recherche_connexion_user(array('user_id' => $frm['id_utilisateur']), false));
1087  if (check_if_module_active('annonces')) {
1088  $tpl2->assign('affiche_liste_abus', affiche_liste_abus(array('annonceur'=>$frm['pseudo']), true, false));
1089  }
1090  $tpl2->assign('actions_moderations_user', affiche_actions_moderations_user($frm['id_utilisateur']));
1091  $tpl2->assign('columns', $columns);
1092  $tpl2->assign('mini_liste_commande_src', $GLOBALS['administrer_url'] . '/images/mini_liste_commande.gif');
1093  $tpl2->assign('is_parrainage_module_active', check_if_module_active('parrainage'));
1094  $tpl2->assign('edit_src', $GLOBALS['administrer_url'] . '/images/b_edit.png');
1095  $tpl2->assign('printer_src', $GLOBALS['wwwroot_in_admin'] . '/images/t_printer.gif');
1096  $tpl2->assign('drop_src', $GLOBALS['administrer_url'] . '/images/b_drop.png');
1097  $tpl2->assign('site_symbole', $GLOBALS['site_parameters']['symbole']);
1098 
1099  $query = query("SELECT c.*, GROUP_CONCAT(ca.nom_produit SEPARATOR '<br />') AS ordered_products
1100  FROM peel_commandes c
1101  LEFT JOIN peel_commandes_articles ca ON ca.commande_id=c.id AND " . get_filter_site_cond('commandes_articles', 'ca', true) . "
1102  WHERE c.id_utilisateur = '" . intval($frm['id_utilisateur']) . "' AND " . get_filter_site_cond('commandes', 'c', true) . "
1103  GROUP BY c.id
1104  ORDER BY c.id DESC");
1105  if (num_rows($query) > 0) {
1106  $tpl_results = array();
1107 
1108  $total_ttc = $total_ht = 0;
1109  $i = 0;
1110  if(empty($_SESSION['session_admin_multisite']) || $_SESSION['session_admin_multisite'] != $GLOBALS['site_id']) {
1111  $this_wwwroot = get_site_wwwroot($_SESSION['session_admin_multisite']);
1112  } else {
1113  $this_wwwroot = $GLOBALS['wwwroot'];
1114  }
1115  while ($order_infos = fetch_object($query)) {
1116  $total_ttc += $order_infos->montant;
1117  $total_ht += $order_infos->montant_ht;
1119  $montant_displayed = $order_infos->montant;
1120  } else {
1121  $montant_displayed = $order_infos->montant_ht;
1122  }
1123  $tpl_results[] = array('tr_rollover' => tr_rollover($i, true),
1124  'modif_href' => $GLOBALS['administrer_url'] . '/commander.php?mode=modif&commandeid=' . $order_infos->id,
1125  'print_href' => $this_wwwroot . '/factures/commande_pdf.php?mode=bdc&code_facture=' . $order_infos->code_facture,
1126  'drop_href' => $GLOBALS['administrer_url'] . '/commander.php?mode=suppr&id=' . $order_infos->id,
1127  'id' => $order_infos->order_id,
1128  'date' => get_formatted_date($order_infos->o_timestamp),
1129  'prix' => fprix($montant_displayed, true, $order_infos->devise, true, $order_infos->currency_rate),
1130  'recuperer_avoir_commande' => check_if_module_active('parrainage') ? fprix(recuperer_avoir_commande($order_infos->id), true, $order_infos->devise, true, $order_infos->currency_rate) : '',
1131  'payment_name' => get_payment_name($order_infos->paiement),
1132  'payment_status_name' => get_payment_status_name($order_infos->id_statut_paiement),
1133  'delivery_status_name' => get_delivery_status_name($order_infos->id_statut_livraison),
1134  'ordered_products' => String::str_shorten($order_infos->ordered_products, 200)
1135  );
1136  $i++;
1137  }
1138  $tpl2->assign('results', $tpl_results);
1139  $tpl2->assign('action2', $_SERVER['REQUEST_URI']);
1140  $tpl2->assign('form_token', get_form_token_input($_SERVER['PHP_SELF'] . $frm['id_utilisateur']));
1141  $tpl2->assign('user_id', intval(vn($frm['id_utilisateur'])));
1142  }
1143  $tpl2->assign('STR_ADMIN_UTILISATEURS_ADD_EVENT_REGARDING', $GLOBALS['STR_ADMIN_UTILISATEURS_ADD_EVENT_REGARDING']);
1144  $tpl2->assign('STR_ADMIN_UTILISATEURS_EVENT_DESCRIPTION', $GLOBALS['STR_ADMIN_UTILISATEURS_EVENT_DESCRIPTION']);
1145  $tpl2->assign('STR_ADMIN_UTILISATEURS_SAVE_EVENT', $GLOBALS['STR_ADMIN_UTILISATEURS_SAVE_EVENT']);
1146  $tpl2->assign('STR_ADMIN_UTILISATEURS_ACTIONS_ON_THIS_ACCOUNT', $GLOBALS['STR_ADMIN_UTILISATEURS_ACTIONS_ON_THIS_ACCOUNT']);
1147  $tpl2->assign('STR_ADMIN_UTILISATEURS_ORDERS_LIST', $GLOBALS['STR_ADMIN_UTILISATEURS_ORDERS_LIST']);
1148  $tpl2->assign('STR_ADMIN_ACTION', $GLOBALS['STR_ADMIN_ACTION']);
1149  $tpl2->assign('STR_ORDER_NAME', $GLOBALS['STR_ORDER_NAME']);
1150  $tpl2->assign('STR_DATE', $GLOBALS['STR_DATE']);
1151  $tpl2->assign('STR_TOTAL', $GLOBALS['STR_TOTAL']);
1152  $tpl2->assign('ttc_ht', (display_prices_with_taxes_in_admin() ? $GLOBALS['STR_TTC'] : $GLOBALS['STR_HT']));
1153  $tpl2->assign('STR_AVOIR', $GLOBALS['STR_AVOIR']);
1154  $tpl2->assign('STR_ADMIN_UTILISATEURS_PRODUCTS_ORDERED', $GLOBALS['STR_ADMIN_UTILISATEURS_PRODUCTS_ORDERED']);
1155  $tpl2->assign('STR_PAYMENT', $GLOBALS['STR_PAYMENT']);
1156  $tpl2->assign('STR_DELIVERY', $GLOBALS['STR_DELIVERY']);
1157  $tpl2->assign('STR_MODIFY', $GLOBALS['STR_MODIFY']);
1158  $tpl2->assign('STR_PRINT', $GLOBALS['STR_PRINT']);
1159  $tpl2->assign('STR_ADMIN_UTILISATEURS_PRINT_ALL_BILLS', $GLOBALS['STR_ADMIN_UTILISATEURS_PRINT_ALL_BILLS']);
1160  $tpl2->assign('STR_ADMIN_UTILISATEURS_NO_ORDER_FOUND', $GLOBALS['STR_ADMIN_UTILISATEURS_NO_ORDER_FOUND']);
1161  $output .= $tpl2->fetch();
1162  }
1163  return $output;
1164 }
1165 
1166 
1167 
1174 {
1175  $q = query('SELECT comments
1176  FROM peel_admins_comments
1177  WHERE id_user="' . intval($frm['id_utilisateur']) . '"');
1178  if ($existing_comments = fetch_assoc($q)) {
1179  if (nohtml_real_escape_string($existing_comments['comments']) != $frm['comments']) {
1180  // Commentaire pout cet utilisateur existe déjà mais a été modifié
1181  // => on met à jour l'admin (on ne se souvient que du dernier admin qui a édité le message)
1182  query('UPDATE peel_admins_comments
1183  SET comments="' . nohtml_real_escape_string($frm['comments']) . '", admin_id="' . intval($_SESSION['session_utilisateur']['id_utilisateur']) . '", timestamp="' . time() . '"
1184  WHERE id_user="' . intval($frm['id_utilisateur']) . '"');
1185  }
1186  } else {
1187  query('INSERT INTO peel_admins_comments
1188  SET comments="' . nohtml_real_escape_string($frm['comments']) . '", admin_id="' . intval($_SESSION['session_utilisateur']['id_utilisateur']) . '", timestamp="' . time() . '", id_user="' . intval($frm['id_utilisateur']) . '"');
1189  }
1190 }
1191 
1198 function supprime_logo ($id)
1199 {
1200  $output = '';
1201  $sql = "SELECT logo
1202  FROM peel_utilisateurs
1203  WHERE id_utilisateur='" . intval($id) . "' AND " . get_filter_site_cond('utilisateurs', null, true) . "";
1204  $res = query($sql);
1205  if ($logo_info = fetch_assoc($res)) {
1206  query("UPDATE peel_utilisateurs
1207  SET logo = ''
1208  WHERE id_utilisateur='" . intval($id) . "' AND " . get_filter_site_cond('utilisateurs', null, true) . "");
1209 
1210  if (!empty($logo_info) && delete_uploaded_file_and_thumbs($logo_info['logo'])) {
1211  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => $GLOBALS['STR_ADMIN_UTILISATEURS_LOGO_DELETED']))->fetch();
1212  }
1213  }
1214  return $output;
1215 }
1216 
get_payment_status_name($id)
get_payment_status_name()
Definition: order.php:1065
affiche_formulaire_modif_utilisateur($id_utilisateur)
Affiche un formulaire vide pour modifier un utilisateur.
$result
get_user_information($user_id=null, $get_full_infos=false)
Chargement des détails de l'utilisateur.
Definition: user.php:906
afficher_liste_utilisateurs($priv, $cle, $frm=null, $order= 'date_insert', $allow_message_no_result=false, $return_sql_request_without_display=false)
Affiche la liste des utilisateurs en fonction des critères de recherche Un certain nombre de champs d...
get_current_url($with_get=true, $get_short_url=false, $take_away_get_args_array=null)
get_current_url()
Definition: fonctions.php:1743
affiche_actions_moderations_user($user_id)
Affichages des actions des modérateurs et administrateurs sur cet utilisateur.
tab_think()
supprime_logo($id)
supprime_logo()
tab_want()
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
initialise_mot_passe($email)
Initialise le renouvellement de mot de passe.
Definition: user.php:645
insere_utilisateur(&$frm, $password_already_encoded=false, $send_user_confirmation=false, $warn_admin_if_template_active=true, $skip_existing_account_tests=false)
Ajout d'un utilisateur.
Definition: user.php:134
get_delivery_status_name($id)
get_delivery_status_name()
Definition: order.php:1088
formSelect($name, $tab, $preselected_value=null, $addOne=0, $get=0)
formSelect()
Definition: fonctions.php:4024
$cle
get_site_id_select_options($selected_site_id=null, $selected_site_name=null, $display_first_option=null, $select_current_site_id_by_default=false)
Créer les options pour le select qui liste les noms de sites configurés en back office.
affiche_form_contact_user($id_user, $return_mode=false)
Affiche dans la fiche utilisateur la partie du formulaire de contact.
Definition: fonctions.php:260
word_real_escape_string($value)
Applique real_escape_string dans le cas où on n'insère qu'un seul mot, de moins de 30 caractères...
Definition: database.php:424
efface_utilisateur($id_utilisateur)
efface_utilisateur()
Definition: user.php:632
$frm
if(!defined('IN_PEEL')) display_prices_with_taxes_in_admin()
display_prices_with_taxes_in_admin()
if(!defined('IN_PEEL')) get_flot_chart($width, $height, $url, $chart_type= 'bar', $base= '', $x_format= 'raw')
get_flot_chart()
Definition: flot.php:29
getClientNote(&$user_infos)
Renvoie la note d'un client en fonction de l'intérêt qu'on souhaite lui porter.
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
$id
affiche_phone_event($user_id)
Affichages des actions des modérateurs et administrateurs sur cet utilisateur.
if(!empty($_GET['id'])) if(isset($_POST['form_name'], $_POST['form_subject'], $_POST['form_text'], $_POST['form_lang'])&&empty($_GET['id'])) if(empty($_GET['id'])) $tpl
real_escape_string($value)
real_escape_string()
Definition: database.php:374
get_user_job_options($selected_fonction_name=null)
Definition: fonctions.php:4828
get_specific_field_infos($frm, $form_error_object=null, $form_usage="user", $step=null)
Permet de définir de nouveaux champs dans le formulaire d'inscription / modification d'utilisateur de...
Definition: fonctions.php:5150
necessite_priv($priv, $demo_allowed=true, $configuration_modification=false)
Cette fonction vérifie si l'utilisateur a les privilèges de $priv.
Definition: fonctions.php:1575
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
tab_who()
$total_ht
vb(&$var, $default=null)
Variable blanche if $var n'est pas défini, retourne $default, sinon retourne $var.
Definition: format.php:97
get_country_select_options($selected_country_name=null, $selected_country_id=null, $option_value= 'name', $display_inactive_country=false, $allowed_zone_id=null, $preselect_shop_country_if_none_selected=true, $selected_country_lang=null, $allowed_ids=null)
get_country_select_options()
Definition: fonctions.php:1005
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
if(!defined('IN_PEEL')) send_email($to, $mail_subject= '', $mail_content= '', $template_technical_code=null, $template_tags=null, $format=null, $sender=null, $html_add_structure=true, $html_correct_conformity=false, $html_convert_url_to_links=true, $reply_to=null, $attached_files_infos_array=null, $lang=null, $additional_infos_array=array(), $attachment_not_sent_by_email=false)
Envoi d'un email à un utilisateur.
Definition: emails.php:38
$priv
afficher_formulaire_ajout_utilisateur()
FONCTIONS.
delete_uploaded_file_and_thumbs($filename)
delete_uploaded_file_and_thumbs()
Definition: fonctions.php:3417
fetch_object($query_result)
fetch_object()
Definition: database.php:302
tracert_history_admin($member_id, $action, $data, $remarque=null, $raison=null)
Inscrit les différentes actions administrateur Liste des $actions possibles : 'SEARCH_USER', 'ADD_FILTER', 'EDIT_FILTER', 'DEL_FILTER', 'EDIT_AD', 'SUP_AD', 'EDIT_VOTE', 'SUP_DETAILS', 'EDIT_PROFIL', 'SUP_FORUM', 'ACTIVATE_COMPTE', 'NOTES_RECUES', 'NOTES_DONNEES', 'NOTE_PROFIL', 'AUTRE', 'SEND_EMAIL', 'CREATE_ORDER', 'EDIT_ORDER', 'SUP_ORDER', 'PHONE_EMITTED', 'EVENT', 'PHONE_RECEIVED'.
fetch_assoc($query_result)
fetch_assoc()
Definition: database.php:283
create_or_update_contact_planified($frm)
Fonction d'insertion et de mise à jour des dates de contact.
Definition: fonctions.php:347
call_module_hook($hook, $params, $mode= 'boolean')
Appelle la fonction correspondant au $hook pour chaque module installé La fonction doit s'appeler : [...
get_formatted_date($datetime_or_timestamp=null, $mode= 'short', $hour_minute=false)
Afficher une date formatée, en évitant les problèmes liés aux noms de mois sur les serveurs qui ne so...
Definition: format.php:440
create_or_update_comments($frm)
affiche_recherche_connexion_user($frm=null, $display_search_form=true)
Affiche en liste les connexions.
get_all_sites_name_array($admin_force_multisite_if_allowed=false, $allow_null_site_id=false, $skip_rights_check=false)
Retourne un tableau des noms des sites configurés en fonction des droits de l'administrateur.
Definition: fonctions.php:4792
delete_contact_planified($form_edit_contact_planified_id)
Fonction de suppression d'une planification de contact client.
Definition: fonctions.php:385
$GLOBALS['DOC_TITLE']
send_mail_for_account_creation($email, $mot_passe, $priv)
Envoi d'email lors de la création d'un utilisateur.
Definition: user.php:867
if(!defined('IN_PEEL')) open_flash_chart_object_str($width, $height, $url, $use_swfobject=true, $base= '')
open_flash_chart_object_str()
get_form_token_input($name= 'general', $use_existing_token=true, $return_as_input_form=true)
get_form_token_input()
Definition: fonctions.php:94
get_site_wwwroot($site_id, $lang=null)
Renvoie l'URL d'un site donné
Definition: fonctions.php:4873
vn(&$var, $default=0)
Variable nulle if $var n'est pas défini, retourne $default, sinon retourne $var.
Definition: format.php:110
get_site_id_sql_set_value($site_ids)
Retourne la valeur SQL d'un champ INT ou SET suivant que ce soit un entier ou un tableau.
Definition: fonctions.php:4747
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
$id_utilisateur
tab_followed()
maj_utilisateur(&$frm, $update_current_session=false)
Mise à jour d'un enregistrement d'utilisateur.
Definition: user.php:467
afficher_formulaire_utilisateur(&$frm)
Affiche un formulaire de gestion d'utilisateur.
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
MDP($chrs=8)
Fonction utilisée pour générer un mot aléatoire (sert par exemple pour le renommage des fichiers imag...
Definition: fonctions.php:49
tab_buy()
fprix($price, $display_currency=false, $currency_code_or_default=null, $convertion_needed_into_currency=true, $currency_rate=null, $display_iso_currency_code=false, $format=true, $force_format_separator=null, $add_rdfa_properties=false, $round_even_if_no_format=false)
fprix formatte le prix donné en le convertissant si nécessaire au préalable et en ajoutant éventuelle...
Definition: fonctions.php:242
get_payment_name($id_or_code)
get_payment_name()
Definition: order.php:1046
$form_error_object
static substr($string, $start, $length=null)
Returns the portion of string specified by the start and length parameters.
Definition: String.php:112
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...
static str_shorten($string, $length_limit, $middle_separator= '', $ending_if_no_middle_separator= '...', $ideal_length_with_clean_cut_if_possible=null)
Raccourcit une chaine de caractère en insérant au milieu ou à la fin un séparateur.
Definition: String.php:233
$output
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:29:46 - Peel ecommerce is a product of Agence web Advisto SAS. All rights reserved.