viewsモジュールのsqlオーバーライド方法について

Events happening in the community are now at Drupal community events on www.drupal.org.
gg45's picture

たびたびお世話になります。

現在viewsモジュールを利用してノードの一覧ページを作成しています。
その中で、重複行があるのでDISTINCTを利用して重複を回避したいと思っているのですが、
Drupal(views)が作成したsqlをオーバーライドする方法をお教えいただけませんでしょうか。

また、上記対応できるような便利なモジュール等ございましたらお教えいただけると大変助かります。

どうぞよろしくお願い致します。

Comments

jaypan's picture

Viewsのsqlをオーバーライドする方法はないと思います。DISTINCTを使っても、重複なデータが表示していますか?

Only local images are allowed.

Viewsには distinct

dokumori's picture

Viewsには distinct の設定があるので、まずそれを試してみてはどうでしょう。
Views 設定画面の Basic settings に 'Distinct' という項目があるので、これを 'Yes' に設定してみてください。

それでも駄目な場合、以下の二つの hook のいずれかで対応できると思います:

hook_views_pre_execute()

hook_db_rewrite_sql()

オーバーライドできました。

gg45's picture

Jay Matwichukさん、dokumoriさん。

ごれんらくありがとうございます。
やりたかったことが、viewsのdistinctだけではできなかったので、
hook_db_rewrite_sql()を利用し、無事オーバーライドできました。

本当にありがとうございました。

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: