[TYPO3-german] Objekt im FrontendUser ablegen

Johannes C. Schulz - EnzephaloN IT-Solutions info at enzephalon.de
Mon Jun 30 12:16:20 CEST 2014


 

Hallo typo3-Freunde

 

Ich schreibe gerade eine Extension für 6.2.x neu und möchte dabei einiges
verbessern was ich unter 4.5.x irgendwie komisch gelöst hatte. Eine Aufgabe
ist, das von mir erstellte Objekt auch in den zugeordneten FrontendUser
abzulegen. Der Verweis aus dem Objekt auf den FrontendUser funktioniert, der
zurück wird aber nicht gespeichert.

 

In meiner ext_tables.php erweitere ich den FrontendUser:

 

/**

* Extend fe_user

*/

$tempColumns = Array(

    "tx_accreditation_accreditation" => Array(

        "exclude" => 1,

        "label" => "Akkreditierungen",

        "config" =>array(

            "type" => "inline",

            "foreign_table" =>
"tx_accreditation_domain_model_accreditation",

            "foreign_table_where" => "ORDER BY
tx_accreditation_domain_model_accreditation.year DESC",

            "size" => 10,

            "minitems" => 0,

            "maxitems" => 999,

        ),

    ),

);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns("fe_users"
, $tempColumns, 1);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes("fe_use
rs", "--div--;Akkreditierungen, tx_accreditation_accreditation;;;;1-1-1");

 

Das vom FrontendUser abgeleitete Model erweitere ich um mein Feld:

 

class User extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser {

 

        /**

                * @var
\TYPO3\CMS\Extbase\Persistence\ObjectStorage<EnzephaloN\Accreditation\Domain
\Model\Accreditation> $accreditation

                * @validate NotEmpty

                */

               protected $accreditation;

        

        /**

                * Constructs a new Front-End User

                *

                * @api

                * @param string $username

                * @param string $password

                */

                public function __construct($username = '', $password = '')
{

                               $this->username = $username;

                               $this->password = $password;

                               $this->usergroup = new
\TYPO3\CMS\Extbase\Persistence\ObjectStorage();

                $this->accreditation = new
\TYPO3\CMS\Extbase\Persistence\ObjectStorage();

                }

 

                Setter, getter, addAccreditation


 

Der User wird wie gesagt mittels
$this->objectManager->get(`EnzephaloN\\Accreditation\\Domain\\Model\\User‘);
angelegt. Doch wenn ich $user->addAccreditation($newAccreditation); aufrufe,
passiert original nix. 

 

Ein Dump auf $newAccreditation->getUser(); liefert mir einen ObjectStorage
zurück – wie komme ich an das User-Objekt????

 

Wäre für Hilfe hier echt dankbar.

 

Johannes



More information about the TYPO3-german mailing list