PEEL Shopping
Open source ecommerce : PEEL Shopping
urllist.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: urllist.php 46935 2015-09-18 08:49:48Z gboussin $
14 define('IN_PEEL_ADMIN', true);
15 include("../configuration.inc.php");
17 necessite_priv("admin_webmastering");
18 
19 if (!empty($_GET['encoding'])) {
20  $file_encoding = $_GET['encoding'];
21 } else {
22  $file_encoding = 'utf-8';
23 }
24 $GLOBALS['DOC_TITLE'] = $GLOBALS['STR_ADMIN_URLLIST_TITLE'];
26 
27 include($GLOBALS['repertoire_modele'] . "/admin_haut.php");
28 $tpl = $GLOBALS['tplEngine']->createTemplate('admin_urllist_table.tpl');
29 $tpl->assign('STR_ADMIN_URLLIST_CREATE_TITLE', $GLOBALS['STR_ADMIN_URLLIST_CREATE_TITLE']);
30 echo $tpl->fetch();
31 
32 
33 switch (vb($_REQUEST['mode'])) {
34  case "lire" :
35  if (!verify_token($_SERVER['PHP_SELF'])) {
36  $form_error_object->add('token', $GLOBALS['STR_INVALID_TOKEN']);
37  }
38  if (!$form_error_object->count()) {
39  $langs_array_by_subdomain = array();
40  foreach($GLOBALS['langs_array_by_wwwroot'] as $this_wwwroot=>$this_lang_array) {
41  // Création du tableau langue par sous domaine
42  $langs_array_by_subdomain[get_site_domain(false, $this_wwwroot, false)][] = $this_lang_array[0];
43  }
44  // Format du tableau
45  // $langs_array_by_subdomain = array(domain1 => array('lng1', 'lng2', 'lng3'), domain2 => array('lng4'), domain3 => array('lng5','lng6'));
46  foreach ($langs_array_by_subdomain as $this_domain=>$this_lang_array) {
47  // Création des fichiers sitemap.
48  create_yahoo_sitemap($this_domain, $this_lang_array, $file_encoding);
49  }
50 
51  $tpl = $GLOBALS['tplEngine']->createTemplate('admin_urllist_ul.tpl');
52  $tpl->assign('urllist_href', $GLOBALS['wwwroot'] . '/urllist.txt');
53  $tpl->assign('STR_ADMIN_URLLIST_READ_SITEMAP', $GLOBALS['STR_ADMIN_URLLIST_READ_SITEMAP']);
54  echo $tpl->fetch();
55  } elseif ($form_error_object->has_error('token')) {
56  echo $form_error_object->text('token');
57  }
58  form2xml();
59  break;
60 
61  default :
62  form2xml();
63  break;
64 }
65 
66 include($GLOBALS['repertoire_modele'] . "/admin_bas.php");
67 
68 /* FONCTIONS */
69 
77 function create_yahoo_sitemap($this_wwwroot, $this_wwwroot_lang_array, $file_encoding)
78 {
79  $sitemap = '';
80  $current_lang = $_SESSION['session_langue'];
81  foreach($this_wwwroot_lang_array as $this_lang) {
82  // Modification de l'environnement de langue
83  $_SESSION['session_langue'] = $this_lang;
84  set_lang_configuration_and_texts($this_lang, vb($GLOBALS['load_default_lang_files_before_main_lang_array_by_lang'][$this_lang]), true, false, !empty($GLOBALS['load_admin_lang']), true, defined('SKIP_SET_LANG'));
85 
86  $sitemap .= $GLOBALS['wwwroot'] . "\r\n";
87  $sitemap .= get_url('membre') . "\r\n";
88  $sitemap .= get_product_category_url() . "\r\n";
89  // génération des liens pour les categories
90  $sql = "SELECT c.id, c.nom_" .$_SESSION['session_langue']. " AS nom
91  FROM peel_categories c
92  WHERE c.etat=1 AND " . get_filter_site_cond('categories', 'c');
93  $query = query($sql);
94  while ($result = fetch_assoc($query)) {
95  $sitemap .= get_product_category_url($result['id'], $result['nom']) . "\r\n";
96  }
97  $sitemap .= get_content_category_url() . "\r\n";
98  $sitemap .= get_account_register_url() . "\r\n";
99  $sitemap .= get_account_url() . "\r\n";
100 
101  $sql = "SELECT p.id AS produit_id, c.id AS categorie_id, p.nom_".(!empty($GLOBALS['site_parameters']['product_name_forced_lang'])?$GLOBALS['site_parameters']['product_name_forced_lang']:$this_lang)." as produit, c.nom_" . $this_lang . " AS categorie
102  FROM peel_produits p
103  INNER JOIN peel_produits_categories pc ON p.id = pc.produit_id
104  INNER JOIN peel_categories c ON c.id = pc.categorie_id AND " . get_filter_site_cond('categories', 'c') . "
105  WHERE p.etat=1 AND " . get_filter_site_cond('produits', 'p') . "";
106  $query = query($sql);
107  while ($result = fetch_assoc($query)) {
108  $trans_tbl = get_html_translation_table(HTML_ENTITIES);
109  $trans_tbl = array_flip($trans_tbl);
110 
111  $texte1 = strtr($result['produit'], $trans_tbl);
112  $texte1 = str_replace("&", "", $texte1);
113 
114  $trans_tbl = get_html_translation_table(HTML_ENTITIES);
115  $trans_tbl = array_flip($trans_tbl);
116 
117  $texte2 = strtr($result['categorie'], $trans_tbl);
118  $texte2 = str_replace("&", "", $texte2);
119 
120  $sitemap .= get_product_url($result['produit_id'], $result['produit'], $result['categorie_id'], $result['categorie']) . "\r\n";
121  }
122  }
123  // rétablissement de la langue du back office pour l'affichage du message de confirmation
124  $_SESSION['session_langue'] = $current_lang;
125  set_lang_configuration_and_texts($_SESSION['session_langue'], vb($GLOBALS['load_default_lang_files_before_main_lang_array_by_lang'][$_SESSION['session_langue']]), true, false, !empty($GLOBALS['load_admin_lang']), true, defined('SKIP_SET_LANG'));
126 
127  // Création du fichier. Ce fichier sera lu par le fichier php /get_sitemap.xml. Une règle de réécriture dans le htaccess rend cet appel transparent pour le client.
128  $txt_filename = $GLOBALS['dirroot'] . "/urllist_" . substr(md5($this_wwwroot), 0, 4) . ".txt";
129 
130  $create_txt = String::fopen_utf8($txt_filename, "wb");
131  fwrite($create_txt, String::convert_encoding($sitemap, $file_encoding, GENERAL_ENCODING));
132  fclose($create_txt);
133 }
134 
140 function form2xml()
141 {
142  $tpl = $GLOBALS['tplEngine']->createTemplate('admin_urllist_form2xml.tpl');
143  $tpl->assign('action', get_current_url(false));
144  $tpl->assign('form_token', get_form_token_input($_SERVER['PHP_SELF']));
145  $tpl->assign('STR_ADMIN_URLLIST_GENERATE_SITEMAP', $GLOBALS['STR_ADMIN_URLLIST_GENERATE_SITEMAP']);
146  echo $tpl->fetch();
147 }
148 
set_lang_configuration_and_texts($lang, $load_default_lang_files_before_main_lang_array=null, $general_setup=true, $load_modules_files=true, $load_general_admin_files=true, $exclude_empty_string=true, $skip_load_files=false)
On charge les variables de langue, en complétant éventuellement avec la langue de référence...
Definition: fonctions.php:1941
$result
static convert_encoding($string, $new_encoding, $original_encoding=null)
Converts the character encoding of string $string to $new_encoding from optionally $original_encoding...
Definition: String.php:375
get_current_url($with_get=true, $get_short_url=false, $take_away_get_args_array=null)
get_current_url()
Definition: fonctions.php:1743
static fopen_utf8($filename, $mode, $force_filename_in_iso_8859=false, $try_filename_in_iso_8859_if_file_not_found=true)
Ouvre un fichier.
Definition: String.php:793
$tpl
Definition: urllist.php:28
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
$form_error_object
Definition: urllist.php:25
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
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
fetch_assoc($query_result)
fetch_assoc()
Definition: database.php:283
$GLOBALS['DOC_TITLE']
Definition: urllist.php:24
create_yahoo_sitemap($this_wwwroot, $this_wwwroot_lang_array, $file_encoding)
create_yahoo_sitemap()
Definition: urllist.php:77
get_form_token_input($name= 'general', $use_existing_token=true, $return_as_input_form=true)
get_form_token_input()
Definition: fonctions.php:94
form2xml()
form2xml()
Definition: urllist.php:140
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
get_site_domain($return_only_domains=false, $domain=null, $strip_subdomain=true)
Récupère le nom de domaine du site sans http:// et sans sous-domaine.
Definition: fonctions.php:3632
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:42 - Peel ecommerce is a product of Agence web Advisto SAS. All rights reserved.