ক্যাটালগ পণ্য তালিকার পৃষ্ঠায় কীভাবে প্রাইস.এফটিএমএল রেন্ডারিং হচ্ছে?


12

ক্যাটালগ পণ্য তালিকা পৃষ্ঠার টেমপ্লেট ফাইল হয় list.phtml। যেখানে বিভাগে থাকা সমস্ত পণ্যগুলির লেন্ডিং foreachলুপ ব্যবহার করে ঘটে ।

আমি রেন্ডারিং সম্পর্কে বিভ্রান্ত করছি price.phtml। কারণ হ্যান্ডেলে এটির জন্য কোনও ব্লক নেই<catalog_category_default>

এখন, <?php echo $this->getPriceHtml($_product, true) ?>পণ্যের দাম ফেরত দেয়।

এই পদ্ধতির সাথে কীভাবে যুক্ত price.phtml?


বেস / ডিফল্ট / আপনার_প্রেমে ক্যাটালগ.এক্সএমএলতে "প্রাইস.ফটিএমএল" অনুসন্ধান করুন, এটি তালিকা.ফ্টটিএমএল ব্লকের চাইল্ড ব্লক হবে।
শাতিশ

উত্তর:


12

পণ্য মূল্য প্রদর্শন

পদ্ধতিটি getPriceHtml()ব্লক শ্রেণিতে সংজ্ঞায়িত করা হয় Mage_Catalog_Block_Product_Abstract

পদ্ধতিতে দামের রেন্ডারার ব্যবহার করা হয় যা পণ্যের ধরণের উপর নির্ভর করে:

$type_id = $product->getTypeId(); // e.g. simple, configurable, bundle, grouped, ...
$this->_preparePriceRenderer($type_id)

মূল্য রেন্ডারার একটি সম্পর্কিত টেম্পলেট সহ একটি ব্লক। উভয়ই পণ্যের ধরণের উপর নির্ভর করে।

যদি নির্দিষ্ট পণ্য প্রকারের জন্য কোনও ব্লক বা টেম্পলেট সংজ্ঞায়িত না হয় তবে এটি catalog/product_priceব্লক এবং catalog/product/price.phtmlটেম্পলেটটির ডিফল্ট হয় ।

পণ্য প্রকারের জন্য মূল্য সরবরাহকারী এবং টেম্পলেটগুলি কোথায় সংজ্ঞায়িত করা হয়েছে?

প্রাইস ব্লক এবং রেন্ডারারগুলি সাধারণত লেআউট এক্সএমএল ব্যবহার করে নির্দিষ্ট করা হয়, সুতরাং নতুন পণ্য ধরণের যুক্ত মডিউলগুলি খুব সহজেই তাদের নিজস্ব রেন্ডার যুক্ত করতে পারে। উদাহরণ স্বরূপ. বান্ডেলযুক্ত পণ্যটি bundle.xmlলেআউট ফাইলে নিম্নলিখিতভাবে দামের সরবরাহকারকে যুক্ত করে :

<default>
    <reference name="catalog_product_price_template">
        <action method="addPriceBlockType">
            <type>bundle</type>
            <block>bundle/catalog_product_price</block>
            <template>bundle/catalog/product/price.phtml</template>
        </action>
    </reference>
</default>

কাস্টম মূল্য টেম্পলেট বা রেন্ডারার

একই পদ্ধতি ব্যবহার করে ডিফল্ট রেন্ডারগুলিকে ওভাররাইড করাও সম্ভব। আপনি যদি কেবলমাত্র টেম্পলেটটি পরিবর্তন করতে চান এবং ডিফল্ট দামের ব্লক প্রকারটি রাখতে চান, কেবলমাত্র addPriceBlockTypeডিফল্ট ব্লক (উপরে দেখুন) এবং আপনার টেম্পলেট সহ লেআউট ফাইলে কল করুন।

দাম ব্লক রেন্ডারিং

প্রকৃতপক্ষে দামের ব্লকটি সরবরাহ করার কোডটি দেখতে এরকম দেখাচ্ছে:

$this->_preparePriceRenderer($type_id)
    ->setProduct($product)
    ->setDisplayMinimalPrice($displayMinimalPrice)
    ->setIdSuffix($idSuffix)
    ->toHtml();

$displayMinimalPriceএবং $idSuffixভেরিয়েবল ঐচ্ছিক আর্গুমেন্ট getPriceHtmlপদ্ধতি।

public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')

$idSuffixএর সিএসএস আইডি সম্পন্ন করার মূল্য টেমপ্লেট ব্যবহার করা হয় <span>প্রকৃত মূল্য, উদাহরণস্বরূপ পার্শ্ববর্তী ট্যাগ:

<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">

@Vinai আপনি এই কিছু সুপারিশ যায়নি stackoverflow.com/questions/20949796/...
মুকেশ

আমি যদি সুপার অ্যাট্রিবিউট মূল্য নির্ধারণ করতে চাই তবে আমি কেবল <? Php প্রতিধ্বনি $ এটি-> getPriceHtml ($ _ পণ্য) ব্যবহার করব; ?> বা আমার কী ধরণের দাম নির্ধারণ করতে হবে? টায়ার্ড?
এলভা স্যান্ডোভাল

Corrent। পদ্ধতিটি পণ্যের ধরণ নির্ধারণ করবে এবং তদনুসারে দামটি সরবরাহ করবে।
বিনাই

হাই @ বিনাই আমি এটি করার চেষ্টা করেছি, তবে দাম স্থির থাকে। আমি কোনও রঙ বেছে নিলে পরিবর্তিত হয় না যা আলাদা দাম। শীর্ষের দামটি পরিবর্তিত হয়, তবে কার্টে যুক্ত হওয়া নীচের দিকে নয়। এখানে jennyyootest.com/index.php/adelle.html
এলভা স্যান্ডোভাল

উভয় দাম পরিবর্তন করতে আপনাকে জাভাস্ক্রিপ্ট সামঞ্জস্য করতে হবে।
বিনাই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.