Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SMARTY] Stronicowanie i wyświetlanie linków
pitu
post 11.04.2011, 23:43:34
Post #1





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


Tworzę system do wyświetlania informacji z tablicy, rekordów będzie dużo więc wykorzystałem paginację. Znalazłem klasę do SMARTY, która załatwia to w łatwy sposób.

Klasa: http://www.lotsofcode.com/download/php-array-pagination.zip

http://www.lotsofcode.com/php/smarty-pagination.htm

Mój problem polega na tym, że nie wiem jak przerobić klasę aby linki do stron wyglądały np. tak:

1 2 3 ...13 14 15 ... 21 22 23

Teraz wyświetlane są wszystkie linki do stron czyli:
1 2 3 4 5 6 7 8 .... itp.

Przy dużej ilości stron nie wygląda to zbyt ładnie, może ktoś pomoże w przerobieniu klasy lub posiada inną pod SMARTY, która umożliwi ustawienie tego.

Dane w szablonie pobieram na razie w podobny sposób jak na stronie autora klasy:
  1. {if !empty($listing)}
  2. {if !empty($pagination)}
  3. <div class="pagination">{$pagination}</div>
  4. {/if}
  5. {foreach item="item" from="$listing"}
  6. <tr>
  7. <td>{$item.id}</td>
  8. <td>{$item.title}</td>
  9. {/foreach}
  10. {/if}


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
Zaszczyk
post 7.08.2012, 23:35:01
Post #2





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

Ostrzeżenie: (0%)
-----


Rozwiązałeś jakoś ten problem? Albo ktos inny? Bo też potrzebuję czegoś takiego.
Go to the top of the page
+Quote Post
snakee
post 4.09.2012, 10:46:14
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.08.2012

Ostrzeżenie: (0%)
-----


Ja bym zrobił coś takiego

{if !empty($listing)}
{if !empty($pagination)}
<div class="pagination">{$pagination}</div>
{/if}
{$a = 0}// ustawienie jakiejś zmiennej która się zwiększa o jeden co pętla przetwarza tablice
{foreach item="item" from="$listing"}
{if $a < 3} //wyświetla tylko trzy pierwsze linki
<tr>
<td>{$item.id}</td>
<td>{$item.title}</td>
</tr>
{else if $a >= (($listing.length / 2)-1) && $a <= (($listing.length / 2)+1)}//wyświetla trzy środkowe linki
<tr>
<td>{$item.id}</td>
<td>{$item.title}</td>
</tr>
{else if $a >= ($listing.length - 3) && $a < $listing.length}//wyświetla trzy ostatnie linki
<tr>
<td>{$item.id}</td>
<td>{$item.title}</td>
</tr>
{/if}
{$a++} // a tu się ta zmienna powiększa o jeden
{/foreach}
{/if}

Nie zaglądałem do kodu więc nie wiem skąd się bierze dane i co w nich jest ale do wyświetlania linków jak 1 2 3 ....... 9 10 11.........18 18 20 bym tak zrobił.Pewnie się da to prościej zrobić ale sam zaczynam z programowaniem.

Ten post edytował snakee 4.09.2012, 10:55:51
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 11:11