Sziasztok!
Elakadtam egy problémánál és nem tudom, hogyan is oldjam meg. Lehet, hogy valakinek van valami korszak alkotó ötlete amivel tovább tudna lendíteni. Szeretnék készíteni egy oldalhoz egy nyelvi modult ami egyben egy fordító is lesz. Adott egy menü és egy blokk tábla. Egyszerűsítve így kérdeztem le eddig az adatokat.
$r = $db -> query("SELECT Menu.*,MenuBlock.mb_id,MenuBlock.mb_name,MenuBlock.position,MenuBlock.enable,MenuBlock.registered,MenuBlock.senddate FROM Menu
while ($x = $db -> fetch_assoc($r)) $a[] = $x;
Majd smarty-val egy foreach-el kiirattam. Pl a menü nevét így
ul
{foreach from=$leftmenu item=menu}
li class="category-top_un {if $menu_id == $menu.menu_id}active{/if}"
a class="category-top_un" target='{$menu.target}' href="{if $menu.menu_type == 'Weblinks'}{$menu.menu_url}{else}{$menu.menu_url}&menu_id={$menu.menu_id}{/if}"{$menu.menu_title}/a/li
{/foreach}
/ul
A gond, hogy ugye bejönnek a nyelvek. Az alapértelmezett nyelv mondjuk a magyar. $getLang = 'hu'
Egy úgy oldottam meg, hogy a tábla mező nevét változattam meg így. menu_title => menu_title_hu
Ha angol akkor pedig menu_title_en. Így a nyelvnek megfelő rekordot olvasom ki az adatbázisból. Viszont ebben az esetben a smarty-ban ez a forma nem lesz jó.
{$men.menu_title} Helyette ez kellene: {$menu.menu_title_hu} vagy {$menu.menu_title_en} A nyelvnek megfelelően. Ez a problémát hogyan lehet megoldani? Remélem érthetően írtam le.
- 797 megtekintés
Hozzászólások
Szerintem rossz ötlet a teljes result-ot átadni smarty-nak, de több megoldás is van:
* lekérdezéskor nyelvtől függően írod meg a select-et, ...Menu.menu_title_".$getLang." AS menu_title...
* php részben a while() ciklusban nevezed át a menu_title_hu-t menu_title-re.
- A hozzászóláshoz be kell jelentkezni