Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Smarty porcjowanie stron
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
espeen
Witam.
Chce zrobić porcjowanie danych w szablonie smarty.
Dostaję takie dane na wejscie:

$form.page = obecna strona
$form.maxPageNo = ilosć stron
$form.radius - promien

Chodzi o to zeby efekt byl taki:

Poprzedni [2] [3] [4] [5] 6 [7] [8] [9] [10]
czyli promien jest 4 cztery z lewej strony i 4 z prawej.

  1. <table style="margin:auto;">
  2. <tr>
  3. <td class="next" valign="bottom">
  4. {if $form.page > 0}
  5. <a href="/products/list/{math equation='x - y' x=$form.page y=1}"><img src="/img/default/pl/products/poprzednie.gif"></a>
  6. {/if}
  7.  
  8. {if $form.page >0}
  9. {math equation='x - y' x=$form.page y=$form.radius assign="pageTmp"}
  10. {section name=bar start=$pageTmp loop=$form.maxPageNo max=$form.radius step=1}
  11. {if $smarty.section.bar.index >= 0}
  12. <a href="/products/list/{$smarty.section.bar.index}">[{$smarty.section.bar.index}]</a>
  13. {/if}
  14. {/section}
  15. {/if}
  16.  
  17. {$form.page+1}
  18.  
  19. {section name=bar start = $form.page+2 loop= $form.maxPageNo+1 max = $form.radius step=1}
  20. <a href="/products/list/{$smarty.section.bar.index-1}">[{$smarty.section.bar.index}]</a>
  21. {/section}
  22.  
  23. {if $form.page == 0 && $form.page < $form.maxPageNo-1}
  24. <a href="/products/list/{math equation='x + y' x=$form.page y=1}"><img src="/img/default/pl/products/nastepne.gif"></a>
  25. {/if}
  26. </td>
  27. </tr>
  28. </table>


Prawa strona tzn od cyfry 6 wychodzi ok ale lewa niestety wyswietla się dziwnie. Czy moze ktoś widzi gdzie jest blad?
nospor
Przenosze
espeen
Problem nie akutalny, ale jakby ktos miał podobny to daje rozwiązanie:
  1. <table style="margin:auto;">
  2. <tr>
  3. <td class="next">
  4. {if $form.page > 0}
  5. <a href="/products/list/{math equation='x - y' x=$form.page y=1}"><img src="/img/default/pl/products/poprzednie.gif"></a>
  6. {/if}
  7.  
  8. {math equation='x - y' x=$form.page y=$form.radius assign="pageLeft"}
  9. {math equation='x + y' x=$form.page y=$form.radius assign="pageRight"}
  10.  
  11. {if $pageLeft < 0}
  12. {math equation='x * y' x=1 y=0 assign="pageLeft"}
  13. {/if}
  14. {if $pageRight > $form.maxPageNo}
  15. {math equation='x + y' x=$form.maxPageNo y=0 assign="pageRight"}
  16. {/if}
  17. {math equation='x - y' x=$pageRight y=$pageLeft assign="loopMax"}
  18. {section name=bar start = $pageLeft loop=$loopMax step=1}
  19. {if $form.page != $smarty.section.bar.index}
  20. <a href="/products/list/{$smarty.section.bar.index}">[
  21. {/if}
  22. {$smarty.section.bar.index+1}
  23. {if $form.page != $smarty.section.bar.index}
  24. ]</a>
  25. {/if}
  26.  
  27. {/section}
  28.  
  29. {if $form.page >= 0 && $form.page < $form.maxPageNo-1}
  30. <a href="/products/list/{math equation='x + y' x=$form.page y=1}"><img src="/img/default/pl/products/nastepne.gif"></a>
  31. {/if}
  32. </td>
  33. </tr>
  34. </table>


Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.