Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> suma liczb w SMARTY i wywoływanie funkcji php
elwierka
post 31.10.2010, 12:53:05
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 26.12.2007

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


Witajcie, jak zsumować wartości pól jednej kolumny w Smarty?

Mam plik .tpl
  1. <div class="obszRoboczy" style="width:620px;">
  2. <table class="klienci" cellpadding="1" cellspacing="1">
  3. <tr>
  4. {section name=id loop=$dane}
  5. <th class="tlo-orange txtBialy">{$dane[id]}</th>
  6. {/section}
  7. </tr>
  8.  
  9. {section name=nr loop=$numer}
  10. <tr bgcolor='{cycle values="#ffffff, #f4f7f8"}'>
  11.  
  12. <td>{$numer[nr]}</td>
  13. <td>{$data[nr]|truncate:10:"":true}</td>
  14. <td>{$rabat[nr]}%</td>
  15. <td style="text-align:right;">{$wart_n[nr]}.</td>
  16. <td style="text-align:right;">{$status[nr]}</td>
  17. <td style="text-align:right;">{$stan[nr]}</td>
  18. <td><a href="./?d=zamowienia&zamID={$numer[nr]}">Szczegóły</a></td>
  19. <td><a href="drukuj()"><img src="./includes/img/drukuj2.jpg" width="20" /></a></td>
  20. </tr>
  21. {/section}
  22. <tr><td>Razem: </td><td colspan="5">
  23. [b]{assign var = "total" value="0"}
  24. {section name=wartn loop=$wart_n}
  25. {assign var ="total" value="$tota+$wart_n[wartn]"}
  26. {$total} [/b]
  27. {/section}
  28. </td></tr>
  29. </table>
  30. </div>


Próbuję na różne sposoby ale nie udaje mi się. Wyświetla mi ciąg jako liczba + liczba + liczba + liczba, a nie zsumowaną wartośc.

i jeszcze jedno pytanko.
Czy w szablonie smarty mogę wykorzystywać funkcje z php?
Chciałabym w komórce z id statusu i id_stanu ,wyświetlić ich nazwy.
Ma to wykonać funkcja status_nazwa($status_id)....itd...
Jak użyć tą funkcję w szablonie, jeśli się da?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Daimos
post 31.10.2010, 17:08:27
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


poczytaj o pluginach, czy helperach w smarty (już nie pamiętam jak to się tam zwało winksmiley.jpg
Ale było tam chyba coś do sumowania, na pewno działania matematyczne są do zrobienia. No i możesz pisać własne pluginy, wystarczy poszperać smile.gif


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
elwierka
post 31.10.2010, 17:20:40
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 26.12.2007

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


to nie ma w Smarty takiego prostego rozwiązania, jak dodawanie ?
Go to the top of the page
+Quote Post
maly_swd
post 31.10.2010, 17:27:45
Post #4





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


{math equation="x + y * z" x=$wartosc_x y=$wartosc_y z=$wartosc_z}


lub {math equation="x + y * z" x=$wartosc_x y=$wartosc_y z=$wartosc_z assign=wynik}

w zeminnej $wynik masz wynik operacji


co do php to:
{php}
global $foo, $bar;
if($foo == $bar){
echo 'This will be sent to browser';
}
// assign a variable to Smarty
$this->assign('varX','Toffee');
{/php}
{* output the variable *}
<strong>{$varX}</strong> is my fav ice cream :-)


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
chomiczek
post 12.11.2010, 10:04:02
Post #5





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


a ja się trochę podepnę tutaj pod temat..a mianowicie.. mam w pliku tpl taki kod (wycięte zbędne rzeczy)
Kod
{foreach from=$products item=product name=products}
[cut]
{assign var=plik value=`$product,reference`}
{include_php file='sprawdzZdalnyPlik.php'}
{if $pisz == 'ok'}
{$product.reference|escape}
{else}
pisz: 404
[cut]
{/if}
{/foreach}


plik PHP
  1. if (remote_file_exists('http://url/zdjecia/foto/'.$this->get_template_vars("plik").'.jpg')==200) $pi = 'ok';
  2. else $pi = 'er';
  3. $this->assign('pisz', $pi);

i zwraca prawidłowo pisz, ale tylko za pierwszym razem, później wywala błąd?
z tego co widzę to {assign var=plik value=`$product,reference`} za drugim razem tworzy tablice.. czy można jakoś usunąć zmienną? w tym przypadku plik

Ten post edytował chomiczek 12.11.2010, 13:03:17


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
tr@k
post 12.11.2010, 10:35:41
Post #6





Grupa: Zarejestrowani
Postów: 41
Pomógł: 8
Dołączył: 13.09.2010

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


Kod
{assign var=plik value=`$product,reference`}

chyba raczej powinno być tak (kropka zamiast przecinka)
Kod
{assign var=plik value=`$product.reference`}


Jeśli chodzi o dodawanie w szablonie to chyba nie jest najlepszy pomysł, bo przenosisz logikę do szablonu. Przekaż do szablonu już wyliczone dane.


--------------------
Web usability
Program Partnerski
Go to the top of the page
+Quote Post
chomiczek
post 12.11.2010, 10:40:36
Post #7





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


co do przecinka to mój błąd.. źle przykleiłem.. a co logiki.. hmm.. może masz rację smile.gif

EDT: no jednak z wielu względów nie mogę tego edytować.. znalazłem niby http://smarty.incutio.com/?page=Unassign ale nie działa.. nie wiem czemu sad.gif

Ten post edytował chomiczek 12.11.2010, 11:49:55


--------------------
created by chomiczek
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: 19.07.2025 - 09:33