Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Smarty, wyświetlanie tablicy za pomocą section, ale w trochę niecodzienny sposób
Aztech
post 2.05.2006, 20:06:02
Post #1





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


Mam dane przekazane do Smarty za pomocą tablicy asocjacyjne
Przykładowe dane wyglądają tak
[id] [group_id] [group] [user_id] [username]
1 1 "uczniowie" 12 "Stefan"
2 1 "uczniowie" 15 "Arek"
3 1 "uczniowie" 17 "Romuald"
4 1 "uczniowie" 25 "Tomek"
5 2 "nauczyciele" 14 "Romek"
6 2 "nauczyciele" 19 "Krzysztof"
7 2 "nauczyciele" 66 "Ryszard"
8 3 "kuratorzy" 10 "Jan"
9 3 "kuratorzy" 22 "Grzegorz"

Chciałbym za pomocą section wy swietlić te dane w nastepujący sposób.
Uczniowie:
- Stefan
- Arek
- Romulad
- Tomek
Nauczyciele
- Romek
- Krzysztof
- Ryszard
Kuratorzy
- Jan
- Grzegorz

Jedyny sposób jaki mi przychodzi do głowy jest bardzo nieelegancki. Zasada działania polega na tym
- zapamiętaj ID grupy
- jeśli pierwsza iteracja wyświetl nazwę grupy
- jesli nie pierwsza iteracja to porównaj aktualne ID grupy z zapamiętanym, jeśli się różni wyświetl nazwe grupy
- wyświetl użytkownika

Może ktoś zna lepszy sposób?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mike
post 2.05.2006, 20:55:40
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(Aztech @ 2006-05-02 21:06:02)
Jedyny sposób jaki mi przychodzi do głowy jest bardzo nieelegancki. Zasada działania polega na tym
- zapamiętaj ID grupy
- jeśli pierwsza iteracja wyświetl nazwę grupy
- jesli nie pierwsza iteracja to porównaj aktualne ID grupy z zapamiętanym, jeśli się różni wyświetl nazwe grupy
- wyświetl użytkownika

Zastanawiem się kiedy ludzie zrozumieją, że Smarty pomimo tego że udostepnia dużo mechanizmów to jest nadal tylko systemem szablonów.

Nie powinno sie wykonywać takich operacji po stronie szablonu.

Tutaj odpowiedź jest prosta: jeśli nie potrafisz wyświetlić danych to znaczy że paczka danych została źle przygotowana po stronie php. I to właśnie po stronie php powinieneś dokonać manipulacji tą tablicą, żeby potem łatwo było ją wyświetlić.
Go to the top of the page
+Quote Post
Aztech
post 2.05.2006, 21:13:34
Post #3





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


Mike, zdaję sobie z tego sprawę, ale z racji, że smarty jest tak obszerne i kobylaste, jest pewna szansa, że znajduje się zaimplementowane ułatwienie pozwalające wyswietlać tego typu dane.

Dane do wyświetlenia pobierane są za pomocą poniższego zapytania
  1. SELECT rpg.*, rpgu.*, ru.name AS pguname, ru.username"
  2. ."
  3. FROM rbx_priv_groups
  4. AS rpg"
  5. ." LEFT JOIN rbx_priv_group_users AS rpgu ON rpg.priv_group_id = rpgu.group_id"
  6. ." LEFT JOIN rbx_users AS ru ON rpgu.user_id = ru.user_id"
  7. ." WHERE 1


Jak widzisz, następuje tutaj połączenie grup prywatnych wraz z użytkownikami do nich należacymi oraz pobranie najpotrzebniejszych danych o tych uzytkownikach

Po co mi takie rozwiązanie w ogóle jest potrzebne?
Otóż. Na stronie wyświoetlone zostaną grupy wraz z informacją ilu człownków posiadają. Tym gryupom będą potem przydzielane uprawnienia. Jendakże dla użytkownika przydzielającego danej grupie uprawnienia lub zbiorowi grup wygodniej jest podejrzeć od razu kto się w takiej grupie znajduje (by wiedział komu jakie uprawnienai nadaje) bez preładowywania stron, stąd pobranie od razu członków.
Lsita członków grupy pojawiałaby się po kliknięciu "pokaż członków grupy" w postaci div'a któremu nadajemy za pomocą java scriptu atrybut display:none lub display:block.
Można to sobie wyborazić mniej więcej tak: (>> równoważne jest z linkiem pokaż człownków, << równoważne jest z linkiem ukryj)

1. Uczniowie >>
2. Nauczyciele >>
3. Kuratorzy >>

Po wybrabiu uczniów pojawi się:

1. Uczniowie <<
- Stefan
- Arek
- Romulad
- Tomek
2. Nauczyciele >>
3. Kuratorzy >>
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: 24.07.2025 - 17:44