"অবৈধ ব্লক ধরণের .." ত্রুটিটি কীভাবে নির্ধারণ করবেন?


19

কীভাবে এই ত্রুটিটি সনাক্ত করা যায় তা নিশ্চিত নয়, আমি এক সপ্তাহ ধরে গুগল করছি এবং এর সমাধান আমি খুঁজে পাচ্ছি না। কোন ধারনা?

2013-06-10T04:04:28+00:00 ERR (3): 
exception 'Mage_Core_Exception' with message 'Invalid block type: ' in /home/xxxxxxx/public_html/app/Mage.php:594
Stack trace:
#0 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block t...')
#1 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('', Array)
#2 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('', 'checkout.cart')
#3 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('', 'checkout.cart')
#4 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#5 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#6 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#7 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#8 /home/xxxxxxx/public_html/app/code/core/Mage/Checkout/controllers/CartController.php(159): Mage_Core_Controller_Varien_Action->loadLayout()
#9 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Checkout_CartController->indexAction()
#10 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#11 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#12 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#13 /home/xxxxxxx/public_html/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#14 /home/xxxxxxx/public_html/index.php(89): Mage::run('', 'store')
#15 {main}

উত্তর:


20

আপনি পোস্ট করেছেন স্ট্যাক ট্রেসের উপর ভিত্তি করে, দেখে মনে হচ্ছে এটি ঘটছে যখন ম্যাজেন্টো লেআউট আপডেট এক্সএমএল ফাইলগুলি লোড করছে এবং তাদের ব্লকগুলি তৈরি করতে ব্যবহার করছে যা পৃষ্ঠার জন্য এইচটিএমএল রেন্ডার করবে।

এই লাইনগুলি সমস্যা বলে মনে হচ্ছে

#1 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('', Array)
#2 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('', 'checkout.cart')
#3 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('', 'checkout.cart')

addBlock, createBlock, এবং _getBlockInstanceপদ্ধতি সব আশা প্রথম প্যারামিটার ব্লক জন্য একটি শ্রেণী ওরফে স্ট্রিং যাবে। কিছু একটা checkout/cart। তবে আপনার সিস্টেমে এই স্ট্রিংটি অনুপস্থিত।

->addBlock('', 'checkout.cart')

যেহেতু ম্যাজেন্টো এত প্রসারণযোগ্য, এরকম অসংখ্য কারণ রয়েছে। সর্বাধিক সাধারণ কারণটি হ'ল কোনওভাবে আপনার catalog.xmlফাইলটি এমনভাবে পরিবর্তিত হয়েছে

<block type="checkout/cart" name="checkout.cart">

অনুপস্থিত এটির typeগুণাবলী। এটি দেখতে যেমন হতে পারে

<block name="checkout.cart">

অথবা এটি টাইপও হতে পারে

<block typeX="checkout/cart" name="checkout.cart">

আশা করি এইটি কাজ করবে. সমস্যাটি যদি অন্য কিছু হয়ে যায় তবে ফিরে আসুন এবং সঠিক উত্তরটি পোস্ট করতে ভুলবেন না।


5
সম্ভবত এর <block name="checkout.cart">পরিবর্তে এর মতো কিছু <reference name="checkout.cart">। আমি এটি ইন্টারনেটে থাকা কয়েকটি থিমগুলিতে দেখেছি (বিনামূল্যে বা অর্থ প্রদান)। layoutথিমের ফোল্ডারে একটি সাধারণ অনুসন্ধানে এই তত্ত্বটি নিশ্চিত (বা বরখাস্ত) করা উচিত।
মারিয়াস

2
ঠিক আছে, কোনও referenceট্যাগের ফলে কল কল স্ট্যাক হয় না - কল createBlockকরা হচ্ছে, যার অর্থ এটি একটি blockট্যাগ।
অ্যালান ঝড়

3

আমার মূল পোস্টের মন্তব্যগুলির সাহায্যে, আমি আপত্তিজনক কোডটি সন্ধান করতে সক্ষম হয়েছি!

এখানে স্নিপেটটি ব্যতিক্রম ঘটায়:

