1

我需要将基于 Zend 的站点的主导航/标题添加到第三方产品的顶部。第三方产品将允许我将服务器上的任何文件包含到他们的布局中。我的想法是我会运行一个 cron,它将我的 Zend 布局的标题部分每晚保存到一个硬编码的 html 文件中。然后在第三部分读入相应的文件。

所以我尝试了:

$htmlcontent = $this->view->render('file.phtml');

然后将 $htmlcontent 保存到文件中。它正确地保存了 file.phtml 中的所有内容,但不包括我真正需要的部分布局/标题。我将如何将生成的所有内容(包括布局)保存到文件中。

谢谢夏天

4

1 回答 1

0

视图脚本只是整个布局的一部分。在正常的 Zend Framework 设置中,您将有一个布局,其中您的视图脚本(例如,file.phtml)在您的情况下。布局文件将如下所示:

   <html>
      <body>
          <div>My header here</div>
          <?php echo $this->layout()->content; ?>
          <div>I have a footer here.</div>
      </body>
   </html>

$this->layout()->content将根据您所在的页面保存您的视图脚本(例如,当您调用 fileAction() 时的 file.phtml)。

因此,要访问页面的完整 HTML,您有两种选择:

  1. 使用旧的file_get_contents并通过 http 请求将完整呈现的 HTML 转换为字符串。

    $htmlcontent = file_get_contents('http://yourdomain/index/file');
    
  2. 获取 Zend Framework 的布局实例,为其分配内容,并将其呈现为字符串,如下所示:

     $layout = $this->_helper->layout->getLayoutInstance();
     $layout->content = $this->view->render('file.phtml');
     $htmlcontent =  $layout->render();
    
于 2012-12-28T03:04:58.857 回答