Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Smarty] Modyfikowanie wyniku funkcji., Jak w Smartym zmodyfikować wynik funkcji?
Mikoskay
post 3.10.2006, 15:20:28
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 12.12.2005

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


Witam. Od dłuższego czasu szukam odpowiedzi na to pytanie, a że nic nie znalazłem, zwracam się do was. Mam zarejestrowaną funkcję...

  1. <?php
  2. $smarty->register_function('lang', 'smarty_translate');
  3. ?>

... i używam jej w szablonie ...

  1. {lang text='1 Comment'}

... co daje prawidłowy wynik ...

Cytat
1 komentarz

Problem pojawia się, gdy chcę zmodyfikować wynik funkcji za pomocą modyfikatora replace...

  1. {lang text='% Comments'|replace:'%':$post.comments}

... ponieważ replace modyfikuje parametr wysyłany do funkcji zamiast wyniku funkcji, który ma być wyświetlony. Co zrobić, żeby zmodyfikować wynik funkcji? Z góry dzięki,
Go to the top of the page
+Quote Post
heaven
post 21.10.2006, 09:48:56
Post #2





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

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


Najlepiej zrobic od razu wszystko na bloku smarty ale skoro juz masz funkcje to po prostu zamknij ja w bloku. Mozesz tez do funkcji lang dodac ewentualne parametry np.
  1. {lang text='% Comments' old_text="%" new_text=$post.comments}


W oparciu o blok będzie to wyglądało tak...
  1. {str_replace old_text="%" new_text=$post.comments}
  2. {lang text='% Comments'}
  3. {/str_replace}


a tu jest kod bloku {str_replace ...}

  1. <?php
  2. function smarty_block_str_replace($param,$content,&$smarty) {
  3. if ($content != null)
  4. $content = str_replace($param['old_text'],$param['new_text'],$content);
  5. return $content;
  6. }
  7.  
  8. $smarty->register_block('str_replace', 'smarty_block_str_replace');
  9. ?>

nie sprawdzałem czy działa smile.gif ale chyba tak
Go to the top of the page
+Quote Post
Mikoskay
post 21.10.2006, 10:17:50
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 12.12.2005

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


A ja wymyśliłem coś jeszcze prostszego... Po prostu:
  1. {lang|replace:'%':$post.comments text='% Comments'}

winksmiley.jpg
Go to the top of the page
+Quote Post
heaven
post 21.10.2006, 10:47:22
Post #4





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

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


Faktycznie prostsze smile.gif. Nawet nie wiedzilem że tak można, ale jest to logiczne smile.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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:52