nbar
nbar

Reputation: 6158

Extbase Hooks - execute code upon record creation

I want to create a standard typo3 extension but when I create a record (or modify it) I want to calculate something (in my case I want to call the Google Map API to get coordinates from a given address).

SO I search for a hook or something. Any idea?

Upvotes: 0

Views: 755

Answers (3)

nbar
nbar

Reputation: 6158

In my special case there was no need to calculate the coordinates when the record got saved. So I just used the listAction in the controller, check if coordinates are there and if not call the Google API (and send an email if the Google API does not give a coordinate back).

In another case where the new record comes from a frontend plugin and I had to do something with this data I used the createAction in the Controller. (I am not sure if the createAction is also called when the record is created from the backend.)

Upvotes: 0

Ghanshyam Gohel
Ghanshyam Gohel

Reputation: 1274

One of my project example, may helps you for hook in backend when record has been changed.

In your extension file ext_localconf.php

// Hook for cancellation
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = 'EXT:femanager/class.tx_femanager_tcemainprocdm.php:tx_femanager_tcemainprocdm';

hook file class.tx_femanager_tcemainprocdm.php where you can execute your script

class tx_femanager_tcemainprocdm{

    function processDatamap_postProcessFieldArray ($status, $table, $id, &$fieldArray, &$reference){
        // $status also called action like delete
        // $table - table name of excute backend action
        // $id - record UID
        // $fieldArray - fields of your table

        if($table = 'your_extension_table_name'){
            // your script  
        }
    }
}

Upvotes: 1

The F
The F

Reputation: 3714

Maybe this answer is useful to you.

Register your class as a data handling hook in your extension. This one "is called AFTER all commands of the commandmap" were executed. Maybe you need to look for a more appropriate one.

Then in your registered Hook i.e. 'typo3conf/ext/your_ext/Classes/Hooks/AfterCreate.php' do your calculation. Hope this sets you on the right track.

Upvotes: 0

Related Questions