PEEL Shopping
Open source ecommerce : PEEL Shopping
types.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: types.php 46935 2015-09-18 08:49:48Z gboussin $
14 define('IN_PEEL_ADMIN', true);
15 include("../configuration.inc.php");
17 necessite_priv("admin_manage");
18 
19 $GLOBALS['DOC_TITLE'] = $GLOBALS["STR_ADMIN_TYPES_TITLE"];
20 
21 $output = '';
22 $frm = $_POST;
24 
25 switch (vb($_REQUEST['mode'])) {
26  case "ajout" :
28  break;
29 
30  case "modif" :
32  break;
33 
34  case "suppr" :
35  $output .= supprime_type($_GET['id']);
37  break;
38 
39  case "insere" :
40  if (!verify_token($_SERVER['PHP_SELF'] . $frm['mode'] . $frm['id'])) {
41  $form_error_object->add('token', $GLOBALS['STR_INVALID_TOKEN']);
42  }
43  if (!$form_error_object->count()) {
44  $output .= insere_type($_POST);
45  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_TYPES_MSG_CREATED_OK'], vb($_POST['nom_' . $_SESSION["session_langue"]]))))->fetch();
47  } else {
48  if ($form_error_object->has_error('token')) {
49  $output .= $form_error_object->text('token');
50  }
52  }
53  break;
54 
55  case "maj" :
56  if (!verify_token($_SERVER['PHP_SELF'] . $frm['mode'] . $frm['id'])) {
57  $form_error_object->add('token', $GLOBALS['STR_INVALID_TOKEN']);
58  }
59  if (!$form_error_object->count()) {
60  $output .= maj_type($_POST['id'], $_POST);
61  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_TYPES_MSG_UPDATED_OK'], vn($_POST['id']))))->fetch();
63  } else {
64  if ($form_error_object->has_error('token')) {
65  echo $form_error_object->text('token');
66  }
67  $output .= affiche_formulaire_modif_type($_GET['id'], $frm);
68  }
69  break;
70 
71  default :
73  break;
74 }
75 include($GLOBALS['repertoire_modele'] . "/admin_haut.php");
76 echo $output;
77 include($GLOBALS['repertoire_modele'] . "/admin_bas.php");
78 
90 {
91  /* Valeurs par défaut */
92  if(empty($frm)) {
93  $frm = array();
94  $frm['position'] = 0;
95  $frm['etat'] = 0;
96  $frm['without_delivery_address'] = 0;
97  $frm['is_socolissimo'] = 0;
98  $frm['is_icirelais'] = 0;
99  $frm['tnt_threshold'] = 0;
100  $frm['is_tnt'] = 0;
101  $frm['fianet_type_transporteur'] = 0;
102  foreach ($GLOBALS['admin_lang_codes'] as $lng) {
103  $frm['nom_' . $lng] = "";
104  }
105  }
106  $frm['nouveau_mode'] = "insere";
107  $frm['id'] = "";
108  $frm['titre_bouton'] = $GLOBALS['STR_ADMIN_TYPES_CREATE'];
109 
111 }
112 
121 {
122  if(empty($frm)){
123  // Pas de données venant de validation de formulaire, donc on charge le contenu de la base de données
124  /* Charge les informations du type */
125  $qid = query("SELECT *
126  FROM peel_types
127  WHERE id = " . intval($id) . " AND " . get_filter_site_cond('types', null, true) . "");
128  $frm = fetch_assoc($qid);
129  }
130  if (!empty($frm)) {
131  $frm['id'] = $id;
132  $frm["nouveau_mode"] = "maj";
133  $frm["titre_bouton"] = $GLOBALS['STR_ADMIN_FORM_SAVE_CHANGES'];
135  } else {
136  redirect_and_die(get_current_url(false).'?mode=ajout');
137  }
138 }
139 
147 {
148  $tpl = $GLOBALS['tplEngine']->createTemplate('admin_formulaire_type.tpl');
149  $tpl->assign('action', get_current_url(false) . '?start=0');
150  $tpl->assign('form_token', get_form_token_input($_SERVER['PHP_SELF'] . $frm['nouveau_mode'] . intval($frm['id'])));
151  $tpl->assign('mode', vb($frm['nouveau_mode']));
152  $tpl->assign('id', intval(vb($frm['id'])));
153  $tpl_langs = array();
154  foreach ($GLOBALS['admin_lang_codes'] as $lng) {
155  $tpl_langs[] = array('lng' => $lng,
156  'nom' => $frm['nom_' . $lng]
157  );
158  }
159  $tpl->assign('langs', $tpl_langs);
160  $tpl->assign('position', $frm['position']);
161  $tpl->assign('etat', vb($frm['etat']));
162  $tpl->assign('without_delivery_address', $frm['without_delivery_address']);
163  $tpl->assign('is_socolissimo_module_active', check_if_module_active('socolissimo'));
164  if (check_if_module_active('socolissimo')) {
165  $tpl->assign('is_socolissimo', $frm['is_socolissimo']);
166  }
167  $tpl->assign('is_icirelais_module_active', check_if_module_active('icirelais'));
168  if (check_if_module_active('icirelais')) {
169  $tpl->assign('is_icirelais', $frm['is_icirelais']);
170  }
171  $tpl->assign('is_fianet_module_active', check_if_module_active('fianet'));
172  $tpl->assign('is_tnt_module_active', check_if_module_active('tnt'));
173  $tpl->assign('tnt_threshold', vb($frm['tnt_threshold']));
174  $tpl->assign('is_tnt', vb($frm['is_tnt']));
175  $tpl->assign('fianet_type_transporteur', vb($frm['fianet_type_transporteur']));
176  $tpl->assign('titre_bouton', $frm['titre_bouton']);
177  $tpl->assign('site_id_select_options', get_site_id_select_options(vb($frm['site_id'])));
178  $tpl->assign('STR_ADMIN_WEBSITE', $GLOBALS['STR_ADMIN_WEBSITE']);
179  $tpl->assign('STR_ADMIN_TYPES_LINK_TO_SOCOLISSIMO', $GLOBALS['STR_ADMIN_TYPES_LINK_TO_SOCOLISSIMO']);
180  $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']);
181  $tpl->assign('STR_ADMIN_TYPES_FORM_TITLE', $GLOBALS['STR_ADMIN_TYPES_FORM_TITLE']);
182  $tpl->assign('STR_ADMIN_LANGUAGES_SECTION_HEADER', $GLOBALS['STR_ADMIN_LANGUAGES_SECTION_HEADER']);
183  $tpl->assign('STR_ADMIN_NAME', $GLOBALS['STR_ADMIN_NAME']);
184  $tpl->assign('STR_ADMIN_VARIOUS_INFORMATION_HEADER', $GLOBALS['STR_ADMIN_VARIOUS_INFORMATION_HEADER']);
185  $tpl->assign('STR_ADMIN_POSITION', $GLOBALS['STR_ADMIN_POSITION']);
186  $tpl->assign('STR_STATUS', $GLOBALS['STR_STATUS']);
187  $tpl->assign('STR_ADMIN_ONLINE', $GLOBALS['STR_ADMIN_ONLINE']);
188  $tpl->assign('STR_ADMIN_OFFLINE', $GLOBALS['STR_ADMIN_OFFLINE']);
189  $tpl->assign('STR_SHIP_ADDRESS', $GLOBALS['STR_SHIP_ADDRESS']);
190  $tpl->assign('STR_YES', $GLOBALS['STR_YES']);
191  $tpl->assign('STR_ADMIN_TYPES_NO_DELIVERY', $GLOBALS['STR_ADMIN_TYPES_NO_DELIVERY']);
192  $tpl->assign('STR_NO', $GLOBALS['STR_NO']);
193  $tpl->assign('STR_ADMIN_TYPES_LINK_TO_ICIRELAIS', $GLOBALS['STR_ADMIN_TYPES_LINK_TO_ICIRELAIS']);
194  $tpl->assign('STR_ADMIN_TYPES_TNT', $GLOBALS['STR_ADMIN_TYPES_TNT']);
195  $tpl->assign('STR_ADMIN_TYPES_LINK_TO_TNT', $GLOBALS['STR_ADMIN_TYPES_LINK_TO_TNT']);
196  $tpl->assign('STR_ADMIN_TYPES_TNT_DESTINATION', $GLOBALS['STR_ADMIN_TYPES_TNT_DESTINATION']);
197  $tpl->assign('STR_ADMIN_TYPES_TNT_HOME', $GLOBALS['STR_ADMIN_TYPES_TNT_HOME']);
198  $tpl->assign('STR_ADMIN_TYPES_TNT_DELIVERY_POINT', $GLOBALS['STR_ADMIN_TYPES_TNT_DELIVERY_POINT']);
199  $tpl->assign('STR_ADMIN_TYPES_KWIXO', $GLOBALS['STR_ADMIN_TYPES_KWIXO']);
200  $tpl->assign('STR_ADMIN_TYPES_LINK_TO_KWIXO', $GLOBALS['STR_ADMIN_TYPES_LINK_TO_KWIXO']);
201  $tpl->assign('STR_ADMIN_TYPES_LINK_TO_KWIXO_EXPLAIN', $GLOBALS['STR_ADMIN_TYPES_LINK_TO_KWIXO_EXPLAIN']);
202  return $tpl->fetch();
203 }
204 
212 {
213  /* Efface le type */
214  query("DELETE FROM peel_types
215  WHERE id=" . intval($id) . " AND " . get_filter_site_cond('types', null, true));
216  return $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_TYPES_MSG_DELETED_OK'], get_delivery_type_name($id))))->fetch();
217 }
218 
225 function insere_type($frm)
226 {
227  $sql = "INSERT INTO peel_types (position, site_id
228  , without_delivery_address, etat";
229  foreach ($GLOBALS['admin_lang_codes'] as $lng) {
230  $sql .= ", nom_" . $lng;
231  }
232  if (check_if_module_active('socolissimo')) {
233  $sql .= ", is_socolissimo";
234  }
235  if (check_if_module_active('icirelais')) {
236  $sql .= ", is_icirelais";
237  }
238  if (check_if_module_active('fianet')) {
239  $sql .= ", fianet_type_transporteur";
240  }
241  if(check_if_module_active('tnt')){
242  $sql .= ", is_tnt";
243  $sql .= ", tnt_threshold";
244  }
245  $sql .= "
246  ) VALUES ('" . intval($frm['position']) . "', '" . nohtml_real_escape_string(get_site_id_sql_set_value($frm['site_id'])) . "'
247  , '" . intval($frm['without_delivery_address']) . "'
248  , '" . intval($frm['etat']) . "'";
249  foreach ($GLOBALS['admin_lang_codes'] as $lng) {
250  $sql .= ", '" . nohtml_real_escape_string($frm['nom_' . $lng]) . "'";
251  }
252  if (check_if_module_active('socolissimo')) {
253  $sql .= ", '" . intval($frm['is_socolissimo']) . "'";
254  }
255  if (check_if_module_active('icirelais')) {
256  $sql .= ", '" . intval($frm['is_icirelais']) . "'";
257  }
258  if (check_if_module_active('fianet')) {
259  $sql .= ", '" . intval($frm['fianet_type_transporteur']) . "'";
260  }
261  if(check_if_module_active('tnt')){
262  $sql .= ", '" . intval($frm['is_tnt']) . "'";
263  $sql .= ", '" . intval($frm['tnt_threshold']) . "'";
264  }
265  $sql .= ")";
266 
267  query($sql);
268 }
269 
277 function maj_type($id, $frm)
278 {
279  $sql = "UPDATE peel_types SET position = '" . nohtml_real_escape_string($frm['position']) . "'
280  , site_id = '" . nohtml_real_escape_string(get_site_id_sql_set_value($frm['site_id'])) . "'
281  , without_delivery_address='" . intval($frm['without_delivery_address']) . "'
282  , etat='" . intval(vn($frm['etat'])) . "'";
283  foreach ($GLOBALS['admin_lang_codes'] as $lng) {
284  $sql .= ", nom_" . $lng . " = '" . nohtml_real_escape_string($frm['nom_' . $lng]) . "'";
285  }
286  if (check_if_module_active('socolissimo')) {
287  $sql .= ", is_socolissimo = '" . intval($frm['is_socolissimo']) . "'";
288  }
289  if (check_if_module_active('icirelais')) {
290  $sql .= ", is_icirelais = '" . intval(vn($frm['is_icirelais'])) . "'";
291  }
292  if (check_if_module_active('fianet')) {
293  $sql .= ", fianet_type_transporteur = '" . intval($frm['fianet_type_transporteur']) . "'";
294  }
295  if(check_if_module_active('tnt')){
296  $sql .= ", is_tnt = '".intval($frm['is_tnt'])."'";
297  $sql .= ", tnt_threshold = '".intval($frm['tnt_threshold'])."'";
298  }
299  $sql .= " WHERE id = '" . intval($id) . "'";
300  query($sql);
301 }
302 
309 {
310  $tpl = $GLOBALS['tplEngine']->createTemplate('admin_liste_type.tpl');
311  $tpl->assign('add_src', $GLOBALS['administrer_url'] . '/images/add.png');
312  $tpl->assign('drop_src', $GLOBALS['administrer_url'] . '/images/b_drop.png');
313  $tpl->assign('edit_src', $GLOBALS['administrer_url'] . '/images/b_edit.png');
314  $tpl->assign('add_href', get_current_url(false) . '?mode=ajout');
315 
316  $result = query("SELECT id, nom_" . $_SESSION['session_langue'] . ", position, etat, site_id
317  FROM peel_types t
318  WHERE " . get_filter_site_cond('types', 't', true) . "
319  ORDER BY t.position");
320  if (!(num_rows($result) == 0)) {
321  $tpl_results = array();
322  $i = 0;
323  while ($ligne = fetch_assoc($result)) {
324  $tpl_results[] = array('tr_rollover' => tr_rollover($i, true, null, null, 'sortable_'.$ligne['id']),
325  'nom' => (!empty($ligne['nom_' . $_SESSION['session_langue']])?$ligne['nom_' . $_SESSION['session_langue']]:'['.$ligne['id'].']'),
326  'drop_href' => get_current_url(false) . '?mode=suppr&id=' . $ligne['id'],
327  'modif_href' => get_current_url(false) . '?mode=modif&id=' . $ligne['id'],
328  'etat_onclick' => 'change_status("types", "' . $ligne['id'] . '", this, "'.$GLOBALS['administrer_url'] . '")',
329  'etat_src' => $GLOBALS['administrer_url'] . '/images/' . (empty($ligne['etat']) ? 'puce-blanche.gif' : 'puce-verte.gif'),
330  'position' => $ligne['position'],
331  'site_name' => get_site_name($ligne['site_id'])
332  );
333  $i++;
334  }
335  $tpl->assign('results', $tpl_results);
336  }
337  $GLOBALS['sortable_rpc'] = 'rpc_positions.php?mode=types';
338  $tpl->assign('STR_ADMIN_WEBSITE', $GLOBALS['STR_ADMIN_WEBSITE']);
339  $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']);
340  $tpl->assign('STR_ADMIN_TYPES_TITLE', $GLOBALS['STR_ADMIN_TYPES_TITLE']);
341  $tpl->assign('STR_ADMIN_TYPES_EXPLAIN', $GLOBALS['STR_ADMIN_TYPES_EXPLAIN']);
342  $tpl->assign('STR_ADMIN_TYPES_CREATE', $GLOBALS['STR_ADMIN_TYPES_CREATE']);
343  $tpl->assign('STR_ADMIN_ACTION', $GLOBALS['STR_ADMIN_ACTION']);
344  $tpl->assign('STR_SHIPPING_TYPE', $GLOBALS['STR_SHIPPING_TYPE']);
345  $tpl->assign('STR_ADMIN_POSITION', $GLOBALS['STR_ADMIN_POSITION']);
346  $tpl->assign('STR_STATUS', $GLOBALS['STR_STATUS']);
347  $tpl->assign('STR_ADMIN_DELETE_WARNING', $GLOBALS['STR_ADMIN_DELETE_WARNING']);
348  $tpl->assign('STR_DELETE', $GLOBALS['STR_DELETE']);
349  $tpl->assign('STR_ADMIN_TYPES_UPDATE', $GLOBALS['STR_ADMIN_TYPES_UPDATE']);
350  $tpl->assign('STR_ADMIN_TYPES_NOTHING_FOUND', $GLOBALS['STR_ADMIN_TYPES_NOTHING_FOUND']);
351  return $tpl->fetch();
352 }
353 
get_site_name($site_ids, $skip_rights_check=false)
Retourne le nom d'un ou de plusieurs sites à partir de l'id.
Definition: fonctions.php:4763
$result
get_delivery_type_name($id)
get_delivery_type_name()
Definition: order.php:1109
get_current_url($with_get=true, $get_short_url=false, $take_away_get_args_array=null)
get_current_url()
Definition: fonctions.php:1743
affiche_formulaire_ajout_type(&$frm)
FONCTIONS.
Definition: types.php:89
redirect_and_die($url, $permanent_redirection=false, $avoid_loop=false)
Redirige vers l'URL demandée et arrête le programme.
Definition: fonctions.php:1551
$tpl_langs
affiche_liste_type()
affiche_liste_type()
Definition: types.php:308
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.
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
affiche_formulaire_type(&$frm)
affiche_formulaire_type()
Definition: types.php:146
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
$GLOBALS['DOC_TITLE']
Definition: types.php:19
insere_type($frm)
Ajoute le type dans la table type.
Definition: types.php:225
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
vb(&$var, $default=null)
Variable blanche if $var n'est pas défini, retourne $default, sinon retourne $var.
Definition: format.php:97
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
supprime_type($id)
Supprime le type spécifié par $id.
Definition: types.php:211
$frm
Definition: types.php:22
fetch_assoc($query_result)
fetch_assoc()
Definition: database.php:283
affiche_formulaire_modif_type($id, &$frm)
Affiche le formulaire de modification pour le type sélectionné
Definition: types.php:120
get_form_token_input($name= 'general', $use_existing_token=true, $return_as_input_form=true)
get_form_token_input()
Definition: fonctions.php:94
maj_type($id, $frm)
Met à jour le type $id avec de nouvelles valeurs.
Definition: types.php:277
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
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...
$output
Definition: types.php:21
$form_error_object
Definition: types.php:23
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:40 - Peel ecommerce is a product of Agence web Advisto SAS. All rights reserved.