-
Compteur de contenus
2 913 -
Inscrit(e) le
-
Dernière visite
Tout ce qui a été posté par Simon développeur PEEL
-
Simon développeur PEEL a ajouté un message dans un sujet sous installation archlinux
Bonjour,
la formalisation des objets est compatible avec PHP4, mais du coup ça ne passe pas en strict dans PHP 5.4. Je vous propose de remplacer la ligne de code error_reporting(E_ALL); dans configuration.inc.php ligne 18 par
if (version_compare(PHP_VERSION, '5.4', '>=')) {
error_reporting(E_ALL & ~E_STRICT);
} else {
error_reporting(E_ALL);
}
[/CODE]
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Si commande égale ? 0 euro
Bonjour,
Vous devez refaire le test '.( $_SESSION['session_caddie']->total > 0 ?'':'disabled="disabled"'). ' quelques lignes plus bas, sur le second input. Le bloc suivant
} else {
$output .= '<input ' . (!empty($GLOBALS['site_parameters']['email_moneybookers']) ? 'onclick="document.getElementById(\'payment_method\').style.display=\'none\';"' : '') . ' type="radio" name="payment_technical_code" value="' . String::str_form_value($tab_paiement['technical_code']) . '" ' . frmvalide(vn($selected_payment_technical_code) == $tab_paiement['technical_code'] || num_rows($res_paiement) == 1) . ' />' . String::html_entity_decode_if_needed($tab_paiement['nom_' . $_SESSION['session_langue']]);
if ($tab_paiement['tarif'] != 0) {
$output .= BEFORE_TWO_POINTS . ': + ' . fprix($tab_paiement['tarif'], true);
}
$output .= '<br />';
}
[/CODE] devient [CODE]
} else {
$output .= '<input '.( $_SESSION['session_caddie']->total > 0 ?'':'disabled="disabled"'). ' ' . (!empty($GLOBALS['site_parameters']['email_moneybookers']) ? 'onclick="document.getElementById(\'payment_method\').style.display=\'none\';"' : '') . ' type="radio" name="payment_technical_code" value="' . String::str_form_value($tab_paiement['technical_code']) . '" ' . frmvalide(vn($selected_payment_technical_code) == $tab_paiement['technical_code'] || num_rows($res_paiement) == 1) . ' />' . String::html_entity_decode_if_needed($tab_paiement['nom_' . $_SESSION['session_langue']]);
if ($tab_paiement['tarif'] != 0) {
$output .= BEFORE_TWO_POINTS . ': + ' . fprix($tab_paiement['tarif'], true);
}
$output .= '<br />';
}
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Images promotion
Bonjour,
la fonction affiche_prix gère l'affichage du prix partout en front office. Le HTML des modules "A la une" ou "meilleures vente" est généré par la fonction get_product_in_container_html du fichier lib\fonctions\display_product.php.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Probléme pour lancer PEEL SHOPPING 6.4
Bonjour,
Pour configurer le serveur local, je vous invite à consulter le forum wamp sur le site http://forum.wampserver.com/list.php?1
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Images promotion
Bonjour,
Dans la fonction affiche_prix du fichier lib\fonctions\display_product.php, il faut repérer les balises HTML <del>. Vous pouvez placer vos images entre $product_object->get_original_price($with_taxes, $reseller_mode, true) et ces balises.
Pour faire de même dans le caddie, il faudra répéter l’opération dans la fonction get_caddie_products_summary_table de lib\fonctions\display_caddie.php
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Affichage des produits dans les marques
Bonjour,
Le paramètre correspondant au nombre de produits par colonnes est le 8ème paramètre de la fonction affiche_produit ($nb_colonnes.) Dans achat/marques.php, vous pouvez modifier le paramétrage de la fonction affiche_produits :
=> affiche_produits($id_marque, null, 'catalogue', $GLOBALS['site_parameters']['nb_produit_page'], 'general', true, 0, 3);
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet alignements produits
Bonjour,
la fonction str_form_value de la classe String permet de formater une chaine de caractère présent dans un attribut HTML :
function str_form_value($value, $flags = ENT_COMPAT)
{
if (function_exists('html_entity_decode') && (version_compare(PHP_VERSION, '5.0.0', '>=') || GENERAL_ENCODING == 'iso-8859-1')) {
// Le 4è argument de htmlspecialchars appelé $double_encode n'est pas disponible avant PHP 5.2.3
// Il faut donc appeler htmlentities_decode d'abord pour éviter le double encodage des entités HTML
return htmlspecialchars(String::html_entity_decode($value, ENT_QUOTES, GENERAL_ENCODING), $flags, GENERAL_ENCODING);
} else {
// Version simplifiée si PHP < 4.3
// ou si PHP >=4.3 et <5 car sinon pas de support de UTF-8
return str_replace('"', '"', $value);
}
}
[/CODE]
D'autres fonctions de formatage existe dans la class pour formater une ancre, en fonction des besoins. De plus, le nom de la fonction [i]str_form_value[/i] oblige à être utilisé dans ce contexte.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Moteur de recherche
Bonjour,
J'ai fais une erreur, ce n'est pas pc.etat = "1" mais c.etat = "1". L'alias pc correspond à la table peel_produits_categories qui n'a pas de champ etat.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Si commande égale ? 0 euro
Bonjour,
Actuellement, le montant du panier est à 0, est le code
<input '.( $_SESSION['session_caddie']['total'] == 0 ?'disabled="disabled"':'').' type="radio" onclick="document.getElementById(\'payment_method\').style.display=\'block\';" name="payment_technical_code" value="' . String::str_form_value($tab_paiement['technical_code']) . '" ' . frmvalide($selected) . ' />' . String::html_entity_decode_if_needed($tab_paiement['nom_' . $_SESSION['session_langue']]); ne permet pas de griser les boutons radio. Pour comprendre pourquoi le test $_SESSION['session_caddie']['total'] == 0 ne fonctionne pas comme on le voudrait, l'idée est de savoir quelle est la valeur de $_SESSION['session_caddie']['total'] lorsque que le caddie est vide. Mais entre temps, je pense avoir trouvé la solution. Il faut modifier le test '.( $_SESSION['session_caddie']['total'] == 0 ?'disabled="disabled"':'').' pour '.( $_SESSION['session_caddie']->total > 0 ?'':'disabled="disabled"').'
Pouvez-vous essayer cette version svp ?
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet maintenace
Bonjour,
Le code à modifier ce trouve dans le fichier configuration.inc.php :
if (!defined('IN_PEEL_ADMIN') && !defined('IN_ACCES_ACCOUNT') && !defined('IN_GET_PASSWORD') && $GLOBALS['site_parameters']['site_suspended'] === 'TRUE' && !a_priv('admin*', false)) {
echo '<div align="center" style="font-size:14px;font-weight:bold;"><br /><br />' . UPDATE_WEBSITE . '<br /><br />' . THANKS_UNDERSTANDING . '</div>';
die();
}
[/CODE]
Le message présent dans la fonction getHTMLHead est un message destiné aux administrateurs qui peuvent consulter les pages de la boutique, même suspendue.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Probléme pour lancer PEEL SHOPPING 6.4
Bonjour,
Sur quel hébergeur ou serveur local avez-vous installé votre boutique?
Dans un premier temps, vous pouvez vérifier que le module rewrite d'apache est chargé (sur WAMP, Cliquer sur le menu Apache > modules apache > rewrite_module)
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Indiquer le suvi des pages ? Goggle
Bonjour,
La fonction show_preview_next du fichier modules\precedent_suivant\fonctions.php doit être modifié pour quelle retourne uniquement le lien, sans HTML. :
/**
* show_preview_next()
* @param integer $product_id
* @param integer $product_position
* @param mixed $prev_next
* @return
*/
function show_preview_next($product_id, $product_position, $prev_next, $no_html = false)
{
$output = '';
$cond='';
if (!empty($_GET['catid'])) {
$current_catid = intval($_GET['catid']);
} else {
//On recupere la categorie du produit
$query_current_catid = query("SELECT categorie_id
FROM peel_produits_categories
WHERE produit_id = '" . intval(vn($product_id)) . "'");
if($result_current_catid = fetch_assoc($query_current_catid)) {
$current_catid = $result_current_catid['categorie_id'];
}
}
if($GLOBALS['site_parameters']['in_category']==0) {
// liste des catégories de la catégories du produit en cours vers la catégorie mère
$ascending_category_array = get_category_tree_and_itself($current_catid, 'parents');
// Suppression de la categorie racine afin d'éviter d'avoir l'ensemble des produits remontés.
foreach($ascending_category_array as $key => $category) {
if($category == 0) {
unset($ascending_category_array[$key]);
}
}
// Recherche des catégories fille de chaque catégorie trouvée précédemment + suppression des doublons + supression de la categorie 0
$descending_category_array = array_unique(get_category_tree_and_itself($ascending_category_array, 'sons'));
$cond = 'ppc.categorie_id IN(' . implode(',', $descending_category_array) . ')';
} else {
$cond = 'ppc.categorie_id="'. intval($current_catid) . '"';
}
if($prev_next=='prev') {
// ATTENTION : dans params_affiche_produits on affiche par défaut avec pp.position ASC, pp.id DESC
// Donc les tris sur id et position sont inversés
// Par ailleurs, il faut faire attention à la compatibilité si plusieurs produits ont la même position
$sql ="SELECT ppc.produit_id AS id, ppc.categorie_id as idC, pp.nom_". $_SESSION['session_langue'] . " AS nom, pp.position
FROM peel_produits pp
LEFT JOIN peel_produits_categories ppc ON ppc.produit_id = pp.id
LEFT JOIN peel_categories pc ON ppc.categorie_id = pc.id
WHERE (pp.position<" . intval(vn($product_position)) . " OR (pp.position=" . intval(vn($product_position)) . " AND pp.id>" . intval($product_id) . "))
AND pc.etat = 1
AND pp.etat = 1
AND pp.on_gift = 0
AND ".$cond."
ORDER BY pp.position DESC, pp.id ASC
LIMIT 1";
$q_get_previous = query($sql);
if($r_get_previous = fetch_assoc($q_get_previous)) {
$previous = $r_get_previous['id'];
$prev_catid = $r_get_previous['idC'];
$prev_name= $r_get_previous['nom'];
}
if(!empty($previous)){
if($no_html) {
$output.= get_product_url($previous, $prev_name, $prev_catid, get_name_category($prev_catid));
} else {
$output.= '<td class="td_mod_next_prev">
<a class="product_prev" href="' . get_product_url($previous, $prev_name, $prev_catid, get_name_category($prev_catid)) . '" title="'. PREV .'">'. PREV .'</a></td>';
}
}
} elseif($prev_next=='next') {
// ATTENTION : dans params_affiche_produits on affiche par défaut avec pp.position ASC, pp.id DESC
// Donc les tris sur id et position sont inversés
// Par ailleurs, il faut faire attention à la compatibilité si plusieurs produits ont la même position
$q_get_next = query("SELECT ppc.produit_id AS id, ppc.categorie_id as idC, pp.nom_". $_SESSION['session_langue'] . " AS nom, pp.position
FROM peel_produits pp
LEFT JOIN peel_produits_categories ppc ON ppc.produit_id = pp.id
LEFT JOIN peel_categories pc ON ppc.categorie_id = pc.id
WHERE (pp.position>" . intval(vn($product_position)) . " OR (pp.position=" . intval(vn($product_position)) . " AND pp.id<" . intval($product_id) . "))
AND pc.etat = 1
AND pp.etat = 1
AND pp.on_gift = 0
AND ".$cond."
ORDER BY pp.position ASC, pp.id DESC
LIMIT 1");
if($result_get_next = fetch_assoc($q_get_next)) {
$next = $result_get_next['id'];
$next_catid = $result_get_next['idC'];
$nom_suivant= $result_get_next['nom'];
}
if(!empty($next)){
if($no_html) {
$output.= get_product_url($next, $nom_suivant, $next_catid, get_name_category($next_catid));
} else {
$output.= '<td class="td_mod_next_prev">
<a class="product_next" href="' . get_product_url($next, $nom_suivant, $next_catid, get_name_category($next_catid)) . '" title="'.NEXT .'">'.NEXT .'</a></td>';
}
}
}
return $output;
}
[/CODE] Ensuite, dans getHTMLHead, il faut ajouter le bloc suivant : [CODE]
if (is_module_precedent_suivant_active()) {
if (defined('IN_CATALOGUE_PRODUIT') && !empty($_GET['id'])) {
$product_object = new Product($_GET['id']);
$output .= '
<link rel="canonical" href="'.get_current_url().'” />';
$output .= '
<link rel="prev" href="'.show_preview_next($product_object->id, $product_object->position, 'prev').'" />';
$output .= '
<link rel="next" href="'.show_preview_next($product_object->id, $product_object->position, 'next').'" />';
}
}
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Migration vers Peel 6.4
Bonjour,
J'ai ajouté cette requête dans le script de mise à jour sur la page
Merci.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Fckeditor
Bonjour,
Vous pouvez appuyer sur MAJ+Entrée pour faire un simple retour à la ligne, et non pas un nouveau paragraphe.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet alignements produits
Bonjour,
Le site est en maintenance, je ne peux pas voir les produits.
.
=> Vous modifiez le bon bloc de code, il faut effectivement régler la taille de ces cellules.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Moteur de recherche
Bonjour,
au niveau de la ligne
WHERE p.etat = "1" AND p.on_gift = "0" AND p.nom_' . $_SESSION['session_langue'] . ' != "" AND ' . $cond . '
[/CODE]
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet affichage url en langue espagnol
Bonjour,
Les caractères spéciaux sont remplacé par la fonction rewriting_urlencode dans le fichier lib\fonctions\format.php. Vous pouvez supprimer l'appel à cette fonction de remplacement de caractère dans la fonction get_product_url et get_product_category_url du fichier \modules\url_rewriting\rewrite.php pour laisser les caractères accentués dans les liens.
De manière général, il n'est pas conseillé de mettre des espaces et caractères spéciaux dans les urls.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet module download
Bonjour,
Contrairement au module présent dans l'offre Premium, le module telechargement permet de gérer la distribution de fichiers de manière générale, et non pas par produit. Si vous êtes intéressé par ce module, je vous invite à prendre contact avec un conseiller commercial au 01 75 43 67 97.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet fil d'ariane
Bonjour,
Il faut effectivement ajouter l'appel à $product_object->name sur la ligne return $nom . $additional_text. Les dernière lignes de la fonction doivent donc être :
if ($parent > 0) {
return affiche_arbre_categorie($parent, ' > ' . $nom . ' ' . $additional_text) . (!empty($product_object->name) ? ' > ' . $product_object->name : '');
} else {
return $nom . $additional_text . (!empty($product_object->name) ? ' > ' . $product_object->name : '');
}
[/CODE]
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet alignements produits
Bonjour,
Le bloc de code correspondant à l'affichage du prix des produits en ligne dans les catégories est celui-ci :
if ($params['mode'] == 'line') {
// Affichage des produits en ligne
$output .= '
<table>';
if ($product_object->is_price_flash(is_reseller_module_active() && is_reseller())) {
$output .= '
<tr>
<td colspan="6" class="col_flash">
' . TEXT_FLASH1 . ' ' . get_formatted_duration(strtotime($product_object->flash_end) - time(), false, 'day') . ' ' . TEXT_FLASH2 . '
</td>
</tr>
';
}
$output .= '
<tr>
<td class="col_image" style="width:10%;">
<a title="' . String::str_form_value($product_object->name) . '" href="' . $urlprod . '">' . $this_image . '</a>
</td>
<td style="width:45%;">
<a href="' . $urlprod . '" title="' . String::str_form_value($product_object->name) . '">' . $product_object->name . '</a>
</td>
<td style="text-align:center; width:12%;">
';
if (empty($product_object->on_estimate)) {
$output .= ((vn($GLOBALS['site_parameters']['category_order_on_catalog']) != 1)?$product_object->affiche_prix(display_prices_with_taxes_active(), is_reseller_module_active() && is_reseller(), true, false, null, false, true, 'full_expand_in_container', false):'');
} else {
$output .= display_on_estimate_information(true);
}
$output .= '
</td>
<td style="text-align:center; width:10%;">';
if ($product_object->on_stock == 1 && is_stock_advanced_module_active()) {
$output .= $product_object->get_product_stock_state();
}
$output .= '
</td>
<td class="col_zoom" style="width:10%;">
' . $zoom_link . ' <br />
<p class="col_detail"><a title="' . String::str_form_value($product_object->name) . '" href="' . $urlprod . '">' . $details_text . '</a></p>
</td>';
if (vn($GLOBALS['site_parameters']['category_order_on_catalog']) == '1' || $type == 'save_cart') {
$output .= '
<td colspan="2" class="fc_add_to_cart">
<!-- Ajout au panier -->';
if (!empty($product_object->on_check) && is_module_gift_checks_active()) {
$output .= affiche_check($product_id, 'cheque', null, true);
} else {
if ($type == 'save_cart') {
$output .= affiche_critere_stock($product_object->id, 'save_cart_details_', null, true, true, vn($prod['save_cart_id']), vn($prod['saved_couleur_id']), vn($prod['saved_taille_id']), vn($prod['saved_id_attribut']), vn($prod['saved_quantity']));
} elseif ($type == 'search') {
$output .= affiche_critere_stock($product_object->id, 'catalogue_details_', null, true);
} else {
$output .= affiche_critere_stock($product_object->id, 'catalogue_details_', null, true, true);
}
}
$output .= '
</td>';
}
$output .= '
</tr>';
if (a_priv('admin_products', false)) {
$output .= '
<tr>
<td colspan="6"><a href="' . $GLOBALS['administrer_url'] . '/produits.php?mode=modif&id=' . $product_object->id . '" class="label">' . MODIFY_PRODUCT . '</a></td>
</tr>';
}
$output .= '
</table><hr />';
}
[/CODE]
Pouvez-vous fournir une url sur laquelle vous avez ce problème ? Je pourrais être plus précis.
Merci
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Paiement moneybookers
Bonjour,
Pouvez-vous donner le code PHP qui génère le formulaire, et la page dans laquelle ce code est exécuté?
Merci
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet fil d'ariane
Bonjour,
Oui, c'est ça :) !
Après plus grande réflexion, on peux faire une version peu plus courte en utilisant la classe Product :
function affiche_arbre_categorie($catid = 0, $additional_text = null, $id_produit = null)
{
if (!empty($id_produit)) {
$product_object = new Product($id_produit);
}
$qid = query('SELECT parent_id, nom_' . $_SESSION['session_langue'] . '
FROM peel_categories
WHERE id = "' . intval($catid) . '" AND etat = "1"');
if (num_rows($qid)) {
list($parent, $nom) = fetch_row($qid);
$nom = '<a href="' . get_product_category_url($catid, $nom) . '">' . $nom . '</a>';
} else {
$parent = 0;
$nom = '';
}
if ($parent > 0) {
return affiche_arbre_categorie($parent, ' ' . $nom . ' ' . $additional_text) . (!empty($product_object->name) ? ' > ' . $product_object->name : '');
} else {
return $nom . $additional_text;
}
}
[/CODE]
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet fil d'ariane
Bonjour,
Il faudrait ajouter un 3ème paramètre à la fonction affiche_arbre_categorie, qui contiendrais l'id du produit. La valeur par défaut du paramètre serait null.
Si ce paramètre n'est pas vide, il faudra faire une requête pour chercher le nom du produit dans la table peel_produit. Le résultat de la requête doit être ajouté sur cette ligne :
return affiche_arbre_categorie($parent, ' > ' . $nom . ' ' . $additional_text) . '>' . $nom_du_produit;
Dans la fonction affiche_ariane de \lib\fonctions\display.php, il faut ajouter l'id du produit en paramètre de la fonction :
} elseif (defined('IN_CATALOGUE_PRODUIT')) {
$short_link_text = affiche_arbre_categorie(vn($_GET['catid']),null,vn($_GET['id']));
[/CODE]
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Modification URL
Bonjour,
Il faut vérifier la valeur de la variable $wwwroot dans le fichier lib/setup/info.inc.php. Cette variable contient l'URL de base de votre site et est utilisée pour l'ensemble des liens générés sur le site.
-
0
-
-
Simon développeur PEEL a ajouté un message dans un sujet Editeur de texte fckeditor et ckeditor
Bonjour,
Il est vrai que cette fonction version 6.4 dépend d'autres améliorations faite au même moment dans le logiciel.
La partie qui nettoie les div invisible laissé par l'éditeur de texte est :
if(strlen($value)>20 && String::strpos($value, 'myEventWatcherDiv')!==false) {
// On fait un test sur strlen (sans String::, c'est plus rapide) d'abord pour éviter de faire le test strpos lorsque ce n'est pas utile pour accélérer
// On nettoie ce qui est laissé par CKEditor
$value = str_replace(array('<div id="myEventWatcherDiv" style="display: none;"> </div>', '<div style="display:none;" id="myEventWatcherDiv"> </div>', '<div style="display: none;" id="myEventWatcherDiv"> </div>'), '', $value);
}
[/CODE]
Vous pouvez ajouter ce morceau de code à la fonction existante sur votre version, cela ne devrait pas poser de problème.
-
0
-