Damit Typo3 mit anderen Datenbankbackends zusammenarbeitet benötigt man DBAL und AdoDB. Diese beiden Extensions schalten sich zwischen Typo3 und der Datenbank und stellen die angefragten SQL Statements in die jeweilige Datenbanksprache um.
Damit die SQL Statements aber auch an die DBAL Extension weitergereicht werden können, müssen auch die Typo3 eigenen Abfragefunktionen genutzt werden. Ebenfalls sollte man MySQL Spezifische SQL Funktionen vermeiden und sauberes SQL schreiben.
Nicht alle Extensions nutzen die Typo3 Abfragefunktionen oder beinhalten immer sauberes SQL.
Für folgende Extensions haben wir Patches geschrieben, die die Extension DBAL Konform oder mit DBAL nutzbar machen:
- th_mailformplus
- Patch ist schon im TER enthalten
- es wird ein direkter MySQL Aufruf in die TYPO3 Abfragefunktion ersetzt
- tt_news
- der unsabere Einsatz von DISTINCT wird gefixed
- GROUP BY Funktion wird auskommentiert, nicht alle benötigten Felder angegeben werden und somit ein SQL Fehler entsteht
- dam
- kleinere Fehler bei SQL Statements
Damit Typo3 mit DBAL und RealURL funktioniert muss bei der Konfiguration, soweit nicht schon geschehen, folgendes angepasst werden:
----
'postVarSets' => array(
'_DEFAULT' => array(
// news archive parameters
'archive' => array(
array(
'GETvar' => 'tx_ttnews[year]' ,
),
array(
'GETvar' => 'tx_ttnews[month]' ,
'valueMap' => array(
'january' => '01',
'february' => '02',
'march' => '03',
'april' => '04',
'may' => '05',
'june' => '06',
'july' => '07',
'august' => '08',
'september' => '09',
'october' => '10',
'november' => '11',
'december' => '12',
)
),
),
// news pagebrowser
'browse' => array(
array(
'GETvar' => 'tx_ttnews[pointer]',
),
'valueMap' => array(
'weiter' => '1',
'weiter' => '2',
)
),
// news categories
'select_category' => array (
array(
'GETvar' => 'tx_ttnews[cat]',
'lookUpTable' => array(
'table' => 'tt_news_cat',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND deleted = 0',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
),
// news articles and searchwords
'article' => array(
array(
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array(
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND deleted = 0',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
array(
'GETvar' => 'tx_ttnews[swords]',
),
),
),
),
----
Die Fett-Markierten Zeilen müssen angepasst werden.