TYPO3 CMS  TYPO3_7-6
ElementBrowserRecordList.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 
21 
26 {
32  protected $relatingTable;
33 
39  protected $relatingField;
40 
50  public function linkWrapItems($table, $uid, $code, $row)
51  {
52  if (!$code) {
53  $code = '<i>[' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.no_title', true) . ']</i>';
54  } else {
55  $code = BackendUtility::getRecordTitlePrep($code, $this->fixedL);
56  }
57  $title = BackendUtility::getRecordTitle($table, $row, false, true);
58  $ficon = $this->iconFactory->getIconForRecord($table, $row, Icon::SIZE_SMALL)->render();
59 
60  $ATag = '<a href="#" data-close="0" title="' . $this->getLanguageService()->getLL('addToList', true) . '">';
61  $ATag_alt = '<a href="#" data-close="1" title="' . $this->getLanguageService()->getLL('addToList', true) . '">';
62  $ATag_e = '</a>';
63  $out = '<span data-uid="' . htmlspecialchars($row['uid']) . '" data-table="' . htmlspecialchars($table) . '" data-title="' . htmlspecialchars($title) . '" data-icon="' . htmlspecialchars($ficon) . '">';
64  $out .= $ATag . $this->iconFactory->getIcon('actions-edit-add', Icon::SIZE_SMALL)->render() . $ATag_e . $ATag_alt . $code . $ATag_e;
65  $out .= '</span>';
66 
67  return $out;
68  }
69 
77  protected function isRowListingConditionFulfilled($table, $row)
78  {
79  $returnValue = true;
80  if ($this->relatingField && $this->relatingTable) {
81  $tcaFieldConfig = $GLOBALS['TCA'][$this->relatingTable]['columns'][$this->relatingField]['config'];
82  if (is_array($tcaFieldConfig['filter'])) {
83  foreach ($tcaFieldConfig['filter'] as $filter) {
84  if (!$filter['userFunc']) {
85  continue;
86  }
87  $parameters = $filter['parameters'] ?: [];
88  $parameters['values'] = [$table . '_' . $row['uid']];
89  $parameters['tcaFieldConfig'] = $tcaFieldConfig;
90  $valueArray = GeneralUtility::callUserFunction($filter['userFunc'], $parameters, $this);
91  if (empty($valueArray)) {
92  $returnValue = false;
93  }
94  }
95  }
96  }
97  return $returnValue;
98  }
99 
106  public function setRelatingTableAndField($tableName, $fieldName)
107  {
108  // Check validity of the input data and load TCA
109  if (isset($GLOBALS['TCA'][$tableName])) {
110  $this->relatingTable = $tableName;
111  if ($fieldName && isset($GLOBALS['TCA'][$tableName]['columns'][$fieldName])) {
112  $this->relatingField = $fieldName;
113  }
114  }
115  }
116 
123  public function generateList()
124  {
125  $this->allFields = true;
126  parent::generateList();
127  }
128 }
static callUserFunction($funcName, &$params, &$ref, $checkPrefix='', $errorMode=0)
static getRecordTitle($table, $row, $prep=false, $forceResult=true)
$uid
Definition: server.php:38
static getRecordTitlePrep($title, $titleLength=0)
if(TYPO3_MODE==='BE') $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tsfebeuserauth.php']['frontendEditingController']['default']