xref: /plugin/approve/action/revisions.php (revision bab7614807fca2209bc1b0be9a71e192a180a43a)
11aeb2b4dSghi<?php
21aeb2b4dSghi
3*bab76148SSzymon Olewniczakuse dokuwiki\plugin\approve\meta\ApproveConst;
4*bab76148SSzymon Olewniczak
51aeb2b4dSghiif(!defined('DOKU_INC')) die();
61aeb2b4dSghi
71aeb2b4dSghiclass action_plugin_approve_revisions extends DokuWiki_Action_Plugin {
81aeb2b4dSghi
9*bab76148SSzymon Olewniczak    /** @var DokuWiki_PluginInterface */
10*bab76148SSzymon Olewniczak    protected $hlp;
11*bab76148SSzymon Olewniczak
1250481663SSzymon Olewniczak    function __construct(){
1350481663SSzymon Olewniczak        $this->hlp = plugin_load('helper', 'approve');
1450481663SSzymon Olewniczak    }
1550481663SSzymon Olewniczak
1650481663SSzymon Olewniczak
1750481663SSzymon Olewniczak    function register(Doku_Event_Handler $controller) {
181aeb2b4dSghi		$controller->register_hook('HTML_REVISIONSFORM_OUTPUT', 'BEFORE', $this, 'handle_revisions', array());
197efbcc93Sghi		$controller->register_hook('HTML_RECENTFORM_OUTPUT', 'BEFORE', $this, 'handle_revisions', array());
201aeb2b4dSghi	}
211aeb2b4dSghi
22d0c5854eSSzymon Olewniczak	function handle_revisions(Doku_Event $event, $param) {
231aeb2b4dSghi		global $ID;
241aeb2b4dSghi
2550481663SSzymon Olewniczak		if ($this->hlp->in_namespace($this->getConf('no_apr_namespaces'), $ID)) return;
2650481663SSzymon Olewniczak
271aeb2b4dSghi		$member = NULL;
281aeb2b4dSghi		foreach ($event->data->_content as $key => $ref) {
291aeb2b4dSghi
3055f447f4SSzymon Olewniczak			if (is_array($ref) && isset($ref['_elem']) && $ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') {
3155f447f4SSzymon Olewniczak			    $member = $key;
32*bab76148SSzymon Olewniczak            } elseif (is_string($ref) && strstr($ref, ApproveConst::APPROVED)) {
3355f447f4SSzymon Olewniczak                $event->data->_content[$member]['class'] .= ' plugin__approve_green';
3455f447f4SSzymon Olewniczak            }
3555f447f4SSzymon Olewniczak
361aeb2b4dSghi		}
371aeb2b4dSghi
381aeb2b4dSghi		return true;
391aeb2b4dSghi	}
401aeb2b4dSghi
411aeb2b4dSghi}
42