xref: /dokuwiki/inc/Action/Locked.php (revision 90fb952c4c30c09c8446076ba05991c89a3f0b01)
1f21dad39SAndreas Gohr<?php
2f21dad39SAndreas Gohr
3f21dad39SAndreas Gohrnamespace dokuwiki\Action;
4f21dad39SAndreas Gohr
56723156fSAndreas Gohruse dokuwiki\Ui\Editor;
625dd2a2fSSatoshi Sahara
7ab583a1bSAndreas Gohr/**
8ab583a1bSAndreas Gohr * Class Locked
9ab583a1bSAndreas Gohr *
10ab583a1bSAndreas Gohr * Show a locked screen when a page is locked
11ab583a1bSAndreas Gohr *
12ab583a1bSAndreas Gohr * @package dokuwiki\Action
13ab583a1bSAndreas Gohr */
1425dd2a2fSSatoshi Saharaclass Locked extends AbstractAction
1525dd2a2fSSatoshi Sahara{
16f21dad39SAndreas Gohr    /** @inheritdoc */
1725dd2a2fSSatoshi Sahara    public function minimumPermission()
1825dd2a2fSSatoshi Sahara    {
19f21dad39SAndreas Gohr        return AUTH_READ;
20f21dad39SAndreas Gohr    }
21f21dad39SAndreas Gohr
22ab583a1bSAndreas Gohr    /** @inheritdoc */
2325dd2a2fSSatoshi Sahara    public function tplContent()
2425dd2a2fSSatoshi Sahara    {
25f0049a83SSatoshi Sahara        $this->showBanner();
2673022918SAndreas Gohr        (new Editor())->show();
27f21dad39SAndreas Gohr    }
28f21dad39SAndreas Gohr
29f0049a83SSatoshi Sahara    /**
30f0049a83SSatoshi Sahara     * Display error on locked pages
31f0049a83SSatoshi Sahara     *
32*90fb952cSAndreas Gohr     * @return void
33f0049a83SSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
34f0049a83SSatoshi Sahara     *
35f0049a83SSatoshi Sahara     */
36a215faf2SSatoshi Sahara    public function showBanner()
37f0049a83SSatoshi Sahara    {
38f0049a83SSatoshi Sahara        global $ID;
39f0049a83SSatoshi Sahara        global $conf;
40f0049a83SSatoshi Sahara        global $lang;
41f0049a83SSatoshi Sahara        global $INFO;
42f0049a83SSatoshi Sahara
43f0049a83SSatoshi Sahara        $locktime = filemtime(wikiLockFN($ID));
44f0049a83SSatoshi Sahara        $expire = dformat($locktime + $conf['locktime']);
45f0049a83SSatoshi Sahara        $min = round(($conf['locktime'] - (time() - $locktime)) / 60);
46f0049a83SSatoshi Sahara
47f0049a83SSatoshi Sahara        // print intro
4826dfc232SAndreas Gohr        echo p_locale_xhtml('locked');
49f0049a83SSatoshi Sahara
5026dfc232SAndreas Gohr        echo '<ul>';
51*90fb952cSAndreas Gohr        echo '<li><div class="li"><strong>' . $lang['lockedby'] . '</strong> ' .
52*90fb952cSAndreas Gohr            editorinfo($INFO['locked']) . '</div></li>';
53*90fb952cSAndreas Gohr        echo '<li><div class="li"><strong>' . $lang['lockexpire'] . '</strong> ' .
54*90fb952cSAndreas Gohr            $expire . ' (' . $min . ' min)</div></li>';
5526dfc232SAndreas Gohr        echo '</ul>' . DOKU_LF;
56f0049a83SSatoshi Sahara    }
57f21dad39SAndreas Gohr}
58