wrackful

مشکل در نمایش مبلغ محصول به فارسی و بدون اعشار

6 ارسال در این موضوع قرار دارد

با سلام و وقت بخیر 

در مجنتو ورژن ۱.۹.۳.۹ تازگی به مشکلی خوردم ، اگر کسی جوابش رو بدونه در وقت من صرفه جویی میشه ممنون میشم

در صفحه محصول با نوع "محصول قابل پیکربندی" که دارای چند رنگ میباشد ، وقتی رنگ محصول را عوض میکنم عدد به انگلیسی تبدیل میشود و دارای اعشار میشود ، جاهایی که به ذهنم میرسید رو چک کردم مثل مسیر های زیر :
lib/Zend/Currency.php
app/code/core/Mage/Core/Model/Store.php
app/code/core/Mage/Directory/Model/Currency.php
⁨lib⁩/⁨Zend/⁨Locale⁩/Data⁩/ fa_IR.xml
البته فایل زیر رو تصحیح کردم و مشکل در بک اند حل شد :
 ⁨app⁩ ▸ ⁨code⁩ ▸ ⁨core⁩ ▸ ⁨Mage⁩ ▸ ⁨Adminhtml⁩ ▸ ⁨Block⁩ ▸ ⁨Catalog⁩ ▸ ⁨Product⁩ ▸ ⁨Helper⁩ ▸ ⁨Form⁩ ▸ Price.php

یک نمونه در این آدرس ساختم :
http://demo.magento-farsi.com/vip/ماشین.html

ولی در این نسخه مشکل اعشار رو نداره فقط مشکل اعداد فارسی رو داره بعد از تغییر رنگ

سپاسگذار میشم اگر راهنمایی کنید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

هیچ کس نبود که پاسخ بده یعنی ؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

این مشکل مربوط به css و jquery هست و باید برای درست کردن فایل های قالب تون تغییر بکنه.

اگه برای قیمت از یک فونت فارسی استفاده کنید فکر کنم مشکل حل بشه.

متاسفانه دیگه نسخه 1.9 استفاده نمی کنم واسه همین یادم نیست باید کجا تغییر بدهید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 4 ساعت قبل، hrnm گفته است :

سلام

این مشکل مربوط به css و jquery هست و باید برای درست کردن فایل های قالب تون تغییر بکنه.

اگه برای قیمت از یک فونت فارسی استفاده کنید فکر کنم مشکل حل بشه.

متاسفانه دیگه نسخه 1.9 استفاده نمی کنم واسه همین یادم نیست باید کجا تغییر بدهید

سلام ممنون از پاسخ ، نه مشکل از css و jquery نیست چون در ورژن های پایین تر تست شده و اعشار رو نمیزنه .

از فونت فارسی استفاده شده و  در ابتدا قیمت درست نمایش داده میشه اما پس از تغییر رنگ محصول این مشکل پیش میاد ، شما اگر به اون لینکی که دادم مراجعه کنید متوجه منظورم میشید ، البته در لینک مشکل تغییر به اعداد انگلیسی فقط وجود داره و مشکل اعشار رو نداره

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 16 ساعت قبل، wrackful گفته است :

سلام ممنون از پاسخ ، نه مشکل از css و jquery نیست چون در ورژن های پایین تر تست شده و اعشار رو نمیزنه .

اعشار قیمت از مجنتو هست ولی متاسفانه یادم نیست کدوم قسمت هست فراموش کردم (توی نت بگردید پیدا می کنید)

در 16 ساعت قبل، wrackful گفته است :

از فونت فارسی استفاده شده و  در ابتدا قیمت درست نمایش داده میشه اما پس از تغییر رنگ محصول این مشکل پیش میاد ، شما اگر به اون لینکی که دادم مراجعه کنید متوجه منظورم میشید ، البته در لینک مشکل تغییر به اعداد انگلیسی فقط وجود داره و مشکل اعشار رو نداره

تلاش کردم مشکل حل نشد و چون مجنتو نسخه 1 ندارم نمی تونم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 1397/12/05, 18:05:41، hrnm گفته است :

اعشار قیمت از مجنتو هست ولی متاسفانه یادم نیست کدوم قسمت هست فراموش کردم (توی نت بگردید پیدا می کنید)

تلاش کردم مشکل حل نشد و چون مجنتو نسخه 1 ندارم نمی تونم

مرسی ممنونم خودم به جواب رسیدم ، فقط میخواستم در وقتم سرفه جویی بشه که متاسفانه کسی کمک نکرد

برای حذف اعشار در محصولات پیکر بندی بعد از تغییر قیمت تغیرات را در فایل زیر انجام دهید:

 ⁨app⁩ -> ⁨code⁩ -> ⁨core⁩ ▸ ⁨Mage⁩ -> ⁨Core⁩ -> ⁨Model -> locale.php

در تابع public function getJsPriceFormat()

        $result = array(
            'pattern' => Mage::app()->getStore()->getCurrentCurrency()->getOutputFormat(),
            'precision' => $totalPrecision,
            'requiredPrecision' => $requiredPrecision,
            'decimalSymbol' => $symbols['decimal'],
            'groupSymbol' => $symbols['group'],
            'groupLength' => $group,
            'integerRequired' => $integerRequired
        );

به کد زیر تغییر پیدا بکند :

        $result = array(
            'pattern' => Mage::app()->getStore()->getCurrentCurrency()->getOutputFormat(),
            'precision' => 0,
            'requiredPrecision' => 0,
            'decimalSymbol' => $symbols['decimal'],
            'groupSymbol' => $symbols['group'],
            'groupLength' => $group,
            'integerRequired' => $integerRequired
        );

برای فارسی سازی اگر فقط یک فروشگاه دارید و تک زبانه هستید میتوانید در فایل :

app -> code -> core -> Mage -> Directory -> Model -> Currency.php 

در تابع public function getOutputFormat()

$number = $this->formatTxt(0, array('display' => Zend_Currency::NO_SYMBOL));

به کد زیر تغییر پیدا میکنه :

$number = $this->formatTxt(0, array('display' => Zend_Currency::NO_SYMBOL, 'script' => 'arabext'));

اگر این روش بالا برای فارسی سازی جوابگو نبود و یا چند زبانه هست فروشگاهتون به فایل زیر رفته و تغییرات رو انجام بدید

js -> varien -> js.js

ابتدا این تابع را اضافه کنید :

function ConvertNumberToPersion(type=null) {
    persian = { 0: '۰', 1: '۱', 2: '۲', 3: '۳', 4: '۴', 5: '۵', 6: '۶', 7: '۷', 8: '۸', 9: '۹' };
    if(type == null){
        function traverse(el) {
            if (el.nodeType == 3) {
                var list = el.data.match(/[0-9]/g);
                if (list != null && list.length != 0) {
                    for (var i = 0; i < list.length; i++)
                        el.data = el.data.replace(list, persian[list]);
                }
            }
            for (var i = 0; i < el.childNodes.length; i++) {
                traverse(el.childNodes);
            }
        }
        traverse(document.body);
    }
    else
    {
        return type.replace(/[0-9]/g, function(w){
  return persian[+w];
 });
    }
}

سپس در تابع function formatCurrency(price, format, showPlus){ قبل از return کد زیر را وارد کنید :

r = ConvertNumberToPersion(r);

hrnm پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری