30 const RESPONSE_Skip =
'TYPO3\\CMS\\Version\\Dependency\\ElementEntity->skip';
98 $this->
id = (int)
$id;
147 $this->
id = (int)
$id;
170 $result = $this->data[$key];
183 $this->data[$key] = $value;
194 return isset($this->data[$key]);
224 if (!isset($this->children)) {
225 $this->children = [];
227 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
228 ->getQueryBuilderForTable(
'sys_refindex');
230 $result = $queryBuilder
232 ->from(
'sys_refindex')
234 $queryBuilder->expr()->eq(
236 $queryBuilder->createNamedParameter($this->table, \PDO::PARAM_STR)
238 $queryBuilder->expr()->eq(
240 $queryBuilder->createNamedParameter($this->id, \PDO::PARAM_INT)
242 $queryBuilder->expr()->eq(
244 $queryBuilder->createNamedParameter($this->dependency->getWorkspace(), \PDO::PARAM_INT)
250 while ($row = $result->fetch()) {
251 if ($row[
'ref_table'] !==
'_FILE' && $row[
'ref_table'] !==
'_STRING') {
253 'table' => $row[
'ref_table'],
254 'id' => $row[
'ref_uid'],
255 'field' => $row[
'field'],
259 $callbackResponse = $this->dependency->executeEventCallback(
260 self::EVENT_CreateChildReference,
264 if ($callbackResponse !== self::RESPONSE_Skip) {
286 if (!isset($this->parents)) {
289 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
290 ->getQueryBuilderForTable(
'sys_refindex');
292 $result = $queryBuilder
294 ->from(
'sys_refindex')
296 $queryBuilder->expr()->eq(
298 $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
300 $queryBuilder->expr()->eq(
302 $queryBuilder->createNamedParameter($this->table, \PDO::PARAM_STR)
304 $queryBuilder->expr()->eq(
306 $queryBuilder->createNamedParameter($this->id, \PDO::PARAM_INT)
308 $queryBuilder->expr()->eq(
310 $queryBuilder->createNamedParameter($this->dependency->getWorkspace(), \PDO::PARAM_INT)
316 while ($row = $result->fetch()) {
318 'table' => $row[
'tablename'],
319 'id' => $row[
'recuid'],
320 'field' => $row[
'field'],
323 $callbackResponse = $this->dependency->executeEventCallback(
324 self::EVENT_CreateParentReference,
328 if ($callbackResponse !== self::RESPONSE_Skip) {
359 if (!isset($this->outerMostParent)) {
362 $this->outerMostParent = $this;
364 $this->outerMostParent =
false;
388 if (!isset($this->nestedChildren)) {
389 $this->nestedChildren = [];
393 $this->nestedChildren = array_merge($this->nestedChildren, [$child->getElement()->__toString() => $child->getElement()], $child->getElement()->getNestedChildren());
418 if (empty($this->record[
'uid']) || (
int)$this->record[
'uid'] !== $this->
getId()) {
421 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
422 ->getQueryBuilderForTable($this->
getTable());
423 $queryBuilder->getRestrictions()->removeAll();
426 ->select(
'uid',
'pid',
't3ver_wsid',
't3ver_state',
't3ver_oid')
429 $queryBuilder->expr()->eq(
431 $queryBuilder->createNamedParameter($this->getId(), \PDO::PARAM_INT)
437 if (is_array($row)) {
438 $this->record = $row;