Rajout d'élément

20 posts in this topic

Posted · Report post

Bonjour,

Lorsque l'on sélectionne un produit, dans la vignette de description de ce dernier le prix est indiqué avec le simple sigle "€" (par exemple 14 €).

J'ai choisi de mettre tous mes tarifs en Hors Taxe et souhaiterais que pour les internautes ce choix leur soit spécifié dans cette vignette puis dans le descriptif "+ de détails".

N'étant pas un spécialiste du php, comment puis-je faire ? Dans quel fichier puis-je rajouter le sigle "HT" ?

Cordialement,

Séb42

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

vous devez agir sur le 5ème paramètre ($add_tax_type_text) de la fonction get_final_price(), défini dans le fichier lib\class\Product.php.

Lors de l'appel de la fonction, assurez-vous que ce paramètre a pour valeur true.

Simon.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Simon,

J'ai bien transformé la valeur du cinquième paramètre (soit $add_tax_type_text) de la fonction get_final_price, en la passant de "false" à "true".

Malgré tout, le sigle "HT" ne s'affiche pas derrière mes prix. Ai-je oublié quelque chose ?

Merci,

Séb42

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

A quel endroit avez-vous modifier la valeur du paramètre ?

Share this post


: post
Share on other sites

Posted · Report post

Sur le 5ème paramètre ($add_tax_type_text) de la fonction get_final_price(), défini dans le fichier lib\class\Product.php :

function get_final_price($user_promotion_percentage = 0, $with_taxes = true, $reseller_mode = false, $format = false, $add_tax_type_text = true (j'ai mis "true" à la place du "false" initial), $quantity = 1, $add_ecotax = true, $get_price_for_this_configuration = true)

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

il faut en fait faire diverses opérations :

-Modifier la fonction affiche_prix de la classe produit, de cette façon :


function affiche_prix($with_taxes = true, $reseller_mode = false, $return_mode = false, $display_with_measurement = false, $item_id = null, $display_ecotax = true, $display_old_price = true, $table_css_class = 'full_expand_in_container', $display_old_price_inline = true, $display_with_vat_symbol = true))
{
$output = affiche_prix($this, $with_taxes, $reseller_mode, $return_mode, $display_with_measurement, $item_id, $display_ecotax, $display_old_price, $table_css_class, $display_old_price_inline, $display_with_vat_symbol);

if ($return_mode) {
return $output;
} else {
echo $output;
}
}
[/CODE] Ensuite, dans la fonction affiche_produits du fichier display_product.php, ajouter 'true' comme dernier paramètre de l'appel de la fonction affiche_prix vers la ligne 777 de cette façon :
[CODE]
$output .= $product_object->affiche_prix(display_prices_with_taxes_active(), is_reseller_module_active() && is_reseller(), true, false, null, true, true, 'full_expand_in_container', true, false);

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir Simon,

J'ai tenté de mettre en oeuvre vos instructions, malheureusement le résultat n'est toujours pas au rendez-vous !

Lorsque je remplace les lignes de code d'origine par ceux retouchés par vos soins, voilà ce qui s'affiche :

Parse error: parse error, expecting `';'' or `'{'' in C:\wamp\www\Place Du Peuple\lib\class\Product.php on line 771

La ligne 771 correspondant alors à cette ligne de code :

function affiche_prix($with_taxes = true, $reseller_mode = false, $return_mode = false, $display_with_measurement = false, $item_id = null, $display_ecotax = true, $display_old_price = true, $table_css_class = 'full_expand_in_container', $display_old_price_inline = true, $display_with_vat_symbol = true))

En partant du fichier de base (version 6.1), pourriez-vous me redonner les étapes et les fichiers à modifier ?

Merci

Seb42

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Sèb42,

L'erreur de est du à une parenthèse en trop à la fin de la ligne 771.

La correction donne :


