PEEL Shopping
Open source ecommerce : PEEL Shopping
langues.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: langues.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_LANGUES_TITLE'];
20 
21 $frm = $_POST;
23 $output = '';
24 
25 switch (vb($_REQUEST['mode'])) {
26  case "ajout" :
28  break;
29 
30  case "modif" :
32  break;
33 
34  case "suppr" :
35  $output .= supprime_langue($_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_langue($_POST);
46  } else {
47  if ($form_error_object->has_error('token')) {
48  echo $form_error_object->text('token');
49  }
51  }
52  break;
53 
54  case "maj" :
55  if (!verify_token($_SERVER['PHP_SELF'] . $frm['mode'] . $frm['id'])) {
56  $form_error_object->add('token', $GLOBALS['STR_INVALID_TOKEN']);
57  }
58  if (!$form_error_object->count()) {
59  $output .= maj_langue($_POST['id'], $_POST);
60  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_LANGUES_MSG_UPDATE_OK'], vn($_POST['id']))))->fetch();
62  } else {
63  if ($form_error_object->has_error('token')) {
64  echo $form_error_object->text('token');
65  }
66  $output .= affiche_formulaire_modif_langue($_POST['id'], $frm);
67  }
68  break;
69 
70  case "repair" :
71  foreach($GLOBALS['admin_lang_codes_with_modify_rights'] as $this_lang) {
72  $output .= insere_langue(array('lang' => $this_lang, 'site_id' => $GLOBALS['site_id']), true, vb($_GET['full']));
73  }
75  break;
76 
77  default :
79  break;
80 }
81 
82 include($GLOBALS['repertoire_modele'] . "/admin_haut.php");
83 echo $output;
84 include($GLOBALS['repertoire_modele'] . "/admin_bas.php");
85 
97 {
98  /* Valeurs par défaut */
99  if(empty($frm)) {
100  $frm = array();
101  foreach ($GLOBALS['admin_lang_codes'] as $lng) {
102  $frm['nom_' . $lng] = "";
103  }
104  $frm['flag'] = "";
105  $frm['etat'] = "";
106  $frm['url_rewriting'] = "";
107  $frm['position'] = "";
108  }
109  $frm['nouveau_mode'] = "insere";
110  $frm['id'] = "";
111  $frm['site_id'] = "";
112  $frm['lang'] = "";
113  $frm['titre_bouton'] = $GLOBALS['STR_ADMIN_LANGUES_ADD_LANGUAGE'];
114 
116 }
117 
126 {
127  if(empty($frm)){
128  // Pas de données venant de validation de formulaire, donc on charge le contenu de la base de données
129  // Charge les informations du produit
130  $qid = query("SELECT *
131  FROM peel_langues
132  WHERE id = " . intval($id) . " AND " . get_filter_site_cond('langues', null, true) . "");
133  if ($frm = fetch_assoc($qid)) {
134  } else {
135  return $GLOBALS['tplEngine']->createTemplate('global_error.tpl', array('message' => $GLOBALS['STR_ADMIN_LANGUES_ERR_LANGUAGE_NOT_FOUND']))->fetch();
136  }
137  }
138  $frm['id'] = $id;
139  $frm["nouveau_mode"] = "maj";
140  $frm["titre_bouton"] = $GLOBALS['STR_ADMIN_FORM_SAVE_CHANGES'];
142 }
143 
151 {
152  $tpl = $GLOBALS['tplEngine']->createTemplate('admin_formulaire_langue.tpl');
153  $tpl->assign('action', get_current_url(false) . '?start=0');
154  $tpl->assign('form_token', get_form_token_input($_SERVER['PHP_SELF'] . $frm['nouveau_mode'] . intval($frm['id'])));
155  $tpl->assign('mode', $frm["nouveau_mode"]);
156  $tpl->assign('id', intval($frm['id']));
157  $tpl_langs = array();
158  foreach ($GLOBALS['admin_lang_codes'] as $lng) {
159  $tpl_langs[] = array('lng' => $lng,
160  'nom' => $frm['nom_' . $lng]
161  );
162  }
163  $tpl->assign('langs', $tpl_langs);
164  $tpl->assign('is_modif', vb($_REQUEST['mode']) == 'modif');
165  $tpl->assign('lang', $frm["lang"]);
166  $tpl->assign('flag', $frm["flag"]);
167  $tpl->assign('etat', $frm["etat"]);
168  $tpl->assign('position', $frm["position"]);
169  $tpl->assign('url_rewriting', $frm["url_rewriting"]);
170  $tpl->assign('titre_bouton', $frm["titre_bouton"]);
171  $tpl->assign('site_id_select_options', get_site_id_select_options(vb($frm['site_id'])));
172  $tpl->assign('site_id_select_multiple', !empty($GLOBALS['site_parameters']['multisite_using_array_for_site_id']));
173  $tpl->assign('STR_ADMINISTRATION', $GLOBALS['STR_ADMINISTRATION']);
174  $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']);
175  $tpl->assign('STR_ADMIN_WEBSITE', $GLOBALS['STR_ADMIN_WEBSITE']);
176  $tpl->assign('STR_ADMIN_LANGUES_ADD_OR_MODIFY_LANGUAGE', $GLOBALS['STR_ADMIN_LANGUES_ADD_OR_MODIFY_LANGUAGE']);
177  $tpl->assign('STR_ADMIN_LANGUAGES_SECTION_HEADER', $GLOBALS['STR_ADMIN_LANGUAGES_SECTION_HEADER']);
178  $tpl->assign('STR_ADMIN_NAME', $GLOBALS['STR_ADMIN_NAME']);
179  $tpl->assign('STR_ADMIN_VARIOUS_INFORMATION_HEADER', $GLOBALS['STR_ADMIN_VARIOUS_INFORMATION_HEADER']);
180  $tpl->assign('STR_ADMIN_LANGUES_FORMAT', $GLOBALS['STR_ADMIN_LANGUES_FORMAT']);
181  $tpl->assign('STR_ADMIN_LANGUES_CODE_ISO_EXPLAIN', $GLOBALS['STR_ADMIN_LANGUES_CODE_ISO_EXPLAIN']);
182  $tpl->assign('STR_ADMIN_LANGUES_FLAG_PATH', $GLOBALS['STR_ADMIN_LANGUES_FLAG_PATH']);
183  $tpl->assign('STR_STATUS', $GLOBALS['STR_STATUS']);
184  $tpl->assign('STR_ADMIN_POSITION', $GLOBALS['STR_ADMIN_POSITION']);
185  $tpl->assign('STR_ADMIN_LANGUES_URL_REWRITING', $GLOBALS['STR_ADMIN_LANGUES_URL_REWRITING']);
186  $tpl->assign('STR_YES', $GLOBALS['STR_YES']);
187  $tpl->assign('STR_NO', $GLOBALS['STR_NO']);
188  return $tpl->fetch();
189 }
190 
198 {
199  $qid = query("SELECT nom_" . $_SESSION['session_langue'] . " AS nom
200  FROM peel_langues
201  WHERE id = " . intval($id) . " AND " . get_filter_site_cond('langues', null, true) . "");
202  $l = fetch_assoc($qid);
203 
204  /* Efface la langue */
205  query("DELETE FROM peel_langues
206  WHERE id = " . intval($id) . " AND " . get_filter_site_cond('langues', null, true) . "");
207  return $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => sprintf($GLOBALS['STR_ADMIN_LANGUES_MSG_LANGUAGE_DELETED'], '"' . $l['nom'] . '"')))->fetch();
208 }
209 
217 function maj_langue($id, $frm)
218 {
219  if (empty($frm['lang']) || String::strlen($frm['lang']) != 2) {
220  return $GLOBALS['tplEngine']->createTemplate('global_error.tpl', array('message' => $GLOBALS['STR_ADMIN_LANGUES_FORMAT_EXPLAIN']))->fetch();
221  }
222  // Met à jour la table de langues
223 
224  $sql = "UPDATE peel_langues
225  SET lang = '" . nohtml_real_escape_string(String::strtolower($frm['lang'])) . "'";
226  foreach ($GLOBALS['admin_lang_codes'] as $lng) {
227  $sql .= "
228  , nom_" . $lng . "= '" . nohtml_real_escape_string($frm['nom_' . $lng]) ."'";
229  }
230  $sql .= "
231  , flag = '" . nohtml_real_escape_string($frm['flag']) . "'
232  , etat = '" . intval(vb($frm['etat'])) . "'
233  , url_rewriting = '" . nohtml_real_escape_string($frm['url_rewriting']) . "'
234  , position = '" . intval($frm['position']) . "'
235  , site_id = '" . nohtml_real_escape_string(get_site_id_sql_set_value($frm['site_id'])) . "'
236  WHERE id = '" . intval($id) . "' AND " . get_filter_site_cond('langues', null, true) . "";
237  query($sql);
238 }
239 
246 {
247  $output = '';
248  if (check_if_module_active('annonces')) {
249  $output .= $GLOBALS['tplEngine']->createTemplate('global_error.tpl', array('message' => $GLOBALS['STR_ADMIN_LANGUES_WARNING']))->fetch();
250  }
251 
252  $tpl = $GLOBALS['tplEngine']->createTemplate('admin_liste_langue.tpl');
253  $tpl->assign('add_src', $GLOBALS['administrer_url'] . '/images/add.png');
254  $tpl->assign('add_href', get_current_url(false) . '?mode=ajout');
255  $tpl->assign('edit_src', $GLOBALS['administrer_url'] . '/images/b_edit.png');
256 
257  $result = query("SELECT *
258  FROM peel_langues
259  WHERE " . get_filter_site_cond('langues', null, true) . "
260  ORDER BY position ASC");
261  if (!(num_rows($result) == 0)) {
262  $tpl_results = array();
263  $i = 0;
264  while ($ligne = fetch_assoc($result)) {
265  if(!empty($ligne['flag'])) {
266  if(String::strpos($ligne['flag'], '/') === false) {
267  $this_flag = '/lib/flag/' . $ligne['flag'];
268  } else {
269  $this_flag = $ligne['flag'];
270  }
271  if(String::substr($this_flag, 0, 1) == '/' && String::substr($this_flag, 0, 2) != '//') {
272  $this_flag = (defined('IN_PEEL_ADMIN') ? $GLOBALS['wwwroot_in_admin'] : $GLOBALS['wwwroot']) . $this_flag;
273  }
274  } else {
275  $this_flag = null;
276  }
277  $tpl_results[] = array('tr_rollover' => tr_rollover($i, true, null, null, 'sortable_'.$ligne['id']),
278  'edit_href' => get_current_url(false) . '?mode=modif&id=' . $ligne['id'],
279  'nom' => (!empty($ligne['nom_' . $_SESSION['session_langue']])?$ligne['nom_' . $_SESSION['session_langue']]:'['.$ligne['id'].']'),
280  'lang' => $ligne['lang'],
281  'flag_src' => $this_flag,
282  'url_rewriting' => $ligne['url_rewriting'],
283  'position' => $ligne['position'],
284  'site_name' => get_site_name($ligne['site_id']),
285  'etat_onclick' => 'change_status("langues", "' . $ligne['id'] . '", this, "'.$GLOBALS['administrer_url'] . '")',
286  'etat_src' => $GLOBALS['administrer_url'] . '/images/' . (empty($ligne['etat']) ? 'puce-blanche.gif' : ($ligne['etat']<0 ? 'puce-orange.gif' : 'puce-verte.gif')),
287  );
288  $i++;
289  }
290  $tpl->assign('results', $tpl_results);
291  }
292  $GLOBALS['sortable_rpc'] = 'rpc_positions.php?mode=langues';
293  $tpl->assign('STR_ADMIN_WEBSITE', $GLOBALS['STR_ADMIN_WEBSITE']);
294  $tpl->assign('STR_ADMIN_LANGUES_TITLE', $GLOBALS['STR_ADMIN_LANGUES_TITLE']);
295  $tpl->assign('STR_ADMIN_LANGUES_ADD_LANGUAGE', $GLOBALS['STR_ADMIN_LANGUES_ADD_LANGUAGE']);
296  $tpl->assign('STR_WARNING', $GLOBALS['STR_WARNING']);
297  $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']);
298  $tpl->assign('STR_ADMIN_LANGUES_EXPLAIN1', $GLOBALS['STR_ADMIN_LANGUES_EXPLAIN1']);
299  $tpl->assign('STR_ADMIN_LANGUES_EXPLAIN2', $GLOBALS['STR_ADMIN_LANGUES_EXPLAIN2']);
300  $tpl->assign('STR_ADMIN_LANGUES_EXPLAIN3', $GLOBALS['STR_ADMIN_LANGUES_EXPLAIN3']);
301  $tpl->assign('STR_ADMIN_LANGUES_NOTHING_FOUND', $GLOBALS['STR_ADMIN_LANGUES_NOTHING_FOUND']);
302  $tpl->assign('STR_ADMIN_ACTION', $GLOBALS['STR_ADMIN_ACTION']);
303  $tpl->assign('STR_ADMIN_LANGUAGE', $GLOBALS['STR_ADMIN_LANGUAGE']);
304  $tpl->assign('STR_ADMIN_LANGUES_EXTENSION', $GLOBALS['STR_ADMIN_LANGUES_EXTENSION']);
305  $tpl->assign('STR_ADMIN_FLAG', $GLOBALS['STR_ADMIN_FLAG']);
306  $tpl->assign('STR_ADMIN_POSITION', $GLOBALS['STR_ADMIN_POSITION']);
307  $tpl->assign('STR_ADMIN_LANGUES_UPDATE', $GLOBALS['STR_ADMIN_LANGUES_UPDATE']);
308  $tpl->assign('STR_ADMIN_LANGUES_NOTHING_FOUND', $GLOBALS['STR_ADMIN_LANGUES_NOTHING_FOUND']);
309  $tpl->assign('STR_ADMIN_URL_REWRITING', $GLOBALS['STR_ADMIN_URL_REWRITING']);
310  $tpl->assign('STR_STATUS', $GLOBALS['STR_STATUS']);
311  $tpl->assign('STR_ADMIN_LANGUES_REPAIR_LINK', $GLOBALS['STR_ADMIN_LANGUES_REPAIR_LINK']);
312  $output .= $tpl->fetch();
313  return $output;
314 }
315 
supprime_langue($id)
Supprime la langue spécifié par $id.
Definition: langues.php:197
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
static strpos($haystack, $needle, $offset=0)
Returns the numeric position of the first occurrence of needle in the haystack string.
Definition: String.php:54
get_current_url($with_get=true, $get_short_url=false, $take_away_get_args_array=null)
get_current_url()
Definition: fonctions.php:1743
affiche_liste_langue()
affiche_liste_langue()
Definition: langues.php:245
$tpl_langs
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.
$output
Definition: langues.php:23
static strtolower($string)
Returns string with all alphabetic characters converted to lowercase.
Definition: String.php:135
static strlen($string)
Returns the length of the given string.
Definition: String.php:36
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
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
$frm
Definition: langues.php:21
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
maj_langue($id, $frm)
Met à jour la langue $id avec de nouvelles valeurs.
Definition: langues.php:217
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
affiche_formulaire_modif_langue($id, &$frm)
Affiche le formulaire de modification pour la langue sélectionnée.
Definition: langues.php:125
affiche_formulaire_ajout_langue(&$frm)
FONCTIONS.
Definition: langues.php:96
fetch_assoc($query_result)
fetch_assoc()
Definition: database.php:283
$GLOBALS['DOC_TITLE']
Definition: langues.php:19
insere_langue($frm, $try_alter_table_even_if_modules_not_active=true, $force_update_database_lang_content=false)
insere_langue()
affiche_formulaire_langue(&$frm)
affiche_formulaire_langue()
Definition: langues.php:150
$form_error_object
Definition: langues.php:22
get_form_token_input($name= 'general', $use_existing_token=true, $return_as_input_form=true)
get_form_token_input()
Definition: fonctions.php:94
global $l
Definition: afr.php:33
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
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...
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:12 - Peel ecommerce is a product of Agence web Advisto SAS. All rights reserved.