[TASK] FormDataTraverser::getFieldValueRecursive() might return NULL 66/25366/2
authorOliver Hader <oliver@typo3.org>
Wed, 13 Nov 2013 09:52:29 +0000 (10:52 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Wed, 13 Nov 2013 21:10:45 +0000 (22:10 +0100)
FormDataTraverser::getFieldValueRecursive() might return NULL or
any other type as well, as it has been provided by the database.
Thus, PHPdoc comments are modified to reflect the possible return
values as well.

Fixes: #53573
Releases: 6.2
Change-Id: Idcdbe21ccdcf694b8ceb5ecf0b4a192ad51c4871
Reviewed-on: https://review.typo3.org/25366
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
typo3/sysext/backend/Classes/Form/FormDataTraverser.php
typo3/sysext/backend/Classes/Form/FormEngine.php

index cdfffab..59e6811 100644 (file)
@@ -99,7 +99,7 @@ class FormDataTraverser {
         * @param array $fieldNameArray The field names that should be traversed.
         * @param string $tableName The starting table name.
         * @param array $row The starting record row.
-        * @return string The value of the last field in the chain.
+        * @return mixed The value of the last field in the chain.
         */
        public function getTraversedFieldValue(array $fieldNameArray, $tableName, array $row) {
                $this->currentTable = $tableName;
@@ -133,14 +133,15 @@ class FormDataTraverser {
         * the field values.
         *
         * @param array $fieldNameArray The field names that should be traversed.
-        * @return string The value of the last field.
+        * @return mixed The value of the last field.
         */
        protected function getFieldValueRecursive(array $fieldNameArray) {
                $value = '';
 
                foreach ($fieldNameArray as $fieldName) {
+                       // Skip if a defined field was actually not present in the database row
+                       // Using array_key_exists here, since TYPO3 supports NULL values as well
                        if (!array_key_exists($fieldName, $this->currentRow)) {
-                               // if an invalid field was configured reset the value
                                $value = '';
                                break;
                        }
index b43ff4f..c7df96d 100644 (file)
@@ -6504,7 +6504,7 @@ TBE_EDITOR.customEvalFunctions[\'' . $evalData . '\'] = function(value) {
         * @param string $field
         * @param array $config
         * @param array $row
-        * @return string
+        * @return mixed
         */
        protected function getPlaceholderValue($table, $field, array $config, array $row) {
                $value = trim($config['placeholder']);