Typo3 Install Tool keine Verbindung zur Datenbank

Bei Sysprovide mit den Basic Tarifen war die Typo3 Installation kein Problem,
jedoch funktionierte es mit dem Packet Entry-L nicht. Trotz richtiger mySQL Daten kam im Installtool immer die Meldung das die Datenbankverbindung nicht korrekt ist.

Zuerst habe ich die PHP Version und die mySQL Version geprüft. Die passende PHP Version habe ich dann auf PHP 5.3 in der .htaccess umgestellt. => Danach war die richtige PHP Version aktiv, aber die Datenbankverbindung ging immer noch nicht.

Da beim Installtool nur der Host und die Zugangsdaten abgefragt werden, und erst bei erfolgreicher Verbindung die Datenbanken angezeigt werden, habe ich die Datenbank mal manuell in der localconf hinzugefügt.

$typo_db = 'meine_datenbank';

Und siehe da, plötzlich erscheint diese Fehlermeldung: ADONewConnection: Unable to load database driver

Nach einer kurzen Google Suche hatte ich dann die Lösung und die Datenbankverbindung klappt!

ADONewConnection: Unable to load database driver

Folgendes an das Ende der localconf.php hinzufügen:

$TYPO3_CONF_VARS['EXTCONF']['dbal']['handlerCfg'] = array (
    '_DEFAULT' => array (
        'type' => 'adodb',
        'config' => array(
            'driver' => 'mysql',
           )
       )
); 

Extbase Dropdown Value hinzufügen

Oft hat man eine Dropdown Liste und möchte dann noch einen Standard Wert, z.B eine “alle” Auswahl hinzufügen,
die aber nicht in der Tabelle mit den Datensätzen vorhanden ist.

Wenn ihr wie ich die array_unshift Funktion nutzen möchtet, müsst ihr bei der findAll() Methode noch ein toArray() ausführen.

$personen = $this->personenRepository->findAll()->toArray();

$allePersonen = t3lib_div::makeInstance('Tx_MyExt_Domain_Model_Person');
$allePersonen->setName('Alle Personen');
$allePersonen->setUid(0);
array_unshift($personen, $allePersonen);	

Typoscript Condition bei bestimmter Action-Controller Kombination

eine Action meines Controllers wird dazu genutzt um ein Popup per Ajax zu füllen.
HTML Header und Metadaten sind dafür nicht nötig und sollen per Typoscript deaktiviert werden.
Dafür frägt man im Typoscript einfach die GET-Variablen für Controller und Action ab.

Die Variablen haben das Format: GP:extensionKey_PluginKey|controller und GP:extensionKey_PluginKey|action
Der Extension Key kann Unterstriche beinhalten und ist gleich dem Ordnernamen der Extension.
Der Pluginkey ist immer ohne Leerzeichen und ohne Unterstriche.

[globalVar = GP:tx_myext_userplugin|controller = User] && [globalVar = GP:tx_myext_userplugin|action = userDetail]
	page >
	
	page = PAGE
	
	page.type = 0

	page.config {
	
		disableAllHeaderCode = 1
		xhtml_cleaning = 0
		admPanel = 0
		debug = 0
		no_cache = 1		
	}
	
	page.10 < tt_content.list.20.myext_userplugin

[/global]

Typo3 Id eines neuen Datensatzes nach Repository Add

Die ID eines neu hinzugefügten Datensatzes bekommt man erst nach einem persistAll Aufruf des Persistence Managers.
Dieser wird normalerweise erst am Ende der Ausführung des Skriptes aufgerufen.

$this->AnmeldungenRepository->add($anmeldung);
$anmeldungen->initializeObject();
		
$persistenceManager = $this->objectManager->get('Tx_Extbase_Persistence_Manager');
$persistenceManager->persistAll();
		
echo $anmeldung->getUid();