Pagerが表示されなくなった

カテゴリ アップデート コアバージョン 7.28 関連モジュール Views

Viewsモジュールのセキュリティアップデート(3.7→3.8)がでたので、アップデートしたら一部のViewsのPagerが表示されなくなりました。
 
原因と対策を教えてください。

コメント

ユーザー actbrain の写真

当不具合は弊社も確認しています。
 
 
「一部のViews Pager」とは以下の条件にマッチしている場合に限るようです。
 
1.フォーマット:を「テーブル」または「グリッド」にしている。
2.フィールド:内で「Global: PHP」を利用している。
3.ページャーを利用している。
 
 
現状、パッチが出ていないようなので、利用側で対策しなければならないようです。
サイトにより、以下の何れかの対策なります。

1.Views3.8への(セキュリティ)アップデートを止めておく(クライアントが了承しない場合多し)
2.フォーマット:を「テーブル」、「グリッド」以外にして、表示:を「フィールド」以外にする(※1)
3.フィールド:内での「Global: PHP」を止め、他の方法(※2)に置き換える。
4.フィールドのままで「Global:PHP」を止める(※3)

※1)表示:を「フィールド」以外にする:
 従来、フィールドで表示していた内容をテンプレートなどに置き換える方法です。
 手間はかかりますが、正当派です。
※2)他の方法:
 Views Field View(https://drupal.org/project/views_field_view)を使い、PHPで記述していた部分を子Viewsに託します。
 リスクが少ない半面、一回分クエリが増えるので、パフォーマンスが落ちるかもしれません。
※3)「Global:PHP」を止める:
 Viewsのテンプレートをオーバーライドし、テーマ内にPHPを挿入する。
 きれいではありませんが、修正量/パフォーマンスとも有利です。

ページ

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール タイトル昇順で並び替える
PHP 8.3x PHP drupa8でhook_init()する方法
アップデート 7.50 Download count DOWNLOAD MODULEページでダウンロードが失敗することがある
コンテンツの作成 7.38 Views CSV出力にHTMLが入ってしまう
アップデート 8.9.x Composer update Composer で drupal/core-8.9.7 に更新できなくなった場合の処置
アップデート 8.8.x Composer composer updateが異常終了する
アップデート 8.9.x Composer update composer update するときに パッチが必要なモジュールが更新されパッチが消えてしまうことへ対応する方法
JavaScript 8.5.x PHP Commerce決済モジュール設定をJavaScriptにデータに渡す方法
Commerce 7.34 Commerce kickstart, Commerce file Commerceモジュール利用時のダウンロード製品登録方法
Commerce2 8.6.x Commerce Shipment Commerceで配送情報を得る方法
Commerce2 8.6.x Commerce Order Commerceで注文情報から全Itemを得る方法
Commerce 8.6.x Commerce Payment Order Commerceで歴代購入数/金額を集計する方法
Libraries 8.5.x Libraries Commerceで外部JavaScriptをテスト/本番で読み分ける方法
コンテンツの管理 8.6.x Commerce Commerce orderからすべての商品名を取得する方法
コンテンツの作成 8.9.x CKEditor CKEditor編集中の見た目をフロントと全く同様にする方法
コンテンツの作成 8.7.x CkEditor CKEditorエディタ内に Colorboxポップアップ を簡単に挿入する方法
コンテンツの作成 7.31 CKEditor CKEditorの新規生成ダイアログ内の初期値の変更
コンテンツの作成 7.38 CKEditor CKEditorの「ソース」に入力したタグが消える
アップデート 8.9.x PHP CentosでPHPのバージョンアップ(例:5.3->5.6)を行う方法
Calendar 7.34 Calendar CalendarモジュールとGoogleカレンダーを同期するには
テーマ 8.4x hook_preprocess_html bodyタグにnode idやaliasのClassを追加する方法

ページ