xref: /plugin/recommend/admin.php (revision 2937e9a57baddb95935c7f34017ae49649250ec7)
1cbc3cee5SAdrian Lang<?php
2cbc3cee5SAdrian Langrequire_once DOKU_PLUGIN . 'admin.php';
3cbc3cee5SAdrian Lang
4cbc3cee5SAdrian Langclass admin_plugin_recommend extends DokuWiki_Admin_Plugin {
5*2937e9a5SAnna Dabrowska
6*2937e9a5SAnna Dabrowska    protected $entries;
7*2937e9a5SAnna Dabrowska    protected $logs;
8*2937e9a5SAnna Dabrowska    protected $month;
9*2937e9a5SAnna Dabrowska
10*2937e9a5SAnna Dabrowska    public function getInfo(){
11b715dd63SDominik Eckelmann        return confToHash(dirname(__FILE__).'/plugin.info.txt');
12cbc3cee5SAdrian Lang    }
13cbc3cee5SAdrian Lang
14*2937e9a5SAnna Dabrowska    public function handle() {
15cbc3cee5SAdrian Lang        if (isset($_REQUEST['rec_month']) &&
16cbc3cee5SAdrian Lang            preg_match('/^\d{4}-\d{2}$/', $_REQUEST['rec_month'])) {
17cbc3cee5SAdrian Lang            $this->month = $_REQUEST['rec_month'];
18cbc3cee5SAdrian Lang        } else {
19cbc3cee5SAdrian Lang            $this->month = date('Y-m');
20cbc3cee5SAdrian Lang        }
21*2937e9a5SAnna Dabrowska        $log = new helper_plugin_recommend_log($this->month);
22cbc3cee5SAdrian Lang        $this->entries = $log->getEntries();
23*2937e9a5SAnna Dabrowska        $this->logs = $log->getLogs();
24cbc3cee5SAdrian Lang    }
25cbc3cee5SAdrian Lang
26*2937e9a5SAnna Dabrowska    public function getTOC() {
27*2937e9a5SAnna Dabrowska        return array_map([$this, 'recommend_make_toc'], $this->logs);
28cbc3cee5SAdrian Lang    }
29cbc3cee5SAdrian Lang
30*2937e9a5SAnna Dabrowska    public function html() {
31cbc3cee5SAdrian Lang        if (!$this->logs) {
32cbc3cee5SAdrian Lang            echo 'No recommendations.';
33cbc3cee5SAdrian Lang            return;
34cbc3cee5SAdrian Lang        }
35cbc3cee5SAdrian Lang        if (!$this->entries) {
36cbc3cee5SAdrian Lang            echo 'No recommendations were made in ' . $this->month . '.';
37cbc3cee5SAdrian Lang            return;
38cbc3cee5SAdrian Lang        }
39cbc3cee5SAdrian Lang        echo '<p>In ' . $this->month . ', your users made the following ' . count($this->entries) . ' recommendations:</p>';
40cbc3cee5SAdrian Lang        echo '<ul>';
41cbc3cee5SAdrian Lang        foreach(array_reverse($this->entries) as $entry) {
42d462c752SAdrian Lang            echo "<li>" . hsc($entry) . "</li>";
43cbc3cee5SAdrian Lang        }
44cbc3cee5SAdrian Lang        echo '</ul>';
45cbc3cee5SAdrian Lang    }
46cbc3cee5SAdrian Lang
47*2937e9a5SAnna Dabrowska    public function recommend_make_toc($month) {
48cbc3cee5SAdrian Lang        global $ID;
49cbc3cee5SAdrian Lang        return html_mktocitem('?do=admin&page=recommend&id=' . $ID . '&rec_month=' . $month, $month, 1, '');
50*2937e9a5SAnna Dabrowska    }
51cbc3cee5SAdrian Lang}
52