ポケットベル番号をURI文字列と一致させるにはどうすればよいですか?
例:ポケットベルの番号3をクリックしてページ3に移動したが、URIが「?page = 3」ではなく「?page=2」の場合。このページネーションは、私が以前に会った他のページネーションのように正常ではありません。どうすれば修正できますか?
ありがとう!!!
これを行うには、hook_url_outbound_alter()とhook_url_inbound_alter()を実装します。
最初のフックを使用して、Drupalから出力されるリンクを変更します。の値を増やします$options['query']['page']
。
2番目のフックを使用して、Drupalから受信するリンクを変更します。URLで文字列を見つけ、その'?page='
文字列の後の数を減らす必要があります。
ページに複数のポケットベルがある場合の$_GET['page']
ように、文字列になる可能性があることに注意してください。pager_find_page()'1,2,4,5,6'
のコードを参照してください。
また、hook_url_outbound_alter()
でクエリパラメータ$options
をhook_url_inbound_alter()
受け取りますが、URLの文字列だけを受け取ります。この文字列には、クエリ部分も含まれています。
URLのpage属性はクエリで直接使用されるため、省略した場合、pageは値として0を取得します。Drupalはこのようなページを作成するので、これは正常です。
これを変更する必要がある場合は、すべてのクエリに対してクエリの変更を回避して、limit()またはrange()メソッドに+1を追加する必要があります。