xref: /dokuwiki/inc/Action/Locked.php (revision a215faf2fc4cea7bbd92b8fd0b1034e976b87142)
1f21dad39SAndreas Gohr<?php
2f21dad39SAndreas Gohr
3f21dad39SAndreas Gohrnamespace dokuwiki\Action;
4f21dad39SAndreas Gohr
525dd2a2fSSatoshi Saharause dokuwiki\Ui;
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();
2625dd2a2fSSatoshi Sahara        (new Ui\Editor)->show();
27f21dad39SAndreas Gohr    }
28f21dad39SAndreas Gohr
29f0049a83SSatoshi Sahara    /**
30f0049a83SSatoshi Sahara     * Display error on locked pages
31f0049a83SSatoshi Sahara     *
32f0049a83SSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
33f0049a83SSatoshi Sahara     *
34f0049a83SSatoshi Sahara     * @return void
35f0049a83SSatoshi Sahara     */
36*a215faf2SSatoshi 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
48f0049a83SSatoshi Sahara        print p_locale_xhtml('locked');
49f0049a83SSatoshi Sahara
50f0049a83SSatoshi Sahara        print '<ul>';
51f0049a83SSatoshi Sahara        print '<li><div class="li"><strong>'.$lang['lockedby'].'</strong> '.editorinfo($INFO['locked']).'</div></li>';
52f0049a83SSatoshi Sahara        print '<li><div class="li"><strong>'.$lang['lockexpire'].'</strong> '.$expire.' ('.$min.' min)</div></li>';
53f0049a83SSatoshi Sahara        print '</ul>'.DOKU_LF;
54f0049a83SSatoshi Sahara    }
55f0049a83SSatoshi Sahara
56f21dad39SAndreas Gohr}
57