function affiche_prix($with_taxes = true, $reseller_mode = false, $return_mode = false, $display_with_measurement = false, $item_id = null, $display_ecotax = true, $display_old_price = true, $table_css_class = 'full_expand_in_container', $display_old_price_inline = true, $display_with_vat_symbol = true)
{
$output = affiche_prix($this, $with_taxes, $reseller_mode, $return_mode, $display_with_measurement, $item_id, $display_ecotax, $display_old_price, $table_css_class, $display_old_price_inline, $display_with_vat_symbol);

if ($return_mode) {
return $output;
} else {
echo $output;
}
}
[/CODE]

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Simon,

Merci pour l'info... J'avais pas remarqué la parenthèse en trop.

Le résultat n'est toujours pas concluant. Cela vient du fait que je n'arrive pas à placer correctement le code ci-dessous dans la fonction affiche_prix du fichier display_product.php. D'ailleurs cette fonction affiche_prix ne se trouve pas aux alentours de la ligne 777 mais plutôt vers les lignes 412 (dans mon fichier provenant de la version peel shopping 6.1).

$output .= $product_object->affiche_prix(display_prices_with_taxes_active(), is_reseller_module_active() && is_reseller(), true, false, null, true, true, 'full_expand_in_container', true, false);

Du coup, le placement de la ligne de code me fait défaut et ne permet pas de voir apparaître le sigle HT souhaité.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Vous devez remplacer les lignes 757 à 765 du fichier lib\class\Product.php par le code ci dessous

    function affiche_prix($with_taxes = true, $reseller_mode = false, $return_mode = false, $display_with_measurement = false, $item_id = null, $display_ecotax = true, $display_old_price = true, $table_css_class = 'full_expand_in_container', $display_old_price_inline = true, $display_with_vat_symbol = true)
{
$output = affiche_prix($this, $with_taxes, $reseller_mode, $return_mode, $display_with_measurement, $item_id, $display_ecotax, $display_old_price, $table_css_class, $display_old_price_inline, $display_with_vat_symbol);
if ($return_mode) {
return $output;
} else {
echo $output;
}
}
[/CODE] et remplacer la ligne 648 du fichier \lib\fonctions\display_product.php par
[CODE]
' . $product_object->affiche_prix(display_prices_with_taxes_active(), is_reseller_module_active() && is_reseller(), true, false, null, true, true, 'full_expand_in_container', true, false) . '

J'ai vérifié que les numéros de ligne correspondent à la 6.1

Simon.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Simon,

Je viens d'effectuer les manipulations demandées, à la ligne près. Malheureusement, le résultat n'est pas là. Rien ne change sur mes pages, je ne vois toujours pas apparaître de sigle HT derrière mes prix.

Si vous avez une solution je reste attentif... En tout cas, merci de vos conseils. J'apprécie votre aide.

Cordialement,

Séb42

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

vos produits sont-il affiché en ligne ou en colonne ?

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Mes produits sont affichés en colonne.

Share this post


: post
Share on other sites

Posted · Report post

ok,

Est-ce que la fonction affiche_produits() est défini ailleurs dans votre code? Vous pouvez vérifier cela en faisant une recherche du terme affiche_produits partout dans votre code.

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir,

