Compare commits

...

5 Commits

29 changed files with 320 additions and 287 deletions

View File

@ -95,10 +95,10 @@ class AbstractCommandController extends Commands
ObjectManager::class ObjectManager::class
); );
$this->initFrontendController(); $this->initFrontendController();
$this->configurationManager = $this->objectManager->get( $this->configurationManager = GeneralUtility::makeInstance(
ConfigurationManagerInterface::class ConfigurationManagerInterface::class
); );
$this->apiUtility = $this->objectManager->get( $this->apiUtility = GeneralUtility::makeInstance(
\Cjel\TemplatesAide\Utility\ApiUtility::class \Cjel\TemplatesAide\Utility\ApiUtility::class
); );
$this->configurationManager->setConfiguration(array()); $this->configurationManager->setConfiguration(array());
@ -115,7 +115,7 @@ class AbstractCommandController extends Commands
$frameworkConfiguration['persistence']['storagePid'] $frameworkConfiguration['persistence']['storagePid']
) )
); );
$this->logManager = $this->objectManager->get( $this->logManager = GeneralUtility::makeInstance(
LogManager::Class LogManager::Class
); );
$this->importLogger = $this->logManager->getLogger( $this->importLogger = $this->logManager->getLogger(
@ -130,7 +130,7 @@ class AbstractCommandController extends Commands
get_class($this) get_class($this)
); );
foreach ($classInfo->getInjectMethods() as $method => $className) { foreach ($classInfo->getInjectMethods() as $method => $className) {
$class = $this->objectManager->get( $class = GeneralUtility::makeInstance(
$className $className
); );
$this->{$method}($class); $this->{$method}($class);

View File

@ -31,6 +31,13 @@ use TYPO3\CMS\Extbase\Reflection\ReflectionService;
use TYPO3\CMS\Frontend\Plugin\AbstractPlugin; use TYPO3\CMS\Frontend\Plugin\AbstractPlugin;
use TYPO3\CMS\Frontend\Utility\EidUtility; use TYPO3\CMS\Frontend\Utility\EidUtility;
use TYPO3\CMS\Core\Context\Context;
use TYPO3\CMS\Core\Http\ResponseFactory;
use TYPO3\CMS\Core\Routing\PageArguments;
use TYPO3\CMS\Core\Site\SiteFinder;
use TYPO3\CMS\Frontend\Authentication\FrontendUserAuthentication;
use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController;
/** /**
* AbstractEIDController * AbstractEIDController
*/ */
@ -120,10 +127,10 @@ class AbstractEIDController
ObjectManager::class ObjectManager::class
); );
$this->initFrontendController(); $this->initFrontendController();
$this->configurationManager = $this->objectManager->get( $this->configurationManager = GeneralUtility::makeInstance(
ConfigurationManagerInterface::class ConfigurationManagerInterface::class
); );
$this->apiUtility = $this->objectManager->get( $this->apiUtility = GeneralUtility::makeInstance(
\Cjel\TemplatesAide\Utility\ApiUtility::class \Cjel\TemplatesAide\Utility\ApiUtility::class
); );
$frameworkConfiguration = $this->configurationManager->getConfiguration( $frameworkConfiguration = $this->configurationManager->getConfiguration(
@ -142,22 +149,25 @@ class AbstractEIDController
$frameworkConfiguration['persistence']['storagePid'] $frameworkConfiguration['persistence']['storagePid']
) )
); );
$this->logManager = $this->objectManager->get( $this->logManager = GeneralUtility::makeInstance(
LogManager::Class LogManager::Class
); );
$this->importLogger = $this->logManager->getLogger( $this->importLogger = $this->logManager->getLogger(
'importLogger' 'importLogger'
); );
$this->reflectionService = GeneralUtility::makeInstance( $this->reflectionService = GeneralUtility::makeInstance(
ReflectionService::class, GeneralUtility::makeInstance( ReflectionService::class
CacheManager::class
)
); );
$classInfo = $this->reflectionService->getClassSchema( $classInfo = $this->reflectionService->getClassSchema(
get_class($this) get_class($this)
); );
foreach ($classInfo->getInjectMethods() as $method => $className) { foreach ($classInfo->getInjectMethods() as $method => $className) {
$class = $this->objectManager->get( if (version_compare(TYPO3_branch, '10.0', '>=')) {
$className = $className
->getFirstParameter()
->getDependency();
}
$class = GeneralUtility::makeInstance(
$className $className
); );
$this->{$method}($class); $this->{$method}($class);
@ -193,23 +203,53 @@ class AbstractEIDController
//if (count($result) < 1) { //if (count($result) < 1) {
// throw new \Exception('Domain not configured'); // throw new \Exception('Domain not configured');
//} //}
$frontendController = GeneralUtility::makeInstance(
\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::class,
$GLOBALS['TYPO3_CONF_VARS'], $context = GeneralUtility::makeInstance(Context::class);
null,
0,
true
$siteFinder = GeneralUtility::makeInstance(SiteFinder::class);
$site = $siteFinder->getSiteByPageId(1049);
$siteLanguage = reset($site->getLanguages());
$pageArguments = GeneralUtility::makeInstance(
PageArguments::class,
1049,
'0',
[]
); );
$frontendUser = GeneralUtility::makeInstance(
FrontendUserAuthentication::class
);
$frontendController = GeneralUtility::makeInstance(
TypoScriptFrontendController::class,
$context,
$site,
$siteLanguage,
$pageArguments,
$frontendUser
);
//die;
$GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageService::class); $GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageService::class);
$GLOBALS['LANG']->init('default'); $GLOBALS['LANG']->init('default');
$GLOBALS['TSFE'] = $frontendController; $GLOBALS['TSFE'] = $frontendController;
$frontendController->connectToDB(); //$frontendController->connectToDB();
$frontendController->fe_user = EidUtility::initFeUser(); //$frontendController->fe_user = EidUtility::initFeUser();
$frontendController->id = $result[0]['pid']; //$frontendController->id = 1049;
$frontendController->determineId(); $frontendController->determineId();
$frontendController->initTemplate(); //$frontendController->initTemplate();
$frontendController->getConfigArray(); $frontendController->getConfigArray();
EidUtility::initTCA(); //EidUtility::initTCA();
} }
/** /**
@ -226,6 +266,12 @@ class AbstractEIDController
ServerRequestInterface $request, ServerRequestInterface $request,
ResponseInterface $response = null ResponseInterface $response = null
) { ) {
if (!$response) {
$responseFactory = GeneralUtility::makeInstance(
ResponseFactory::class
);
$response = $responseFactory->createResponse();
}
$apiObject = explode('/', $request->getUri()->getPath())[3]; $apiObject = explode('/', $request->getUri()->getPath())[3];
$apiObjectId = explode('/', $request->getUri()->getPath())[4]; $apiObjectId = explode('/', $request->getUri()->getPath())[4];
if (!$apiObject) { if (!$apiObject) {
@ -306,7 +352,7 @@ class AbstractEIDController
*/ */
public function persistAll() public function persistAll()
{ {
($this->objectManager->get( (GeneralUtility::makeInstance(
PersistenceManager::class PersistenceManager::class
))->persistAll(); ))->persistAll();
} }

