2017-11-06 7 views
0

Joomlaでいくつかのビューを使用して管理者コンポーネントを構築しました。 1つのビュー '要約'は、AJAXを使用して '詳細'を 'raw'の形式で表示し、HTMLをページに挿入します(素晴らしい機能)。私は今、ビュー '要約'のための 'pdf'フォーマットを持っています。これは、 'raw'フォーマットのビュー 'details'から取得したものと同じ内容でいっぱいにしたいものです。私はPDFの成功した "Hello World"を持っていますが、PHPを使用して「詳細」ビューを取得してPDFを記入する方法を決定することができません。Joomlaの管理者コンポーネントでcurlまたはfile_get_contentsを使用する

私は、次の試してみました:私は形式を指定することはできませんので、失敗し

$this->loadTemplate('details'); 

「生の」、Joomlaのエラー:レイアウトdefault_detailsが見つかりません。

file_get_contents('same url as successful AJAX call'); 

エラーログで失敗しました:ストリームを開くことに失敗しました:HTTP要求に失敗しました! HTTP/1.1 403は禁止されています。 curlで同じ戦略を使用すると、認証にも失敗します。私はカールコールで認証の詳細を渡すことができますが、私は現在のユーザーのユーザー名とハッシュパスワードを取得することしかできないようです。私は、アクセス権を持っているユーザーの資格情報をハードコードできると思うが、それは安全ではないようだ。

この時点で、私はすべてのコードを詳細default.phpに複製し、そのモデルを利用してデータを取得することができますが、私の良いプログラマは「NO !!!」と叫んでいます。

答えて

0

ご質問のとおり、ページのHTMLとPDFの両方のエンコーディングを提供したいと考えています。 HTMLビューでは、クライアントサイドのAJAXを使用して、他のビューからデータを読み込んでページに表示しています。これは、PDFファイルをサーバー側でレンダリングする必要があるため、PDFビューでは機能しません。

file_get_contents()アプローチは意味がありません。動的コンテンツ(ファイルシステムに保存された静的ファイルではありません)からPDFファイルをレンダリングしようとしています。

他のビューを呼び出すことで、クライアント側ではなく、PHPコードに含めることができます。これを行う方法は、他のビューがコンポーネントかモジュールかによって異なります。

関連する問題