1c2f8a3c4SAnna Dabrowska<?php 2c2f8a3c4SAnna Dabrowska 3e31c94d7SAndreas Gohruse dokuwiki\plugin\structpublish\meta\Constants; 4c2f8a3c4SAnna Dabrowska 5c2f8a3c4SAnna Dabrowskaclass action_plugin_structpublish_publish extends DokuWiki_Action_Plugin 6c2f8a3c4SAnna Dabrowska{ 78b0ba635SAndreas Gohr /** @inheritDoc */ 8c2f8a3c4SAnna Dabrowska public function register(Doku_Event_Handler $controller) 9c2f8a3c4SAnna Dabrowska { 103b7236c0SAnna Dabrowska $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'changeStatus'); 11c2f8a3c4SAnna Dabrowska } 12c2f8a3c4SAnna Dabrowska 138b0ba635SAndreas Gohr /** 148b0ba635SAndreas Gohr * Handle the publish button and version field 158b0ba635SAndreas Gohr * 168b0ba635SAndreas Gohr * @param Doku_Event $event 178b0ba635SAndreas Gohr * @return void 18*a42bec4dSAnna Dabrowska * @throws Exception 198b0ba635SAndreas Gohr */ 203b7236c0SAnna Dabrowska public function changeStatus(Doku_Event $event) 21c2f8a3c4SAnna Dabrowska { 22b5c0ae7fSAndreas Gohr if ($event->data != 'show') { 23b5c0ae7fSAndreas Gohr return; 24b5c0ae7fSAndreas Gohr } 25e394901aSAnna Dabrowska 26e394901aSAnna Dabrowska global $INPUT; 27*a42bec4dSAnna Dabrowska 28e394901aSAnna Dabrowska $in = $INPUT->arr('structpublish'); 29*a42bec4dSAnna Dabrowska $action = key($in); 30*a42bec4dSAnna Dabrowska if (!$action || !in_array($action, [Constants::ACTION_PUBLISH, Constants::ACTION_APPROVE])) { 31e394901aSAnna Dabrowska return; 32e394901aSAnna Dabrowska } 33e394901aSAnna Dabrowska 343b7236c0SAnna Dabrowska if (!checkSecurityToken()) return; 351b063be2SAnna Dabrowska 36*a42bec4dSAnna Dabrowska /** @var helper_plugin_structpublish_publish $helper */ 373b7236c0SAnna Dabrowska $helper = plugin_load('helper', 'structpublish_publish'); 38*a42bec4dSAnna Dabrowska $newRevision = $helper->saveRevision(key($in), $INPUT->str('version')); 39*a42bec4dSAnna Dabrowska 40*a42bec4dSAnna Dabrowska /** @var helper_plugin_structpublish_notify $notifyHelper */ 41*a42bec4dSAnna Dabrowska $notifyHelper = plugin_load('helper', 'structpublish_notify'); 42*a42bec4dSAnna Dabrowska $notifyHelper->sendEmails($action, $newRevision); 438680d162SAnna Dabrowska } 44c2f8a3c4SAnna Dabrowska} 45