2012-12-28 20 views
1

我需要將我的基於Zend的網站的主導航/標題添加到第三方產品的頂部。第三方產品將允許我將服務器上的任何文件包含到其佈局中。我的想法是我會運行一個cron,它會將我的Zend佈局的標題部分每晚保存到一個硬編碼的html文件中。然後在第三部分的相應文件中閱讀。Zend Framework:將完整頁面保存到文件

所以,我想:

$ htmlcontent = $這個 - >查看 - >渲染( 'file.phtml');

然後將$ htmlcontent保存到文件。它從file.phtml中正確保存了所有內容,但不包括佈局/標題,這是我真正需要的部分。我將如何去保存生成的所有東西(包括佈局)到一個文件。

感謝 夏天

回答

0

視圖文件僅僅是一個整體佈局的一部分。在一個普通的Zend框架設置中,您將擁有一個佈局,其中您的視圖腳本(例如,file.phtml)在您的案例中。佈局文件看起來是這樣的:

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

$這個 - >佈局() - >內容將持有你的看法稿,並根據你在(例如,file.phtml當您的通話fileAction頁面())。

因此,訪問你的頁面的完整HTML,你有兩個選擇:

  1. 使用好老file_get_contents,並得到完整呈現的HTML與HTTP請求字符串。

    $htmlcontent = file_get_contents('http://yourdomain/index/file'); 
    
  2. 獲取Zend框架的佈局實例,內容分配給它,並如下使它對一個字符串:

    $layout = $this->_helper->layout->getLayoutInstance(); 
    $layout->content = $this->view->render('file.phtml'); 
    $htmlcontent = $layout->render(); 
    
+0

謝謝! $ this - > _ helper-> layout-> getLayoutInstance();正是我錯過的! – summerg

+0

不客氣。 – janenz00