2012-12-24 18 views
5

मैं कुछ पेजिनेशन पर काम कर रहा हूं और मैं सोच रहा हूं कि केवल 5 पृष्ठों को दिखाने के लिए तरल बताने का कोई तरीका है या नहीं। उत्पादन मैं देख रहा हूँतरल और अंकगणित

< < पहले 5 6 8 9 अंतिम >>

तर्क मैं वर्तमान में है जगह काम चल रहा है लेकिन यह सब 30 कुछ पृष्ठों दिखा रहा है।

{% for count in (2..paginator.total_pages) %} 
    {% if count == paginator.page %} 
     <span class="current">{{ count }}</span> 
    {% else %} 
     <a href="/page/{{ count }}/" class="pagenavi-page" title="{{ count }}">{{ count }}</a> 
    {% endif %} 
{% endfor %} 

मैं बनाने के लिए 2 और paginator.total_pages गतिशील हो सक्षम होने के लिए चाहते हैं, मैं कोशिश की है

{% for count in ((paginator.page - 2)..(paginator.page + 2)) %} 

इस कोड लेकिन वास्तव में, गणित काम नहीं करता है, तो paginator.page = 5 तो लूप 5..5 है और अपेक्षित परिणाम प्रदान नहीं करता है। मैं तर्क को समझ सकता हूं ताकि यह नकारात्मक संख्याओं को प्रभावित न करे और उम्मीद के अनुसार काम करता है लेकिन मैं इसमें गणित समीकरण कैसे कर सकता हूं?

उत्तर

4

अंकगणित करने के लिए आपको paginator.total_pages पर फ़िल्टर का उपयोग करने की आवश्यकता है, और फिर capture टैग का उपयोग करके एक चर में परिणाम कैप्चर करें। एक बार जब आप प्रारंभ और अंत पृष्ठों है, तो आप for पाश सामान्य रूप से लिख सकते हैं:

{% capture page_start %}{{ paginator.page | minus: 2 }}{% endcapture %} 
{% capture page_end %}{{ paginator.page | plus: 2 }}{% endcapture %} 

{% for count in (page_start..page_end) %} 
    {% comment %} ... do your thing ... {% endcomment %} 
{% endfor %} 
+0

उस उत्तर के लिए धन्यवाद, यह समझ में आता है। हालांकि, मैं अपने लूपिंग को सेट करने का प्रयास करते समय खुद को एक और त्रुटि के खिलाफ खोजता हूं। मुझे यह देखने में सक्षम होना चाहिए कि पेज_एंड कुल पृष्ठों से अधिक है या नहीं। {% अगर PAGE_END> paginator.total_pages%} {% असाइन PAGE_END = paginator.total_pages%} {% endif%} ऊपर कोड मेरा पीछा त्रुटि देता है तरल अपवाद: 37 के साथ स्ट्रिंग की तुलना में विफल रहा है index.html क्या तरल में ऐसा करने का कोई तरीका है? –

+0

मैंने यह पता लगाया, सिर्फ जेकील में पेजिनेशन.आरबी का विस्तार करना था और पेजर_स्टार्ट और पेजर_एंड वैरिएबल और गणना –

+0

