Skip to content

Commit

Permalink
Merge pull request #18 from punktDe/BackportFixUndefinedArrayKeyWarning
Browse files Browse the repository at this point in the history
Backport fix undefined array key warning
  • Loading branch information
alex-boehm committed Nov 14, 2022
2 parents 0421e22 + 81692b5 commit 4c278ee
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 10 deletions.
45 changes: 38 additions & 7 deletions Classes/Backend/PageLayoutHeader.php
Expand Up @@ -117,12 +117,18 @@ protected function toolbarIsEnabledForUser(): bool
$isEnabled = false;
}

if ($this->backendUser->user['quickedit_disableToolbar']) {
if (
array_key_exists('quickedit_disableToolbar', $this->backendUser->user) &&
$this->backendUser->user['quickedit_disableToolbar']
) {
$isEnabled = false;
}

foreach ($this->backendUser->userGroups as $group) {
if ($group['quickedit_disableToolbar']) {
if (
array_key_exists('quickedit_disableToolbar', $group) &&
$group['quickedit_disableToolbar']
) {
$isEnabled = false;
}
}
Expand Down Expand Up @@ -165,7 +171,7 @@ protected function getFieldConfigForPage(): array
{
$configForPageType = $this->getConfigForCurrentPage();

if (is_array($configForPageType) && count($configForPageType) > 0) {
if (count($configForPageType) > 0) {
foreach ($configForPageType as $key => &$singleConfig) {
$singleConfig['fields'] = $this->prepareFieldsList($singleConfig['fields']);

Expand Down Expand Up @@ -197,12 +203,21 @@ protected function getFieldConfigForPage(): array
protected function getConfigForCurrentPage(): array
{
$pageTsConfig = BackendUtility::getPagesTSconfig($this->pageUid);
$quickeditConfig = $pageTsConfig['mod.']['web_layout.']['PageTypes.'];
$configForPageType = [];

if (is_array($quickeditConfig) && array_key_exists($this->pageRecord['doktype'] . '.', $quickeditConfig)) {
$configForPageType = $quickeditConfig[$this->pageRecord['doktype'] . '.']['config.'];
ksort($configForPageType);
if (
array_key_exists('mod.', $pageTsConfig) &&
is_array($pageTsConfig['mod.']) &&
array_key_exists('web_layout.', $pageTsConfig['mod.']) &&
is_array($pageTsConfig['mod.']['web_layout.']) &&
array_key_exists('PageTypes.', $pageTsConfig['mod.']['web_layout.'])
) {
$quickeditConfig = $pageTsConfig['mod.']['web_layout.']['PageTypes.'];

if (is_array($quickeditConfig) && array_key_exists($this->pageRecord['doktype'] . '.', $quickeditConfig)) {
$configForPageType = $quickeditConfig[$this->pageRecord['doktype'] . '.']['config.'];
ksort($configForPageType);
}
}

return $configForPageType;
Expand All @@ -226,6 +241,11 @@ protected function prepareFieldsList(string $fields): string
$fieldsArray = array_map('trim', $fieldsArray);

foreach ($fieldsArray as $index => $field) {
if ($this->isFieldDefined($field) === false) {
unset($fieldsArray[$index]);
continue;
}

if ($this->userHasAccessToField($field) === false
|| $this->fieldIsAvailableForLanguage($field) === false) {
unset($fieldsArray[$index]);
Expand Down Expand Up @@ -337,4 +357,15 @@ protected function isVisible(): bool

return $isVisible;
}



/**
* @param string $field
* @return bool
*/
protected function isFieldDefined(string $field): bool
{
return array_key_exists($field, $GLOBALS['TCA']['pages']['columns']);
}
}
8 changes: 8 additions & 0 deletions Documentation/Changelog/Index.rst
Expand Up @@ -6,8 +6,16 @@
Change log
==========

Version 0.2.2
-------------

- Fix php warning by accessing non existing array keys (https://github.com/punktDe/quickedit/issues/15)
- Further code improvements
- Update README.md example code (https://github.com/punktDe/quickedit/issues/19)

Version 0.2.1
-------------

- Fix missing extension icon issue (https://github.com/punktDe/quickedit/issues/7)
- Fix missing collapse/hide icons in TYPO3 10 (https://github.com/punktDe/quickedit/issues/8)

Expand Down
2 changes: 1 addition & 1 deletion Documentation/Settings.cfg
Expand Up @@ -25,7 +25,7 @@ project = Quickedit
# ... (recommended) version, displayed next to title (desktop) and in <meta name="book-version"
# .................................................................................

release = 0.2.1
release = 0.2.2

# .................................................................................
# ... (recommended) displayed in footer
Expand Down
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -45,7 +45,7 @@ mod {
}
2 {
label = Special
fields = slug, suergroup, hidden
fields = slug, hidden, fe_group
previewFields = *
}
}
Expand Down
2 changes: 1 addition & 1 deletion ext_emconf.php
Expand Up @@ -2,7 +2,7 @@
$EM_CONF[$_EXTKEY] = [
'title' => 'Toolbar for editing page properties',
'description' => 'This extension provides a configurable toolbar for editing page properties.',
'version' => '0.2.1',
'version' => '0.2.2',
'category' => 'be',
'constraints' => [
'depends' => [
Expand Down

0 comments on commit 4c278ee

Please sign in to comment.