web-dev-qa-db-ja.com

完全にレンダリングされたHTMLを変更できるフックは何ですか?

ViewsとViews Datasourceを使用して一部のJSONをレンダリングしていますが、Views Datasourceのバグが原因で、出力を適切にレンダリングできないようです。だから、私は回避策を探しています。

それを変更する最後のチャンスを私に与えるブラウザーに送り返されようとしている最終的な文字列を私に与える私のフックは私のテーマまたはモジュールに実装できますか?

編集:私は急いでいたので、その言葉遣いは不十分でした。ページが適切に表示されないとは、Views Datasourceのバグがデータフィールドに適切なデータフォーマッターを使用しないことを意味します。 JSONを正常に取得していますが、JSON内の一部の値が、関連するモジュールフォーマッタによって適切に処理されていません。この例では、Videoフィールドに動画URLとサムネイル画像URLを含めることができます。ビューはサムネイル画像のURLを表示するように構成されていますが、Views Datasourceのバグのため、代わりにビデオのURLを表示しています。

Views Datasourceはレンダー配列を使用して出力を生成していないため、レンダー配列を変更することはできません。

1
Kenny Wyland

私はhighlyバグの場所が明確にわかっている場合は、ページ出力を変更しないことをお勧めします。バラの答えを見てください。または、正確な問題を教えてください。

質問に答えて、レンダリングされるコンテンツを変更するにはhook_page_alter を使用します

1
AyeshK

hook_page_alter を試してください。これにより、最終的なページレンダー配列を変更できます

あなたも興味があるかもしれません

drupal_json_encode

1
David Thomas

Drupal 7の場合:

// Implement HOOK_page_alter. function MY_MODULE_page_alter(&$page) { // Add our processing to the #post_render functions. $page['#post_render'][] = 'MY_MODULE_page_post_render'; }

function MY_MODULE_page_post_render($html) { // Do something to the HTML for the page. $html = str_replace('apples', 'oranges', $html); return $html; }

0
netgenius.co.uk

View Datasourceモジュールを使用しているときにもこの問題が発生していますが、views-views-xml-style-raw.tpl.phpファイルを変更することで解決しました

「sites\all\modules\views_datasource-6.x-1.0-beta2\views_datasource\theme \」の下にあります

Drupal_set_header( "Content-Type:$ content_type; charset = utf-8");を置き換えます。と

drupal_set_header('Content-Type: text/xml;');

私もそれがあなたのために働くことを望みます。

0
Bala