Получите данные от пользователя FE в собственный EXT в TYPO3 8.7.x - PullRequest
0 голосов
/ 15 апреля 2019

Эй, я пытаюсь получить данные (то есть uid) от текущего вошедшего в систему пользователя, который использует сайт.

В TYPO3 7.6.X это было очень легко.Вам просто нужно было использовать $GLOBALS['TSFE']->fe_user->user для получения данных.В TYPO3 8.7.x это немного сложнее.Должно работать с $frontendUserAspect = GeneralUtility::makeInstance(Context::class)->getAspect('frontend.user'); $frontendUserAspect->get('id').Но в моем случае это не так.

Мой код выглядит следующим образом:

<?php

namespace Reevo\ReevoElearning\Output;

use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Database\Query\QueryBuilder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;
use \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
use TYPO3\CMS\Extbase\Object\ObjectManager;
use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController;
use TYPO3\CMS\Core\Context\Context;
use TYPO3\CMS\Core\Context\UserAspect;

class FlexformValue {
    function field($content, $conf) {
// TSFE USER ID
$frontendUserAspect = GeneralUtility::makeInstance(Context::class)->getAspect('frontend.user');
$frontendUserAspect->get('id'); 
$test = $frontendUserAspect;
echo $test;
return "$test";
    }
} 

Я получаю следующую ошибку: «TYPO3 \ CMS \ Core \ Context \ Context» не найден иличто-то вроде этого.Но если я удаляю эту строку use TYPO3\CMS\Core\Context\Context;, она ищет тот же файл в моей папке пространства имен.Кто-нибудь знает, как заставить его работать?

1 Ответ

1 голос
/ 15 апреля 2019

$GLOBALS['TSFE']->fe_user->user все еще доступен в TYPO3 8.7. Я думаю, что это было объявлено устаревшим в 9, но не будет удалено до 10. FrontendUserAspect был представлен в 9.4. Я думаю, что, вероятно, TYPO3\CMS\Core\Context\Context также был, так что ошибка верна. Вы все еще должны использовать $GLOBALS['TSFE']->fe_user->user в TYPO3 8,7

...