私は drupal 6 とビュー 2 を使用しています -
このドキュメントを使用してビューのカスタム フィルターを作成しました
http://www.chadcf.com/blog/creating-custom-filters-drupal-and-views。
すべてが正常に機能しているように見えますが、問題は 1 つだけです -
ページネーションが機能しない (一部のオペレーターで表示されない)
簡単に達成したいことを説明しましょう-
私のページ ビューには、演算子のドロップダウンを含む公開フィルターが既にいくつかあり、演算子のドロップダウンなしでカスタムの公開フィルターを 1 つ作成しました。
私の要件は、1 つの既存のフィルター機能をカスタム フィルターとマージすることです。目的の結果を得るために 2 つのフィルターが連携することを意味します。しかし、1 つのフィルターは既存のフィールドで構成されており、その演算子のいずれかをドロップダウンから選択すると、その値が where 句に含まれますが、これは望ましくありません。だから私は使用してビュークエリからクエリのチャンクを完全に削除しました
hook_views_pre_execute(&$view) {
$view->build_info['query'] = preg_replace('/AND \(node_data_field_stock.field_stock_value [<<=>>=!=\\s%d|IS NULL|IS NOT NULL]*\)/','',$view->build_info['query']);
}
今私のサイト/all/modules/mymodule/inc/mymodule_filter.incにあります
function query() {
$this->query->add_where($this->options['group'], "MY_QUERY");
}
ビュークエリにwhere句を追加します。
上記の手順を使用して、デフォルトのビュー動作を正常に拡張し、目的の結果を取得しましたが、データベースにさらにレコードが存在することを知っていても、一部のオペレーターのページネーション リンクが表示されません。
なぜそれが起こっているのか知っています - 私のビューページネーションスクリプトは私が行った変更を認識していないからです.
私の質問は、ビュー ページャー クエリをオーバーライドするにはどうすればよいですか?
どんな助けでも大歓迎です。