1

I have a plugin that does a bunch of stuff with external APIs onSaveEntry and then saves some of the gathered information back into the entry. I currently use craft()->entries->saveEntry($entry); but I obviously create a loop.

I saw this answer (Updating an entry after an event action within onSaveEntry) but since there is a nice detachEventHandler method I was wondering how to use it.

I tried hammering it with various combinations but I can't figure it out.

Right now, my plugin does this on init :

public function init(){
    craft()->on('entries.saveEntry', function(Event $event) {
        craft()->rmsLink->rmsLinker($event);
    });
}

Then rmsLinker, which is in my RmsLinkerService, checks if the entry comes from the right canal and if so calls another function who is also in the RmsLinkerService like so :

$this->sendShowToRmsV1($settings, $entryAttributes, $entry);

It's then in sendShowToRmsV1 that I need to do craft()->entries->saveEntry($entry) and prevent it from running the plugin all over again.

Any suggestions would be greatly appreciated.

0 Answers0