筆者のDrupalで作成したあるサイトでは、コンテンツタイプやワークフローのステータスなど、ユーザから見るといろんなデータの種類がある。
なので、ユーザがログインすると、ユーザのロールに応じて、Aコンテンツの申請中データが何件、承認済みのデータが何件などと一覧を表示しています。
この一覧は、Blocksの中に、PHPでプログラムを書いています。
ところが、先日Drupalのアップデート、モジュール群のアップデートを行ったら、このPHPプログラムが一切動かなくなった。
そこで、このPHPプログラムを見直すことに。
$viewname = "views_name"; $view = views_get_view($viewname); $view->get_total_rows = TRUE; $view->execute(); print $view->total_rows;
いろいろ英語サイトをググった結果、上記のソースに変更。
どうせPHPで書くなら、viewsを使わなくたって、直接SQL文を書いたらいいじゃん!っという声も聞こえそうですが、仕様変更など含めたメンテナンス性の向上。それと件数表示後に、その内訳の詳細一覧にどのみちviewsを作るので、兼用で済むので、こうしてます。