Szótárazott szövegek kiíratása

lpApplication::getText('szoveg_konstans_neve_angol_szavak');

A szótár két helyen van eltárolva. Az egyik a közös adatbázis (commonDb). Ennek paramétereit a

SOURCE/cfg/defines.inc -ben lehet állítani

define('COMMONDB_HOST','localhost');
define('COMMONDB_DB','common_db');
define('COMMONDB_USER','username');
define('COMMONDB_PASS','password');

Ebben az adatbázisban az lp_dict táblában vannak tárolva. Itt vannak a rendszer szótárazott üzenetei, minden modulhoz. Itt több ezer bejegyzés van, amelyet bármelyik honlap használhat.

Ezt felülírja illetve kiegészíti az alkalmazás saját adatbázisában az lp_dict tábla.

Minden nyelvnek kell egy oszlop 'text_' előtaggal. pl. magyar: 'text_hu', angol: 'text_en', német 'text_de' ISO két betűs nyelvi kódokat használunk.

A fő konfigurációban

cfg/lpConf.inc

meg kell határozni a megengedett nyelveket. Például angol, magyar:

// check array for allowed languages
public static $arrLangAllowed = array('en','hu',);

Ezen kívül a modul paraméterek->main -ben is meg kell adni a használt nyelveket:

"lang_default":"hu","lang":"hu","languages":["hu","en"]

Éles rendszer esetén a szövegek a session-ben lesznek tárolva és nem frissülnek csak az admin-ban mentéskor, ezért teszteléskor a sessiont űríteni kell.

A szótárazott szövegek keresése szöveg konstansok alapján történik. Vannak esetek amikor

Induláskor a rendszer az összes olyan szótárbejegyzést betölti amelyik modulneve megegyezik a megengedett, konfigurált komponensek neveievel (mysql lp_dict.type = komponens php osztály neve), illetve minden modulhoz hozzáadható egy paraméter amelyik megmondja, hogy melyik szótárat akarja használni. Akkor az is betöltődik. Olyan szótár is megadható, amelyik neve egyik modul nevével sem egyezik meg de akár több modul is betöltheti de akkor azt külön fel kell sorolni a modul paramétereinél a "lang_modules" tömbben.

Példa modul paraméter részletre:

"lang_modules": ["nested_set"]

Ha az lp_dict.type "all" akkor minden esetben betöltődik illetve ha "main" akkor a honlapon, ha "admin" akkor az adminban.

 

Szótárazott listák

A szótár egyedi szövegek kiíratására szolgál.

Bizonyos esetekben nem szöveg konstansokra van szükség, hanem azonosítókra mert SQL táblához kell csatolni a szótárazott szöveget illetve html "select" vagy jQuery ui "combobox"-hoz van szükség listákra.

Ezek a listák a honlap adatbázisában vannak tárolva a DB_PRE_list táblában

A tábla felépítése:

id int azonosító
ext_id int 1-től induló szám ami coumn_name-enként van csoportosítva.Lehet használni SQL Join-hoz is.
ext_key int Nem használt. Importálásnál volt használatban.
column_name varchar Ez a lista neve.
text_hu varchar Magyar nyelvű szöveg
text_en varchar Angol nyelvű szöveg
text_{ISO 2 betűs nyelv} varchar Bármilyen más nyelvű szöveg. Több nyelv használata esetén ilyen oszlopokat kell létrehozni
ordering int Sorba rendezés, Egy szám tetszőlegesen megadható. Ha ki van töltve akkor a html "select" ez szerint lesz rendezve, nem névsor szerint.

 

Program kódban elhelyezett listák

Lehetnek olyan listák, amelyek biztosan nem változnak. Például a hónapok nevei, azonban nyelv bővítésnél szükség lehet ezek bővítésére is.

Korábban a SOURCE/helper/lpTableHelper::getStaticList() volt használatos.Ez elavult helyette a

SOURCE/classlib/static_list/staticList::getList('fajlnev-listanev') függvényt kell használni.

A lista lehet szótárazott vagy szótárazatlan. Ez utóbbi a preferált mód mert ha a honlap több nyelvre kerül lefordításra akkor ezt is fordíttatni kell ami már nehezebb, illetve mindenképpen plusz feladat. Így a szövegek a szótárban kerülnek elhelyezésre ezért csak a szótárat kell bővíteni illetve a cikkeket a honlapon.

Létezni kell egy fájlnak itt:

SOURCE/classlib/static_list/list/fajlnev.inc

Ebben a fájlban egy tömbnek, ami így néz ki pl:

 

$arrRet=array(

            

            

            'fajlnev-listanev'=>array(

                    

                '1'    =>array('option_text'=>'monday'),

                '2'    =>array('option_text'=>'tuesday'),

                '3'    =>array('option_text'=>'wednsday'),

                '4'    =>array('option_text'=>'thursday'),

                '5' =>array('option_text'=>'friday'),

                '6'    =>array('option_text'=>'saturday'),    

                '7'    =>array('option_text'=>'sunday'),

            ),

 

Egyedi (distinct) lista egy táblából

lpTableHelper::getDistinctList()