View File

@ -27,7 +27,8 @@ use TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationBuilder;
use TYPO3\CMS\Extbase\Service\EnvironmentService; use TYPO3\CMS\Extbase\Service\EnvironmentService;
use TYPO3\CMS\Extbase\Service\ExtensionService; use TYPO3\CMS\Extbase\Service\ExtensionService;
use TYPO3\CMS\Extbase\Utility\LocalizationUtility; use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
use Psr\Http\Message\ResponseInterface;
use TYPO3\CMS\Core\Http\RequestFactory;
class ActionController extends BaseController class ActionController extends BaseController
{ {
@ -121,10 +122,7 @@ class ActionController extends BaseController
*/ */
protected $ajaxEnv = []; protected $ajaxEnv = [];
/**
* @var \TYPO3\CMS\Extbase\Service\ExtensionService
*/
protected $extensionService;
/** /**
* uribuilder * uribuilder
@ -137,12 +135,14 @@ class ActionController extends BaseController
protected $config = []; protected $config = [];
/** /**
* propertyMappginConfigrtationBuolder * ExtensionService
*
* @var ExtensionService
*/ */
protected $propertyMapperConfigurationBuilder; protected $extensionService;
/** /**
* @param \TYPO3\CMS\Extbase\Service\ExtensionService $extensionService * @param
*/ */
public function injectExtensionService(ExtensionService $extensionService) public function injectExtensionService(ExtensionService $extensionService)
{ {
@ -165,21 +165,22 @@ class ActionController extends BaseController
$this->environmentService = $environmentService; $this->environmentService = $environmentService;
} }
/** // /**
* propertyMapper // * propertyMapper
* // *
* @var PropertyMapper // * @var PropertyMapper
*/ // */
protected $propertyMapper; // protected $propertyMapper;
/** // /**
* @param // * @param
*/ // */
public function injectPropertyMapper( // public function injectPropertyMapper(
PropertyMapper $propertyMapper // PropertyMapper $propertyMapper
) { // ):void {
$this->propertyMapper = $propertyMapper; // // \TYPO3\CMS\Core\Utility\DebugUtility::debug($propertyMapper);die;
} // $this->propertyMapper = $propertyMapper;
// }
/** /**
* propertyMappingConfigurationBuilder * propertyMappingConfigurationBuilder
@ -221,6 +222,7 @@ class ActionController extends BaseController
*/ */
public function initializeAction() public function initializeAction()
{ {
if ($GLOBALS['TSFE']->config['config']) { if ($GLOBALS['TSFE']->config['config']) {
$this->config = GeneralUtility::removeDotsFromTS( $this->config = GeneralUtility::removeDotsFromTS(
$GLOBALS['TSFE']->config['config'] $GLOBALS['TSFE']->config['config']
@ -237,13 +239,13 @@ class ActionController extends BaseController
} }
$this->contentObjectUid = $this->contentObjectUid =
$this->configurationManager->getContentObject()->data['uid']; $this->configurationManager->getContentObject()->data['uid'];
$this->cacheManager = $this->objectManager->get( $this->cacheManager = GeneralUtility::makeInstance(
CacheManager::class CacheManager::class
); );
//$this->cache = $this->cacheManager->getCache( //$this->cache = $this->cacheManager->getCache(
// 'tobereplaced' //TODO: Replaceme // 'tobereplaced' //TODO: Replaceme
//); //);
$this->logManager = $this->objectManager->get( $this->logManager = GeneralUtility::makeInstance(
LogManager::Class LogManager::Class
); );
$this->importLogger = $this->logManager->getLogger( $this->importLogger = $this->logManager->getLogger(
@ -252,7 +254,7 @@ class ActionController extends BaseController
$this->generalLogger = $this->logManager->getLogger( $this->generalLogger = $this->logManager->getLogger(
__CLASS__ __CLASS__
); );
$this->dataMapper = $this->objectManager->get( $this->dataMapper = GeneralUtility::makeInstance(
DataMapper::Class DataMapper::Class
); );
$this->arguments->addNewArgument('step', 'string', false, false); $this->arguments->addNewArgument('step', 'string', false, false);
@ -264,7 +266,7 @@ class ActionController extends BaseController
*/ */
public function getUriBuilder() public function getUriBuilder()
{ {
return $this->objectManager->get( return GeneralUtility::makeInstance(
UriBuilder::class UriBuilder::class
); );
} }
@ -274,7 +276,7 @@ class ActionController extends BaseController
*/ */
public function persistAll() public function persistAll()
{ {
($this->objectManager->get( (GeneralUtility::makeInstance(
PersistenceManager::class PersistenceManager::class
))->persistAll(); ))->persistAll();
} }
@ -450,21 +452,7 @@ class ActionController extends BaseController
$schema $schema
); );
if (!$validationResult->isValid()) { if (!$validationResult->isValid()) {
//foreach ($validationResult->getErrors() as $error){
// $field = implode('.', $error->dataPointer());
// if ($error->keyword() == 'required') {
// $tmp = $error->dataPointer();
// array_push($tmp, $error->keywordArgs()['missing']);
// $field = implode('.', $tmp);
// }
// if ($error->keyword() == 'additionalProperties') {
// continue;
// }
// $this->errors[$field] = [
// 'keyword' => $error->keyword(),
// 'details' => $error->keywordArgs()
// ];
//}
if ($translate) { if ($translate) {
$this->translateErrorMessages($validationResult); $this->translateErrorMessages($validationResult);
} }
@ -665,6 +653,7 @@ class ActionController extends BaseController
*/ */
public function initializePropertyMappingConfigurationFromRequest(\TYPO3\CMS\Extbase\Mvc\Request $request, $propertyMappingConfiguration, $propertyNameTest) public function initializePropertyMappingConfigurationFromRequest(\TYPO3\CMS\Extbase\Mvc\Request $request, $propertyMappingConfiguration, $propertyNameTest)
{ {
$trustedPropertiesToken = $request->getInternalArgument('__trustedProperties'); $trustedPropertiesToken = $request->getInternalArgument('__trustedProperties');
if (!is_string($trustedPropertiesToken)) { if (!is_string($trustedPropertiesToken)) {
return; return;
@ -677,14 +666,10 @@ class ActionController extends BaseController
} }
$trustedProperties = unserialize($serializedTrustedProperties, ['allowed_classes' => false]); $trustedProperties = unserialize($serializedTrustedProperties, ['allowed_classes' => false]);
foreach ($trustedProperties as $propertyName => $propertyConfiguration) { foreach ($trustedProperties as $propertyName => $propertyConfiguration) {
//if (!$controllerArguments->hasArgument($propertyName)) {
// continue;
//}
if ($propertyName != $propertyNameTest) { if ($propertyName != $propertyNameTest) {
continue; continue;
} }
//$propertyMappingConfiguration = $controllerArguments->getArgument($propertyName)->getPropertyMappingConfiguration();
$this->modifyPropertyMappingConfiguration($propertyConfiguration, $propertyMappingConfiguration); $this->modifyPropertyMappingConfiguration($propertyConfiguration, $propertyMappingConfiguration);
} }
} }
@ -731,6 +716,7 @@ class ActionController extends BaseController
$errorStatus = null, $errorStatus = null,
$object = 'data' $object = 'data'
) { ) {
$this->setAjaxEnv($object); $this->setAjaxEnv($object);
if ($result == null) { if ($result == null) {
$result = []; $result = [];
@ -740,6 +726,7 @@ class ActionController extends BaseController
$result, $result,
['errors' => $this->errors] ['errors' => $this->errors]
); );
} }
if (!empty($this->errorLabels)) { if (!empty($this->errorLabels)) {
$result = array_merge( $result = array_merge(
@ -754,13 +741,23 @@ class ActionController extends BaseController
); );
} }
if ($this->pageType) { if ($this->pageType) {
$requestFactory = GeneralUtility::makeInstance(RequestFactory::class);
if (is_array($this->responseStatus)) { if (is_array($this->responseStatus)) {
$this->response->setStatus( // $this->response->setStatus(
array_key_first($this->responseStatus) // array_key_first($this->responseStatus)
); // );
$response = $this->responseFactory
->createResponse()
->withHeader('Content-Type', 'application/json; charset=utf-8')
->withStatus(array_key_first($this->responseStatus), '');
} else { } else {
$this->response->setStatus($this->responseStatus); //$this->response->setStatus($this->responseStatus);
$response = $this->responseFactory
->createResponse()
->withHeader('Content-Type', 'application/json; charset=utf-8')
->withStatus($this->responseStatus, '');
} }
if ($this->pageType == $this->ajaxPageType) { if ($this->pageType == $this->ajaxPageType) {
if ($this->environmentService->isEnvironmentInBackendMode()) { if ($this->environmentService->isEnvironmentInBackendMode()) {
header('Content-Type: application/json'); header('Content-Type: application/json');
@ -775,7 +772,13 @@ class ActionController extends BaseController
if ($this->reload) { if ($this->reload) {
$result['reload'] = true; $result['reload'] = true;
} }
return json_encode($result);
//\TYPO3\CMS\Core\Utility\DebugUtility::debug($result);die;
//return json_encode($result);
$response->getBody()->write(json_encode($result));
return $response;
} }
$result = array_merge( $result = array_merge(
$result, $result,
@ -789,6 +792,13 @@ class ActionController extends BaseController
['ajaxEnv' => $this->ajaxEnv] ['ajaxEnv' => $this->ajaxEnv]
); );
} }
$this->view->assignMultiple($result); $this->view->assignMultiple($result);
return $this->responseFactory
->createResponse()
->withHeader('Content-Type', 'text/html; charset=utf-8')
->withStatus(200, 'Super ok!')
->withBody($this->streamFactory->createStream($this->view->render()));
} }
} }

View File

@ -45,9 +45,6 @@ class EIDController extends AbstractEIDController
ResponseInterface $response = null ResponseInterface $response = null
) { ) {
$GLOBALS['TSFE']->fe_user->setKey('ses', 'scriptstate', 0); $GLOBALS['TSFE']->fe_user->setKey('ses', 'scriptstate', 0);
//\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(
// $GLOBALS['TSFE']->fe_user->getKey('ses', 'scriptstate')
//);
$GLOBALS["TSFE"]->storeSessionData(); $GLOBALS["TSFE"]->storeSessionData();
$response->getBody()->write(\json_encode([])); $response->getBody()->write(\json_encode([]));
return $response; return $response;

View File

@ -11,17 +11,7 @@ namespace Cjel\TemplatesAide\Hooks;
* (c) 2018 Philipp Dieter <philippdieter@attic-media.net> * (c) 2018 Philipp Dieter <philippdieter@attic-media.net>
* *
***/ ***/
//use GridElementsTeam\Gridelements\Backend\LayoutSetup;
//use TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController;
//use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Backend\Wizard\NewContentElementWizardHookInterface; use TYPO3\CMS\Backend\Wizard\NewContentElementWizardHookInterface;
//use TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider;
//use TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider;
//use TYPO3\CMS\Core\Imaging\IconRegistry;
//use TYPO3\CMS\Core\Utility\GeneralUtility;
//use TYPO3\CMS\Core\Utility\StringUtility;
//use TYPO3\CMS\Lang\LanguageService;
/** /**
* Class/Function which manipulates the rendering of items within the new content element wizard * Class/Function which manipulates the rendering of items within the new content element wizard

View File

@ -75,14 +75,6 @@ class Double2Converter extends AbstractTypeConverter
$value *= -1; $value *= -1;
} }
$value = number_format($value, 2, '.', ''); $value = number_format($value, 2, '.', '');
//\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(
// $source, null, 3
//);
//if (is_string($source)) {
// if ($source === '') {
// $source = [];
// }
//}
return $value; return $value;
} }
} }

View File

@ -80,10 +80,10 @@ trait DependencyInjectionTrait
$this->objectManager = GeneralUtility::makeInstance( $this->objectManager = GeneralUtility::makeInstance(
ObjectManager::class ObjectManager::class
); );
$this->configurationManager = $this->objectManager->get( $this->configurationManager = GeneralUtility::makeInstance(
ConfigurationManagerInterface::class ConfigurationManagerInterface::class
); );
$this->apiUtility = $this->objectManager->get( $this->apiUtility = GeneralUtility::makeInstance(
ApiUtility::class ApiUtility::class
); );
$frameworkConfiguration = $this->configurationManager->getConfiguration( $frameworkConfiguration = $this->configurationManager->getConfiguration(
@ -102,11 +102,7 @@ trait DependencyInjectionTrait
$frameworkConfiguration['persistence']['storagePid'] $frameworkConfiguration['persistence']['storagePid']
) )
); );
$this->reflectionService = GeneralUtility::makeInstance( $this->reflectionService = GeneralUtility::makeInstance(ReflectionService::class);
ReflectionService::class, GeneralUtility::makeInstance(
CacheManager::class
)
);
$classInfo = $this->reflectionService->getClassSchema( $classInfo = $this->reflectionService->getClassSchema(
get_class($this) get_class($this)
); );

View File

@ -127,22 +127,12 @@ trait ValidationTrait
if (is_array($input) && array_key_exists('eID', $input)) { if (is_array($input) && array_key_exists('eID', $input)) {
unset($input['eID']); unset($input['eID']);
} }
//@TODO make optional when usiing rest api
//array_walk_recursive(
// $input,
// function (&$value) {
// if (filter_var($value, FILTER_VALIDATE_INT)) {
// $value = (int)$value;
// }
// }
//);
$input = ArrayUtility::toObject($input); $input = ArrayUtility::toObject($input);
$validationResult = $validator->dataValidation( $validationResult = $validator->dataValidation(
$input, $input,
json_encode($schema), json_encode($schema),
-1 -1
); );
if (!$validationResult->isValid()) { if (!$validationResult->isValid()) {
$this->isValid = false; $this->isValid = false;
$this->responseStatus = [400 => 'validationError']; $this->responseStatus = [400 => 'validationError'];

View File

@ -47,7 +47,7 @@ class ApiUtility
$this->objectManager = GeneralUtility::makeInstance( $this->objectManager = GeneralUtility::makeInstance(
ObjectManager::class ObjectManager::class
); );
$this->imageService = $this->objectManager->get( $this->imageService = GeneralUtility::makeInstance(
imageService::class imageService::class
); );
if (1 == 0) { if (1 == 0) {
@ -171,6 +171,12 @@ class ApiUtility
) { ) {
$rowResult[$attributeName] = []; $rowResult[$attributeName] = [];
foreach ($methodResult as $object) { foreach ($methodResult as $object) {
if (!method_exists(
$methodResult,
'getOriginalResource'
)) {
continue;
}
$rowResult[$attributeName] $rowResult[$attributeName]
= $this->filereferenceToApi( = $this->filereferenceToApi(
$methodResult->getOriginalResource() $methodResult->getOriginalResource()
@ -220,7 +226,7 @@ class ApiUtility
$this->objectManager = GeneralUtility::makeInstance( $this->objectManager = GeneralUtility::makeInstance(
ObjectManager::class ObjectManager::class
); );
$this->imageService = $this->objectManager->get( $this->imageService = GeneralUtility::makeInstance(
imageService::class imageService::class
); );
$httpHost = GeneralUtility::getIndpEnv('HTTP_HOST'); $httpHost = GeneralUtility::getIndpEnv('HTTP_HOST');
@ -235,13 +241,8 @@ class ApiUtility
0 0
); );
$processingInstructionsPreview = array( $processingInstructionsPreview = array(
//'width' => '1024c',
//'height' => '768c',
//'minWidth' => $minWidth,
//'minHeight' => $minHeight,
'maxWidth' => '1024', 'maxWidth' => '1024',
'maxHeight' => '768', 'maxHeight' => '768',
//'crop' => $crop,
); );
$processedImagePreview = $this->imageService $processedImagePreview = $this->imageService
->applyProcessingInstructions( ->applyProcessingInstructions(

View File

@ -20,6 +20,7 @@ use TYPO3\CMS\Extbase\Service\ImageService;
use TYPO3\CMS\Fluid\View\StandaloneView; use TYPO3\CMS\Fluid\View\StandaloneView;
use TYPO3\CMS\Fluid\View\TemplatePaths; use TYPO3\CMS\Fluid\View\TemplatePaths;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
use Symfony\Component\Mime\Address;
/** /**
* *
@ -176,7 +177,7 @@ class MailUtility
$templateNameText = 'Mails/DefaultText'; $templateNameText = 'Mails/DefaultText';
} }
$objectManager = GeneralUtility::makeInstance(ObjectManager::class); $objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$configurationManager = $objectManager->get( $configurationManager = GeneralUtility::makeInstance(
ConfigurationManagerInterface::class ConfigurationManagerInterface::class
); );
$typoScript = $configurationManager->getConfiguration( $typoScript = $configurationManager->getConfiguration(
@ -185,9 +186,9 @@ class MailUtility
$settings = $settings =
(array)$typoScript['module.']['tx_templatesaide.']['settings.']; (array)$typoScript['module.']['tx_templatesaide.']['settings.'];
$settings = GeneralUtility::removeDotsFromTS($settings); $settings = GeneralUtility::removeDotsFromTS($settings);
$htmlView = $objectManager->get(StandaloneView::class); $htmlView = GeneralUtility::makeInstance(StandaloneView::class);
$htmlView->setTemplate($templateNameHtml); $htmlView->setTemplate($templateNameHtml);
$textView = $objectManager->get(StandaloneView::class); $textView = GeneralUtility::makeInstance(StandaloneView::class);
if ($templatePaths) { if ($templatePaths) {
$partialRootPaths = $htmlView->getPartialRootPaths(); $partialRootPaths = $htmlView->getPartialRootPaths();
$partialRootPaths[] = GeneralUtility::getFileAbsFileName( $partialRootPaths[] = GeneralUtility::getFileAbsFileName(
@ -215,8 +216,17 @@ class MailUtility
} }
$textView->setTemplate($templateNameText); $textView->setTemplate($templateNameText);
$mail = GeneralUtility::makeInstance(MailMessage::class); $mail = GeneralUtility::makeInstance(MailMessage::class);
$mail->setFrom($sender); if (version_compare(TYPO3_branch, '10.0', '>=')) {
$mail->subject($subject);
if ($sender) {
$mail->from($sender);
}
} else {
$mail->setSubject($subject); $mail->setSubject($subject);
if ($sender) {
$mail->setFrom($sender);
}
}
$bodydataText = []; $bodydataText = [];
$bodydataHtml = []; $bodydataHtml = [];
foreach ($data as $row) { foreach ($data as $row) {
@ -308,83 +318,20 @@ class MailUtility
$bodydataText[] = $textRow; $bodydataText[] = $textRow;
$bodydataHtml[] = $htmlRow; $bodydataHtml[] = $htmlRow;
break; break;
//case 'button':
// $row['data'] = str_replace(
// "\\\n",
// '',
// $row['data']
// );
// $htmlRow = $row;
// $htmlRow['data'] = preg_replace_callback(
// '/\[.*\]/mU',
// function($matches) {
// foreach ($matches as $match) {
// $test = preg_replace_callback(
// '/\[(\S*)\s(.*)\]/mU',
// function($matchesInner) {
//
// return '<a href="'
// . $matchesInner[1]
// . '">'
// . $matchesInner[2]
// . '</a>';
// },
// $match
// );
// \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(
// $test, null, 3, true, false
// );
// return $test;
// }
// },
// $htmlRow['data']
// );
// \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(
// $htmlRow['data'], null, 3, true, false
// );
// $htmlRow['data'] = preg_replace_callback(
// '/\*.*\*/mU',
// function($matches) {
// foreach ($matches as $match) {
// return '<b>'
// . substr($match, 1, -1)
// . '</b>';
// }
// },
// $htmlRow['data']
// );
// $textRow = $row;
// $textRow['data'] = preg_replace_callback(
// '/\[.*\]/mU',
// function($matches) {
// foreach ($matches as $match) {
// return preg_replace_callback(
// '/\[(\S*)\s(.*)\]/mU',
// function($matchesInner) {
// if (
// $matchesInner[2] == $matchesInner[1]
// ) {
// return $matchesInner[1];
// }
// return $matchesInner[2]
// . ': '
// . $matchesInner[1];
// },
// $match
// );
// }
// },
// $textRow['data']
// );
// $bodydataText[] = $textRow;
// $bodydataHtml[] = $htmlRow;
// break;
case 'attachment': case 'attachment':
if (version_compare(TYPO3_branch, '10.0', '>=')) {
$mail->attach(
$row['data'][0],
$row['data'][1],
$row['data'][2]
);
}else {
$mail->attach(new \Swift_Attachment( $mail->attach(new \Swift_Attachment(
$row['data'][0], $row['data'][0],
$row['data'][1], $row['data'][1],
$row['data'][2] $row['data'][2]
)); ));
}
break; break;
case 'attachmentBase64': case 'attachmentBase64':
$attachmentdata = explode(',', $row['data']); $attachmentdata = explode(',', $row['data']);
@ -392,19 +339,24 @@ class MailUtility
$mimetype = $matches[1]; $mimetype = $matches[1];
preg_match('/\w*\/(.*);\w*/', $attachmentdata[0], $matches); preg_match('/\w*\/(.*);\w*/', $attachmentdata[0], $matches);
$fileextension = $matches[1]; $fileextension = $matches[1];
if (version_compare(TYPO3_branch, '10.0', '>=')) {
$mail->attach(
base64_decode($attachmentdata[1]),
'attachment.' . $fileextension,
$mimetype
);
}else {
$mail->attach(new \Swift_Attachment( $mail->attach(new \Swift_Attachment(
base64_decode($attachmentdata[1]), base64_decode($attachmentdata[1]),
'attachment.' . $fileextension, 'attachment.' . $fileextension,
$mimetype $mimetype
)); ));
}
break; break;
} }
} }
$textView->assign('content', $bodydataText); $textView->assign('content', $bodydataText);
$htmlView->assign('content', $bodydataHtml); $htmlView->assign('content', $bodydataHtml);
//\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(
// $bodydataHtml, null, 8, true, false
//);
$domain = $settings['mailDomain']; $domain = $settings['mailDomain'];
if ($assetDomain) { if ($assetDomain) {
$domain = $assetDomain; $domain = $assetDomain;
@ -443,16 +395,30 @@ class MailUtility
); );
foreach ($recipientsIntercecpted as $recipientIntercepted) { foreach ($recipientsIntercecpted as $recipientIntercepted) {
foreach ($recipients as $recipient) { foreach ($recipients as $recipient) {
if (version_compare(TYPO3_branch, '10.0', '>=')) {
$mail->subject(
$subjectOrig . ' [ORIG-TO: ' . trim($recipient) . ']'
);
$mail->to(new Address(trim($recipientIntercepted)));
}else {
$mail->setSubject( $mail->setSubject(
$subjectOrig . ' [ORIG-TO: ' . trim($recipient) . ']' $subjectOrig . ' [ORIG-TO: ' . trim($recipient) . ']'
); );
$mail->setTo(trim($recipientIntercepted)); $mail->setTo(trim($recipientIntercepted));
}
$mail->send(); $mail->send();
} }
} }
} else { } else {
foreach ($recipients as $recipient) { foreach ($recipients as $recipient) {
if (version_compare(TYPO3_branch, '10.0', '>=')) {
$mail->to(new Address(trim($recipient)));
}else {
$mail->setTo(trim($recipient)); $mail->setTo(trim($recipient));
}
$mail->send(); $mail->send();
} }
} }

