osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Modifier taille texte, UNITES,centimes
mihelicjm
posté 13 Mar 2014, 21:16
Message #1


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 9-November 04
Lieu : Melun
Membre no 3721



Je tente de trouver réponse à une question que je me pose...

- sur une version 2.3.3 comment faire par exemple pour afficher le prix sur la page product_info.php où les centimes seraient affichés d'une taille plus petite que celle des euro?

Par exemple: 53.10

Pour obtenir un tel résultat j'ai commencé à avancer mais je bûche un peu...

1/ dans product_info.php j'ai envisagé une div pour modifier la section de l'affichage du prix (<?php echo $products_price;?>) qui serait:

CODE
<DIV class="solo-prix"><SPAN class="soloprix_normal">53</SPAN><SPAN class="soloprix_cents">,10€</SPAN></DIV>


2/ les class qui vont avec dans le stylesheet.css:

CODE
.solo-prix {
padding: 20px 0px 0px; text-align: center; color: rgb(255, 0, 0); display: block;
}
.soloprix_normal {
font-family: "Verdana", Geneva, sans-serif; font-size: 30px; font-weight: bold;
}
.soloprix_cents {
font-family: "Verdana", Geneva, sans-serif; font-size: 22px; font-weight: bold;
}


à ce stade de test j'obtiens ce que je veux sauf que ce que je cherche à l'intégrer à product_info...

Quelqu'un aurait une idée? une retouche dans la classe currencies.php peut-être??

Ce message a été modifié par mihelicjm - 14 Mar 2014, 20:59.


--------------------
OsCommerce Bootstrap 2.3.4 visible ici >> Account_Balance_V4 >> Admin Notes with french v2.4_1 >> cronemul >> Extra Info to customer page in admin V1 >> extra_fields_v2_1 >> extra_images_v1-61 >> heardabout_1_25 >> mail-manager >> Menu deroulant date naissance Mini_Images_v2.0 >> Minimum_Order_Amount_1_4 >> Master Password 1_4 >> ordercheck >> Product Serial 1_0 >> PDF_Customer_Invoice_v1.0 >> points_rewardsV2.2beta >> RecoverCartSales 230 >> RMA_Returns_2-6 >> Suivi_colissimo >>
Go to the top of the page
 
chti_poupon
posté 15 Mar 2014, 21:58
Message #2


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2744
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonjour
Je n'ai pas le temps de m'y pencher en ce moment.
C'est un problème de traitement de chaîne.
Dans products_info.php, il faut recopier $products_price dans une chaîne $travail.
Découper la chaîne $travail en ses éléments généraux (en français, certains sont vides, mais restons internationaux:
préfixe monnaie ($) + portion prix + séparateur milliers +.....+ séparateur décimal (, ou .) +partie décimale + postfixe monnair (€)
et écrire, dans chaque span, la concaténation des éléments qui vont bien:
<span 1>préfixe monnaie ($) . portion prix . séparateur milliers ...... . séparateur décimal</span><span2>partie décimale + postfixe monnair</span>
Les éléments intermédiaires sont dans la table currencies et déjà exploités dans la classe du même nom.
Si tu peux te lancer...
Chti poupon
Go to the top of the page
 
mihelicjm
posté 16 Mar 2014, 00:18
Message #3


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 9-November 04
Lieu : Melun
Membre no 3721



Bonjour Ch'ti_Poupon... et merci de ta réponse somme toute scientifique pour la ceinture blanche que je suis!!! biggrin.gif ... mais je pense en avoir déduit l'essentiel qui consisterait en fait à "éclater" l'affichage de base (<?php echo $products_price;?>) en plusieurs portions de façon à contrôler chacune d'elles du genre:

remplacer dans product_info.php
CODE
<?php echo $products_price;?>

par
CODE
<span1 pour les milliers et dizaines + les séparateurs><?php echo $products_price_dizaines; ?></span><span2 pour les centimes + le symbole €><?php echo $products_price_centimes; ?></span>


... ensuite modification de la chaine d'origine toujours dans product_info.php, modifier:
CODE
if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
$products_price = ' <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span> <del>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</del>';
$sale = '<div class="sale"></div>';
} else {
$products_price = '<span class="productSpecialPrice">' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
$sale = '';
}