<checkout_cart_index>
    <reference name="content">
        <block name="checkout.cart">            
            <!-- Add CMS Static Block -->
            <block type="cms/block" name="snippet.cart.bottom" as="snippet_cart_bottom">
                <action method="setBlockId"><block_id>snippet_cart_bottom</block_id></action>
            </block>

            <!-- Add CMS Static Block -->
            <block type="cms/block" name="snippet.cart.coupon.below" as="snippet_cart_coupon_below">
                <action method="setBlockId"><block_id>snippet_cart_coupon_below</block_id></action>
            </block>

            <!-- Add CMS Static Block -->
            <block type="cms/block" name="snippet.cart.empty.bottom" as="snippet_cart_empty_bottom">
                <action method="setBlockId"><block_id>snippet_cart_empty_bottom</block_id></action>
            </block>

            <!-- Add CMS Static Block -->
            <block type="cms/block" name="snippet.cart.list.below" as="snippet_cart_list_below">
                <action method="setBlockId"><block_id>snippet_cart_list_below</block_id></action>
            </block>
        </block>
    </reference>
</checkout_cart_index>

সংশোধিত কোড আর ব্যতিক্রম ঘটায় না:

<checkout_cart_index>
    <reference name="checkout.cart">        
            <!-- Add CMS Static Block -->
            <block type="cms/block" name="snippet.cart.bottom" as="snippet_cart_bottom">
                <action method="setBlockId"><block_id>snippet_cart_bottom</block_id></action>
            </block>

            <!-- Add CMS Static Block -->
            <block type="cms/block" name="snippet.cart.coupon.below" as="snippet_cart_coupon_below">
                <action method="setBlockId"><block_id>snippet_cart_coupon_below</block_id></action>
            </block>

            <!-- Add CMS Static Block -->
            <block type="cms/block" name="snippet.cart.empty.bottom" as="snippet_cart_empty_bottom">
                <action method="setBlockId"><block_id>snippet_cart_empty_bottom</block_id></action>
            </block>

            <!-- Add CMS Static Block -->
            <block type="cms/block" name="snippet.cart.list.below" as="snippet_cart_list_below">
                <action method="setBlockId"><block_id>snippet_cart_list_below</block_id></action>
            </block>            
    </reference>
</checkout_cart_index>

0

আমি পুরানো ব্লকগুলি সরিয়ে কেবল আমার সমস্যাগুলি সমাধান করতে সক্ষম হয়েছি। আমি এটি দ্বারা:

লাইন যুক্ত করা হচ্ছে Mage::log($className . ' - ' $blockName, null, 'logfile.log');/ _P/code/core/Mage/Core/Model/Layout.php এ '_জেনারেট ব্লক' ফাংশনে

তাই ভালো:

$block = $this->addBlock($className, $blockName);
if (!$block) {
    Mage::log($className . ' - ' $blockName, null, 'logfile.log');
    return $this;
}

তারপরে আমি আমার থিম / লেআউটে আমার স্থানীয়.xML ফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করে ব্লকগুলি সরিয়েছি

<remove name="fb8cd356f514800e782dfca09d40465d"/>
<remove name="1f0592cf88e12e898c194d5d18250c51"/>
<remove name="downloads.product"/>

আশা করি এটি কাউকে সাহায্য করবে। আমার ব্যতিক্রম.লগ ফাইলটিতে লিখিত সমস্ত বোকাটিকে দাঁড়াতে পারেনি।

হালনাগাদ:

আমি খুঁজে পেয়েছি যে এই কোডটি ব্যবহার করে /app/code/core/Mage/Core/Model/Layout.php- এ জেনারেট ব্লক ফাংশনে 'এই return ফিরুন before এর ঠিক আগে

if ($_SERVER['HTTP_X_FORWARDED_FOR'] == '00.00.00.00') {
    Mage::log(Zend_Debug::dump($parentBlock, null, false), null, 'export_all_xml.log');
}

আপনার খুব প্রয়োজন হলে অবশ্যই 'HTTP_X_FORWARDED_FOR' কে 'REMOTE_ADDR' এ পরিবর্তন করুন।

আপডেট 2

আমি যুক্ত করে আমার সাইটটিতে সমস্যাটি খুঁজে পেয়ে শেষ করেছি:

if ($_SERVER['HTTP_X_FORWARDED_FOR'] == '00.00.00.00') {
    Mage::setIsDeveloperMode(true);
}

ঠিক উপরের 'ম্যাজ :: থ্রো এক্সসেপশন (ম্যাজ :: সহায়ক (' মূল ')) -> __ (' অবৈধ ব্লকের ধরণ:% s ', $ ব্লক));' ফাইলের মধ্যে '_getBlockInstance' ফাংশন '/ অ্যাপ্লিকেশন / কোড / কোর / ম্যাজ / কোর / মডেল / লেআউট.এফপি'

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