von Franz Ripfel, 03.06.2008

Teil 3: TYPO3-API für die eigene Programmierung richtig einsetzen: TYPO3-Extensions entwickeln

Aus dem
t3n Magazin Nr. 12

Jetzt kaufen

PHP

t3lib_extMgm::addPlugin(array('LLL:EXT:abz_references/locallang_db.xml:tt_content.list_type_pi1', $_EXTKEY.'_pi1'),'list_type');

Listing 3

Folgende Funktionen sollten Sie sich außerdem auf jeden Fall vormerken:

extPath($key,$script='')

Die Funktion „extPath“ dient zur Erkennung des korrekten absoluten Pfads beim Einbinden einer Klasse aus der Extension „$key“.

PHP

include_once(t3lib_extMgm::extPath('tt_news').'class.tx_ttnews_catmenu.php');

Listing 4

addPiFlexFormValue($piKeyToMatch,$value)

Die Funktion „addPiFlexFormValue“ benötigen Sie beim Einsatz von Flexforms zur Konfiguration Ihres Plugins.

class t3lib_BEfunc (class.t3lib_befunc.php)

In dieser Klasse sind Funktionalitäten für das TYPO3-Backend gesammelt. Auch hier werden die Funktionen statisch, also ohne Instanziierung aufgerufen. Häufig eingesetzt werden folgende Funktionen:

deleteClause($table,$tableAlias='')
Diese Funktion sollten Sie in jede SQL-Abfrage im Backend einbauen, sobald die zugrunde liegende Tabelle über das $TCA konfiguriert ist, um über gelöschte Datensätze sauber zu behandeln.
getRecord($table,$uid,$fields='*',$where='')
Dies ist die ideale Funktion, um schnell und direkt einen Datensatz aus einer Tabelle zu holen, zu dem die uid bekannt ist.
getPagesTSconfig($id,$rootLine='',$returnPartArray=0)
Über das Page TSconfig Array können Sie Konfigurationsparameter für Ihre Module anbieten und auswerten.

class class t3lib_DB (class.t3lib_db.php)

Die Klasse „t3lib_DB“ ist die generelle Wrapper-Klasse für jeglichen Datenbankzugriff. Allein betrachtet, stellt sie noch keine komplette Abstraktionsschicht dar, schafft aber die notwendige Grundlage dafür. Solange TYPO3 mit MySQL betrieben wird, werden die Zugriffsbefehle direkt in native MySQL-Befehle umgewandelt. Bei der Zusammenarbeit mit anderen Datenbanken kommt die Extension „dbal“ [4] ins Spiel, die die jeweiligen Zugriffe steuert. Das Datenbank-Objekt steht in jedem TYPO3-Script zur Verfügung.

Klassische Nutzung von TYPO3_DB

$table = 'pages';
$where = $this->cObj->enableFields($table);
$groupBy = '';
$orderBy = 'sorting';
$limit = '';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery (
	'*',
 	$table,
 	$where,
 	$groupBy,
 	$orderBy,
 	$limit
);
$rows = array();
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
 	$rows[] = $row;
}
$GLOBALS['TYPO3_DB']->sql_free_result($res);

Listing 5

Sie sollten möglichst nur Methoden, die mit „exec_*“ beginnen einsetzen, da diese eine einwandfreie Zusammenarbeit mit der Extension „dbal“ und so auch mit anderen Datenbanken ermöglichen.

Seite:  1 2 3 4 5 6 7 8 9

Empfohlene Artikel