xref: /plugin/structpublish/action/publish.php (revision 3b7236c08546ad2466b27f6420b2c08c99bd0d07)
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    {
10*3b7236c0SAnna 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
188b0ba635SAndreas Gohr     */
19*3b7236c0SAnna Dabrowska    public function changeStatus(Doku_Event $event)
20c2f8a3c4SAnna Dabrowska    {
21b5c0ae7fSAndreas Gohr        if ($event->data != 'show') {
22b5c0ae7fSAndreas Gohr            return;
23b5c0ae7fSAndreas Gohr        }
24e394901aSAnna Dabrowska
25e394901aSAnna Dabrowska        global $INPUT;
26e394901aSAnna Dabrowska        $in = $INPUT->arr('structpublish');
27*3b7236c0SAnna Dabrowska        if (!$in || !in_array(key($in), [Constants::ACTION_PUBLISH, Constants::ACTION_APPROVE])) {
28e394901aSAnna Dabrowska            return;
29e394901aSAnna Dabrowska        }
30e394901aSAnna Dabrowska
31*3b7236c0SAnna Dabrowska        if (!checkSecurityToken()) return;
321b063be2SAnna Dabrowska
33*3b7236c0SAnna Dabrowska        $helper = plugin_load('helper', 'structpublish_publish');
34*3b7236c0SAnna Dabrowska        $helper->saveRevision(key($in), $INPUT->str('version'));
358680d162SAnna Dabrowska    }
36c2f8a3c4SAnna Dabrowska}
37