par
CODE
if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
$products_price = ' <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span> <del>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</del>';
$sale = '<div class="sale"></div>';
} else {
$products_price_dizaines = '<span class="soloprix_normal">' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
$products_price_centimes = '<span class="soloprix_cents">' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
$sale = '';
}


... et il y aurait pas aussi des modifs à apporter dans includes/classes/currencies.php au niveau des fonctions display_price et format? Je pensais en l'occurrence créer une "fonction format2" et une fonction display_price2 pour laisser ces deux fonctions d'origines gérer les autres pages du site...


--------------------
OsCommerce Bootstrap 2.3.4 visible ici >> Account_Balance_V4 >> Admin Notes with french v2.4_1 >> cronemul >> Extra Info to customer page in admin V1 >> extra_fields_v2_1 >> extra_images_v1-61 >> heardabout_1_25 >> mail-manager >> Menu deroulant date naissance Mini_Images_v2.0 >> Minimum_Order_Amount_1_4 >> Master Password 1_4 >> ordercheck >> Product Serial 1_0 >> PDF_Customer_Invoice_v1.0 >> points_rewardsV2.2beta >> RecoverCartSales 230 >> RMA_Returns_2-6 >> Suivi_colissimo >>
Go to the top of the page
 
chti_poupon
posté 16 Mar 2014, 21:34
Message #4


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2744
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonjour
Ce n'est pas ce que je voulais dire: je n'avais pas écrit du php, mais le fil à appliquer.
Modifier une classe n'est pas une bonne idée, sauf dans de rares cas et en prenant garde que la modification s'applique partout où la classe est exploitée.
Modifier if new_price et la suite non plus: dans cette partie, on calcule la valeut TTC (si souhaité) dans la monnaie choisie et on assemble, simultanément la chaîne à afficher $products_price.
Si tu ne travailles qu'en TTC et en Euro, avec le point décimal, et sans poins séparateur de milliers alors tu peux appliquer le code suivant:
Code
            $initial_products_price = $products_price;
$prix = explode('.', $products_price); // $prix[0] contient ce qui est avant le point, $prix[1] ce qui est après
?>
<div class="solo-prix">
  <h1 style="float: right;"><span class="soloprix_normal"><?php echo ' '  . $prix[0] . '.'; ?></span>
<span class="soloprix_cents"><?php echo $prix[1]; ?></h1></span>
</div>

Mais ce n'est pas universel.
Bons essais !
Chti poupon
Go to the top of the page
 
mihelicjm
posté 16 Mar 2014, 22:19
Message #5


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 9-November 04
Lieu : Melun
Membre no 3721



Bonjour Ch'tit_Poupon

A l'instant où je découvre ta réponse je viens justement de tester une autre formule plus fastidieuse mais qui ne me semble pas si mauvaise..

dans product_info.php j'ai modifié ce bout de code:
CODE
if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
$products_price = ' <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span> <del>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</del>';
$sale = '<div class="sale"></div>';
} else {
$products_price = '<span class="productSpecialPrice">' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
$sale = '';
}

