Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Warunek w smarty/php
mambus
post
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 30.11.2010

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


Witam.

Walczę od rana ze smarty. W czym tkwi problem, już piszę.

Otóż, mam plik list_one.tpl, który jest plikiem szablonu smarty pewnego sklepu internetowego, którego nieprzyjemność przerobienia padła na mnie.

Potrzebuje, aby w zależności od jednego warunku, zmieniał się wygląd produktu (ramka, kolory itp).

Warunek generuje się w taki sposób, że baza mysql wyciąga z pewnej kolumny - pewną wartość. Jeśli wartość w kolumnie nie jest empty, to wtedy oznacza to że wygląd produktu ma być "czerwony". Jeśli wartość w kolumnie jest empty, to wtedy może być zielona (można użyć else, wiadomo).

Pytanie: Jak mam to zrobić w smarty ?

Czytałem dokumentację w smarty.net, lecz nie bardzo mogę cokolwiek z tego wywnioskować.
Dla przykladu:


Tutaj jest funkcja, która wyciąga tą wartość kolumny:
  1. function smarty_function($produkt)
  2. {
  3. $sql = "SELECT `price_card` FROM `xxx_xxx_offer` WHERE `id`='$produkt'";
  4. $smarty->assign('price_card', $db->getRow($sql));
  5. }


W php to proste, postawiłbym warunek w stylu:
  1. if(!empty($price_card['price_card']))
  2. {
  3. // no to wtedy jest czerwony
  4. }
  5. else
  6. {
  7. // zielony albo jakiś inny
  8. }
  9.  
  10.  





A jak to przełożyć w smarty ?

Ten post edytował mambus 13.09.2011, 14:45:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Analogicznie

Kod
{if !empty($price_card.price_card)}
// no to wtedy jest czerwony
{else}

// zielony albo jakiś inny
{/if}

Ale to są podstawy smarty.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mambus
post
Post #3





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 30.11.2010

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


Cytat(nospor @ 13.09.2011, 15:48:44 ) *
Analogicznie

Kod
{if !empty($price_card.price_card)}
// no to wtedy jest czerwony
{else}

// zielony albo jakiś inny
{/if}

Ale to są podstawy smarty.


Jestem bardziej niż zielony w kwestiach smarty.

Okej, ale teraz: jak mogę przekazać zmienną do funkcji w smarty ?

np $offer_list.id ?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Do jakiej znowu funkcji?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mambus
post
Post #5





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 30.11.2010

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


A nie. Okej.

Problem rozwiązałem.

Wystarczyło w pliku .php odpowiedzialnym za generowanie danych z zapytania SQL, dorzucić aby wyciągał jeszcze jedną kolumnę, a następnie

  1. $smarty->assign($zmienna)


to.

Potem odczytać to w smartym. Ktoś dobrze napisał kiedyś na tym forum i to podstawowa kwestia w podejściu do smarty -> to nie jest interpreter PHP lecz tylko coś co jest wynikową działania np php. Fajnie że da się niejako "wysłać" zmienne do szablonu smarty i jest to dynamiczne.

Dzięki za pomoc.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
to nie jest interpreter PHP lecz tylko coś co jest wynikową działania np php. Fajnie że da się niejako "wysłać" zmienne do szablonu smarty i jest to dynamiczne.
Smarty to system szablonów. W każdym systemie szablonów można szablonowi przekazać zmienne inaczej system taki nie miałby jakiegokolwiek sensu.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 21.08.2025 - 11:28