টিএল; ডিআর: আমি কি লেআউটটি লোডিং ডিবাগ করতে পারি এমন কোনও উপায় আছে? যেহেতু আমি বিশ্বাস করি যে একটি মডিউলের লেআউট অন্যটির সাথে বিরোধী।
আমি তৈরি একটি পূর্ববর্তী প্রশ্নের সাথে সম্পর্কিত: সমস্ত থিমগুলিতে দেখানোর জন্য একটি মডিউল লেআউট কীভাবে তৈরি করা যায়
আমি আমার স্থানীয় পরীক্ষার পরিবেশে সফলভাবে আমার মডিউলটি লোড করেছি (ওরফে আমার বিকাশ পিসি), 3 টি ভিন্ন থিমের মধ্যে স্যুইচিং পরীক্ষা করা হয়েছে এবং এটি ঠিক আছে। তারপরে আমি টেস্ট বা আমাদের "প্রাক-উত্পাদন" পরিবেশের মডিউলটি আপডেট করেছিলাম, যেখানে প্রচুর আলাদা মডিউল রয়েছে, আমাদের মালিকানাধীন কিছু মালিকানাধীন। এই পরিবেশে, মডিউলটি পণ্যের সম্মুখ পৃষ্ঠায় কী প্রয়োজন তা দেখায় না। কিছু পরীক্ষার পরে, অবশেষে আমি এই সিদ্ধান্তে পৌঁছেছি যে সমস্যাটি লেআউট লোড প্রক্রিয়াতে হওয়া উচিত।
সুতরাং, লেআউটটি লোডিংয়ের কোনও উপায় আমি কীভাবে করতে পারি, কীভাবে বিভিন্ন মডিউলগুলি তাদের নিজস্ব ব্লকগুলি প্রতিস্থাপন বা যুক্ত করতে পারে? আমার বক্তব্যটি হ'ল আমি বিশ্বাস করি যে কমপক্ষে একটি মডিউল রয়েছে যা আমার সাথে বিরোধী হওয়া উচিত। এবং যেহেতু আমাদের অনেকগুলি মডিউল রয়েছে আমি মডিউলগুলিকে একে একে অক্ষম করার জন্য ভিন্ন পদ্ধতির সন্ধান করছি এবং দেখুন সমস্যাটি কোনটি।
আমার কনফিগারেশন। এক্সএমএল ফাইলটি হ'ল:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Dts_Banners>
<version>0.1.0</version>
</Dts_Banners>
</modules>
<global>
<blocks>
<banners>
<class>Dts_Banners_Block</class>
</banners>
</blocks>
....
<events>
<controller_action_layout_load_before>
<observers>
<attributesethandle>
<class>Dts_Banners_Model_Observer</class>
<method>addAttributeSetHandle</method>
</attributesethandle>
</observers>
</controller_action_layout_load_before>
</events>
</global>
....
</config>
আমার পর্যবেক্ষক ফাইল:
<?php
class Dts_Banners_Model_Observer
{
/**
* Checks if the search text on the list of active campaigns (dts_banners_admin table) has some of the comma separated text on the product name
* If text found, add a layout handle PRODUCT_CAMPAIGN_BANNER after PRODUCT_TYPE_<product_type_id> handle
* This handle is handled on the banners.xml layout file that triggers the use of the Front.php frontend block
*
* Event: controller_action_layout_load_before
*
* @param Varien_Event_Observer $observer
*/
public function addAttributeSetHandle(Varien_Event_Observer $observer) {
$product = Mage::registry('current_product');
if (!($product instanceof Mage_Catalog_Model_Product)) return;
....
....
}
এটি আমার লেআউট ফাইল:
<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
<default>
<reference name="content">
<block type="banners/front" name="banners.front" as="banners_front" template="banners/product.phtml" before="-"/>
</reference>
</default>
</layout>
আগে আমার চেয়ে কিছুটা আলাদা ছিল যেখানে আমার পরিবর্তে <default></default>
ছিল <Product_Campaign_Banner></Product_Campaign_Banner>
। এটিও কাজ করেছিল।
আমার product.phtml ফাইল:
<div class="visual">
<?php echo $this->showCampaign(); ?>
</div>
product.phtml
ফাইল লোড হয় না এবং এর ফলে showCampaign
মৃত্যুদন্ড কার্যকর করা হয় না এবং নেই যেখানে সব প্রয়োজনীয় এইচটিএমএল তৈরি করা হয়।