Hi,
ich habe mal eine Frage zu Hooks. Generell weiß ich wie Sie einzusetzen sind. Habe schon einen im Einsatz. 🙂
Aber ich bräuchte mal kurz einen Tipp welchen Hook ich für mein Szenario verwenden sollte.
Ich möchte gerne, wenn mein Backend Formular geladen wird und ein bestimmtes Feld noch nicht gefüllt wurde, automastisch durch meinen Hook befüllt wird. In dem Fall geht es um die Kundennummer, und die soll halt gleich automtisch generiert werden.
Desweiteren möchte ich gerne Bilder die hochgeladen werden, nach den Speichern automatisch noch in 2 anderen Größen speichern.
Kann mir jemand sagen welche Hooks für die Aktion zuständig wären?
Vielen Dank
Stefan
Hi , danke, den Hook hab ich schon probiert. Allerdings soll die Kundennummer ja generiert werden wenn das Formular geladen wird. Also ich klicke auf neue Firma, das Formular öffnet sich und es wird gleich ein KDNR generiert. processDatamap_postProcessFieldArray greift ja nur beim Absenden des Forms. Oder? Trozdem danke.
hallo,
man kann in der tca Konfiguration für input-Felder einen Default-Wert angeben.
Vielleicht kannst Du den ja mit einer userFunc füllen (hab ich nie gemacht, könnte aber gehen).
vielleicht hilft dir das :
wir nutzen den Hook : processDatamap_afterDatabaseOperations um nach speichern eines CAL Events im Backend noch weitere Actionen (export via rest nach Salesforce) auszulösen ..
public function processDatamap_afterDatabaseOperations($status, $table, $id, $fieldArray, $pObj) {
$this->pObj = $pObj;
$this->table = $table;
$this->id = (t3lib_div::testInt($id)?$id:$this->pObj->substNEWwithIDs[$id]);
$this->extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['nem_calwebservices']);
// $this->flashMessage['INFO'][] = 'Hook: processDatamap_afterDatabaseOperations';
// $this->flashMessage['INFO'][] = 'Webservice to use: '. $this->extConf['webservice_to_use'] ;
$this->main();
}
public function main() {
if ($this->table == 'tx_cal_event') { //do only things when we are in the cal event table
$this->record = t3lib_BEfunc::getRecord($this->table, intval($this->id));
// .... Tabellen name anpassen und dann kannst du nun mit dem record treiben was du willst
Hi, okay das wäre auch ein Weg aber ich habe es nun mit dem Hook hinbekommen. Allerdings wird der Value Wert des Eingabefeldes nicht korrekt gesetzt. Ich mache es so:
public function getMainFields_postProcess($table, $row, $obj) {
if($table=='tx_tl24_domain_model_company') {
if($row['customernumber']=='') {
$objManager = SK\Tl24\Utility\Div::getObjectManager();
$customerDiv = $objManager->get('SK\Tl24\Utility\Customer\Div');
$customernumber = $customerDiv->generateCustomernumber();
$row['customernumber'] = $customernumber;
}
}
return $row;
}
Aber row['customernumber'] ist immer leer obwohl $customernumber gefüllt ist. Sehr komisch. Was kann sein?
Vielen Dank
Stefan
falls Du noch keiner Lösung gefunden hast:
m.E. muss $row als reference übergeben werden, also muss die Methode so aussehen:
public function getMainFields_postProcess($table, &$row, $obj) {
}