[TYPO3-german] Extbase / Fluid / TCA - Ausgabe FE_Users

Birgit lists at berlin-typo3.de
Wed Mar 28 10:10:59 CEST 2018


Hallo,

Welches Label für das TCA Selectmenu angezeigt wird, kannst du beeinflussen, indem du die bestehende Definition für die Tabelle fe_users im TCA (Formulare für die Eingabe im Backend) überschreibst.

Den Eintrag machst du bei TYPO3 8.x in einer Extension (ich nenne sie immer tca_overrides) in folgender Verzeichnisstruktur:
typo3conf/extensionname/Configuration/TCA/Overrides/

Dort wird für jede DB-Tabelle, die überschrieben werden soll, eine eigene Datei angelegt:

fe_users.php

mit diesem Inhalt:

<?php
defined('TYPO3_MODE') || die();

$GLOBALS['TCA']['fe_users']['ctrl']['label'] = 'last_name‘;

// Wenn zusätzliche Felder angezeigt werden sollen:

$GLOBALS['TCA']['fe_users']['ctrl']['label_alt'] = 'first_name, username';
$GLOBALS['TCA']['fe_users']['ctrl']['label_alt_force'] = 1;

https://docs.typo3.org/typo3cms/TCAReference/7.6/ExtendingTca/StoringChanges/Index.html

Im Frontend hast du das komplette Objekt fe_user des eingeloggten Feuser zur Verfügung im TSFE.

$GLOBALS['TSFE']->fe_user->user


In Extbase läuft die Übergabe aus der Controller Action an Fluid z.B. so:

// prüfe, ob ein fe_user eingeloggt ist
if ($GLOBALS['TSFE']->fe_user->user['uid'] > 0) {
    $this->view->assign('loggedInUser', $GLOBALS['TSFE']->fe_user->user);
} 

In Fluid dann:
{loggedInUser.uid} {loggedInUser.firstName}

<f:debug>{loggedInUser}</f:debug>


Wenn du einen beliebigen Feuser anzeigen willst, läuft das wie bei jedem anderen Objekt.
Du brauchst ein Model mit Mapping auf die Tabelle.
Wie das geht, kannst du dir z.B. in der Extension powermail ansehen.

Die Übergabe an Fluid geht dann z.B. so:

$feuser = $myObject->getFeuser();
$name = $feuser->getFirstName().' '.$feuser->getLastName();
$this->view->assign('name', $name);


oder

$this->feUser->getByUid($uid);
$this->view->assign('feUser', $this->feUser);


viele Grüße
Birgit







> Am 28.03.2018 um 08:27 schrieb Haug IT-Solutions <it at haug-components.com>:
> 
> Guten Morgen,
> 
> wir beschäftigen uns gerade ganz neu mit TYPO3 und haben uns mit dem "Extension Builder" eine kleine Erweiterung gebaut.
> 
> Hier haben wir einige Fragen zu, die wir aber nicht alle in diesen Thread hier packen wollen.
> 
> Die erste Frage bezieht sich auf die FE_Users.
> 
> Wir haben eine Select-Liste, welche sich an den Inhalten der FE_Users bedienen soll. Dies funktioniert auch schon ganz gut mit:
> 
> 'customer_representative' => [
>  'exclude' => false,
>  'label' => 'LLL:EXT:hit_db/Resources/Private/Language/locallang_db.xlf:tx_db_domain_model_customer.customer_representative',
>  'config' => [
>     'type' => 'select',
>     'foreign_table' => 'fe_users',
>     'foreign_table_where' => 'AND fe_users.usergroup=1',
>     'size' => 3,
>     'autoMaxSize' => 10,
>     'maxitems'      => 9999,
>     'multiple' => 0
>  ],
> ]
> 
> Wie bekommen wir es hin, dass statt der Benutzernamen der richtige Name angezeigt wird? 
> Auch in der Ausgabe im Frontend. Die Extension speichert dort nur die UserID des jeweiligen Benutzers und diese ist dann der Wert, der uns ausgegeben wird.
> 
> Besten Dank.
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german



More information about the TYPO3-german mailing list