Project

General

Profile

Actions

Feature #50740

closed

Provide syntax "__row|uid_local|fieldname" for $TCA[...]['config']['default']

Added by Michael Bakonyi over 11 years ago. Updated almost 9 years ago.

Status:
Rejected
Priority:
Could have
Assignee:
-
Category:
FormEngine aka TCEforms
Target version:
-
Start date:
2013-08-02
Due date:
% Done:

0%

Estimated time:
PHP Version:
Tags:
Complexity:
medium
Sprint Focus:

Description

With

$TCA['sys_file_reference']['columns']['title']['config']['placeholder'] = '__row|uid_local|title'

it is possible to get data from a related record, which is added as non-editable placeholder-attribute.

To make it possible for an editor to really use the content of the field I think it would make sense to enable the syntax above for

$TCA['sys_file_reference']['columns']['title']['config']['default']

aswell.

It is possible to add this functionality by copying the code from TYPO3\CMS\Backend\Form -> getPlaceholderAttribute via the hook

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tceforms.php']['getMainFieldsClass']

But I think this could/should be a core-feature. So maybe it would make sense to externalize the function TYPO3\CMS\Backend\Form -> getPlaceholderAttribute to the GeneralUtility for example so that it can be used on various places ..?

Actions #1

Updated by Michael Bakonyi over 11 years ago

I meant not externalizing the the complete function getPlaceholderAttribute but only the code which fetches the content from the related field of course.

Actions #2

Updated by Philipp Gampe over 11 years ago

  • Priority changed from Should have to Could have
  • Complexity set to medium

We want to reduce the number of functions for GeneralUtility, thus is should be at a more descriptive location.

Anyway, your proposal sounds valid for me.

Actions #3

Updated by Alexander Stehlik about 11 years ago

Basically there is no need to put the Code in GeneralUtility.

The hook will get a reference to the calling FormEngine object:

foreach ($this->hookObjectsMainFields as $hookObj) {
    if (method_exists($hookObj, 'getMainFields_preProcess')) {
        $hookObj->getMainFields_preProcess($table, $row, $this);
    }
}

IMHO the only required change is the visibility of the getPlaceholderAttribute() from protected to public.

Actions #4

Updated by Michael Bakonyi about 11 years ago

My proposal wasn't focused to use GeneralUtility – you now best where to put the code. My feature-request was to make the mentioned setting available by default to enhance the UX-behavior, respectively to make it easily possible for integrators to set this up without the need of a hook.

Actions #5

Updated by Morton Jonuschat almost 9 years ago

  • Status changed from New to Rejected

Won't have this time as the given syntax provides little benefit for the default values - these are meant for new records which don't have any relations/values in _row yet. So there are no relations to follow using the given syntax.
If you change your data structure the preferred solution is to use a migration script to set the values for new fields once (in batch).

Actions

Also available in: Atom PDF