![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 0 Dołączył: 20.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam do wszystkich prośbę jak coś takiego wykonać w smarty? SQL/php
Smarty:
Ten post edytował gandziorz 22.01.2007, 01:14:40 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Z czym konkretnie masz problem? Chodzi o napisanie klasy, tudzież mechanizmu do dzielenia na strony? OK, najprostszy z możliwych tutorial. Zakładam, że w adresie URL przesyłasz numer strony. Teraz mamy prostą arytmetykę:
Zapytanie SQL:
Wyświetlanie: jeżeli chcesz generować to po stronie php, to sobie zrób tablicę np. $pageList o takiej strukturze, że indeks oznacza numer strony, a wartość link. Teraz zrób sobie funkcję służącą do dopisywania do niej wartości z uwzględnieniem zakresu tablicy (tj. żeby numer strony nie był mniejszy od 1 lub większy od $pages). Do tablicy wpisujesz: stronę pierwszą, stronę ostatnią oraz zakres np. od $active-3 do $active+3 - czyli siedem stron będących w otoczeniu $active. Algorytm wyświetlania jest taki: sortujesz te elementy z zachowaniem indeksów (jest odpowiednia funkcja w php do tego) i jedziesz po nim pętlą foreach. Generujesz kod HTML dla każdej strony wraz z linkiem i pamiętasz cały czas w zmiennej numer poprzedniej strony. Jeżeli na początku pętli stwierdzisz, że poprzedni i obecny numer różnią się o więcej niż 1, to mamy przerwę w numeracji i w tym miejscu dodatkowo wstawiasz wielokropek. Wysyłasz to potem do parsera. Ewentualnie wyświetlanie możesz po stronie szablonu zaprogramować, ale nie wiem, jaki by to miało sens - później miałbyś strasznie dużo kopiowania tego i współczułbym Ci, gdybyś chciał np. to później popoprawiać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Klasę stronicującą opartą na tym pomyśle napisałem już dawno temu - wiem, że w którymś artykule moim zamieściłem jej pełen kod źródłowy (tyle że jeszcze w wersji na PHP4). Dołączyłem ją też do Open Power Template'a, tyle że z mechanizmem wyświetlania przerobionym pod ten system szablonów. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 15:22 |