โหลด / รับบล็อกนอก Magento เส้นทางสำหรับใช้ภายนอก


15

ฉันมีหน้าเว็บภายนอกและฉันพยายามดึงส่วนหัวของไซต์จากเฟรมเวิร์ก Magento เพื่อใช้เป็นส่วนหัวในหน้าภายนอกนี้ นี่คือสิ่งที่ฉันมี:

// 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">และเนื้อหาทั้งหมดจากไฟล์เค้าโครง page.xml แท็ก XML นั้นห่ออยู่ข้างใน

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

แท็กดังนั้นฉันอาจต้องระบุว่าอย่างใด ฉันไม่แน่ใจว่าฉันทำอะไรผิดและไปจากที่นี่


รหัสนี้ใช้งานได้ แต่ฉันมีปัญหากับปุ่มออกจากระบบบางคนมีปัญหาเดียวกันหรือไม่ ขอแสดงความนับถือ
Massimo Camoni

คำตอบ:


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();

ใช่ฉันได้ลองแล้วไม่มีอะไร นี่คือคำตอบแม้ว่าฉันลองในการติดตั้งใหม่และใช้งานได้ ขอบคุณ
Nick Rolando

ฉันได้รับรหัสนี้ทำงานได้ แต่มันก็ไม่ได้ทำให้ฉันใกล้สิ่งที่ส่วนหัวของเว็บไซต์มี ส่วนหัวของไซต์มีโลโก้เมนูและลิงก์มากมาย สิ่งนี้ทำให้ฉันเป็นหนึ่งในหลาย ๆ ภาพในส่วนหัว บางทีฉันโหลดไม่ถูกต้อง?
Nick Rolando
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.