जोड़ने के लिए Googlers के लिए एक और आधुनिक, गिटहब पेजेस संगत दृष्टिकोण की तलाश है जिसमें रूबी प्रोग्रामिंग शामिल नहीं है, यह जांचें [यह ] (http://stackoverflow.com/a/31972386/5195629)। प्रकटीकरण: मैंने जवाब लिखा था। – Shadowen

1

मैं Jekyll साथ एक ब्लॉग का निर्माण कर रहा हूँ और मैं एक ऐसी ही स्थिति का सामना करना पड़ा है। Liquid wiki में जो पाया गया है उसके मुताबिक limit और offset का उपयोग करके दिए गए संग्रह के सबसेट पर फिर से शुरू करना संभव है।

{% capture start %}{{ paginator.page | minus: 3 }}{% endcapture %} 

{% for i in (1..paginator.total_pages) limit: 5 offset: start %} 
    ... 
{% endfor %} 
0

बजाय

{% if paginator.total_pages < 7 %} 
{% if paginator.page == 1 %} 
     <span class="current bold">1</span> 
{% else %} 
     <a href="{{ site.url }}/">1</a> 
{% endif %} 
{% for count in (2..paginator.total_pages) %} 
    {% if count == paginator.page %} 
     <span class="current bold">{{ count }}</span> 
    {% else %} 
     <a href="/page{{ count }}/" class="pagenavi-page" title="{{ count }}">{{ count }}</a> 
    {% endif %} 
{% endfor %} 
{% else %} 
{% assign page_start = paginator.page | minus: 2 %} 
{% assign page_end = paginator.page | plus: 2 %} 
{% if page_end > paginator.total_pages %} 
{% assign page_end = paginator.total_pages %} 
{% assign page_start = paginator.page | minus: 4 %} 
{% endif %} 
{% if page_start < 2 %} 
{% assign page_end = paginator.page | plus: 3 %} 
{% assign page_start = paginator.page | minus: 1 %} 
{% endif %} 
{% if page_start == 0 %} 
{% assign page_end = paginator.page | plus: 4 %} 
{% assign page_start = paginator.page %} 
{% endif %} 
{% if page_start == 1 %} 
{% assign page_end = paginator.page | plus: 4 %} 
{% assign page_start = 2 %} 
{% if paginator.page == 1 %} 
     <span class="current bold">1</span> 
{% else %} 
     <a href="{{ site.url }}/">1</a> 
{% endif %} 
{% endif %} 
{% for count in (page_start..page_end) %} 
    {% if count == paginator.page %} 
     <span class="current bold">{{ count }}</span> 
    {% else %} 
     <a href="/page{{ count }}/" class="pagenavi-page" title="{{ count }}">{{ count }}</a> 
    {% endif %} 
{% endfor %} 
{% endif %} 
1

मैं बूटस्ट्रैप उपयोग कर रहा हूँ इस प्रयास करें:

निम्न उदाहरण अपने विशेष मामले और हर पृष्ठ में सही ढंग से काम, पहले से पिछले एक करने के लिए करना चाहिए दर्शाता है 3.0.3 मेरी वेबसाइट के लिए। मैं पेजिनेशन के लिए निम्नलिखित कोड का उपयोग करता हूं। यह वही प्रभाव है जिसे आप ढूंढ रहे हैं। जो कोड मैंने ऊपर पोस्ट किया है वह वह है जिसे आप ढूंढ रहे हैं, लेकिन मैं यहां भी अपने बूटस्ट्रैप पेजिनेशन कोड को पोस्ट करूंगा।

{% if paginator.total_pages != 1 %} 
{% if paginator.total_pages < 7 %} 
     <div class="page-body col-md-12"> 
      <ul class="pagination pagination-centered"> 
      {% if paginator.total_pages >= 10 %} 
      {% if paginator.previous_page %} 
       <li> 
        <a href="{{ site.url }}/">&laquo;&laquo;</a> 
       </li> 
      {% else %} 
       <li class="disabled"> 
       <a>&laquo;&laquo;</a> 
       </li> 
      {% endif %} 
      {% endif %} 
      {% if paginator.previous_page %} 
       {% if paginator.previous_page == 1 %} 
       <li> 
        <a href="{{ site.url }}/">&laquo;</a> 
       </li> 
       {% else %} 
       <li> 
        <a href="{{ site.url }}/page{{paginator.previous_page}}">&laquo;</a> 
       </li> 
       {% endif %} 
      {% else %} 
       <li class="disabled"> 
       <a>&laquo;</a> 
       </li> 
      {% endif %} 
      {% if paginator.page == 1 %} 
       <li class="active"> 
       <a>1</a> 
       </li> 
      {% else %} 
       <li> 
       <a href="{{ site.url }}/">1</a> 
       </li> 
      {% endif %} 
      {% for count in (2..paginator.total_pages) %} 
       {% if count == paginator.page %} 
       <li class="active"> 
        <a>{{count}}</a> 
       </li> 
       {% else %} 
       <li> 
        <a href="{{ site.url }}/page{{count}}">{{count}}</a> 
       </li> 
       {% endif %} 
      {% endfor %} 
      {% if paginator.next_page %} 
       <li> 
       <a href="{{ site.url }}/page{{paginator.next_page}}">&raquo;</a> 
       </li> 
      {% else %} 
       <li class="disabled"> 
       <a>&raquo;</a> 
       </li> 
      {% endif %} 
      {% if paginator.total_pages >= 10 %} 
      {% if paginator.next_page %} 
       <li> 
       <a href="{{ site.url }}/page{{paginator.total_pages}}">&raquo;&raquo;</a> 
       </li> 
      {% else %} 
       <li class="disabled"> 
       <a>&raquo;&raquo;</a> 
       </li> 
      {% endif %} 
      {% endif %} 
      </ul> 
     </div> 
{% else %} 

{% assign page_start = paginator.page | minus: 2 %} 
{% assign page_end = paginator.page | plus: 2 %} 
{% if page_end > paginator.total_pages %} 
{% assign page_end = paginator.total_pages %} 
{% assign page_start = paginator.page | minus: 4 %} 
{% endif %} 
{% if page_start < 2 %} 
{% assign page_end = paginator.page | plus: 3 %} 
{% assign page_start = paginator.page | minus: 1 %} 
{% endif %} 
{% if page_start == 0 %} 
{% assign page_end = paginator.page | plus: 4 %} 
{% assign page_start = paginator.page %} 
{% endif %} 

<div class="page-body col-md-12"> 
    <ul class="pagination pagination-centered"> 
    {% if paginator.total_pages > 5 %} 
    {% if paginator.previous_page %} 
     <li> 
      <a href="{{ site.url }}/">&laquo;&laquo;</a> 
     </li> 
    {% else %} 
     <li class="disabled"> 
     <a>&laquo;&laquo;</a> 
     </li> 
    {% endif %} 
    {% endif %} 
    {% if paginator.previous_page %} 
     {% if paginator.previous_page == 1 %} 
     <li> 
      <a href="/">&laquo;</a> 
     </li> 
     {% else %} 
     <li> 
      <a href="/page{{paginator.previous_page}}">&laquo;</a> 
     </li> 
     {% endif %} 
    {% else %} 
     <li class="disabled"> 
     <a href="#">&laquo;</a> 
     </li> 
    {% endif %} 
    {% if page_start == 1 %} 
    {% assign page_end = paginator.page | plus: 4 %} 
    {% assign page_start = 2 %} 
    {% if paginator.page == 1 %} 
     <li class="active"> 
     <a href="#">1</a> 
     </li> 
    {% else %} 
     <li> 
     <a href="/">1</a> 
     </li> 
    {% endif %} 
    {% endif %} 
    {% for count in (page_start..page_end) %} 
     {% if count == paginator.page %} 
     <li class="active"> 
      <a href="#">{{count}}</a> 
     </li> 
     {% else %} 
     <li> 
      <a href="/page{{count}}">{{count}}</a> 
     </li> 
     {% endif %} 
    {% endfor %} 
    {% if paginator.next_page %} 
     <li> 
     <a href="/page{{paginator.next_page}}">&raquo;</a> 
     </li> 
    {% else %} 
     <li class="disabled"> 
     <a href="#">&raquo;</a> 
     </li> 
    {% endif %} 
    {% if paginator.total_pages > 5 %} 
    {% if paginator.next_page %} 
     <li> 
     <a href="{{ site.url }}/page{{paginator.total_pages}}">&raquo;&raquo;</a> 
     </li> 
    {% else %} 
     <li class="disabled"> 
     <a>&raquo;&raquo;</a> 
     </li> 
    {% endif %} 
    {% endif %} 
    </ul> 
</div> 
{% endif %} 
{% endif %} 
संबंधित मुद्दे