‪TYPO3CMS  9.5
DatabaseParentPageRow.php
Go to the documentation of this file.
1 <?php
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 
18 
23 {
31  public function ‪addData(array $result)
32  {
33  // $parentPageRow end up NULL if a record added or edited on root node
34  $parentPageRow = null;
35  if ($result['command'] === 'new') {
36  if ($result['vanillaUid'] < 0) {
37  // vanillaUid points to a neighbor record in same table - get its record and its pid from there to find parent record
38  $neighborRow = $this->‪getRecordFromDatabase($result['tableName'], abs($result['vanillaUid']));
39  if (!empty($neighborRow['t3ver_oid'])) {
40  $neighborRow = $this->‪getRecordFromDatabase($result['tableName'], (int)$neighborRow['t3ver_oid']);
41  }
42  $result['neighborRow'] = $neighborRow;
43  // uid of page the record is located in
44  $neighborRowPid = (int)$neighborRow['pid'];
45  if ($neighborRowPid !== 0) {
46  // Fetch the parent page record only if it is not the '0' root
47  $parentPageRow = $this->‪getRecordFromDatabase('pages', $neighborRowPid);
48  }
49  } elseif ($result['vanillaUid'] > 0) {
50  // vanillaUid points to a page uid directly
51  $parentPageRow = $this->‪getRecordFromDatabase('pages', $result['vanillaUid']);
52  }
53  } else {
54  // On "edit", the row itself has been fetched already
55  if ($result['databaseRow']['pid'] > 0) {
56  $parentPageRow = $this->‪getRecordFromDatabase('pages', $result['databaseRow']['pid']);
57  }
58  }
59  $result['parentPageRow'] = $parentPageRow;
60 
61  return $result;
62  }
63 }
‪TYPO3\CMS\Backend\Form\FormDataProvider\AbstractDatabaseRecordProvider
Definition: AbstractDatabaseRecordProvider.php:28
‪TYPO3\CMS\Backend\Form\FormDataProvider\AbstractDatabaseRecordProvider\getRecordFromDatabase
‪array getRecordFromDatabase($tableName, $uid)
Definition: AbstractDatabaseRecordProvider.php:41
‪TYPO3\CMS\Backend\Form\FormDataProvider
Definition: AbstractDatabaseRecordProvider.php:2
‪TYPO3\CMS\Backend\Form\FormDataProviderInterface
Definition: FormDataProviderInterface.php:22
‪TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseParentPageRow
Definition: DatabaseParentPageRow.php:23
‪TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseParentPageRow\addData
‪array addData(array $result)
Definition: DatabaseParentPageRow.php:31