ম্যাজেন্টো টেম্পলেটটি সংশোধন করার সঠিক উপায় / উপায় কী?


15

দয়া করে আমাকে সঠিক পদ্ধতির পরামর্শ দিন, যখন ব্যবহারকারীরা বাটনে ক্লিক করেন ("এই পণ্যটি ইমেল করুন), আমি পপ আপ উইন্ডোতে" ইমেইল থেকে বন্ধু "পৃষ্ঠাটি কাস্টমাইজ করতে চাই। টেমপ্লেট ইঙ্গিতটি সক্ষম করে, আমি জানতে পারি যে বোতামটি রেন্ডার করা হয়েছে

ফ্রন্টএন্ড / rwd / ডিফল্ট / টেমপ্লেট / ক্যাটালগ / পণ্য / দৃশ্য / sharing.phtml

এবং সম্পর্কিত লেআউট ফাইলটি হ'ল catalog.xml(সম্মুখভাগে / rwd / ডিফল্ট / বিন্যাসে)

সুতরাং আমি local.xmlএকই ফোল্ডারে একটি তৈরি করেছি যেখানে catalog.xmlনিম্নলিখিত কোডের সাথে উপস্থিত রয়েছে (কেবলমাত্র 'ডিবাগ'-এর test.phtmlপরিবর্তে আমি দিয়েছি sharing.phtml)

<?xml version="1.0"?>
<layout version="0.1.0">
    <default>

        <catalog-product-view>
            <reference name="content">
                <block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
                    <block type="catalog/product_view" name="product.info.sharing" as="sharing" template="catalog/product/view/test.phtml"/>
                </block>
            </reference>
        </catalog-product-view>

    </default>
</layout>

তবে কিছুই ঘটে না, আমি বোঝাতে চাইছি কীভাবে আমি বিদ্যমান xmlphtmlফাইলগুলিকে সংশোধন না করে থিমের ডিফল্ট ডিজাইনটি পরিবর্তন (ওভাররাইট) করতে পারি?

উত্তর:


10

এটি আপনার local.xmlফাইলের ভিতরে রাখা উচিত ।

<?xml version="1.0"?>
<layout version="0.1.0">
    <catalog_product_view>
        <reference name="product.info.sharing">
            <action method="setTemplate">
                <template>catalog/product/view/test.phtml</template>
            </action>
        </reference>
    </catalog_product_view>
</layout>

আপনি যে ভুল করেছেন

  • আপনি দুটি লেআউট আপডেট হ্যান্ডেল ব্যবহার করেছেন : defaultএবং catalog-product-view। এটা ভুল। আপনার কেবলমাত্র একটি লেআউট আপডেট হ্যান্ডেল দরকার। আপনার এখানে সঠিক ব্যবহার করা উচিতcatalog_product_view

  • সুতরাং catalog-product-viewম্যাজেন্টো জন্য অজানা। যথাযথ নামcatalog_product_view

  • ভাগ করার ব্লকটি ইতিমধ্যে এর মাধ্যমে সংজ্ঞায়িত হয়েছে catalog.xml, এখন আপনাকে সেই ব্লকটি উল্লেখ করতে হবে এবং তারপরে ক্রিয়া যুক্ত করে টেম্পলেটটি পরিবর্তন করতে হবে setTemplate। উপরের লিপিটি সেটাই করে।

আশা করি ধারণাটি পেয়ে যাবেন


আমি আপনার লোকাল.এক্সএমএল ব্যবহার করেছি, এখনও এটি নির্দিষ্ট ফোল্ডারে বিদ্যমানটিকে (আমি একটি টেস্ট.এফটিএমটিএল তৈরি করেছি) দেখাচ্ছে
ডিমাগ খারাব

তুমি কি তোমার ক্যাশে সাফ করেছ? যদি আপনি সবকিছু সঠিকভাবে করেন তবে এটি কাজ করার কথা।
রাজীব কে টমি

ইয়ুপ ক্যাচিং আমার ক্ষেত্রে অক্ষম করা হয়েছে এবং আমি এটিও পুনর্নির্মাণ করেছি (আমার ধারণা এটির প্রয়োজন ছিল না)
ডিমাগ খারাব

এটি <reference name="content"><block type="core/template" name="test.block" template="catalog/product/view/test.phtml" /></reference>সরাসরি নোডের নীচে যুক্ত করুন <catalog_product_view>। এবং দেখুন পরীক্ষা.ফ্টটিএমএল ফাইল সামগ্রী কোনও পণ্য দর্শনের পৃষ্ঠার নীচের অংশে উপলব্ধ কিনা
রাজীব কে টমি

ভাগ্য এখনও নেই
ডিমাগ খারাব

10

আমি একটি সাধারণ উত্তর দেওয়ার চেষ্টা করব।

টেমপ্লেট কীভাবে পরিবর্তন করবেন

আপনার থিমটিতে, আপনি phtmlডিফল্ট থিম বা মূল থিম থেকে যে কোনও ফাইল ওভাররাইড করতে পারেন । আসল ফাইলটি অনুলিপি করুন app/design/frontend/[package]/[theme]/template/[path/to/phtml]এবং আপনার পরিবর্তনগুলি করুন।

যদি আপনার কাছে এখনও কোনও প্রকল্প নির্দিষ্ট কাস্টম থিম না থাকে, উদাহরণস্বরূপ আপনি সবেমাত্র একটি থিম কিনেছেন, এটিকে অবশ্যই তৈরি করতে ভুলবেন না

app/design/frontend/[original-package]/[project-name]

এটি উত্তরাধিকার সূত্রে প্রাপ্ত হবে [original-package]/[default], আপনাকে ডিফল্ট থেকে সবকিছু অনুলিপি করার দরকার নেই, কেবল ফাইলগুলি যেখানে আপনার পরিবর্তন করা দরকার make

মডিউল নির্দিষ্ট পরিবর্তন

phtmlফাইলটিকে ওভাররাইড করার বিকল্প হ'ল টেমপ্লেটের পথ পরিবর্তন করা। এটি সাধারণত লেআউট এক্সএমএলে এইভাবে করা যেতে পারে:

<reference name="the-block-name">
    <action method="setTemplate"><name>path/to/new/template.phtml</name></action>
</reference>

তবে এটি মডিউলগুলি ব্যবহার করার উদ্দেশ্যে যাঁদের কোনও টেমপ্লেট পরিবর্তন করতে হবে, থিম নির্দিষ্ট পরিবর্তনের জন্য নয়। নতুন টেমপ্লেটটি তখন থাকা উচিত base/default

লোকাল.এক্সএমএল / থিম। এক্সএমএল কীভাবে ব্যবহার করবেন

local.xmlফাইল প্রকৃত থিম আপনি ব্যবহার করছেন, অর্থাত্ ডিরেক্টরির মধ্যে হতে হবে

app/design/frontend/[package]/[theme]/layout

local.xmlফ্যালব্যাক হায়ারার্কির একাধিক ফাইলগুলিকে আমলে নেওয়া হয় না। এর মধ্যে প্রথম যেটি পাওয়া যায়, তা ব্যবহৃত হয়:

app/design/frontend/[package]/[theme]/layout/local.xml
app/design/frontend/[package]/default/layout/local.xml
app/design/frontend/base/default/layout/local.xml

(ডিফল্ট শ্রেণিবদ্ধ অনুমান এবং কোনও কাস্টম সংজ্ঞায়িত শ্রেণিবদ্ধতা)

কিভাবে পরিবর্তন করা যায়

আপনার কেবল স্থানীয়.এক্সএমএল এ পরিবর্তনগুলি হওয়া উচিত, মূল এক্সএমএল ফাইলগুলিতে ইতিমধ্যে থাকা সংজ্ঞাগুলি পুনরাবৃত্তি করবেন না। এর অর্থ হ'ল সরাসরি ফাইলগুলিতে পরিবর্তন আনতে এক্সএমএল ফাইলগুলি ডিফল্ট থিম থেকে অনুলিপি করা থেকে বিরত থাকুন। আপনার থিমের layoutডিরেক্টরিটি পরিষ্কার রাখুন !

এর বৈশিষ্টসূচক উপাদানের local.xmlহয় <remove>বিদ্যমান ব্লক মুছে ফেলার জন্য সম্পূর্ণরূপে, <action method="unsetChild">এবং <action method="append">এক পিতা বা মাতা থেকে অন্য একটি ব্লক সরাতে, অথবা বিদ্যমান ব্লক অন্য কোন পদ্ধতি কলিং তাদের আচরণ পরিবর্তন করতে।

ম্যাজেন্টো ১.৯

ম্যাজেন্টো 1.9 দিয়ে শুরু করে, সর্বোত্তম অনুশীলনটি আসলে layout/local.xmlএই পরিবর্তনগুলির জন্য ব্যবহার না করা butetc/theme.xml

সংক্ষেপে, আপনি অ্যাপ / ডিজাইন / ফ্রন্টএন্ড / আপনারপ্যাকেজ / ইত্যাদি / থিম.এক্সএমএলে একটি লেআউট আপডেট যুক্ত করতে পারেন। সুবিধাটি হ'ল আপনার লেআউট আপডেটের লোড ক্রমের উপর আপনার নিয়ন্ত্রণ রয়েছে। ম্যাজেন্টো 1.9 এর আগে স্থানীয়.এক্সএমএল সর্বদা সর্বশেষে লোড হয়েছিল এবং এর পরে লেআউট নির্দেশিকা কার্যকর করা অসম্ভব ছিল।

আমি প্রকল্প-নির্দিষ্ট থিম সংশোধনগুলির জন্য স্থানীয়। XML আর ব্যবহার করছি না not আমি মনে করি লোকাল.এক্সএমএল কেবল পশ্চাদপদ সামঞ্জস্যতার কারণে ব্যবহৃত হয়েছে (1.9 এবং উপরে) কারণ এটি আর ব্যবহার করার কোনও মানে নেই। লোকাল.এক্সএমএলও ম্যাজেন্টো 2 ( https://github.com/magento/magento2/issues/1037 ) এ বাদ দেওয়া হয়েছে ।

সূত্র: https://erfanimani.com/dont-use-local-xml/

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