mirror of
https://github.com/FriendsOfTYPO3/feedit.git
synced 2024-11-23 22:56:10 +01:00
[TASK] Support v11 + v12
This commit is contained in:
parent
652ea1b1ce
commit
5b7ddfc366
12 changed files with 179 additions and 61 deletions
43
Classes/ContentObject/EditPanelContentObject.php
Executable file
43
Classes/ContentObject/EditPanelContentObject.php
Executable file
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the TYPO3 CMS project.
|
||||||
|
*
|
||||||
|
* It is free software; you can redistribute it and/or modify it under
|
||||||
|
* the terms of the GNU General Public License, either version 2
|
||||||
|
* of the License, or any later version.
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please read the
|
||||||
|
* LICENSE.txt file that was distributed with this source code.
|
||||||
|
*
|
||||||
|
* The TYPO3 project - inspiring people to share!
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace TYPO3\CMS\Feedit\ContentObject;
|
||||||
|
|
||||||
|
use TYPO3\CMS\Frontend\ContentObject\AbstractContentObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains EDITPANEL class object.
|
||||||
|
*/
|
||||||
|
class EditPanelContentObject extends AbstractContentObject
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Rendering the cObject, EDITPANEL
|
||||||
|
*
|
||||||
|
* @param array $conf Array of TypoScript properties
|
||||||
|
* @return string Output
|
||||||
|
*/
|
||||||
|
public function render($conf = [])
|
||||||
|
{
|
||||||
|
$theValue = '';
|
||||||
|
die('xxxx');
|
||||||
|
if ($GLOBALS['TSFE']->isBackendUserLoggedIn()) {
|
||||||
|
$theValue = $this->cObj->editPanel($theValue, $conf);
|
||||||
|
}
|
||||||
|
if (isset($conf['stdWrap.'])) {
|
||||||
|
$theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']);
|
||||||
|
}
|
||||||
|
return $theValue;
|
||||||
|
}
|
||||||
|
}
|
|
@ -64,11 +64,12 @@ class FrontendEditDataHandler
|
||||||
public function editAction()
|
public function editAction()
|
||||||
{
|
{
|
||||||
// Commands
|
// Commands
|
||||||
list($table, $uid) = explode(':', $this->configuration['record']);
|
$split= explode(':', (string)($this->configuration['record'] ?? ''));
|
||||||
$uid = (int)$uid;
|
$table = $split[0] ?? '';
|
||||||
$cmd = $this->configuration['cmd'];
|
$uid = (int)($split[1] ?? 0);
|
||||||
|
$cmd = $this->configuration['cmd'] ?? '';
|
||||||
// Look for some configuration data that indicates we should save.
|
// Look for some configuration data that indicates we should save.
|
||||||
if (($this->configuration['doSave'] || $this->configuration['update'] || $this->configuration['update_close']) && is_array($this->configuration['data'])) {
|
if ((($this->configuration['doSave'] ?? '') || ($this->configuration['update'] ?? '') || ($this->configuration['update_close'] ?? '')) && is_array($this->configuration['data'] ?? null)) {
|
||||||
$cmd = 'save';
|
$cmd = 'save';
|
||||||
}
|
}
|
||||||
if ($cmd === 'save' || $cmd && $table && $uid && isset($GLOBALS['TCA'][$table])) {
|
if ($cmd === 'save' || $cmd && $table && $uid && isset($GLOBALS['TCA'][$table])) {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace TYPO3\CMS\Feedit;
|
namespace TYPO3\CMS\Feedit;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -25,6 +26,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||||
use TYPO3\CMS\Core\Utility\MathUtility;
|
use TYPO3\CMS\Core\Utility\MathUtility;
|
||||||
use TYPO3\CMS\Core\Utility\PathUtility;
|
use TYPO3\CMS\Core\Utility\PathUtility;
|
||||||
use TYPO3\CMS\Feedit\Service\EditToolbarService;
|
use TYPO3\CMS\Feedit\Service\EditToolbarService;
|
||||||
|
use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
|
||||||
use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController;
|
use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -61,16 +63,16 @@ class FrontendEditPanel
|
||||||
/**
|
/**
|
||||||
* Constructor for the edit panel
|
* Constructor for the edit panel
|
||||||
*
|
*
|
||||||
* @param mixed $_ Previous the database connection
|
|
||||||
* @param TypoScriptFrontendController $frontendController
|
* @param TypoScriptFrontendController $frontendController
|
||||||
* @param FrontendBackendUserAuthentication $backendUser
|
* @param FrontendBackendUserAuthentication $backendUser
|
||||||
*/
|
*/
|
||||||
public function __construct($_ = null, TypoScriptFrontendController $frontendController = null, FrontendBackendUserAuthentication $backendUser = null)
|
public function __construct(ContentObjectRenderer $contentObjectRenderer, TypoScriptFrontendController $frontendController = null, FrontendBackendUserAuthentication $backendUser = null)
|
||||||
{
|
{
|
||||||
$this->frontendController = $frontendController ?: $GLOBALS['TSFE'];
|
$this->frontendController = $frontendController ?: $GLOBALS['TSFE'];
|
||||||
$this->backendUser = $backendUser ?: $GLOBALS['BE_USER'];
|
$this->backendUser = $backendUser ?: $GLOBALS['BE_USER'];
|
||||||
$this->cObj = GeneralUtility::makeInstance(\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::class);
|
# $this->cObj = GeneralUtility::makeInstance(\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::class);
|
||||||
$this->cObj->start([]);
|
# $this->cObj->start([]);
|
||||||
|
$this->cObj = $contentObjectRenderer;
|
||||||
$this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
|
$this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
|
||||||
$this->getLanguageService()->includeLLFile('EXT:core/Resources/Private/Language/locallang_tsfe.xlf');
|
$this->getLanguageService()->includeLLFile('EXT:core/Resources/Private/Language/locallang_tsfe.xlf');
|
||||||
}
|
}
|
||||||
|
@ -111,7 +113,7 @@ class FrontendEditPanel
|
||||||
}
|
}
|
||||||
if (isset($allow['edit'])) {
|
if (isset($allow['edit'])) {
|
||||||
$icon = '<span title="' . $this->getLabel('p_editRecord') . '">' . $this->iconFactory->getIcon('actions-document-open', Icon::SIZE_SMALL)->render('inline') . '</span>';
|
$icon = '<span title="' . $this->getLabel('p_editRecord') . '">' . $this->iconFactory->getIcon('actions-document-open', Icon::SIZE_SMALL)->render('inline') . '</span>';
|
||||||
$panel .= $this->editPanelLinkWrap($icon, $formName, 'edit', $dataArr['_LOCALIZED_UID'] ? $table . ':' . $dataArr['_LOCALIZED_UID'] : $currentRecord);
|
$panel .= $this->editPanelLinkWrap($icon, $formName, 'edit', isset($dataArr['_LOCALIZED_UID']) ? $table . ':' . $dataArr['_LOCALIZED_UID'] : $currentRecord);
|
||||||
}
|
}
|
||||||
// Hiding in workspaces because implementation is incomplete
|
// Hiding in workspaces because implementation is incomplete
|
||||||
if (isset($allow['move']) && $sortField && $this->backendUser->workspace === 0) {
|
if (isset($allow['move']) && $sortField && $this->backendUser->workspace === 0) {
|
||||||
|
@ -122,7 +124,7 @@ class FrontendEditPanel
|
||||||
}
|
}
|
||||||
// Hiding in workspaces because implementation is incomplete
|
// Hiding in workspaces because implementation is incomplete
|
||||||
// Hiding for localizations because it is unknown what should be the function in that case
|
// Hiding for localizations because it is unknown what should be the function in that case
|
||||||
if (isset($allow['hide']) && $hideField && $this->backendUser->workspace === 0 && !$dataArr['_LOCALIZED_UID']) {
|
if (isset($allow['hide']) && $hideField && $this->backendUser->workspace === 0 && !($dataArr['_LOCALIZED_UID'] ?? 0)) {
|
||||||
if ($dataArr[$hideField]) {
|
if ($dataArr[$hideField]) {
|
||||||
$icon = $this->iconFactory->getIcon('actions-edit-unhide', Icon::SIZE_SMALL)->render('inline');
|
$icon = $this->iconFactory->getIcon('actions-edit-unhide', Icon::SIZE_SMALL)->render('inline');
|
||||||
$panel .= $this->editPanelLinkWrap($icon, $formName, 'unhide');
|
$panel .= $this->editPanelLinkWrap($icon, $formName, 'unhide');
|
||||||
|
@ -146,14 +148,16 @@ class FrontendEditPanel
|
||||||
}
|
}
|
||||||
// Hiding in workspaces because implementation is incomplete
|
// Hiding in workspaces because implementation is incomplete
|
||||||
// Hiding for localizations because it is unknown what should be the function in that case
|
// Hiding for localizations because it is unknown what should be the function in that case
|
||||||
if (isset($allow['delete']) && $this->backendUser->workspace === 0 && !$dataArr['_LOCALIZED_UID']) {
|
if (isset($allow['delete']) && $this->backendUser->workspace === 0 && !($dataArr['_LOCALIZED_UID'] ?? 0)) {
|
||||||
$icon = '<span title="' . $this->getLabel('p_delete') . '">'
|
$icon = '<span title="' . $this->getLabel('p_delete') . '">'
|
||||||
. $this->iconFactory->getIcon('actions-edit-delete', Icon::SIZE_SMALL)->render('inline')
|
. $this->iconFactory->getIcon('actions-edit-delete', Icon::SIZE_SMALL)->render('inline')
|
||||||
. '</span>';
|
. '</span>';
|
||||||
$panel .= $this->editPanelLinkWrap($icon, $formName, 'delete', '', $this->getLabel('p_deleteConfirm'));
|
$panel .= $this->editPanelLinkWrap($icon, $formName, 'delete', '', $this->getLabel('p_deleteConfirm'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Final
|
// Final
|
||||||
$labelTxt = $this->cObj->stdWrap($conf['label'], $conf['label.']);
|
// $labelTxt = $this->cObj->stdWrap($conf['label'] ?? '', $conf['label.'] ?? []);
|
||||||
|
$labelTxt = '';
|
||||||
foreach ((array)$hiddenFields as $name => $value) {
|
foreach ((array)$hiddenFields as $name => $value) {
|
||||||
$hiddenFieldString .= '<input type="hidden" name="TSFE_EDIT[' . htmlspecialchars($name) . ']" value="' . htmlspecialchars($value) . '"/>' . LF;
|
$hiddenFieldString .= '<input type="hidden" name="TSFE_EDIT[' . htmlspecialchars($name) . ']" value="' . htmlspecialchars($value) . '"/>' . LF;
|
||||||
}
|
}
|
||||||
|
@ -163,37 +167,37 @@ class FrontendEditPanel
|
||||||
<input type="hidden" class="typo3-feedit-cmd" name="TSFE_EDIT[cmd]" value="" />
|
<input type="hidden" class="typo3-feedit-cmd" name="TSFE_EDIT[cmd]" value="" />
|
||||||
<input type="hidden" name="TSFE_EDIT[record]" value="' . $currentRecord . '" />
|
<input type="hidden" name="TSFE_EDIT[record]" value="' . $currentRecord . '" />
|
||||||
<div class="typo3-editPanel">'
|
<div class="typo3-editPanel">'
|
||||||
. '<div class="typo3-editPanel-btn-group">'
|
. '<div class="typo3-editPanel-btn-group">'
|
||||||
. $panel
|
. $panel
|
||||||
. '</div>' .
|
. '</div>' .
|
||||||
($labelTxt ? '<div class="typo3-editPanel-label">' . sprintf($labelTxt, htmlspecialchars(GeneralUtility::fixed_lgd_cs($dataArr[$labelField], 50))) . '</div>' : '') . '
|
($labelTxt ? '<div class="typo3-editPanel-label">' . sprintf($labelTxt, htmlspecialchars(GeneralUtility::fixed_lgd_cs($dataArr[$labelField], 50))) . '</div>' : '') . '
|
||||||
</div>
|
</div>
|
||||||
</form>';
|
</form>';
|
||||||
|
|
||||||
// Wrap the panel
|
// // Wrap the panel
|
||||||
if ($conf['innerWrap']) {
|
// if ($conf['innerWrap']) {
|
||||||
$panel = $this->cObj->wrap($panel, $conf['innerWrap']);
|
// $panel = $this->cObj->wrap($panel, $conf['innerWrap']);
|
||||||
}
|
// }
|
||||||
if ($conf['innerWrap.']) {
|
// if ($conf['innerWrap.']) {
|
||||||
$panel = $this->cObj->stdWrap($panel, $conf['innerWrap.']);
|
// $panel = $this->cObj->stdWrap($panel, $conf['innerWrap.']);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// Wrap the complete panel
|
// // Wrap the complete panel
|
||||||
if ($conf['outerWrap']) {
|
// if ($conf['outerWrap']) {
|
||||||
$panel = $this->cObj->wrap($panel, $conf['outerWrap']);
|
// $panel = $this->cObj->wrap($panel, $conf['outerWrap']);
|
||||||
}
|
// }
|
||||||
if ($conf['outerWrap.']) {
|
// if ($conf['outerWrap.']) {
|
||||||
$panel = $this->cObj->stdWrap($panel, $conf['outerWrap.']);
|
// $panel = $this->cObj->stdWrap($panel, $conf['outerWrap.']);
|
||||||
}
|
// }
|
||||||
if ($conf['printBeforeContent']) {
|
if ($conf['printBeforeContent'] ?? false) {
|
||||||
$finalOut = $panel . $content;
|
$finalOut = $panel . $content;
|
||||||
} else {
|
} else {
|
||||||
$finalOut = $content . $panel;
|
$finalOut = $content . $panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
$hidden = $this->isDisabled($table, $dataArr) ? ' typo3-feedit-element-hidden' : '';
|
$hidden = $this->isDisabled($table, $dataArr) ? ' typo3-feedit-element-hidden' : '';
|
||||||
$outerWrapConfig = $conf['stdWrap.'] ?? ['wrap' => '<div class="typo3-feedit-element' . $hidden . '">|</div>'];
|
// $outerWrapConfig = $conf['stdWrap.'] ?? ['wrap' => '<div class="typo3-feedit-element' . $hidden . '">|</div>'];
|
||||||
$finalOut = $this->cObj->stdWrap($finalOut, $outerWrapConfig);
|
// $finalOut = $this->cObj->stdWrap($finalOut, $outerWrapConfig);
|
||||||
|
|
||||||
return $finalOut;
|
return $finalOut;
|
||||||
}
|
}
|
||||||
|
@ -213,7 +217,7 @@ class FrontendEditPanel
|
||||||
* @param string $fieldList
|
* @param string $fieldList
|
||||||
* @return string The input content string, possibly with edit icons added (not necessarily in the end but just after the last string of normal content.
|
* @return string The input content string, possibly with edit icons added (not necessarily in the end but just after the last string of normal content.
|
||||||
*/
|
*/
|
||||||
public function editIcons($content, $params, array $conf = [], $currentRecord = '', array $dataArr = [], $addUrlParamStr = '', $table, $editUid, $fieldList)
|
public function editIcons($content, $params, array $conf = [], $currentRecord = '', array $dataArr = [], $addUrlParamStr = '', $table = '', $editUid = 0, $fieldList = '')
|
||||||
{
|
{
|
||||||
// Special content is about to be shown, so the cache must be disabled.
|
// Special content is about to be shown, so the cache must be disabled.
|
||||||
$this->frontendController->set_no_cache('Display frontend edit icons', true);
|
$this->frontendController->set_no_cache('Display frontend edit icons', true);
|
||||||
|
@ -225,15 +229,15 @@ class FrontendEditPanel
|
||||||
|
|
||||||
$uriBuilder = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Routing\UriBuilder::class);
|
$uriBuilder = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Routing\UriBuilder::class);
|
||||||
$url = (string)$uriBuilder->buildUriFromRoute(
|
$url = (string)$uriBuilder->buildUriFromRoute(
|
||||||
'record_edit',
|
'record_edit',
|
||||||
[
|
[
|
||||||
'edit[' . $table . '][' . $editUid . ']' => 'edit',
|
'edit[' . $table . '][' . $editUid . ']' => 'edit',
|
||||||
'columnsOnly' => $fieldList,
|
'columnsOnly' => $fieldList,
|
||||||
'noView' => $noView,
|
'noView' => $noView,
|
||||||
'feEdit' => 1,
|
'feEdit' => 1,
|
||||||
'returnUrl' => htmlspecialchars($this->getReturnUrl($editUid)),
|
'returnUrl' => htmlspecialchars($this->getReturnUrl($editUid)),
|
||||||
]
|
]
|
||||||
) . $addUrlParamStr;
|
) . $addUrlParamStr;
|
||||||
$icon = $this->editPanelLinkWrap_doWrap($iconImg, $url, 'content-link');
|
$icon = $this->editPanelLinkWrap_doWrap($iconImg, $url, 'content-link');
|
||||||
if ($conf['beforeLastTag'] < 0) {
|
if ($conf['beforeLastTag'] < 0) {
|
||||||
$content = $icon . $content;
|
$content = $icon . $content;
|
||||||
|
@ -413,7 +417,7 @@ class FrontendEditPanel
|
||||||
if (is_int($recordUid)) {
|
if (is_int($recordUid)) {
|
||||||
$uri = new Uri($url);
|
$uri = new Uri($url);
|
||||||
$uri = $uri->withFragment('#c' . $recordUid);
|
$uri = $uri->withFragment('#c' . $recordUid);
|
||||||
$url = (string) $uri;
|
$url = (string)$uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $url;
|
return $url;
|
||||||
|
|
62
Classes/Hooks/StdWrapEditPanelHook.php
Normal file
62
Classes/Hooks/StdWrapEditPanelHook.php
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace TYPO3\CMS\Feedit\Hooks;
|
||||||
|
|
||||||
|
|
||||||
|
use TYPO3\CMS\Adminpanel\Service\ConfigurationService;
|
||||||
|
use TYPO3\CMS\Adminpanel\Utility\StateUtility;
|
||||||
|
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||||
|
use TYPO3\CMS\Extbase\Utility\DebuggerUtility;
|
||||||
|
use TYPO3\CMS\Feedit\FrontendEditPanel;
|
||||||
|
use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
|
||||||
|
use TYPO3\CMS\Frontend\ContentObject\ContentObjectStdWrapHookInterface;
|
||||||
|
|
||||||
|
class StdWrapEditPanelHook implements ContentObjectStdWrapHookInterface
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stdWrapPreProcess($content, array $configuration, ContentObjectRenderer &$parentObject)
|
||||||
|
{
|
||||||
|
return $content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stdWrapOverride($content, array $configuration, ContentObjectRenderer &$parentObject)
|
||||||
|
{
|
||||||
|
return $content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stdWrapProcess($content, array $configuration, ContentObjectRenderer &$parentObject)
|
||||||
|
{
|
||||||
|
return $content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stdWrapPostProcess($content, array $configuration, ContentObjectRenderer &$parentObject)
|
||||||
|
{
|
||||||
|
$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
|
||||||
|
$user = $this->getFrontendBackendUser();
|
||||||
|
if ($user && ($configuration['editPanel'] ?? false) && StateUtility::isOpen() && $configurationService->getConfigurationOption('edit', 'displayIcons')) {
|
||||||
|
[$table, $uid] = explode(':', $parentObject->currentRecord);
|
||||||
|
$allowedActions = $user->getAllowedEditActions($table, $configuration['editPanel.'] ?? [], $parentObject->data['pid']);
|
||||||
|
$frontendEditPanel = GeneralUtility::makeInstance(FrontendEditPanel::class, $parentObject);
|
||||||
|
return $frontendEditPanel->editPanel(
|
||||||
|
$content,
|
||||||
|
$configuration['editPanel.'] ?? [],
|
||||||
|
$parentObject->currentRecord,
|
||||||
|
$parentObject->data,
|
||||||
|
'tt_content',
|
||||||
|
$allowedActions
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $content;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getFrontendBackendUser()
|
||||||
|
{
|
||||||
|
return $GLOBALS['BE_USER'];
|
||||||
|
}
|
||||||
|
}
|
|
@ -57,7 +57,7 @@ class FrontendEditInitiator implements MiddlewareInterface
|
||||||
if ($active && isset($config['enable.'])) {
|
if ($active && isset($config['enable.'])) {
|
||||||
foreach ($config['enable.'] as $value) {
|
foreach ($config['enable.'] as $value) {
|
||||||
if ($value) {
|
if ($value) {
|
||||||
$parameters = $request->getParsedBody()['TSFE_EDIT'] ?? $request->getQueryParams()['TSFE_EDIT'] ?? null;
|
$parameters = $request->getParsedBody()['TSFE_EDIT'] ?? $request->getQueryParams()['TSFE_EDIT'] ?? [];
|
||||||
if ($this->isValidEditAction($parameters)) {
|
if ($this->isValidEditAction($parameters)) {
|
||||||
GeneralUtility::makeInstance(FrontendEditDataHandler::class, $parameters)->editAction();
|
GeneralUtility::makeInstance(FrontendEditDataHandler::class, $parameters)->editAction();
|
||||||
}
|
}
|
||||||
|
@ -80,10 +80,10 @@ class FrontendEditInitiator implements MiddlewareInterface
|
||||||
if (!is_array($parameters)) {
|
if (!is_array($parameters)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ($parameters['cancel']) {
|
if ($parameters['cancel'] ?? false) {
|
||||||
unset($parameters['cmd']);
|
unset($parameters['cmd']);
|
||||||
} else {
|
} else {
|
||||||
$cmd = (string)$parameters['cmd'];
|
$cmd = (string)($parameters['cmd'] ?? '');
|
||||||
if (($cmd !== 'edit' || is_array($parameters['data']) && ($parameters['doSave'] || $parameters['update'] || $parameters['update_close'])) && $cmd !== 'new') {
|
if (($cmd !== 'edit' || is_array($parameters['data']) && ($parameters['doSave'] || $parameters['update'] || $parameters['update_close'])) && $cmd !== 'new') {
|
||||||
// $cmd can be a command like "hide" or "move". If $cmd is "edit" or "new" it's an indication to show the formfields. But if data is sent with update-flag then $cmd = edit is accepted because edit may be sent because of .keepGoing flag.
|
// $cmd can be a command like "hide" or "move". If $cmd is "edit" or "new" it's an indication to show the formfields. But if data is sent with update-flag then $cmd = edit is accepted because edit may be sent because of .keepGoing flag.
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -44,7 +44,6 @@ class EditModule extends AbstractModule implements PageSettingsProviderInterface
|
||||||
*/
|
*/
|
||||||
public function __construct(UriBuilder $uriBuilder)
|
public function __construct(UriBuilder $uriBuilder)
|
||||||
{
|
{
|
||||||
parent::__construct();
|
|
||||||
$this->uriBuilder = $uriBuilder;
|
$this->uriBuilder = $uriBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ class EditToolbarService
|
||||||
$iconFactory = GeneralUtility::makeInstance(IconFactory::class);
|
$iconFactory = GeneralUtility::makeInstance(IconFactory::class);
|
||||||
$tsfe = $this->getTypoScriptFrontendController();
|
$tsfe = $this->getTypoScriptFrontendController();
|
||||||
// If mod.newContentElementWizard.override is set, use that extension's create new content wizard instead:
|
// If mod.newContentElementWizard.override is set, use that extension's create new content wizard instead:
|
||||||
$moduleName = BackendUtility::getPagesTSconfig($tsfe->page['uid'])['mod.']['newContentElementWizard.']['override'] ?? 'new_content_element';
|
$moduleName = BackendUtility::getPagesTSconfig($tsfe->page['uid'])['mod.']['newContentElementWizard.']['override'] ?? 'new_content_element_wizard';
|
||||||
$uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
|
$uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
|
||||||
$perms = $this->getBackendUser()->calcPerms($tsfe->page);
|
$perms = $this->getBackendUser()->calcPerms($tsfe->page);
|
||||||
$langAllowed = $this->getBackendUser()->checkLanguageAccess($languageAspect->getId());
|
$langAllowed = $this->getBackendUser()->checkLanguageAccess($languageAspect->getId());
|
||||||
|
|
|
@ -9,3 +9,11 @@ services:
|
||||||
|
|
||||||
TYPO3\CMS\Feedit\Modules\EditModule:
|
TYPO3\CMS\Feedit\Modules\EditModule:
|
||||||
public: true
|
public: true
|
||||||
|
|
||||||
|
TYPO3\CMS\Feedit\Hooks\StdWrapEditPanelHook:
|
||||||
|
public: false
|
||||||
|
|
||||||
|
TYPO3\CMS\Feedit\ContentObject\EditPanelContentObject:
|
||||||
|
tags:
|
||||||
|
- name: frontend.contentobject
|
||||||
|
identifier: 'EDITPANEL'
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
<?php
|
<?php
|
||||||
defined('TYPO3_MODE') or die();
|
|
||||||
|
|
||||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
|
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
|
||||||
'feedit',
|
'feedit',
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
"sort-packages": true
|
"sort-packages": true
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"typo3/cms-adminpanel": "^10.0",
|
"typo3/cms-adminpanel": "^11 || ^12",
|
||||||
"typo3/cms-backend": "^10.0",
|
"typo3/cms-backend": "^11 || ^12",
|
||||||
"typo3/cms-core": "^10.0",
|
"typo3/cms-core": "^11 || ^12",
|
||||||
"typo3/cms-frontend": "^10.0",
|
"typo3/cms-frontend": "^11 || ^12",
|
||||||
"psr/http-message": "~1.0",
|
"psr/http-message": "~1.0",
|
||||||
"psr/http-server-handler": "^1.0",
|
"psr/http-server-handler": "^1.0",
|
||||||
"psr/http-server-middleware": "^1.0"
|
"psr/http-server-middleware": "^1.0"
|
||||||
|
|
|
@ -7,12 +7,11 @@ $EM_CONF[$_EXTKEY] = [
|
||||||
'author_email' => 'friendsof@typo3.org',
|
'author_email' => 'friendsof@typo3.org',
|
||||||
'author_company' => '',
|
'author_company' => '',
|
||||||
'state' => 'stable',
|
'state' => 'stable',
|
||||||
'createDirs' => '',
|
'clearCacheOnLoad' => true,
|
||||||
'clearCacheOnLoad' => 0,
|
'version' => '11.0.0',
|
||||||
'version' => '10.0.2',
|
|
||||||
'constraints' => [
|
'constraints' => [
|
||||||
'depends' => [
|
'depends' => [
|
||||||
'typo3' => '10.0.0-10.9.99',
|
'typo3' => '11.5.0-12.2.99',
|
||||||
],
|
],
|
||||||
'conflicts' => [],
|
'conflicts' => [],
|
||||||
'suggests' => [],
|
'suggests' => [],
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
defined('TYPO3_MODE') or die();
|
|
||||||
|
|
||||||
// Register the edit panel view.
|
// Register the edit panel view.
|
||||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/classes/class.frontendedit.php']['edit'] = \TYPO3\CMS\Feedit\FrontendEditPanel::class;
|
//$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/classes/class.frontendedit.php']['edit'] = \TYPO3\CMS\Feedit\FrontendEditPanel::class;
|
||||||
|
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['stdWrap']['feedit'] = \TYPO3\CMS\Feedit\Hooks\StdWrapEditPanelHook::class;
|
||||||
|
|
||||||
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']['edit'] = [
|
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']['edit'] = [
|
||||||
'module' => \TYPO3\CMS\Feedit\Modules\EditModule::class,
|
'module' => \TYPO3\CMS\Feedit\Modules\EditModule::class,
|
||||||
'after' => ['cache'],
|
'after' => ['cache'],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects']['EDITPANEL']
|
||||||
|
= \TYPO3\CMS\Feedit\ContentObject\EditPanelContentObject::class;
|
Loading…
Reference in a new issue