TYPO3CMS
9.5
Main Page
Related Pages
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Variables
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Files
File List
File Members
All
$
d
e
r
u
Functions
Variables
$
e
r
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Pages
DatabaseUniqueUidNewRow.php
Go to the documentation of this file.
1
<?php
2
namespace
TYPO3\CMS\Backend\Form\FormDataProvider
;
3
4
/*
5
* This file is part of the TYPO3 CMS project.
6
*
7
* It is free software; you can redistribute it and/or modify it under
8
* the terms of the GNU General Public License, either version 2
9
* of the License, or any later version.
10
*
11
* For the full copyright and license information, please read the
12
* LICENSE.txt file that was distributed with this source code.
13
*
14
* The TYPO3 project - inspiring people to share!
15
*/
16
17
use
TYPO3\CMS\Backend\Form\FormDataProviderInterface
;
18
use
TYPO3\CMS\Core\Utility\StringUtility
;
19
23
class
DatabaseUniqueUidNewRow
implements
FormDataProviderInterface
24
{
32
public
function
addData
(array $result)
33
{
34
if
($result[
'command'
] !==
'new'
) {
35
return
$result;
36
}
37
// Throw exception if uid is already set and does not start with NEW.
38
// In some situations a new record needs to be created again so the initialization of default
39
// values is triggered, but the "ID" of the new record is already known: This is the case if a
40
// new section container element is added by FormFlexAjaxController to a not yet persisted record.
41
// In this case, command "new" is given to the data compiler, but the "NEW1234" id has been calculated
42
// by the former compiler when opening the record already. The ajax controller then hands in the
43
// "new" command together with the id calculated by the first call.
44
if
(isset($result[
'databaseRow'
][
'uid'
]) && strpos($result[
'databaseRow'
][
'uid'
],
'NEW'
) !== 0) {
45
throw
new \InvalidArgumentException(
46
'uid is already set to '
. $result[
'databaseRow'
][
'uid'
] .
' and does not start with NEW for a "new" command'
,
47
1437991120
48
);
49
}
50
if
(!isset($result[
'databaseRow'
][
'uid'
])) {
51
$result[
'databaseRow'
][
'uid'
] =
StringUtility::getUniqueId
(
'NEW'
);
52
}
53
54
return
$result;
55
}
56
}
TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseUniqueUidNewRow\addData
array addData(array $result)
Definition:
DatabaseUniqueUidNewRow.php:32
TYPO3\CMS\Backend\Form\FormDataProvider
Definition:
AbstractDatabaseRecordProvider.php:2
TYPO3\CMS\Backend\Form\FormDataProviderInterface
Definition:
FormDataProviderInterface.php:22
TYPO3\CMS\Core\Utility\StringUtility\getUniqueId
static string getUniqueId($prefix='')
Definition:
StringUtility.php:91
TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseUniqueUidNewRow
Definition:
DatabaseUniqueUidNewRow.php:24
TYPO3\CMS\Core\Utility\StringUtility
Definition:
StringUtility.php:21
doxygen
typo3
sysext
backend
Classes
Form
FormDataProvider
DatabaseUniqueUidNewRow.php
Generated on Tue Oct 5 2021 01:56:54 for TYPO3CMS by
1.8.18