मैं Magento 2 पर डिफ़ॉल्ट उत्पाद छवियों के आकार को कैसे बदल सकता हूं?


25

में Magento 1.xx , हम डिफ़ॉल्ट व्यवस्थापक में छवियों थंबनेल को बदल सकता है:

सिस्टम> कॉन्फ़िगरेशन> कैटलॉग

लेकिन मैगेंटो 2.0 में , मैं कैसे थ्रेस वैल्यू बदल सकता हूं मैं इसे अनुमति देने के लिए कोई भी कॉन्फ़िगरेशन नहीं ढूंढ सकता हूं? समस्या यह है कि मेरी उत्पाद छवियां बड़ी सफेद धारियों के साथ प्रदर्शित हो रही हैं और मैं इसे रोकना चाहूंगा।

जवाबों:


39

Magento उस फ़ाइल का उपयोग करता है जिसे view.xmlएप्लिकेशन के थीम स्तर पर बनाए रखा जाता है।

इसलिए, उदाहरण के लिए, यदि आप डिफ़ॉल्ट थीम का उपयोग कर रहे हैं, तो आपको अंडर lumaढूंढना चाहिएview.xmlvendor/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/>नोड codebase में संदर्भित है।

उदाहरण के लिए:

<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 यह अपने मूल विषय के view.xml मान पर नहीं गिरेगा, इसीलिए संपूर्ण फ़ाइल की प्रतिलिपि बनाने की आवश्यकता है।

एक बार मूल्यों में परिवर्तन हो जाने के बाद, आपको दौड़ना होगा

php bin/magento catalog:images:resize

यह नए छवि आकारों को पुन: उत्पन्न करेगा।


धन्यवाद। मुझे कभी नहीं लगा कि यह कहाँ उत्पन्न हो रहा है। +1
andy jones

5
प्यार करने के लिए समझे कि यह कैसे इंजीनियर है और अभी तक प्रलेखन में कमी है। आपको कोड में देखना होगा या डीबी स्कीमा के चारों ओर खुदाई करके केवल इन नामों का पता लगाना होगा।
मिगुएल फेलिप गुइलेन कैलो

उत्तर के लिए धन्यवाद, लेकिन मैं थका हुआ था और पाया कि लास्ट सेटअप रन की php bin/magento catalog:images:resize जरूरत नहीं है (इसमें बहुत समय लगता है) , हमें सिर्फ कैशे क्लियर करने की जरूरत है और फिर यह काम करेगा।
कुंजी शांग

@KeyShang आप सही हैं, पहले से मौजूद न होने पर आकार बदलने वाली छवियाँ रनटाइम में उत्पन्न होती हैं। हालांकि यह अनुशंसा की जाती है कि आप इस आदेश को चलाएं क्योंकि यह उत्पादन पर प्रदर्शन के साथ मदद करता है
आतिश गोस्वामी

6

मैगेंटो उत्पाद पथ विक्रेता / मैगनेटो / थीम-फ्रंटेंड-लूमा / आदि / view.xml पर छवि आकार आयामों के लिए फ़ाइल view.xml का उपयोग करता है

यहां आपको नोड नोड के अंदर मिलेगा।

फ़ाइल view.xml को कॉपी करें और इसे अपने थीम पथ में रखें और परिवर्तन करें, ऐप / डिज़ाइन / फ्रंटेंड / MyThemePackage / MyTheme / etc / view.xml कहें

<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/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.