আমি কীভাবে ম্যাজেন্টো 2 এ ডিফল্ট পণ্য চিত্রগুলির আকার পরিবর্তন করতে পারি?


25

ইন Magento 1.xx , আমরা ডিফল্ট অ্যাডমিন চিত্র থাম্বনেল পরিবর্তন হতে পারে:

সিস্টেম> কনফিগারেশন> ক্যাটালগ

তবে ম্যাজেন্টো ২.০-তে , আমি কীভাবে এইগুলির মান পরিবর্তন করতে পারি যে আমি এটির অনুমতি দেওয়ার জন্য কোনও কনফিগার পাইনি? সমস্যাটি হ'ল আমার পণ্যের চিত্রগুলি বড় বড় সাদা ফিতে দিয়ে প্রদর্শিত হচ্ছে এবং আমি এটি প্রতিরোধ করতে চাই।

উত্তর:


39

ম্যাজেন্টো নামক ফাইলটি ব্যবহার করে view.xmlযা অ্যাপ্লিকেশনটির থিম স্তরে রক্ষণাবেক্ষণ করা হয়।

সুতরাং উদাহরণস্বরূপ, যদি আপনি ডিফল্ট থিম ব্যবহার করছেন lumaআপনাকে খুঁজে উচিত view.xmlঅধীনেvendor/magento/theme-frontend-luma/etc/view.xml

এই ফাইলে আপনি <images/>নোডের ভিতরে নোড দেখতে পাবেন <media>

<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd">
    <media>
        <images module="Magento_Catalog">
            <image id="bundled_product_customization_page" type="thumbnail">
                <width>140</width>
                <height>140</height>
            </image>
            <image id="cart_cross_sell_products" type="thumbnail">
                <width>200</width>
                <height>248</height>
            </image>
            <image id="cart_page_product_thumbnail" type="small_image">
                <width>165</width>
                <height>165</height>
            </image>
            ........
        </images>
    </media>
    ......
</view>

চিত্রগুলির মাত্রা এখানে <image/>নোডের নীচে বজায় রাখা হয়।

idএর অ্যাট্রিবিউট মান <image/>নোড কোডবেস উল্লেখ করা হয়।

উদাহরণ স্বরূপ:

<image id="related_products_list" type="small_image">
    <width>152</width>
    <height>190</height>
</image>

আইডি মানটি ভিউ ফাইলটিতে ব্যবহৃত হয় vendor/magento/module-catalog/view/frontend/templates/product/list/items.phtml

case 'related':
    /** @var \Magento\Catalog\Block\Product\ProductList\Related $block */
    if ($exist = $block->getItems()->getSize()) {
        $type = 'related';
        $class = $type;

        $image = 'related_products_list';
        $title = __('Related Products');
        $items = $block->getItems();
        $limit = 0;
        $shuffle = 0;
        $canItemsAddToCart = $block->canItemsAddToCart();

        $showWishlist = true;
        $showCompare = true;
        $showCart = false;
        $templateType = null;
        $description = false;
    }
break;

এখানে $imageচিত্রের আকারের মান বোঝায় এখানে:

<?php echo $block->getImage($_item, $image)->toHtml(); ?>

যদি থিমটির একটি না থাকে view.xmlতবে তারপরে এটি একটি ফ্যালব্যাক থিম (প্যারেন্ট থিম) ব্যবহার করছে যা view.xmlফাইলটি রয়েছে।

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Magento Luma</title>
    <parent>Magento/blank</parent>
    .....
</theme>

এখানে Magento/blankমূল থিমটি দেওয়া হচ্ছে।

view.xmlফাইলের মানগুলি পরিবর্তন / ওভাররাইটিংয়ের ক্ষেত্রে আপনাকে সম্পূর্ণ view.xmlফাইলটি আপনার কাস্টম থিমটিতে অনুলিপি করতে হবে এবং মানগুলি পরিবর্তন করতে হবে।

view.xmlনোডের মান ফ্যালব্যাক সিস্টেম নেই, এর অর্থ যদি কোনও নোডের মান আপনার কাছে কাস্টম থিমের উপস্থিত না থাকে তবে view.xml এটি তার মূল থিমের ভিউ.এক্সএমএল মানের ফলব্যাক করবে না , এজন্য পুরো ফাইলটি অনুলিপি করা দরকার।

