xref: /plugin/structpublish/action/publish.php (revision 3449f9ce9770752ac28fe0246797d80e125747d5)
1c2f8a3c4SAnna Dabrowska<?php
2c2f8a3c4SAnna Dabrowska
3c2f8a3c4SAnna Dabrowskause dokuwiki\plugin\structpublish\meta\Revision;
4c2f8a3c4SAnna Dabrowska
5c2f8a3c4SAnna Dabrowskaclass action_plugin_structpublish_publish extends DokuWiki_Action_Plugin
6c2f8a3c4SAnna Dabrowska{
7c2f8a3c4SAnna Dabrowska    /** @var \helper_plugin_structpublish_permissions */
8c2f8a3c4SAnna Dabrowska    protected $permissionsHelper;
9c2f8a3c4SAnna Dabrowska
10c2f8a3c4SAnna Dabrowska    /**
11c2f8a3c4SAnna Dabrowska     * @inheritDoc
12c2f8a3c4SAnna Dabrowska     */
13c2f8a3c4SAnna Dabrowska    public function register(Doku_Event_Handler $controller)
14c2f8a3c4SAnna Dabrowska    {
15c2f8a3c4SAnna Dabrowska        $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handlePublish');
16c2f8a3c4SAnna Dabrowska    }
17c2f8a3c4SAnna Dabrowska
18c2f8a3c4SAnna Dabrowska    public function handlePublish(Doku_Event $event)
19c2f8a3c4SAnna Dabrowska    {
20c2f8a3c4SAnna Dabrowska        if ($event->data != 'show') return;
21*3449f9ceSAnna Dabrowska        if (!isset($_GET['structpublish']) || $_GET['structpublish'] !== \helper_plugin_structpublish_permissions::ACTION_PUBLISH) return;
22c2f8a3c4SAnna Dabrowska
23c2f8a3c4SAnna Dabrowska        $this->permissionsHelper = plugin_load('helper', 'structpublish_permissions');
24c2f8a3c4SAnna Dabrowska
25c2f8a3c4SAnna Dabrowska        global $ID;
26c2f8a3c4SAnna Dabrowska        global $INFO;
27c2f8a3c4SAnna Dabrowska        $sqlite = $this->permissionsHelper->getDb();
28*3449f9ceSAnna Dabrowska        // FIXME
29*3449f9ceSAnna Dabrowska        $revision = new Revision($sqlite, $ID, $INFO['currentrev']);
30*3449f9ceSAnna Dabrowska        // FIXME do it in SQL?
31c2f8a3c4SAnna Dabrowska        $revision->setVersion($revision->getVersion() + 1);
32c2f8a3c4SAnna Dabrowska        $revision->setUser($_SERVER['REMOTE_USER']);
33c2f8a3c4SAnna Dabrowska        $revision->setStatus(Revision::STATUS_PUBLISHED);
34c2f8a3c4SAnna Dabrowska
35c2f8a3c4SAnna Dabrowska        $revision->save();
36c2f8a3c4SAnna Dabrowska
37c2f8a3c4SAnna Dabrowska    }
38c2f8a3c4SAnna Dabrowska
39c2f8a3c4SAnna Dabrowska    protected function publish($rev)
40c2f8a3c4SAnna Dabrowska    {
41c2f8a3c4SAnna Dabrowska        global $ID;
42c2f8a3c4SAnna Dabrowska    }
43c2f8a3c4SAnna Dabrowska}
44