xref: /plugin/approve/action/revisions.php (revision 25ce10ddeae86cf8cd8fd09574b893af116398e3)
1<?php
2
3if(!defined('DOKU_INC')) die();
4
5class action_plugin_approve_revisions extends DokuWiki_Action_Plugin {
6
7    /** @var DokuWiki_PluginInterface */
8    protected $hlp;
9
10    function __construct(){
11        $this->hlp = plugin_load('helper', 'approve');
12    }
13
14
15    function register(Doku_Event_Handler $controller) {
16		$controller->register_hook('HTML_REVISIONSFORM_OUTPUT', 'BEFORE', $this, 'handle_revisions', array());
17		$controller->register_hook('HTML_RECENTFORM_OUTPUT', 'BEFORE', $this, 'handle_revisions', array());
18	}
19
20	function handle_revisions(Doku_Event $event, $param) {
21		global $ID;
22
23		if (!$this->hlp->use_approve_here($ID)) return;
24
25		$member = NULL;
26		foreach ($event->data->_content as $key => $ref) {
27
28			if (is_array($ref) && isset($ref['_elem']) && $ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') {
29			    $member = $key;
30            } elseif (is_string($ref) && strstr($ref, $this->getConf('sum approved'))) {
31                $event->data->_content[$member]['class'] .= ' plugin__approve_green';
32            }
33
34		}
35
36		return true;
37	}
38
39}
40