FluidTYPO3\Fluidpages\Provider\PageProvider::postProcessRecord PHP Метод

postProcessRecord() публичный Метод

public postProcessRecord ( string $operation, integer $id, array &$row, TYPO3\CMS\Core\DataHandling\DataHandler $reference, array $removals = [] )
$operation string
$id integer
$row array
$reference TYPO3\CMS\Core\DataHandling\DataHandler
$removals array Additional array of field names to remove from the stored Flux value
    public function postProcessRecord($operation, $id, array &$row, DataHandler $reference, array $removals = [])
    {
        if ('update' === $operation) {
            $record = $this->loadRecordFromDatabase($id);
            $record = RecursiveArrayUtility::mergeRecursiveOverrule($record, $reference->datamap[$this->tableName][$id]);
            $form = $this->getForm($record);
            if (null !== $form) {
                $tableFieldName = $this->getFieldName($record);
                foreach ($form->getFields() as $field) {
                    $fieldName = $field->getName();
                    $sheetName = $field->getParent()->getName();
                    $inherit = (bool) $field->getInherit();
                    $inheritEmpty = (bool) $field->getInheritEmpty();
                    if (isset($record[$tableFieldName]['data']) && is_array($record[$tableFieldName]['data'])) {
                        $value = $record[$tableFieldName]['data'][$sheetName]['lDEF'][$fieldName]['vDEF'];
                        $inheritedValue = $this->getInheritedPropertyValueByDottedPath($record, $fieldName);
                        $empty = true === empty($value) && $value !== '0' && $value !== 0;
                        $same = $inheritedValue == $value;
                        if (true === $same && true === $inherit || true === $inheritEmpty && true === $empty) {
                            $removals[] = $fieldName;
                        }
                    }
                }
            }
        }
        parent::postProcessRecord($operation, $id, $row, $reference, $removals);
    }