/** * Get the test configuration overlay (configuration overwritten in instance) * * @param integer $testUid UID of the test * @return array */ public function getTestConfigurationOverlayForTestUid($testUid) { $overlayConfig = FALSE; if ($this->testConfigurationOverlay) { $fftools = new \TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools(); $tests = $fftools->getArrayValueByPath('data/sDEF/lDEF/testconfigurations/el', $this->testConfigurationOverlay); if (is_array($tests)) { foreach ($tests as $key => $el) { if ($tests[$key]['test']['el']['test_service']['vDEF'] == $testUid) { $overlayConfig = $tests[$key]['test']['el']['test_conf']['vDEF']; $overlayConfig['hidden'] = $tests[$key]['test']['el']['test_hidden']['vDEF']; $overlayConfig['overwritten_in']['title'] = $this->title; $overlayConfig['overwritten_in']['uid'] = $this->uid; $overlayConfig['overwritten_in']['id'] = $this->getCaretakerNodeId(); } } } } if (!$overlayConfig) { $overlayConfig = parent::getTestConfigurationOverlayForTestUid($testUid); } return $overlayConfig; }
/** * @param string $table * @param array $row * @param string $field * @param string $itemFormElName * @return mixed */ protected function getFFValue($table, $row, $field, $itemFormElName) { $path = str_replace('data[' . $table . '][' . $row['uid'] . '][' . $field . '][', '', $itemFormElName); $path = rtrim($path, ']'); $path = explode('][', $path); $fftools = new \TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools(); $val = $fftools->getArrayValueByPath($path, \TYPO3\CMS\Core\Utility\GeneralUtility::xml2array($row[$field])); return $val; }