Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Smarty] Łańcuch znakowy przekazany do widoku
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam serdecznie w piękny weekendowy dzień,

Mam taką funkcję która należy do klasy PageNavigator :

  1. private function createLink($offset, $strdisplay) {
  2. $strtemp = '<a href="'.$this->pagename.'?controller='."{$controller}".'&action=mailbox&'.$this->firstparamname.'='.$offset;
  3. $strtemp .= $this->params.'">'.$strdisplay.'</a>'."\n";
  4. return $strtemp;
  5. }



<br><br>Jak widać w łańcuchu przekazywanym przez url mamy {$controller},

Ponieważ obiekt klasy PageNavigator jest przekazywany do systemu szablonów smarty to pomyślelem że taka konstrukcja będzie działać, przy czym {$controller} to zmienna ładowana przez inna funkcje również do Smarty.

W innych miejscach zmienna {$controller} jest uzupełniana prawidłowo, niestety w tym łańcuchu wogóle sie nie uzupełnia.....

Czy wogóle taka konstrukcja ma prawo działać ? Na moją logikę tak winksmiley.jpg ale może sie mylę ?

Przedstawie jeszcze w jaki sposób jest ładowana zmienna do szablonu :

  1. $smarty = new Smarty_Setup;
  2.  
  3. $smarty->assign('title', 'Offline Mailbox');
  4. $smarty->assign('controller', 'file');
  5. $smarty->assign('box_name', $box_name);
  6. //$smarty->assign('stats', $stats);
  7. //$smarty->assign('box', $boxes);
  8. $smarty->assign('parts', $parts);
  9. $smarty->assign('navigator', $navigator);
  10.  
  11. $smarty->display('mailbox.tpl');


Jak widać powyżej mamy zmienną 'controller' a na samym końcu ładuję do widoku łańcuch zapytania $navigator

Ale niestety tak jak wspomniałem {$controller} w tym przypadku wogóle się nie uzupełnia......macie jakieś wskazówki ?

A tutaj kawalek szablonu tpl :

  1. <div id="learn">
  2. <input type="hidden" name="controller" value="{$controller}" />
  3. <input type="hidden" name="action" value="mailbox" />
  4. <input type="submit" name="message" value="Spam" />
  5. <input type="submit" name="message" value="Ham" />
  6. </div>
  7. <div id="navigator">
  8. <div>{$parts.navigator}</div>
  9. </div>


value = "{$controller}" jest uzupelniane poprawnie

Dalej mamy {$parts.navigator} i tam znajduje sie łańcuch z pierwszej przedstawionej funkcji w którym to znajduje sie zmienna dla smarty {$controller}, czy to ma prawo działać ?
ucho
Smarty podstawia wartości w odpowiednie miejsca szablonu, nie przetwarza ich. Inaczej można by ustawić wartość '{$x}' dla zmiennej x. I co wtedy biedne Smarty miało by wyprodukować po natrafieniu na '{$x}' gdzieś w szablonie? Co najwyżej stack overflow tongue.gif
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.