function handle_io_write(Doku_Event &$event, $param)
 {
     # This is the only hook I could find which runs on save,
     # but late enough to have lastmod set (ACTION_ACT_PREPROCESS
     # is too early)
     global $ACT;
     global $INPUT;
     if ($ACT != 'show') {
         return;
     }
     if (!$INPUT->has('publish_approve')) {
         return;
     }
     if (!$this->helper->canApprove()) {
         msg($this->getLang('wrong permissions to approve'), -1);
         return;
     }
     $this->addApproval();
     return;
 }
 private function showApproveAction()
 {
     global $ID;
     global $REV;
     global $USERINFO;
     if (!$this->hlp->canApprove()) {
         return;
     }
     $approvals = $this->hlp->getApprovalsOnRevision($this->hlp->getRevision());
     foreach ($approvals as $approve) {
         if ($approve[1] == $_SERVER['REMOTE_USER']) {
             return;
         }
         if ($approve[1] == $USERINFO['mail']) {
             return;
         }
     }
     echo '<span class="approval_action">';
     echo '<a href="' . wl($ID, array('rev' => $REV, 'publish_approve' => 1)) . '">';
     echo $this->getLang('approve action');
     echo '</a>';
     echo '</span> ';
 }