Drupal 7 一頁包含多個 Pager 的設定

這個標題似乎不太好懂,我也想不出更明白的名稱,總不能寫「二千三百萬人都大吃一驚的設定」吧。
 
問題是這樣的,我把舊的 Drupal 6 網站轉成 Drupal 7 之後,發現一個怪現象。原本首頁底下有個 Pager,就是列出還有多少分頁的連結,原本應該像這樣:
 
image
 
結果更新完之後,發現它變成只有這樣:
 
image
 
這樣明顯有問題,因為不可能只有二頁,但我也不知為何會如此?
 
不只是首頁,許多單篇文章的底下也都有那個二頁的 Pager,但理論上單篇的文章根本不需要有這個 Pager 才對,除非底下有超過 50 個回應,才會出現 Pager。
 
昨天花了一天的時間,追蹤原始碼,發現在 includes\pager.inc 的程式中,有一個 global 的變數 $pager_total,主要是它在負責計算應該要有幾頁,然後在 theme_pager() 這個 function 負責畫出來。
 
追蹤的結果,才發現畫面中若有好幾個地方有 Pager,主要就是在區塊中也會有 Pager,結果最後的 $pager_total 就會採用最後一個區塊的 Pager,因為它是二頁,所以主畫面的 Pager 也變成二頁了。
 
雖然知道原因了,但不知道怎麼解決,只覺得因為大家共用同一個 $pager_total,而且都是 $pager_total[0],當然會有問題,我甚至看不出區塊那些 Pager 是在哪裡產生的。
 
結果今天開會回來,原本想把所有的區塊 Pager 都關掉,只留下主要 Pager,應該就會正常了,意外看到 Views 中的 Pager 有這個設定:
 
image
 
看到那個 Pager ID,突然靈感一現,這應該不會是那個 $pager_total[n] 的設定吧?
 
把那段英文說明丟進 Google 翻譯大神,得到如下:
 
除非與該視圖相關的尋呼機遇到問題,否則應將其保留為0。如果在一頁上使用多個尋呼機,則可能需要將此數字設置為更高的值,以免在?page =數組內發生衝突。 較大的值會為您的網址添加很多逗號,因此請盡量避免。
 
我的確是有多個 Pager (它譯為尋呼機啊?),所以我把每一個 Pager 的 ID 都給它一個大於 0 的數字,應該就不會衝突了吧?
 
果然如我猜測,改了 ID 之後,畫面的結果正常了。萬歲!
 
那段說明寫的實在有點虛心,好像有多個 Pager 時,「可能」要設為更高的值,好像有時不改也可以?這點實在不易理解,總之我是改了之後,就有正常的 Pager 了。
 
希望有同樣問題的人,有機會看到我這篇之後,可以快速找到答案。
 
 
 
重要度:
文章分類:
電腦標籤:

發表新回應