1

我通过调用 phtml 文件从 cms 设计了主页。我可以在默认 index.php 文件中看到该 cms 页面。

然后,我创建了网站。我想在我的新网站的主页上显示这个 cms 页面(索引控制器和索引操作)。

我试图直接从控制器显示 phtml 文件,但未能成功。我试过这个,但它没有显示任何结果。

我想直接或通过调用 cms 页面从控制器显示 phtml 文件。但做不到。

更新:
我能够加载 phtml 文件。但它并没有显示仅来自这个文件的结果(来自原始文件的图像没有加载,但我正在调查它)。
它也显示默认布局。我想删除默认布局,只想显示我从代码加载的文件。

从两个不同的文件加载内容(我猜),我想删除不需要的内容。

在此处输入图像描述 如何做到这一点?

4

3 回答 3

4

您好,您将在 cms 页面内容中调用 block,如下所示

{{block type='core/template' template='hello.phtml'}} 或

将以下代码添加到您的控制器中

$this->loadLayout();    
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template','helloworld_index',array('template' => 'helloworld/index.phtml'));
$this->getLayout()->getBlock('content')->append($block);
$this->renderLayout();
于 2013-09-12T06:21:29.507 回答
0

它总是加载默认值,因为布局中的默认句柄没有被覆盖。您必须创建一个新的布局文件。在您的句柄 module_controller_action 中设置完整的页面布局。之后加载此布局。通过这个会给你一个简短的想法http://www.magentocommerce.com/design_guide/articles/intro-to-layouts

然后创建一个 layout.xml 做搜索。这就是所有需要的

于 2013-09-19T11:14:52.503 回答
0

试试这个

    $this->loadLayout();   
    $this->_initLayoutMessages('catalog/session'); //messages (optional)
    $this->getLayout()->getBlock('head')->setTitle($this->__('My Title')); //your page title (optional)
    $block = $this->getLayout()->createBlock('core/template')->setTemplate('foldername/filename.phtml')->toHtml(); //set layout file
    $this->getLayout()->getBlock('content')->append($block);
    $this->renderLayout();
于 2014-07-16T12:14:48.627 回答