[Frage] Femanager und Extbase/Record Type [Gelöst]

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    01. 04. 2015, 15:54

    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?

    1. config.tx_extbase.persistence.classes {
    2. In2\Femanager\Domain\Model\User {
    3. mapping {
    4. tableName = fe_users
    5. RecordType = Tx_Hbm_User
    6. }
    7. }
    8. }

    Tags: Extbase
  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    07. 04. 2015, 20:45 - Lösung

    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:

    1. <?php
    2. namespace In2\Femanager\Persistence\Generic\Mapper;
    3.  
    4. /**
    5.  * Disable tx_extbase_type='0' in where clause for femanager
    6.  */
    7. class DataMap extends \TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMap {
    8.  
    9. /**
    10. * Sets the record type
    11. *
    12. * @param string $recordType The record type
    13. * @return void
    14. */
    15. public function setRecordType($recordType) {
    16. parent::setRecordType($recordType);
    17. if (
    18. $this->getClassName() === 'In2\\Femanager\\Domain\\Model\\User' ||
    19. $this->getClassName() === 'In2\\Femanager\\Domain\\Model\\UserGroup'
    20. ) {
    21. //$this->recordType = NULL; <- Dies habe ich kommentiert
    22. parent::setRecordType($recordType);
    23. }
    24. }
    25. }

    Das kann aber sicher nicht die Lösung sein...
    Würde mich über jeden Lösungsansatz freuen...

    LG Jürgen


  • 1
  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    02. 04. 2015, 13:28

    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.

    1. plugin.tx_femanager.persistence.classes.Tx_femanager_Domain_Model_User {
    2. mapping {
    3. tableName = fe_users
    4. recordType = 1
    5. }
    6. }

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    02. 04. 2015, 14:03

    Noch Update welches nicht funktioniert:
    Ich steht jetzt wirklich total am Schlauch....

    1. config.tx_extbase {
    2. persistence {
    3. classes {
    4. TYPO3\CMS\Extbase\Domain\Model\FrontendUser {
    5. subclasses {
    6. Tx_Hbm_User = PCON\Hbm\Domain\Model\User
    7. }
    8. }
    9. In2\Femanager\Domain\Model\User {
    10. mapping {
    11. tableName = fe_users
    12. recordType = Tx_Hbm_User
    13. }
    14. }
    15. }
    16. }
    17. }

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    07. 04. 2015, 20:45

    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:

    1. <?php
    2. namespace In2\Femanager\Persistence\Generic\Mapper;
    3.  
    4. /**
    5.  * Disable tx_extbase_type='0' in where clause for femanager
    6.  */
    7. class DataMap extends \TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMap {
    8.  
    9. /**
    10. * Sets the record type
    11. *
    12. * @param string $recordType The record type
    13. * @return void
    14. */
    15. public function setRecordType($recordType) {
    16. parent::setRecordType($recordType);
    17. if (
    18. $this->getClassName() === 'In2\\Femanager\\Domain\\Model\\User' ||
    19. $this->getClassName() === 'In2\\Femanager\\Domain\\Model\\UserGroup'
    20. ) {
    21. //$this->recordType = NULL; <- Dies habe ich kommentiert
    22. parent::setRecordType($recordType);
    23. }
    24. }
    25. }

    Das kann aber sicher nicht die Lösung sein...
    Würde mich über jeden Lösungsansatz freuen...

    LG Jürgen

  • -VZEM- -VZEM-
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    27. 04. 2016, 15:49

    Hallo Jürgen,

    hast du eine Lösung gefunden? Ich stehe nämlich vor einem ähnlichen Problem...
    LG,
    Viktoria

  • -VZEM- -VZEM-
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    29. 04. 2016, 16:26

    Hallo,

    Falls es jemanden interessiert, im TS Setup eintragen:

    1. config.tx_extbase.objects.TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMap.className >
    2. config.tx_extbase.persistence.classes.In2\Femanager\Domain\Model\User.mapping.recordType = abc

  • 1