একবার মান পরিবর্তন হয়ে গেলে, আপনাকে চালাতে হবে

php bin/magento catalog:images:resize

এটি নতুন চিত্রের মাপটি পুনরায় তৈরি করবে।


ধন্যবাদ। আমি কখনই বুঝতে পারি না যে এটি কোথায় তৈরি হচ্ছে। +1
অ্যান্ডি জোনস

5
এটি কীভাবে ওভার ইঞ্জিনিয়ারড এবং এখনও ডকুমেন্টেশনের অভাবের তা জানতে পেরেছি। এই নামগুলি বের করার জন্য আপনাকে কোড সন্ধান করতে হবে বা ডিবি স্কিমার চারপাশে খনন করতে হবে।
মিগুয়েল ফেলিপ গিলেন কালো

উত্তরের জন্য আপনাকে ধন্যবাদ, তবে আমি ক্লান্ত হয়ে পড়েছিলাম এবং শেষ সেটআপ রানটির php bin/magento catalog:images:resize প্রয়োজন নেই (এটির জন্য অনেক সময় ব্যয় হয়) , আমাদের কেবল ক্যাশে সাফ করা দরকার এবং তারপরে এটি কার্যকর হবে।
কী শ্যাং

@ কেশ্যাং আপনি ঠিক বলেছেন, পুনরায় আকারিত চিত্রগুলি ইতিমধ্যে উপস্থিত না থাকলে রানটাইমে উত্পন্ন হয়। তবে এটি আপনাকে এই আদেশটি চালানোর জন্য সুপারিশ করা হয়েছে কারণ এটি উত্পাদনে পারফরম্যান্সে সহায়তা করে
অতীশ গোস্বামী

6

ম্যাজেন্টো পণ্যটি পথের বিক্রেতা / ম্যাজেন্টো / থিম-ফ্রন্টএন্ড-লুমা / ইত্যাদি / ভিউ.এক্সএমএলে চিত্রের আকারের আকারের জন্য ফাইল ভিউ.এক্সএমএল ব্যবহার করে

এখানে আপনি নোড ভিতরে নোড পাবেন।

ফাইল ভিউ.এক্সএমএল অনুলিপি করুন এবং এটি আপনার থিমের পথে রাখুন এবং পরিবর্তনগুলি করুন, অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড / মাই থিমপ্যাকেজ / মাই থেম / ইত্যাদি / ভিউ.এক্সএমএল বলুন

<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd">
<media>
    <images module="Magento_Catalog">
        ........
        <image id="category_page_list" type="small_image">
             <width>270</width>
             <height>450</height>
        </image>
        ........
    </images>
</media>
......
</view>

ক্যাশে সাফ করুন এবং বিভাগের তালিকা পৃষ্ঠাটি লোড করুন। আপনার পরিবর্তনগুলি প্রতিফলিত হবে।


এটি নোটযোগ্য যোগ্য যে কোনও "ডিফল্ট থিম প্যাকেজের উপর নির্ভর করে" বিক্রেতা / ম্যাজেন্টো / থিম-ফ্রন্টএন্ড-লুমা / ইত্যাদি / ভিউ.এক্সএমএল "পাথ" বিক্রেতা / ম্যাজেন্টো / থিম-ফ্রন্টট্যান্ড-ফাঁকা / ইত্যাদি / ভিউ.এক্সএমএল "হতে পারে তুমি ব্যাবহার কর.
ডায়নামাইট

পণ্য বিবরণ পৃষ্ঠায় থাম্বনেইল চিত্রের আকারটি কীভাবে পরিবর্তন করবেন?
জাফর পিনজার

1

আপনি সরাসরি টেমপ্লেট ফাইলে চিত্রের মাত্রা নির্দিষ্ট করতে পারেন:

<?php
/**
* @var $block \Magento\Catalog\Block\Product\Widget\NewWidget
*/
$image = 'new_products_content_widget_grid';
$items = $block->getProductCollection()->getItems();
$width = 100;
$height = 100;
foreach ($items as $_item) {
    $resizedUrl = $block->resizeImage($_item, $image , $width, $height)->getUrl();
    echo '<img src="'.$resizedUrl .'" alt="alt text" />';
}

আরও নমুনা এখানে - https://nwdthemes.com/2017/12/19/magento-2-product-image-size/

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