This documentation is not using the current rendering mechanism and will be deleted by December 31st, 2020. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.
Contains mapping of tablename and fields in a table. Notice that entering any configuration for a table might affect performance since translation is needed before results are returned or queries executed.
Mapping is totally transparent for applications inside TYPO3 and mapping is independent of handler type - the translation goes on between these two spheres.
Mapping can work as a work-around for reserved field- or table names.
Real, physical tablename for the table
Real, physical fieldname in the table.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dbal']['mapping'] = array( 'sys_note' => array( 'mapTableName' => 'SysNoteTable', 'mapFieldNames' => array( 'uid' => 'uid999', 'pid' => 'pid999', 'deleted' => 'deleted999', 'tstamp' => 'tstamp999', 'crdate' => 'crdate999', 'cruser' => 'cruser999', 'author' => 'author999', 'email' => 'email999', 'subject' => 'subject999', 'message' => 'message999', 'personal' => 'personal999', 'category' => 'category999' ) ), '_tt_content' => array( 'mapTableName' => 'tt_content999', 'mapFieldNames' => array( 'bodytext' => 'bodytext999', 'header' => 'header999', 'image' => 'image999', 'pid' => 'pid999', 'sorting' => 'sorting999', ) ) );
In this example two classic TYPO3 tables have been mapped; the
sys_note table (from the
sys_note extension) and the
tt_content table (Content Elements).
According to this mapping example the
sys_note table in the database
(or whatever data source) is actually named
SysNoteTable and all
fields are actually named differently; with "...999" after (this is
just an example).
When you try to make a look up in the
SELECT uid FROM sys_note WHERE uid=123
then this is transformed into
SELECT uid999 FROM SysNoteTable WHERE uid999=123
before executed. And the result row which will be
array('uid999' => 123) will be transformed back to
array('uid' => 123) before you receive it inside of TYPO3.
Mapping tables to two different databases on localhost
will most likely only work if
[SYS][no_pconnect] is set in
$TYPO3_CONF_VARS. Otherwise PHP will, regardless of DBAL maintaining
different links for the databases, use the wrong one.