Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][Smarty] Łańcuch znakowy przekazany do widoku
Wolfie
post
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


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ć ?

Ten post edytował Wolfie 15.11.2009, 16:35:40
Go to the top of the page
+Quote Post
ucho
post
Post #2





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

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


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
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: 22.08.2025 - 02:41