[Frage] Frage zu Hooks TYPO3-Version: 6.1.7

  • 0 x
    123 Beiträge
    0 Hilfreiche Beiträge
    07. 02. 2014, 09:01

    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


  • 1
  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    07. 02. 2014, 10:10

    Sollte beides mit "processDatamap_postProcessFieldArray" zu realisieren sein: http://www.interaktionsdesigner.de/2008/09/25/processdatamap_postprocessfieldarray/

  • 0 x
    123 Beiträge
    0 Hilfreiche Beiträge
    07. 02. 2014, 10:13

    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.

  • vince vince
    Sternenflotten-Admiral
    0 x
    180 Beiträge
    6 Hilfreiche Beiträge
    07. 02. 2014, 12:06

    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).

  • Velletti Velletti
    R2-D2
    0 x
    83 Beiträge
    3 Hilfreiche Beiträge
    07. 02. 2014, 13:27

    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 ..

    [code]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
    [/code]

    Typo3 seit 2010. Multilinguale (> 8 ) , Multi-Domain Installation aktuell unter 4.5.x LTS:
    Main used Extension: DAM, REAL URL, Powermail, tt_address, tt_news, cal, MM_forum (fork), Community (fork), Diversen eigenen extbase/Fluid extension

  • 0 x
    123 Beiträge
    0 Hilfreiche Beiträge
    07. 02. 2014, 13:29

    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:

    1. public function getMainFields_postProcess($table, $row, $obj) {
    2.  
    3. if($table=='tx_tl24_domain_model_company') {
    4.  
    5. if($row['customernumber']=='') {
    6. $objManager = SK\Tl24\Utility\Div::getObjectManager();
    7. $customerDiv = $objManager->get('SK\Tl24\Utility\Customer\Div');
    8. $customernumber = $customerDiv->generateCustomernumber();
    9. $row['customernumber'] = $customernumber;
    10. }
    11.  
    12. }
    13.  
    14. return $row;
    15.  
    16. }

    Aber row['customernumber'] ist immer leer obwohl $customernumber gefüllt ist. Sehr komisch. Was kann sein?

    Vielen Dank
    Stefan

  • vince vince
    Sternenflotten-Admiral
    0 x
    180 Beiträge
    6 Hilfreiche Beiträge
    12. 02. 2014, 10:54

    falls Du noch keiner Lösung gefunden hast:
    m.E. muss $row als reference übergeben werden, also muss die Methode so aussehen:

    1. public function getMainFields_postProcess($table, &$row, $obj) {
    2.  
    3. }

  • 1