একটি প্যাকেজে একাধিক স্থানীয়.xml লেআউট ফাইল


13

বলুন একটি প্যাকেজে দুটি থিম রয়েছে:

  • বেস (ডিফল্ট হিসাবে সেট)
  • শিশু (মূল থিম হিসাবে সেট করুন)

উভয়টিতে লেআউট ফোল্ডারে একটি লোকাল.এক্সএমএল রয়েছে - চাইল্ড থিম থেকে কেবল লোকাল.এক্সএমএল লোড হবে, সুতরাং বেস লোকাল.এক্সএমএলে কোনও সিএসএস, জেএস বা লেআউট আপডেট লোড হবে না।

পেজ.এক্সএমএল ব্যবহার না করে (সুতরাং লোকাল.এক্সএমএল হিসাবে একই কার্যকারিতাটির জন্য কিন্তু উত্তরাধিকার হিসাবে মঞ্জুরি দেওয়া), আমার কাছে বেস এবং একটি সন্তানের জন্য একটি এক্সএমএল ফাইল থাকবে যা উভয়ই ডাকা যায়?

এর জন্য কি ব্যবহারযোগ্য এক্সএমএল ফাইল যুক্ত করার একমাত্র উদ্দেশ্য (যেমন: বেস-লোকাল.এক্সএমএল) দিয়ে একটি মডিউল তৈরি করা দরকার?

উত্তর:


9

আপনি সঠিক, এবং একাধিক থিম সহ সাইটগুলির জন্য এটি একটি বৈধ ও ব্যবহৃত পদ্ধতি। কয়েকটি অতিরিক্ত (স্বল্প-পরিচিত, খুব কম ব্যবহৃত) বিকল্প রয়েছে যা বিভিন্ন স্টোর স্কোপের ক্ষেত্রে প্রযোজ্য লেআউট আপডেটের জন্য ব্যবহার করা যেতে পারে: স্টোর হ্যান্ডেল এবং থিম হ্যান্ডেল।

অ্যাকশন কন্ট্রোলার সুপারক্লাস থেকে Mage_Core_Controller_Varien_Action(লিঙ্ক) :

public function addActionLayoutHandles()
{
    $update = $this->getLayout()->getUpdate();

    // load store handle
    $update->addHandle('STORE_'.Mage::app()->getStore()->getCode());

    // load theme handle
    $package = Mage::getSingleton('core/design_package');
    $update->addHandle(
        'THEME_'.$package->getArea().'_'.$package->getPackageName().'_'.$package->getTheme('layout')
    );

    // load action handle
    $update->addHandle(strtolower($this->getFullActionName()));

    return $this;
}

'ডিউচ' কোড এবং 'ডিফল্ট' প্যাকেজ, 'জার্মান' থিমের একটি থিম কনফিগারেশন সহ একটি স্টোরের জন্য, নিম্নলিখিত হ্যান্ডলগুলি প্রায় প্রতিটি দৃশ্যেই প্রযোজ্য, কারণ বেশিরভাগ দর্শন তাদের ব্যবহার করে:

<STORE_deutsch>
<THEME_frontend_default_german>

প্রয়োগের মাধ্যমে এই হ্যান্ডলগুলি একইভাবে ব্যবহার করা যেতে পারে <default />


আহ, এটি জানার জন্য সহায়ক - আমার মনে হয় যে আমার ব্যবহারের ক্ষেত্রে কিছুটা আলাদা যা আপনি প্রস্তাব দিচ্ছেন তার থেকে - আপনার এখনও একটি 'বেস' থিমের একটি স্থানীয়.এক্সএমএল থাকলে তবে শিশুদের থিমগুলি লক্ষ্য করতে <THEME_frontend_default_german> ব্যবহার করুন সেই বেস থিম লোকাল.এক্সএমএল থেকে - প্রতিটি চাইল্ড থিমের আলাদা লোকাল.এক্সএমএল নেই? এটা সঠিক নাকি আমি ভুল বুঝাবুঝি করছি?
গ্লোব

এটাই. দুর্ভাগ্যক্রমে, লক্ষ্যবস্তু হ্যান্ডলগুলি বিস্তৃতভাবে প্রয়োগ হয়, তাই বলার উপায় নেই যে, "স্টোর এক্সের ক্যাটালগ_প্রডাক্ট_ভিউ পৃষ্ঠার জন্য রুট ব্লক টেম্পলেট আপডেট করুন"। তবে, স্টোর এক্সের যদি সমস্ত পৃষ্ঠায় একটি কাস্টম জেএস ফাইল প্রয়োজন হয় তবে এটি ব্যবহার করা সম্ভব হবে <STORE_x><action method="addJs" block="head"><file>custom/js.js</file></action></STORE_x>
বেনমার্কস

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