remplacé par celui là:
CODE
if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
$products_price = ' <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span> <del>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</del>';
$sale = '<div class="sale"></div>';
} else {
// $products_price = '<span class="productSpecialPrice">' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
$products_price_dizaines = '<span class="soloprix_normal ">' . $currencies->display_price_dizaines($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
$sale = '';
}

plus loin j'ai remplacé l'affichage du prix:
CODE
<?php echo $products_price;?>

par celui-là:
CODE
<DIV class="solo-prix"><?php echo $products_price_dizaines;?></DIV>

dans le stylesheet.css les classes...
CODE
.solo-prix {
padding: 20px 0px 0px; text-align: right; color: rgb(0, 0, 0); display: block;
}
.soloprix_normal {
font-family: "Verdana", Geneva, sans-serif; font-size: 30px; font-weight: bold;
}
.soloprix_cents {
font-family: "Verdana", Geneva, sans-serif; font-size: 22px; font-weight: bold;
}

et enfin la classe currencies.php où j'ai dupliqué et renommé les fonctions qui m'intéressaient (format + display_price) pour justement que mes modifications ne se répercutent pas ailleurs...
j'ai donc rajouté:
CODE
function format_dizaines($number, $calculate_currency_value = false, $currency_type = '', $currency_value = '') {
global $currency;

if (empty($currency_type)) $currency_type = $currency;

if ($calculate_currency_value == false) {
$rate = (tep_not_null($currency_value)) ? $currency_value : $this->currencies[$currency_type]['value'];
$format_string = $this->currencies[$currency_type]['symbol_left'] . number_format(tep_round($number * $rate, $this->currencies[$currency_type]['decimal_places']), $this->currencies[$currency_type]['decimal_places'], '<span class="soloprix_cents ">' .$this->currencies[$currency_type]['decimal_point'], $this->currencies[$currency_type]['thousands_point']) . $this->currencies[$currency_type]['symbol_right']. '</span>';
} else {
$format_string = $this->currencies[$currency_type][''] . number_format(tep_round($number, $this->currencies[$currency_type]['decimal_point'], $this->currencies[$currency_type]['thousands_point'])) . $this->currencies[$currency_type]['symbol_right'];
}

return $format_string;
}
function display_price_dizaines($products_price, $products_tax, $quantity = 1) {
return $this->format_dizaines($this->calculate_price($products_price, $products_tax, $quantity));
}

Mes recherches sont allées dans ce sens suite à ta suggestion initiale quant à rester international... smile.gif.

Ma méthode est bonne, non? Je m'en vais tester la tienne... Merci pour ton coup de pouce qui m'aura mis sur la voie!


--------------------
OsCommerce Bootstrap 2.3.4 visible ici >> Account_Balance_V4 >> Admin Notes with french v2.4_1 >> cronemul >> Extra Info to customer page in admin V1 >> extra_fields_v2_1 >> extra_images_v1-61 >> heardabout_1_25 >> mail-manager >> Menu deroulant date naissance Mini_Images_v2.0 >> Minimum_Order_Amount_1_4 >> Master Password 1_4 >> ordercheck >> Product Serial 1_0 >> PDF_Customer_Invoice_v1.0 >> points_rewardsV2.2beta >> RecoverCartSales 230 >> RMA_Returns_2-6 >> Suivi_colissimo >>
Go to the top of the page
 
mihelicjm
posté 17 Mar 2014, 00:14
Message #6


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 9-November 04
Lieu : Melun
Membre no 3721



euh... la mienne n'est pas encore tout à fait au point à un détail près: les promos ne s'affichent plus... sad.gif


--------------------
OsCommerce Bootstrap 2.3.4 visible ici >> Account_Balance_V4 >> Admin Notes with french v2.4_1 >> cronemul >> Extra Info to customer page in admin V1 >> extra_fields_v2_1 >> extra_images_v1-61 >> heardabout_1_25 >> mail-manager >> Menu deroulant date naissance Mini_Images_v2.0 >> Minimum_Order_Amount_1_4 >> Master Password 1_4 >> ordercheck >> Product Serial 1_0 >> PDF_Customer_Invoice_v1.0 >> points_rewardsV2.2beta >> RecoverCartSales 230 >> RMA_Returns_2-6 >> Suivi_colissimo >>
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 19th November 2017 - 00:22
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)