register_hook ( 'COMMON_WIKIPAGE_SAVE', 'AFTER', $this, '_handle' ); } function _handle ( Doku_Event $event, $param ) { try { /** @var helper_plugin_matrixnotifierwas $helper */ $helper = plugin_load('helper', 'matrixnotifierwas'); if (!$helper) return; // filter writes to attic if ( $helper -> attic_write ( $event -> data['file'] ) ) return; // filter namespace if ( !$helper -> valid_namespace ( ) ) return; // filter event if ( !$helper -> set_event ( $event ) ) return; // set payload text $helper -> set_payload_text ( $event ); // submit payload safely via native cURL $helper -> submit_payload ( ); } catch (Exception $e) { // Gracefully render an on-screen warning banner instead of crashing the site execution loop msg('Matrix Notification Failed: ' . hsc($e->getMessage()), -1); } } }