View File

@ -0,0 +1,43 @@
<?php
namespace Cjel\TemplatesAide\Utility;
/***
*
* This file is part of the "Templates Aide" Extension for TYPO3 CMS.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* filey as part of the extension by 2024 Philipp Dieter <philipp.dieter@attic-media.net>
*
***/
/**
*
*/
class SessionUtility
{
/**
*
*/
public static function setSessionValue(
$type, $key, $value
) {
$request = $GLOBALS['TYPO3_REQUEST'];
$frontendUser = $request->getAttribute('frontend.user');
$frontendUser->setKey($type, $key, $value);
$frontendUser->storeSessionData();
}
/**
*
*/
public static function getSessionValue(
$type, $key
) {
$request = $GLOBALS['TYPO3_REQUEST'];
$frontendUser = $request->getAttribute('frontend.user');
return $frontendUser->getKey($type, $key);
}
}

View File

@ -29,6 +29,7 @@ class TcaUtility
public static function configureSelect( public static function configureSelect(
&$tca, $column, $element, $options, $extensionKey = null &$tca, $column, $element, $options, $extensionKey = null
) { ) {
foreach ($options as &$option) { foreach ($options as &$option) {
$translationKey = "option.$element.$column.$option[0]"; $translationKey = "option.$element.$column.$option[0]";
$translation = self::getTranslation( $translation = self::getTranslation(

View File

@ -60,10 +60,6 @@ class WordWrapViewHelper extends AbstractViewHelper
continue; continue;
} }
$temp = ''; $temp = '';
//while (mb_strlen($line) > $limit) {
// $temp .= mb_substr($line, 0, $limit - 1);
// $line = mb_substr($line, $limit - 1);
//}
if (false === empty($temp)) { if (false === empty($temp)) {
$output .= $temp . $glue . $line . $glue; $output .= $temp . $glue . $line . $glue;
} else { } else {

View File

@ -1,7 +1,8 @@
<?php <?php
namespace Cjel\TemplatesAide\ViewHelpers; namespace Cjel\TemplatesAide\ViewHelpers;
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
class HeaderDataViewHelper extends AbstractViewHelper class HeaderDataViewHelper extends AbstractViewHelper
@ -25,12 +26,7 @@ class HeaderDataViewHelper extends AbstractViewHelper
} }
switch ($type){ switch ($type){
case 'tracking': case 'tracking':
//if(GeneralUtility::getApplicationContext()->isProduction()){
$GLOBALS['TSFE']->additionalHeaderData[] = $data; $GLOBALS['TSFE']->additionalHeaderData[] = $data;
//} else {
// $GLOBALS['TSFE']->additionalHeaderData[]
// = '<meta name="placeholder" content="tracking" />';
//}
break; break;
case 'title': case 'title':
$GLOBALS['TSFE']->additionalHeaderData[] $GLOBALS['TSFE']->additionalHeaderData[]

View File

@ -60,14 +60,10 @@ class ImageAppendViewHelper extends AbstractTagBasedViewHelper
{ {
foreach ($this->arguments['images'] as $image) { foreach ($this->arguments['images'] as $image) {
$imagePath = $image->getForLocalProcessing(false); $imagePath = $image->getForLocalProcessing(false);
//$image = $this->imageService->getImage('', $imageArgument, true);
//$image = $this->imageService->getImageUri($image);
$imageMagickFile = ImageMagickFile::fromFilePath($imagePath, 0); $imageMagickFile = ImageMagickFile::fromFilePath($imagePath, 0);
// \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump( // $imageMagickFile, null, 3
$imageMagickFile, null, 3 // );
);

View File

@ -4,7 +4,8 @@ namespace Cjel\TemplatesAide\ViewHelpers;
use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\Connection;
use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
class ScriptswitchNoscriptViewHelper extends AbstractViewHelper { class ScriptswitchNoscriptViewHelper extends AbstractViewHelper {
@ -21,10 +22,6 @@ class ScriptswitchNoscriptViewHelper extends AbstractViewHelper {
public function render() public function render()
{ {
//\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(
// $GLOBALS['TSFE']->fe_user->getKey('ses', 'scriptstate')
//);
$scriptstate = $GLOBALS['TSFE']->fe_user->getKey('ses', 'scriptstate'); $scriptstate = $GLOBALS['TSFE']->fe_user->getKey('ses', 'scriptstate');
if ($scriptstate) { if ($scriptstate) {

View File

@ -46,7 +46,7 @@ class TranslationViewHelper extends AbstractViewHelper
'array', 'array',
'The arguments', 'The arguments',
false, false,
false []
); );
} }
@ -63,6 +63,8 @@ class TranslationViewHelper extends AbstractViewHelper
\Closure $renderChildrenClosure, \Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext RenderingContextInterface $renderingContext
) { ) {
$translation = LocalizationUtility::translate( $translation = LocalizationUtility::translate(
$arguments['key'], $arguments['key'],
$arguments['extensionKey'], $arguments['extensionKey'],

View File

@ -0,0 +1,10 @@
services:
_defaults:
autowire: true
autoconfigure: true
public: false
Cjel\TemplatesAide\:
resource: '../Classes/*'
exclude: '../Classes/Standalone/*'
Cjel\TemplatesAide\Utility\ApiUtility:
public: true

View File

@ -0,0 +1,8 @@
<?php
use \TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
ExtensionManagementUtility::registerPageTSConfigFile(
'templates_aide',
'Resources/Private/PageTSConfig/default.tsconfig',
'Default Config'
);

View File

@ -1,5 +1,5 @@
<?php <?php
defined('TYPO3_MODE') || die('Access denied.'); defined('TYPO3') or die();
call_user_func(function() { call_user_func(function() {
unset($GLOBALS['TCA']['tx_templatesaide_domain_model_dummy']); unset($GLOBALS['TCA']['tx_templatesaide_domain_model_dummy']);

View File

@ -8,7 +8,7 @@ return [
'cruser_id' => 'cruser_id', 'cruser_id' => 'cruser_id',
'versioningWS' => true, 'versioningWS' => true,
'languageField' => 'sys_language_uid', 'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource', 'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted', 'delete' => 'deleted',
'enablecolumns' => [ 'enablecolumns' => [

View File

@ -256,7 +256,7 @@ TYPO3:
__inheritances: __inheritances:
10: 'TYPO3.CMS.Form.mixins.finishersEmailMixin' 10: 'TYPO3.CMS.Form.mixins.finishersEmailMixin'
EmailToReceiver: EmailsToReceiver:
__inheritances: __inheritances:
10: 'TYPO3.CMS.Form.mixins.finishersEmailMixin' 10: 'TYPO3.CMS.Form.mixins.finishersEmailMixin'

View File

@ -46,13 +46,13 @@
"emConf": { "emConf": {
"category": "plugin", "category": "plugin",
"custom_category": "", "custom_category": "",
"dependsOn": "typo3 => 8.7.0-9.5.99\n", "dependsOn": "typo3 => 8.7.0-11.5.99\n",
"disableLocalization": false, "disableLocalization": false,
"disableVersioning": false, "disableVersioning": false,
"skipGenerateDocumentationTemplate": false, "skipGenerateDocumentationTemplate": false,
"sourceLanguage": "en", "sourceLanguage": "en",
"state": "alpha", "state": "alpha",
"targetVersion": "9.5.0-9.5.99", "targetVersion": "9.5.0-11.5.99",
"version": "0.0.1" "version": "0.0.1"
}, },
"extensionKey": "templates_aide", "extensionKey": "templates_aide",

3
Makefile.old Normal file
View File

@ -0,0 +1,3 @@
add_upstreams:
git remote add upstream-dt git@git.datentonne.net:typo3/template_aide.git
git remote add upstream-gs ssh://vcs@phabricator.glanzstueck.agency/source/typo3-template_aide.git

View File

@ -1,6 +1,3 @@
#options.pageTree.showPageIdWithTitle = 1
options.pageTree.showNavTitle = 1
options { options {
folderTree { folderTree {
uploadFieldsInLinkBrowser = 0 uploadFieldsInLinkBrowser = 0

View File

@ -9,7 +9,7 @@
} }
], ],
"require": { "require": {
"typo3/cms-core": "8.7.0 - 10.99.99", "typo3/cms-core": "8.7.0 - 11.5.99",
"sarhan/php-flatten": "^4.0" "sarhan/php-flatten": "^4.0"
}, },
"autoload": { "autoload": {
@ -23,7 +23,11 @@
} }
}, },
"replace": { "replace": {
"templates_aide": "self.version",
"typo3-ter/templates-aide": "self.version" "typo3-ter/templates-aide": "self.version"
},
"extra": {
"typo3/cms": {
"extension-key": "templates_aide"
}
} }
} }

View File

@ -16,14 +16,14 @@ $EM_CONF[$_EXTKEY] = [
'category' => 'plugin', 'category' => 'plugin',
'author' => 'Philipp Dieter', 'author' => 'Philipp Dieter',
'author_email' => 'philippdieter@attic-media.net', 'author_email' => 'philippdieter@attic-media.net',
'state' => 'alpha', 'state' => 'stable',
'uploadfolder' => 0, 'uploadfolder' => 0,
'createDirs' => '', 'createDirs' => '',
'clearCacheOnLoad' => 0, 'clearCacheOnLoad' => 0,
'version' => '0.0.1', 'version' => '0.0.1',
'constraints' => [ 'constraints' => [
'depends' => [ 'depends' => [
'typo3' => '8.7.0-10.99.99', 'typo3' => '8.7.0-11.99.99',
], ],
'conflicts' => [], 'conflicts' => [],
'suggests' => [], 'suggests' => [],

View File

@ -1,19 +1,19 @@
<?php <?php
defined('TYPO3_MODE') || die('Access denied.'); defined('TYPO3') or die();
use Cjel\TemplatesAide\Controller\DummyController;
call_user_func( call_user_func(
function() function()
{ {
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'Cjel.TemplatesAide', 'TemplatesAide',
'Dummy', 'Dummy',
[ [
'Dummy' => 'list' DummyController::class => 'list'
], ],
// non-cacheable actions // non-cacheable actions
[ [
'Dummy' => '' DummyController::class => ''
] ]
); );
@ -83,10 +83,5 @@ call_user_func(
$_GET['eID'] = 'script_disabled'; $_GET['eID'] = 'script_disabled';
} }
} }
//$GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['script_enable'] =
// \Cjel\TemplatesAide\Controller\EIDController::class
// . '::scriptEnable';
} }
); );

View File

@ -1,12 +1,12 @@
<?php <?php
defined('TYPO3_MODE') || die('Access denied.'); defined('TYPO3') or die();
call_user_func( call_user_func(
function() function()
{ {
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'Cjel.TemplatesAide', 'TemplatesAide',
'Dummy', 'Dummy',
'dummy' 'dummy'
); );
@ -22,7 +22,7 @@ call_user_func(
use Cjel\TemplatesAide\Property\TypeConverter\Double2Converter; use Cjel\TemplatesAide\Property\TypeConverter\Double2Converter;
use TYPO3\CMS\Extbase\Utility\ExtensionUtility; use TYPO3\CMS\Extbase\Utility\ExtensionUtility;
use TYPO3\CMS\Core\Http\ApplicationType;
call_user_func( call_user_func(
function() function()
{ {
@ -30,12 +30,12 @@ call_user_func(
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms']['db_new_content_el']['wizardItemsHook'][] = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms']['db_new_content_el']['wizardItemsHook'][] =
\Cjel\TemplatesAide\Hooks\WizardItems::class; \Cjel\TemplatesAide\Hooks\WizardItems::class;
if(\TYPO3\CMS\Core\Utility\GeneralUtility::getApplicationContext()->isDevelopment()) { if(\TYPO3\CMS\Core\Core\Environment::getContext()->isDevelopment()) {
$GLOBALS['TBE_STYLES']['skins']['backend']['stylesheetDirectories']['dev'] = $GLOBALS['TBE_STYLES']['skins']['backend']['stylesheetDirectories']['dev'] =
'EXT:templates_aide/Resources/Public/Css/backend/dev'; 'EXT:templates_aide/Resources/Public/Css/backend/dev';
} }
if(\TYPO3\CMS\Core\Utility\GeneralUtility::getApplicationContext()->__toString() === 'Production/Stage') { if(\TYPO3\CMS\Core\Core\Environment::getContext()->__toString() === 'Production/Stage') {
$GLOBALS['TBE_STYLES']['skins']['backend']['stylesheetDirectories']['dev'] = $GLOBALS['TBE_STYLES']['skins']['backend']['stylesheetDirectories']['dev'] =
'EXT:templates_aide/Resources/Public/Css/backend/production-stage'; 'EXT:templates_aide/Resources/Public/Css/backend/production-stage';
} }
@ -43,21 +43,10 @@ call_user_func(
$GLOBALS['TBE_STYLES']['skins']['backend']['stylesheetDirectories']['templates_aide_default'] = $GLOBALS['TBE_STYLES']['skins']['backend']['stylesheetDirectories']['templates_aide_default'] =
'EXT:templates_aide/Resources/Public/Css/backend/default'; 'EXT:templates_aide/Resources/Public/Css/backend/default';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
'templates_aide',
'Resources/Private/PageTSConfig/default.tsconfig',
'Default Config'
);
ExtensionUtility::registerTypeConverter(Double2Converter::class); ExtensionUtility::registerTypeConverter(Double2Converter::class);
if (TYPO3_MODE == 'BE') { if (TYPO3_MODE == 'BE')
//$pageRenderer = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance( {
// \TYPO3\CMS\Core\Page\PageRenderer::class
//);
//$pageRenderer->loadRequireJsModule('TYPO3/CMS/TemplatesAide/NewContentElementWizardPreview');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserTSConfig( \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserTSConfig(
'<INCLUDE_TYPOSCRIPT: source="FILE:EXT:templates_aide/Resources/Private/UserTSConfig/default.ts">' '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:templates_aide/Resources/Private/UserTSConfig/default.ts">'
); );
@ -70,9 +59,17 @@ $GLOBALS['TYPO3_USER_SETTINGS']['columns']['disableDragModal'] = [
'type' => 'check', 'type' => 'check',
'label' => 'LLL:EXT:templates_aide/Resources/Private/Language/locallang.xlf:disableDragModal', 'label' => 'LLL:EXT:templates_aide/Resources/Private/Language/locallang.xlf:disableDragModal',
]; ];
if (version_compare(TYPO3_branch, '10.0', '>=')) {
$GLOBALS['TYPO3_USER_SETTINGS']['showitem'] = str_replace(
'showHiddenFilesAndFolders',
'showHiddenFilesAndFolders,disableDragModal',
$GLOBALS['TYPO3_USER_SETTINGS']['showitem'],
);
} else {
$GLOBALS['TYPO3_USER_SETTINGS']['showitem'] = str_replace( $GLOBALS['TYPO3_USER_SETTINGS']['showitem'] = str_replace(
'recursiveDelete', 'recursiveDelete',
'recursiveDelete,disableDragModal', 'recursiveDelete,disableDragModal',
$GLOBALS['TYPO3_USER_SETTINGS']['showitem'], $GLOBALS['TYPO3_USER_SETTINGS']['showitem'],
); );
}