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