Hallo zusammen,
ich möchte gerne femanager nutzen um für eine eigenständige Extension eine Benutzerregistrierung zu ermöglichen. Dafür ist es notwendig, dass alle User nach der Anmeldung den RecordType zugewiesen bekommen. Laut Manual sollte das auch gehen... leider bleibt das DB Feld (tx_extbase_tye) immer leer. Habe ich etwas übersehen?
Der folgende Code steht im TS Setup auf jender Seite welche auch das PlugIn des FEManager enthält...
Hat jemand eine Idee?
config.tx_extbase.persistence.classes {
In2\Femanager\Domain\Model\User {
mapping {
tableName = fe_users
RecordType = Tx_Hbm_User
}
}
}
Hallo nochmal,
hat wirklich keine/r eine Idee?
Ich habe nun zwei weitere mögliche Fehler gefunden jedoch ändert dies bei mir nichts. Der RecodType bleibt immer leer/undefined:
Bei recordType hatte ich eine FALSCHE upperCamelCase....
ich habe es auch mit der definition über das plugin.tx_femanger.... versucht.. Ohne Erfolg.
plugin.tx_femanager.persistence.classes.Tx_femanager_Domain_Model_User {
mapping {
tableName = fe_users
recordType = 1
}
}
Noch Update welches nicht funktioniert:
Ich steht jetzt wirklich total am Schlauch....
config.tx_extbase {
persistence {
classes {
TYPO3\CMS\Extbase\Domain\Model\FrontendUser {
subclasses {
Tx_Hbm_User = PCON\Hbm\Domain\Model\User
}
}
In2\Femanager\Domain\Model\User {
mapping {
tableName = fe_users
recordType = Tx_Hbm_User
}
}
}
}
}
Soooo nach sehr anger Suche habe ich zumindest eine sehr dirty Lösung gefunden:
Da ich mein Model selbst von FrontendUser erweitere musste ich in der Datei In2\Femanager\Persistence\Generic\Mapper\DataMap.php folgende zeile kommentieren:
<?php
namespace In2\Femanager\Persistence\Generic\Mapper;
/**
* Disable tx_extbase_type='0' in where clause for femanager
*/
class DataMap extends \TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMap {
/**
* Sets the record type
*
* @param string $recordType The record type
* @return void
*/
public function setRecordType($recordType) {
parent::setRecordType($recordType);
if (
$this->getClassName() === 'In2\\Femanager\\Domain\\Model\\User' ||
$this->getClassName() === 'In2\\Femanager\\Domain\\Model\\UserGroup'
) {
//$this->recordType = NULL; <- Dies habe ich kommentiert
parent::setRecordType($recordType);
}
}
}
Das kann aber sicher nicht die Lösung sein...
Würde mich über jeden Lösungsansatz freuen...
LG Jürgen
Hallo Jürgen,
hast du eine Lösung gefunden? Ich stehe nämlich vor einem ähnlichen Problem...
LG,
Viktoria
Hallo,
Falls es jemanden interessiert, im TS Setup eintragen:
config.tx_extbase.objects.TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMap.className >
config.tx_extbase.persistence.classes.In2\Femanager\Domain\Model\User.mapping.recordType = abc