![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 16.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
Mam taki problem bardziej teoretyczny do rozwiazania. Chodzi o wyswietlanie produktow z magazynu z danej kategorii. Spieszylem sie i na szybko zrobilem w smarty cos takiego ... ze kazdy wyciagniety produkt z bazy ma oddzielna nazwe zmiennej w smarty (ograniczone z gory do 5 produktow wyswietlanych na stronie) np. CENATOWARUDOSTAW$i a templetach to bedzie {$CENATOWARUDOSTAW0} itd. Jednak to nie za dobre rozwiazanie ... Wolalbym bardziej zeby byl jeden szablon sluzacy do wyswietlania produktu i on byl powielany tyle razy ile jest produktow w bazie. No a z drugiej strony nie chcialbym dzielic obecnego template'a na kolejne... Jakies pomysly?
|
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Byłoby łatwiej rozwiązać Twój problem, gdybyś rzucił nam trochę kodu. Chciaż fragment.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 16.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
Teraz to wyglada tak:
[php:1:53463f9b11]<?php for($i=0;$i<$row_produkty=mysql_fetch_array($produkty);$i++) { $nazwa_firmy[$i]=$row_produkty['NAZWA_FIRMY_TOWARU']; $smarty->assign("NAZWAFIRMYTOWARU$i",$nazwa_firmy[$i]); $nazwa_towaru[$i]=$row_produkty['NAZWA_TOWARU']; $smarty->assign("NAZWATOWARU$i",$nazwa_towaru[$i]); //poprawka przecinka w cenie $cena[$i]=$row_produkty['CENA_TOWARU_DOSTAW']; $cena_towaru[$i]=str_replace(".",",",$cena[$i]); $smarty->assign("CENATOWARUDOSTAW$i",$cena_towaru[$i]); $opis_towaru[$i]=$row_produkty['OPIS_TOWARU']; $smarty->assign("OPISTOWARU$i",$opis_towaru[$i]); $zdjecie_towaru[$i]=$row_produkty['ID_TOWARU']; $smarty->assign("ZDJECIETOWARU$i",$zdjecie_towaru[$i]); } ?>[/php:1:53463f9b11] a w templacie Kod <table width="460" border="0" align="center" cellpadding="0" cellspacing="0">
<tr> <td width="131" rowspan="2"><div align="center"><img src="img.php?id_zdjecia={$ZDJECIETOWARU0}" width="100" height="100" class="border"></div></td> <td width="329" height="85" valign="top" class="text"><p align="center"> <strong>{$NAZWAFIRMYTOWARU0}</strong> <span class="style1">{$NAZWATOWARU0}</span> {$OPISTOWARU0}<br> <span class="cena">{$CENATOWARUDOSTAW0}</span></p></td> </tr> <tr> <td valign="top" class="text"><div align="right"><a href="#" class="kategorie">Dodaj do Koszyka</a> </div></td> </tr> <tr> <td colspan="2"><hr noshade size="1" color="#000000"></td> </tr> </table> No i to jest ta czesc ktora sie powtarza i ja za kazdym razem musze zmieniac np. {$NAZWATOWARU0} na {$NAZWATOWARU1} itd ... az do 4. Generalnie pomysl mi sie spodobal bo grafik moze sobie rozlozyc gdziekolwiek chce te wszystkie wartosci. Jednak z drugiej strony po co mu dawac az takie pole do popisu ... jezeli te produkty sie bede powtarzaly w tym samym schemacie "html".. Wiec lepsza by byla petelka .. i teraz ostro mysle jak jej nie dodawac do tego template'a. ps. sorrki za bledy skladniowe ... cosik mi sie ciezko dzisiaj mysli :/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 16.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
ok .. juz sam rozwiazalem problem ... nie wiedzialem ze w smarty jest cos takeigo jak section ...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 21.09.2003 Skąd: Truskaw Ostrzeżenie: (0%) ![]() ![]() |
Ja na Twoim miejscu zamiast tworzyć bezsensu dużą ilość zmiennych skorzystałbym z dobrodziejstw tablic array.
poczytaj sobie o pętli foreach w smarty[/url] -------------------- ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 16.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
Nie mowie nie ... ale ja nadal mam jakies dziwne przekonanie ze grafik moze sie pogubic przy templatach (im mniej kodu tym lepiej dla niego). Niestety pewnych rzeczy nie da sie obejsc ..
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 16:57 |