Skip to Content

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

這個標題似乎不太好懂,我也想不出更明白的名稱,總不能寫「二千三百萬人都大吃一驚的設定」吧。
 
問題是這樣的,我把舊的 Drupal 6 網站轉成 Drupal 7 之後,發現一個怪現象。原本首頁底下有個 Pager,就是列出還有多少分頁的連結,原本應該像這樣:
 
 
結果更新完之後,發現它變成只有這樣:
 
 
這樣明顯有問題,因為不可能只有二頁,但我也不知為何會如此?
 
不只是首頁,許多單篇文章的底下也都有那個二頁的 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 有這個設定:
 
 
看到那個 Pager ID,突然靈感一現,這應該不會是那個 $pager_total[n] 的設定吧?
 
把那段英文說明丟進 Google 翻譯大神,得到如下:
 
除非與該視圖相關的尋呼機遇到問題,否則應將其保留為0。如果在一頁上使用多個尋呼機,則可能需要將此數字設置為更高的值,以免在?page =數組內發生衝突。 較大的值會為您的網址添加很多逗號,因此請盡量避免。
 
我的確是有多個 Pager (它譯為尋呼機啊?),所以我把每一個 Pager 的 ID 都給它一個大於 0 的數字,應該就不會衝突了吧?
 
果然如我猜測,改了 ID 之後,畫面的結果正常了。萬歲!
 
那段說明寫的實在有點虛心,好像有多個 Pager 時,「可能」要設為更高的值,好像有時不改也可以?這點實在不易理解,總之我是改了之後,就有正常的 Pager 了。
 
希望有同樣問題的人,有機會看到我這篇之後,可以快速找到答案。
 
 
 

回應

發表新回應

這個欄位的內容會保密,不會公開顯示。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。
  • 可使用的 HTML 標籤:<a> <address> <b> <blockquote> <br> <caption> <center> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <ins> <li> <ol> <p> <pre> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <th> <tr> <u> <ul>
    Allowed Style properties: background, background-attachment, background-color, background-image, background-position, background-repeat, border, border-bottom, border-bottom-color, border-bottom-style, border-bottom-width, border-collapse, border-color, border-left, border-left-color, border-left-style, border-left-width, border-right, border-right-color, border-right-style, border-right-width, border-spacing, border-style, border-top, border-top-color, border-top-style, border-top-width, border-width, bottom, caption-side, clip, color, direction, empty-cells, font, font-family, font-size, font-size-adjust, font-stretch, font-style, font-variant, font-weight, height, left, letter-spacing, line-height, list-style, list-style-image, list-style-position, list-style-type, margin, margin-bottom, margin-left, margin-right, margin-top, max-height, max-width, min-height, min-width, overflow, padding, padding-bottom, padding-left, padding-right, padding-top, right, table-layout, text-align, text-decoration, text-indent, text-transform, top, unicode-bidi, vertical-align, white-space, width, word-spacing, z-index

更多關於格式選項的資訊

CAPTCHA
驗證碼只有阿拉伯數字, 這是躲廣告用的, 麻煩你輸入了.
Image CAPTCHA
Enter the characters shown in the image.


story | about seo