1

Zendベースのサイトのメインナビゲーション/ヘッダーをサードパーティ製品の上部に追加する必要があります。サードパーティ製品を使用すると、サーバー上の任意のファイルをレイアウトに含めることができます。私の考えは、Zendレイアウトのヘッダー部分をハードコードされたhtmlファイルに毎晩保存するcronを実行することでした。次に、3番目の部分の適切なファイルを読み取ります。

だから私は試しました:

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

次に、$htmlcontentをファイルに保存します。file.phtmlからすべてを正しく保存しますが、本当に必要な部分であるレイアウト/ヘッダーは除外します。生成されたすべて(レイアウトを含む)をファイルに保存するにはどうすればよいですか?

おかげで夏

4

1 に答える 1

0

ビュースクリプトは、レイアウト全体の一部にすぎません。通常のZendFrameworkセットアップでは、ビュースクリプト(例:file.phtml)がケースに含まれるレイアウトが1つあります。レイアウトファイルは次のようになります。

   <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にアクセスするには、次の2つのオプションがあります。

  1. 古き良きfile_get_contentsを使用して、完全にレンダリングされたHTMLをhttpリクエストで文字列に取得します。

    $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 に答える