लोड / बाहरी उपयोग के लिए Magento रूटिंग के बाहर एक ब्लॉक प्राप्त करें


15

मेरे पास एक बाहरी वेबपेज है और मैं इस बाहरी पेज में हेडर के रूप में उपयोग करने के लिए मैगेंटो फ्रेमवर्क से साइट हेडर ब्लॉक को खींचने की कोशिश कर रहा हूं। अभी तक मेरे पास इतना ही है:

// initialize Magento
$rootPath = dirname(dirname(__FILE__));
$mageInc = $rootPath . "/app/Mage.php";
include_once $mageInc;

Mage::app('admin')->setCurrentStore(0);

$headerBlock = Mage::app()->getLayout()->createBlock('page/html_header');
//also tried
//$headerBlock = Mage::app()->getLayout()->createBlock('page/html_header', 'header');

हालाँकि, निष्पादन रुक जाता है, और मुझे कोई त्रुटि संदेश नहीं मिलता है। मेरा लक्ष्य ब्लॉक को खींचना है Mage_Page_Block_Html_Header, जो मुझे लगता है कि मैं <block type="page/html_header" name="header" as="header">पेज.एक्सएमएल लेआउट फ़ाइल से लोड करने और इसकी सभी सामग्री का उपयोग कर सकता हूं । कि XML टैग अंदर लपेटा गया है

<default translate="label" module="page">
  <block type="page/html" name="root" output="toHtml" template="page/1column.phtml">

टैग, तो शायद मुझे यह निर्दिष्ट करने की आवश्यकता है कि किसी तरह? मुझे यकीन नहीं है कि मैं क्या गलत कर रहा हूं और यहां से कहां जाना है।


यह कोड काम करता है, लेकिन मुझे लॉगआउट बटन में कोई समस्या है, किसी के पास एक ही मुद्दा है? सादर
मासिमो केमोनी

जवाबों:


12

मुझे गुप्त अवयव मिल गया .. और यह है Mage::app()->loadArea('frontend');

<?php
include_once "app/Mage.php";
umask(0);
Mage::app()->loadArea('frontend');

$layout = Mage::getSingleton('core/layout');

//load default xml layout handle and generate blocks
$layout->getUpdate()->load('default');
$layout->generateXml()->generateBlocks();

//get the loaded head and header blocks and output
$headBlock = $layout->getBlock('head');
$headerBlock = $layout->getBlock('header');
echo $headBlock->toHtml() . $headerBlock->toHtml();

धन्यवाद @ चिह्न!


3

आप वहां 99% हैं। आपको ब्लॉक पर tohtml () कॉल करने की आवश्यकता है, और फिर परिणाम देखने के लिए इसे प्रतिध्वनित करें:

<?php
// initialize Magento
$rootPath = dirname(dirname(__FILE__));
$mageInc = $rootPath . "/app/Mage.php";
include_once $mageInc;

Mage::app('admin')->setCurrentStore(0);

echo $headerBlock = Mage::app()->getLayout()->createBlock('page/html_header')->toHtml();

हां, मैंने कोशिश की है और कुछ भी नहीं। हालांकि यह उत्तर है, मैंने इसे एक नए इंस्टाल पर आजमाया है और यह काम करता है। धन्यवाद।
निक रोलैंडो

मुझे यह कोड काम कर रहा है, हालाँकि यह साइट हेडर के पास कुछ भी नहीं देता है। साइट हेडर में कई लोगो, मेनू और लिंक होते हैं। यह मुझे शीर्ष लेख में कई छवियों में से एक देता है। शायद मैं इसे सही ढंग से लोड नहीं कर रहा हूं?
निक रोलैंडो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.