[TYPO3-UG Italy] struttura db per ex multi lingua
Mauro Lorenzutti
mauro.lorenzutti at webformat.com
Fri Jan 27 08:49:36 CET 2012
Salve Eugenio,
Il 26/01/2012 20:34, Eugenio Benvenuti ha scritto:
> Ciao a tutti,
> Sto utilizzando una estensione che non supporta il multi lingua per i
> dati salvati nel database. Vorrei provare a modificarla per ottenere
> questa funzione.
>
> Potete indicarmi come vanno organizzati i dati nel db delle estensioni
> al fine di tradurli a seconda della lingua selezionata?
per aggiungere il supporto multilingua ad un'estensione, devi procedere
come segue:
1. nel file ext_tables.sql vanno aggiunti i seguenti campi alle tabelle
da tradurre:
sys_language_uid int(11) DEFAULT '0' NOT NULL,
l18n_parent int(11) DEFAULT '0' NOT NULL,
l18n_diffsource mediumblob NOT NULL,
2. Nel file ext_tables.php, nella sezione "ctrl" del TCA della tabella
devi aggiungere le seguenti configurazioni:
"languageField" => "sys_language_uid",
"transOrigPointerField" => "l18n_parent",
"transOrigDiffSourceField" => "l18n_diffsource",
3. Nel file tca.php devi poi configurare questi tre nuovi campi:
'sys_language_uid' => Array (
'exclude' => 1,
'label' => 'LLL:EXT:lang/locallang_general.php:LGL.language',
'config' => Array (
'type' => 'select',
'foreign_table' => 'sys_language',
'foreign_table_where' => 'ORDER BY sys_language.title',
'items' => Array(
Array('LLL:EXT:lang/locallang_general.php:LGL.allLanguages',-1),
Array('LLL:EXT:lang/locallang_general.php:LGL.default_value',0)
)
)
),
'l18n_parent' => Array (
'displayCond' => 'FIELD:sys_language_uid:>:0',
'exclude' => 1,
'label' =>
'LLL:EXT:lang/locallang_general.php:LGL.l18n_parent',
'config' => Array (
'type' => 'select',
'items' => Array (
Array('', 0),
),
'foreign_table' => 'tx_extendedshop_status',
'foreign_table_where' => 'AND
tx_extendedshop_status.pid=###CURRENT_PID### AND
tx_extendedshop_status.sys_language_uid IN (-1,0)',
)
),
'l18n_diffsource' => Array (
'config' => Array (
'type' => 'passthrough'
)
),
4. sempre nel file tca.php, devi aggiungere i 3 nuovi campi nella lista
dei campi da visualizzare in "types" "0" (per esempio):
"types" => Array (
"0" => Array("showitem" => "sys_language_uid;;;;1-1-1,
l18n_parent, l18n_diffsource, hidden;;1, .......
Con i passi dal 1 al 4 attivi il supporto al multilingua dei record da
BE, manca il frontend... E questa è la parte più spinosa: dovresti
modificare le query di estrazione dei dati dell'estensione (tipicamente
dentro il file class.extkey_pi1.php per filtrare i record in base alla
lingua scelta.
Buon lavoro,
--
Mauro Lorenzutti
*** TYPO3 Certified Integrator ***
e-mail: mauro.lorenzutti at webformat.com
---------------------------------------------------------
WEBFORMAT srl | Corte Europa, 12 | I-33097 SPILIMBERGO PN
Tel +39-0427-926.389 -- Fax +39-0427-927.653
info at webformat.com -- http://www.webformat.com
---------------------------------------------------------
More information about the TYPO3-UG-Italy
mailing list