![]() |
![]() |
![]() ![]()
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%) ![]() ![]() |
Robisz sekcję i w niej alternatywę: jeżeli nie jest wyświetlany link do aktualnej strony, to dajesz link w jednej formie, a jeżeli to jest aktualna strona, to w innej. Dalsze błędy masz w samym skrypcie:
Otwieramy skrypt na jakiejś stronie i zapytanie zwraca Ci np. 20 rekordów (bo tyle na niej się maksymalnie mieści). Później robisz mysql_num_rows() i on Ci tę liczbę "20" zwraca. Na jej podstawie później próbujesz obliczyć, ile stron trzeba zrobić. To oczywiste, że tak wykonany skrypt zawsze Ci da w rezultacie link do jednej strony. Polecam napisać sobie jakieś uniwersalne rozwiązanie, np. klasę, do której tylko przekazujesz parametry, np. ilość elementów, ilość elementów na stronie oraz link, a ona już automatycznie dba o wygenerowanie listy stron, a nawet ułożenie fragmentu zapytania SQL (naturalnie wszystkie wartości do niego są przeliczane przez skrypt, więc nie ma obawy o SQL Injection). Jej użycie wygląda mniej więcej w ten sposób:
Jeśli chodzi o szablonowe rozwiązanie tego problemu, dodam, że OPT posiada odpowiednią instrukcję do osadzania w szablonie list strony: Kod <p>{pagesystem name="ps"} {page}[ <a href="{@url}">{@title}</a> ]{/page} {active}[ <strong><a href="{@url}">{@title}</a></strong> ]{/active} {separator}...{/separator} {/pagesystem}</p> Do jego obsługi potrzebna jest właśnie jakaś klasa stronicująca, która implementuje odpowiedni interfejs. Jak się często stronicowania używa, można sobie te wszystkie znaczniki {page} itd. przenieść do osobnego pliku i później jedynie importować. Ten post edytował Zyx 22.01.2007, 08:04:09 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 01:31 |