Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wykonanie funkci w szablonie SMART
Forum PHP.pl > Forum > Przedszkole
acztery
witam,

mam taki kłopot.

Napisaklem funkce która wysweta dana ilosc gwizadek na podstawie punków wynikiem sa rzecz jasna gwiazdki.

No i sama funkcja działa ale

ale jak ja chce wykonac w szablonie . to
nic ma wyniku

  1. <?php
  2. $Gw = Jaka_Funkcja($bla);
  3. $smarty->assign('ocena',&#092;"$Gw\");
  4. ?>


ale nie działa

czemu
nospor
$Gw = Jaka_Funkcja($bla);a to ci zwraca stringa? musisz go wyświetlić w szablonie

edit po poscie @kszycha:
rozwijam więc myśl.
Ważne jest czy funkcja awraca string czu coś innego (tablicę), aby to potem dobrze w szablonie obsŁużyć. Ważne jest rówież, aby to wogóle wyświetlić w szablonie. No sorki, ale bywaly przyapdki na forum, że ludzie coś zapodawali ale nie odbierali. Dlatego tak napisalem
@kszychu: jeśli to jest string to Twoja wypowiedź też nic nie dodała nowego
kszychu
  1. <?php
  2.  
  3. $Gw = Jaka_Funkcja($bla);
  4. $smarty->assign('ocena', $Gw);
  5.  
  6. ?>


@nospor: Twoja wypowiedź była tak samo użyteczna jak niepotrzebna.
acztery
ok to inaczej bo tamto tez nie działa mam cos takiego.

  1. <?php
  2. $ListShop = mysql_query(&#092;"SELECT * FROM sys_shop WHERE ParentID ='$PAR1' ORDER by ShopID ASC\");
  3. while($W = mysql_fetch_array($ListShop))
  4. {
  5.     $Name = $W[&#092;"Name\"];
  6.     $Title = $W[&#092;"Title\"];
  7.     $Description = $W[&#092;"Description\"];
  8.     $ParentID = $W[&#092;"ParentID\"];
  9.     $Images = $W[&#092;"Images\"];
  10.     $ShopID  = $W[&#092;"ShopID\"];
  11.     $Gw = ShowMark(&#092;"$ShopID\"); // Tu funkcja do generowania ilości gwiazdek
  12.  
  13.     $LisShop .= &#092;"
  14. <table class=&#092;"shop\" cellSpacing=\"0\" cellPadding=\"0\">
  15.   <tbody>
  16.     <tr>
  17.       <td><img src=&#092;"thumbnails/1.gif\"></td>
  18.       <td><img src=&#092;"gfx/kropki_pion.gif\"></td>
  19.       <td>
  20.         <table cellSpacing=&#092;"0\" cellPadding=\"0\">
  21.           <tbody>
  22.             <tr>
  23.               <td style=&#092;"WIDTH: 60px\" rowSpan=\"2\">&nbsp;</td>
  24.               <td class=&#092;"mark\">ocena: <span class=\"orange\">4</span><span class=\"dark\">/5</span></td>
  25.             </tr>
  26.             <tr>
  27.               <td>$Gw</td> <!-- Tu powinno sie pokazac wygenerowana ilosc !-->
  28.             </tr>
  29.           </tbody>
  30.         </table>
  31.         <span style=&#092;"FONT-SIZE: 7pt; COLOR: #9c9c9c\">kategoria:</span> <span style=\"FONT-SIZE: 7pt; COLOR: #5f5f5f\">fotografia</span><br><Br><b>$Title</b><br>
  32.         <b style=&#092;"FONT-SIZE: 7pt; COLOR: #ff9600\"><br>
  33.         Oferta sklepu:</b><br>
  34.         <span style=&#092;"FONT-SIZE: 7pt; COLOR: #565656\">$Description</span></td>
  35.     </tr>
  36.   </tbody>
  37. </table>&#092;";
  38. }
  39. $smarty->assign('LisShop',&#092;"$LisShop\");
  40. ?>


ale w miejsce gwiazdek nie ma nic ..
nospor
po to używa się smarty, aby nie musieć wpisywać do zmiennej treści strony, a potem ją przypisywać do smarty'iego.

Do smarty'iego masz przypisać $Gw, a w szablonie to wyświetlic.
plik php:
  1. <?php
  2.  
  3. //...
  4. $smarty->assign('Gw',$Gw);
  5. //...
  6.  
  7. ?>


plik szablonu:

  1. ...
  2. {$Gw}
  3. ...
kszychu
Sprawdź, co masz pod $ShopID i czy w ShowMark() nie masz błędów.
acztery
zmienna ShopId zwraca poprawny wynik.

a funkcja jest napisana nie dziala nawat na takiej prostej

  1. <?php
  2. function ShowMark($ShopID) {
  3.  
  4.     $ile = $ShopID + 3;
  5.     echo &#092;"$ile\";
  6. }
  7. ?>


Wynik tej funkcji chce miec w jednej zmiennej czyli:

  1. <?php
  2. $zmienna = ShowMark($ShopID);
  3. ?>


i to teraz chce miec powiedzmy w innej zmiennej np:

  1. <?php
  2. $ListShop = mysql_query(&#092;"SELECT * FROM sys_shop WHERE ParentID ='$PAR1' ORDER by ShopID ASC\");
  3. while($W = mysql_fetch_array($ListShop))
  4.  
  5.  
  6.  
  7. {
  8.  
  9.     $Name = $W[&#092;"Name\"];
  10.     $Title = $W[&#092;"Title\"];
  11.     $ShopID  = $W[&#092;"ShopID\"];
  12.  
  13. $zmienna = ShowMark($ShopID); // funcka tworzy ocene
  14.  
  15.   $SM_zmienna = &#092;"$Name - $Title ocena : $zmienna\";
  16.  
  17. }
  18. ?>


i to wszystko teraz zapisuje do szablonu SMART .... wiem jak .. wie moze ktos jak to zrobic
kszychu
Zamiast
  1. <?php
  2. function ShowMark($ShopID) {
  3. $ile = $ShopID + 3;
  4. echo &#092;"$ile\";
  5. }
  6. ?>

daj
  1. <?php
  2. function ShowMark($ShopID) {
  3. $ile = $ShopID + 3;
  4. return $ile;
  5. }
  6. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.