Smarty dynamiczne tworzenie zmiennych

Smarty dynamiczne tworzenie zmiennych
B7
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam

Mam problem. Używam Smarty w wersji 3.1.13. Mam następujący problem. Do templatki mam przesłaną tablicę o następującej strukturze:

Kopiuj
$strona['title_pl'] = 'polski tytul';
$strona['title_en'] = 'angielski tytul';
$strona['title_de'] = 'niemiecki tytul';

oraz tablicę z dostępnymi wersjami językowymi:

Kopiuj
$langs['short']='pl';
$langs['short']='en';
$langs['short']='de';

I teraz w templatce chce wyświetlić w pętli zawartość pierwszej tablicy w taki sposób:

Kopiuj
{foreach $langs as $lang}
    {$strona.title_{$lang.short}}
{/foreach

Jakiś pomysł jak to ugryźć, bo walczę już od paru godzin i nie idzie.

dzek69
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
0
Buka77 napisał(a):

oraz tablicę z dostępnymi wersjami językowymi:

Kopiuj
$langs['short']='pl';
$langs['short']='en';
$langs['short']='de';

ja tu widzę nadpisywanie tej samej zmiennej...

axelbest
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 2255
0
Kopiuj
{capture assign="parameter"}{$twoja_zmienna}twoj_string_lub_innazmienna{/capture}

A potem używasz zmiennej $parameter.
Aczkolwiek nie polecam takiego rozwiązania, myślę że znalazłoby się lepsze wyjście z tej sytuacji.

dzek69
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
0

@axelbest:
capture to trochę ciężkie do łączenia stringów... lepsze:

Kopiuj
{$dupa = "czesc_stringa_`$lang`"}
{$tablica[$dupa]}

{* to CHYBA tez zadziała *}
{$tablica["czesc_stringa_`$lang`"]}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.