34 'foreign_table_where',
35 'foreign_table_prefix',
36 'foreign_table_loadIcons',
38 'neg_foreign_table_where',
39 'neg_foreign_table_prefix',
40 'neg_foreign_table_loadIcons',
41 'neg_foreign_table_imposeValueField',
44 'fileFolder_recursions',
65 public function modifyFlexFormDS(array $dataStructure, $table, $tableField, array $tableRow, array $tableConf) {
66 $singleSheet = !isset($dataStructure[
'sheets']) || !is_array($dataStructure[
'sheets']);
67 $metaConf = !empty($dataStructure[
'meta']) ? $dataStructure[
'meta'] : array();
71 $pointerFields = !empty($tableConf[
'config'][
'ds_pointerField']) ? $tableConf[
'config'][
'ds_pointerField'] :
'list_type,CType';
73 $flexformIdentifier = !empty($tableRow[$pointerFields[0]]) ? $tableRow[$pointerFields[0]] :
'';
74 if (!empty($tableRow[$pointerFields[1]]) && $tableRow[$pointerFields[1]] !=
'list' && $tableRow[$pointerFields[1]] !=
'*') {
75 $flexformIdentifier = $tableRow[$pointerFields[1]];
77 if (empty($flexformIdentifier)) {
78 return $dataStructure;
82 if (!empty($TSconfig[$tableField][($flexformIdentifier .
'.')])) {
90 if (isset($sheetConf[
'langDisable'])) {
91 $metaConf[
'langDisable'] = $sheetConf[
'langDisable'];
93 if (isset($sheetConf[
'langChildren'])) {
94 $metaConf[
'langChildren'] = $sheetConf[
'langChildren'];
97 foreach ($dataStructure[
'sheets'] as $sheetName => $sheet) {
98 if (empty($sheet[
'ROOT'][
'el']) || !is_array($sheet[
'ROOT'][
'el'])) {
102 if (!empty($sheetConf[$sheetName][
'disabled'])) {
103 unset($dataStructure[
'sheets'][$sheetName]);
107 if (!empty($sheetConf[$sheetName][
'sheetTitle'])) {
108 $dataStructure[
'sheets'][$sheetName][
'ROOT'][
'TCEforms'][
'sheetTitle'] = $sheetConf[$sheetName][
'sheetTitle'];
111 if (!empty($sheetConf[$sheetName][
'sheetDescription'])) {
112 $dataStructure[
'sheets'][$sheetName][
'ROOT'][
'TCEforms'][
'sheetDescription'] = $sheetConf[$sheetName][
'sheetDescription'];
115 if (!empty($sheetConf[$sheetName][
'sheetShortDescr'])) {
116 $dataStructure[
'sheets'][$sheetName][
'ROOT'][
'TCEforms'][
'sheetShortDescr'] = $sheetConf[$sheetName][
'sheetShortDescr'];
119 $dataStructure[
'sheets'][$sheetName][
'ROOT'][
'el'] = $this->
modifySingleFlexFormSheet($sheet[
'ROOT'][
'el'], $table, $tableField, $tableRow, !empty($sheetConf[$sheetName]) ? $sheetConf[$sheetName] : array(), !empty($nonExcludeFields[$sheetName]) ? $nonExcludeFields[$sheetName] : array());
121 if (empty($dataStructure[
'sheets'][$sheetName][
'ROOT'][
'el'])) {
122 unset($dataStructure[
'sheets'][$sheetName]);
126 if ($singleSheet && isset($dataStructure[
'sheets'][
'sDEF'])) {
127 $dataStructure = $dataStructure[
'sheets'][
'sDEF'];
130 if (!empty($metaConf)) {
131 $dataStructure[
'meta'] = $metaConf;
133 return $dataStructure;
148 public function modifySingleFlexFormSheet(array $sheet, $table, $tableField, array $tableRow, array $sheetConf, array $nonExcludeFields) {
149 if (empty($sheet) || empty($table) || empty($tableField) || empty($tableRow)) {
153 foreach ($sheet as $fieldName => $field) {
155 if (!
$GLOBALS[
'BE_USER']->isAdmin() && !empty($field[
'TCEforms'][
'exclude']) && empty($nonExcludeFields[$fieldName])) {
156 unset($sheet[$fieldName]);
160 if (empty($sheetConf[$fieldName]) || !is_array($sheetConf[$fieldName])) {
164 if (!empty($sheetConf[$fieldName][
'disabled'])) {
165 unset($sheet[$fieldName]);
168 $fieldConf = $sheetConf[$fieldName];
171 $renameItems = !empty($fieldConf[
'altLabels']) && is_array($fieldConf[
'altLabels']) ? $fieldConf[
'altLabels'] : array();
172 $addItems = !empty($fieldConf[
'addItems']) && is_array($fieldConf[
'addItems']) ? $fieldConf[
'addItems'] : array();
173 unset($fieldConf[
'removeItems']);
174 unset($fieldConf[
'keepItems']);
175 unset($fieldConf[
'altLabels']);
176 unset($fieldConf[
'addItems']);
178 if (!empty($field[
'TCEforms']) && is_array($field[
'TCEforms'])) {
179 $sheet[$fieldName][
'TCEforms'] = $field[
'TCEforms'];
183 if (empty($field[
'TCEforms'][
'config'][
'type']) || $field[
'TCEforms'][
'config'][
'type'] !=
'select' || $field[
'TCEforms'][
'config'][
'renderMode'] ===
'tree') {
199 $selItems = $this->
addItems($selItems, $addItems);
201 if (!empty($field[
'TCEforms'][
'config'][
'itemsProcFunc'])) {
202 $selItems = $this->procItems($selItems, $fieldConf[
'config'], $field[
'TCEforms'][
'config'], $table, $tableRow, $tableField);
205 foreach ($this->removeSelectConfig as $option) {
206 unset($sheet[$fieldName][
'TCEforms'][
'config'][$option]);
209 if ((!empty($removeItems) || !empty($renameItems)) && !empty($selItems) && is_array($selItems)) {
210 foreach ($selItems as $itemKey => $itemConf) {
212 if (!isset($itemConf[1])) {
216 foreach ($removeItems as $removeKey => $removeValue) {
217 if (strcasecmp($removeValue, $itemConf[1]) == 0) {
218 unset($selItems[$itemKey]);
219 unset($removeItems[$removeKey]);
223 foreach ($renameItems as $renameKey => $renameValue) {
224 if (strcasecmp($renameKey, $itemConf[1]) == 0) {
225 $selItems[$itemKey][0] = htmlspecialchars($renameValue);
226 unset($renameItems[$renameKey]);
231 $sheet[$fieldName][
'TCEforms'][
'config'][
'items'] = $selItems;
246 if (empty(
$GLOBALS[
'BE_USER']->groupData[
'non_exclude_fields']) || empty($table) || empty($tableField) || empty($extIdent)) {
250 $identPrefix = $table .
':' . $tableField .
';' . $extIdent .
';';
251 $nonExcludeFields = array();
253 foreach ($accessListFields as $field) {
254 if (strpos($field, $identPrefix) !== FALSE) {
255 list(, , $sheetName, $fieldName) = explode(
';', $field);
256 $nonExcludeFields[$sheetName][$fieldName] = TRUE;
259 return $nonExcludeFields;
270 $array1 = reset($array1);
271 $array2 = reset($array2);
272 if (is_string($array1) && is_string($array2)) {
273 return strcasecmp($array1, $array2);
static mergeRecursiveWithOverrule(array &$original, array $overrule, $addKeys=TRUE, $includeEmptyValues=TRUE, $enableUnsetFeature=TRUE)
static resolveAllSheetsInDS(array $dataStructArray)
static trimExplode($delim, $string, $removeEmptyValues=FALSE, $limit=0)
static removeDotsFromTS(array $ts)
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
static keepItemsInArray(array $array, $keepItems, $getValueFunc=NULL)