PEEL Shopping
Open source ecommerce : PEEL Shopping
produit_details.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: produit_details.php 46935 2015-09-18 08:49:48Z gboussin $
14 include("../configuration.inc.php");
15 
16 define('IN_CATALOGUE_PRODUIT', true);
17 $GLOBALS['page_columns_count'] = $GLOBALS['site_parameters']['product_details_page_columns_count'];
18 $GLOBALS['DOC_TITLE'] = $GLOBALS['STR_PRODUCT'];
19 
20 $output = '';
21 $product_infos = array();
23 
24 if (empty($_GET['id'])) {
25  // Si aucun produit n'est spécifié, retour à la page d'accueil
26  redirect_and_die(get_url('/'), true);
27 }
28 
29 if(!empty($GLOBALS['site_parameters']['allow_multiple_product_url_with_category'])) {
30  // Autorisation de plusieurs urls pour ce produit dans le cas où il est associé à plusieurs catégories. Cette configuration est désactivée par défaut
31  // Si le produit est bien associé à $_GET['catid']
32  $query = query("SELECT 1
33  FROM peel_produits_categories pc
34  WHERE pc.produit_id ='" . intval($_GET['id']) . "' AND pc.categorie_id=" . intval(vn($_GET['catid'])));
35 
36  if (num_rows($query)>0) {
37  // le produit appartient à la catégorie demandée dans l'url => on spécifie l'id et le nom de la catégorie pour la classe Product
38  $product_infos['categorie_id'] = intval(vn($_GET['catid']));
39  $product_infos['categorie'] = get_category_name($product_infos['categorie_id']) ;
40  }
41 }
42 
43 $product_object = new Product($_GET['id'], $product_infos, false, null, true, !is_user_tva_intracom_for_no_vat() && !check_if_module_active('micro_entreprise'));
44 $url = $product_object->get_product_url();
45 if (empty($product_object->id) || ((!a_priv("admin_product") && !a_priv("reve")) && $product_object->on_reseller == 1)) {
46  // Si aucun produit n'est trouvé, retour à la page d'accueil
47  redirect_and_die(get_url('/'), true);
48 }
49 if (check_if_module_active('url_rewriting')) {
50  if (String::strpos($_SERVER['REQUEST_URI'], 'id=') !== false) {
51  if (empty($url)) {
52  $url = get_url('/');
53  }
54  redirect_and_die($url, true);
55  } elseif (!empty($url) && $url != get_current_url(false)) {
56  // L'URL sans le get n'est pas comme elle est censée être => on redirige avec une 301
57  $theoretical_current_url = $url;
58  redirect_and_die($theoretical_current_url, true);
59  } elseif (!empty($product_infos['categorie_id']) && empty($url)) {
60  // si l'url n'a pas été calculé par la class Product
61  // Si un produit n'a pas de catégorie associé (ce qui n'est pas un cas normal) la class Product ne peut pas trouver le produit. Il faut pouvoir consulter un produit même si il n'est pas associé à une catégorie, ce qui peut être utile dans des cas spécifiques.
62  // Si l'url n'a pas été calculée par la class Product pour une raison quelconque
63  redirect_and_die(get_url('/'));
64  }
65 } else {
66  $_GET['catid'] = $product_object->categorie_id;
67 }
68 
69 $output .= call_module_hook('product_details_show', array('id' => intval($_GET['id'])), 'output');
70 
71 // Gestion des erreurs de téléchargement des fichiers (cas d'attribut d'upload)
72 if (!empty($_SESSION["session_display_popup"]["upload_error_text"])) {
73  $form_error_object->add('upload_option_error', $_SESSION["session_display_popup"]["upload_error_text"]);
74  // On vient d'afficher le message d'alerte de problème de téléchargement d'image, donc on le désactive pour l'avenir
75  unset($_SESSION["session_display_popup"]["upload_error_text"]);
76 }
77 
78 $GLOBALS['page_columns_count'] = $GLOBALS['site_parameters']['product_details_page_columns_count'];
79 
80 if ($form_error_object->count() > 0) {
81  foreach ($form_error_object->error as $key => $error) {
82  if ($key == "confirm_ok") {
83  $output .= $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => $error))->fetch();
84  } else {
85  $output .= $GLOBALS['tplEngine']->createTemplate('global_error.tpl', array('message' => $error))->fetch();
86  }
87  }
88 }
89 $output .= get_produit_details_html($product_object, intval(vb($_GET['cId'])));
90 
91 include($GLOBALS['repertoire_modele'] . "/haut.php");
92 echo $output;
93 include($GLOBALS['repertoire_modele'] . "/bas.php");
94 
$product_infos
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
$GLOBALS['page_columns_count']
is_user_tva_intracom_for_no_vat($user_id=null)
is_user_tva_intracom_for_no_vat()
Definition: user.php:959
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
if(!select_db($_SESSION['session_install_choixbase'], $GLOBALS['database_object'], true)) $error
Definition: verifdroits.php:33
get_category_name($id)
Renvoie le nom d'une catégorie de produits.
Definition: fonctions.php:912
$form_error_object
if(empty($_GET['id'])) if(!empty($GLOBALS['site_parameters']['allow_multiple_product_url_with_category'])) $product_object
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
num_rows($query_result)
num_rows()
Definition: database.php:321
call_module_hook($hook, $params, $mode= 'boolean')
Appelle la fonction correspondant au $hook pour chaque module installé La fonction doit s'appeler : [...
vn(&$var, $default=0)
Variable nulle if $var n'est pas défini, retourne $default, sinon retourne $var.
Definition: format.php:110
a_priv($requested_priv, $demo_allowed=false, $site_configuration_modification=false, $user_id=null)
Renvoie true si l'utilisateur de la session a le privilège $requested_priv ou un droit supérieur Des ...
Definition: user.php:63
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:28:55 - Peel ecommerce is a product of Agence web Advisto SAS. All rights reserved.