Hi,
ich habe in einem Datensatz meiner Extension ein Feld namens hash. Dieses Feld soll vom Benutzer nicht bearbeitet werden können, denn der Wert dieses Feldes wird automatisch beim Speichern eines Datensatzes generiert (alles im Backend).
Die automatische Generierung funktioniert einwandfrei, solange man das Feld im Backend bearbeiten kann (es ist also im TCE Form vorhanden). Dazu benutze ich folgenden Hook aus t3lib/class.t3lib_tcemain.php:
<?php
function processDatamap_preProcessFieldArray(&$fieldArray, $table, $id, &$tceobj)
{
if($table == 'tx_meineext_meinetabelle')
{
$fieldArray['hash'] = '1234567890';
}
}
?>
Im TCA wird das Feld momentan wie folgt definiert (es ist also ganz normal sichtbar und editierbar):
<?php
'hash' => array (
'label' => 'Hash',
'config' => array (
'type' => 'input',
'size' => '30',
'eval' => 'int',
)
),
?>
Um das Feld im Backend auszublenden habe ich im TCA den Typ passthrough eingetragen.
<?php
'hash' => array (
'config' => array (
'type' => 'passthrough',
)
),
?>
Dies hatte jedoch zur Folge, dass das Feld im Hook nicht mehr vorhanden war.
Mit readOnly => 1 hatte ich genau so wenig Glück:
<?php
'hash' => array (
'label' => 'Hash',
'config' => array (
'type' => 'input',
'size' => '30',
'eval' => 'int',
'readOnly' => 1,
)
),
?>
Wie kann man ein Feld im Backend so verbergen, dass es im Hook dennoch verfügbar ist?