![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 1 Dołączył: 9.06.2003 Skąd: Tomaszów Mazowiecki Ostrzeżenie: (0%) ![]() ![]() |
Tytuł zawiły ale w gruncie rzeczy prosta sprawa tylko nie wiem jak to nazwać. Poniższy przykład jest specjalnie przygotowany aby było łatwiej go zrozumieć. Muszę przekazać wartość tablicy o indeksie id do własnej funkcji/pluginu. Póki robię to tak jak jest w pierwszej linijce index.tpl to wszystko działa. Niestety mam trochę większe potrzeby ale o tym na końcu. Oto przykładowa aplikacja:
index.php
index.tpl
wynik Cytat 1 Array.id Array['id'] Skompilowany plik: No i kto mi teraz doradzi jak ja mam przekazać wartość zmiennej $zmienna[0]['id'] skoro w rzeczywistości tak używam mojego pluginu: Cytat {zapytanie nazwa='zdjecie' select='id, opis' from='nt_strony_zdjecia' where="strona=WARTOSC_NASZEJ_ZMIENNEJ" order='sort' limit='1'} Jak widać w pliku index.tpl próbowałem różnych sposobów i nic nie wychodzi :/ Widać wyraźnie w skompilowanym pliku, że smarty głupieje :/ Co prawda znalazłem rozwiązanie ale wcale mi się ono nie podoba. Robię coś takiego: Cytat {assign var='zdjecie_id' value=$zdjecie[0].id} {zapytanie nazwa='zdjecie' select='id, opis' from='nt_strony_zdjecia' where="strona=$zdjecie_id" order='sort' limit='1'} Działa ale to takie... nieeleganckie ;P Jakieś pomysły na rozwiązanie? Ten post edytował MariuszT 17.01.2008, 11:35:05 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 1 Dołączył: 9.06.2003 Skąd: Tomaszów Mazowiecki Ostrzeżenie: (0%) ![]() ![]() |
Hehe wiem, że rozwiązanie jest niestandardowe ale bardzo praktyczne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nie chcę im dawać dostępu do żadnego php. Nie mam czasu żeby sprawdzać co oni tam wyprawiają a mogą różne rzeczy robić i potem ja za to będę odpowiadał. Chcę zablokować dostęp do {include_php} i {php}. Chcę aby koleś mógł tylko wybrać jakieś dane z bazy danych (i to też nie wszystkie ale to już zabezpieczyłem). I do tego moje rozwiązanie nadaje sie idealnie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Wiesz, to mimo wszystko tylko cms i jakieś ograniczenia muszą być. I tak możliwości są bardzo duże a ten plugin do smarty to tylko dla niestandardowych rozwiązań, reszta jest obsługiwana przez moduły php np. newsy czy galeria zdjęć.
Swoją drogą, jak już poznałeś moje założenia to zadam jeszcze jedno pytanie. Czy jest coś jeszcze w zabezpieczeniach o czym powinienem pamiętać oprócz wyłączenia {include_php} i {php} ? Tagi <?php ?> są traktowane standardowo czyli po prostu wyświetlane. EDIT 10.02.2008 Znalazłem przez przypadek rozwiązanie problemu - może komuś się przyda. Nie trzeba używać żadnych sztuczek, wystarczy zmienną wcisnąć między `` (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) U mnie to wygląda tak: Cytat {zapytanie nazwa='zdjecie' select='id, opis' from='nt_strony_zdjecia' where="strona=`$zdjecie[0].id`" order='sort' limit='1'} I smarty prawidłowo rozpoznaje, że to tablica. Ten post edytował MariuszT 10.02.2008, 20:33:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 08:25 |