从控制器调用cms / phtml

时间:2013-09-12 06:14:55

标签: magento magento-1.7

我通过在那里调用phtml文件设计了来自cms的主页。我能够在默认的index.php文件中看到cms页面。

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

我试图直接从控制器显示phtml文件,但无法成功。 我试过this,但没有显示任何结果。

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

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

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

enter image description here 如何做到这一点?

3 个答案:

答案 0 :(得分:4)

您好,您将调用阻塞到cms页面内容,如下所示

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

答案 1 :(得分:0)

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

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

答案 2 :(得分: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();