C'est un peu brut, mais voilà tous les fichiers qui contiennent la fonction affiche_produits :

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\achat\marque.php (1 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\achat\nouveautes.php (1 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\achat\promotions.php (1 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\achat\special.php (1 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\achat\suggest.php (1 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\achat\top.php (1 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\index.php (1 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\lib\fonctions\display_product.php (7 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\modules\flash\flash.php (1 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\modules\gift_check\cheques.php (1 hits)

C:\Users\Sébastien\Desktop\Site Place-du-Peuple en ligne 051011\search.php (1 hits)

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Pouvez vous me transmettre vos identifiants FTP en message privé svp, pour que je comprenne ce qui ce passe. Vos résultats de recherche diffère de la version 6.1 de base, puisque le fichier display_product ne comporte que 6 occurrences normalement.

Je suppose que la fonction affiche_produits est défini vers la début du fichier, et que les corrections que vous faites ne sont pas prise en compte.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

la ligne à modifié est en fait la ligne 696, qui correspond au bloc dédié à l'affichage des produits en colonnes. Le dernier paramètre n'est pas à spécifier.Ce qui donne :


<td colspan="2" class="fc_prix"> ' . $product_object->affiche_prix(display_prices_with_taxes_active(), is_reseller_module_active() && is_reseller(), true, false, null, true, true, 'full_expand_in_container', true) . '</td>
[/CODE]

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Simon,

Je vais essayer cette nouvelle modification...

Merci

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

J'ai changé la ligne 696, sans résultat... Est-elle la seule à modifier ou faut-il reprendre également les autres modifs ?

Merci

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Les bons paramètres sur lesquels il faut agir sont les paramètres $format et $add_tax_type_text de la fonction get_final_price utilisé dans la fonction affiche_prix (ligne 412, fichier \fonctions\display_product.php).

La fonction modifié donne :


function affiche_prix(&$product_object, $with_taxes = true, $reseller_mode = false, $return_mode = false, $display_with_measurement = false, $item_id = null, $display_ecotax = true, $display_old_price = true, $table_css_class = 'full_expand_in_container', $display_old_price_inline = true)
{
$output = '';
$columns = 1;
if (!empty($product_object->prix)) {
$output .= '
<table cellpadding="0" cellspacing="0" class="' . $table_css_class . '">';
if ($display_old_price_inline) {
$output .= '
<tr>';
if (($product_object->get_original_price($with_taxes, $reseller_mode) != $product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode)) && $display_old_price) {
$columns++;
$output .= '
<td class="middle"><del>' . $product_object->get_original_price($with_taxes, $reseller_mode, true) . '</del></td>';
// $output .= PROMOTION . ' - '.fprix(1-$product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode)/$product_object->get_original_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode)).'% - ';
}
$output .= '
<td>
<span class="prix"' . (!empty($item_id)?' id="' . $item_id . '"':'') . '>' . $product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode, true, false) . '</span>
</td>
</tr>';
} else {
$output .= '
<tr>
<td>
<span class="prix"' . (!empty($item_id)?' id="' . $item_id . '"':'') . '>' . $product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode, true, false) . '</span>
</td>
</tr>';
if (($product_object->get_original_price($with_taxes, $reseller_mode) != $product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode)) && $display_old_price) {
$output .= '
<tr>
<td class="middle"><del>' . $product_object->get_original_price($with_taxes, $reseller_mode, true) . '</del></td>
</tr>';
// $output .= PROMOTION . ' - '.fprix(1-$product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode)/$product_object->get_original_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode)).'% - ';
}
}
if ($display_ecotax && !empty($product_object->ecotaxe_ht) && is_module_ecotaxe_active()) {
$output .= '
<tr>
<td colspan="' . $columns . '"><span class="ecotaxe"><i> ' . WITH_ECOTAX . BEFORE_TWO_POINTS . ': ' . fprix($product_object->get_ecotax($with_taxes), true) . '</i></span></td>
</tr>';
}
if ($display_with_measurement) {
if (!empty($product_object->poids) && $product_object->display_price_by_weight == '1') {
$output .= '<tr><td colspan="' . $columns . '"><p>' . PRICE_WEIGHT . ' ' . fprix($product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode) * 1000 / intval($product_object->poids), true) . '</p></td></tr>';
} elseif (!empty($product_object->volume) && $product_object->display_price_by_weight == '2') {
$output .= '<tr><td colspan="' . $columns . '"><p>' . PRICE_LITRE . ' ' . fprix($product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode) * 1000 / intval($product_object->volume), true) . '</p></td></tr>';
}
}
$output .= '
</table>';
}
if ($return_mode) {
return $output;
} else {
echo $output;
}
}
[/CODE]

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping