如何在代码中使用特定的Magento模板在Magento中创建空白页(外部页)
不确定解决这个问题的最佳方法,我正在寻找解决方案。我需要创建一个带有特定主题的空白页面(稍后我会添加代码)。我已经在:/app/design/frontend/indigo/mytheme/创建了自定义主题,并且需要知道如何创建一个页面,让我们调用/test.php来应用主题 到目前为止,代码是这样的,但这只显示默认主题:如何在代码中使用特定的Magento模板在Magento中创建空白页(外部页),magento,Magento,不确定解决这个问题的最佳方法,我正在寻找解决方案。我需要创建一个带有特定主题的空白页面(稍后我会添加代码)。我已经在:/app/design/frontend/indigo/mytheme/创建了自定义主题,并且需要知道如何创建一个页面,让我们调用/test.php来应用主题 到目前为止,代码是这样的,但这只显示默认主题: <?php define('MAGENTO_ROOT', $_SERVER['DOCUMENT_ROOT']); $mageFilename = MAGENTO_ROO
<?php
define('MAGENTO_ROOT', $_SERVER['DOCUMENT_ROOT']);
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
if (!file_exists($mageFilename)) {
echo $mageFilename." was not found";
exit;
}
require_once $mageFilename;
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');
$footerBlock = $layout->getBlock('footer');
echo $headBlock->toHtml() . $headerBlock->toHtml();
?>
My content goes here
<?php
echo $footerBlock->toHtml();
?>
getUpdate()->load('default');
$layout->generateXml()->generateBlocks();
//获取加载的头和头块并输出
$headBlock=$layout->getBlock('head');
$headerBlock=$layout->getBlock('header');
$footerBlock=$layout->getBlock('footer');
echo$headBlock->toHtml()$headerBlock->toHtml();
?>
我的内容在这里
解决方案非常基本,您只需设置店铺ID:
Mage::app()->setCurrentStore(STORE_ID);
最后的代码如下所示:
<?php
define('MAGENTO_ROOT', $_SERVER['DOCUMENT_ROOT']);
define('STORE_ID', 15);
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
if (!file_exists($mageFilename)) {
echo $mageFilename." was not found";
exit;
}
require_once $mageFilename;
Mage::app()->setCurrentStore(STORE_ID);
Mage::app()->loadArea('frontend');
$layout = Mage::getSingleton('core/layout');
//load default xml layout handle and generate blocks
$layout->getUpdate()->load('default');
$layout->generateXml()->generateBlocks();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<?php echo $layout->getBlock('head')->toHtml() ?>
</head>
<body>
<?php echo $layout->getBlock('after_body_start')->toHtml() ?>
<?php echo $layout->getBlock('global_notices')->toHtml() ?>
<?php echo $layout->getBlock('header')->toHtml() ?>
<div class="content-wrapper">
<div class="container_12">
<?php echo $layout->getBlock('breadcrumbs')->toHtml() ?>
<div class="main-container col1-layout">
<div class="grid_12 col-main">
<?php echo $layout->getBlock('global_messages')->toHtml() ?>
<?php echo $layout->getBlock('content')->toHtml() ?>
My content goes here
</div>
<div class="clear"></div>
</div>
</div>
</div>
<?php echo $layout->getBlock('footer')->toHtml() ?>
</body>
</html>
getUpdate()->load('default');
$layout->generateXml()->generateBlocks();
?>
我的内容在这里
我认为有一些更干净的解决方案可以从这些解决方案中获得:取决于您希望离核心有多近:)
编辑-一个干净完整的解决方案:
创建新的自定义控制器()
在themes local.xml(/app/design/frontend/[vendor]/[theme]/layout/local.xml)中:
?我认为这是一个合理的问题,我无法找到答案。也许不是最干净的解决方案,但我认为问题本身是非常合理的!世跆拳道如此。。我也在这里找同样的东西。。但我希望能找到更干净的解决方案。。
class Vendor_Module_LoremController extends Mage_Core_Controller_Front_Action
{
/**
* Get a shop now block for specific product
*/
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
// Zend_Debug::dump($this->getLayout()->getUpdate()->getHandles()); // If you need to debug to see which layout handles are available
}
}
<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
<vendor_module_lorem_index>
<remove name="header" />
<remove name="footer" />
</vendor_module_lorem_index>
</layout>