1*1794c5faSDominik Eckelmann<?php 2*1794c5faSDominik Eckelmann 3*1794c5faSDominik Eckelmannif(!defined('DOKU_INC')) die(); 4*1794c5faSDominik Eckelmann 5*1794c5faSDominik Eckelmannclass action_plugin_publish_revisions extends DokuWiki_Action_Plugin { 6*1794c5faSDominik Eckelmann 7*1794c5faSDominik Eckelmann private $hlp; 8*1794c5faSDominik Eckelmann 9*1794c5faSDominik Eckelmann function __construct() { 10*1794c5faSDominik Eckelmann $this->hlp = plugin_load('helper','publish'); 11*1794c5faSDominik Eckelmann } 12*1794c5faSDominik Eckelmann 13*1794c5faSDominik Eckelmann function register(&$controller) { 14*1794c5faSDominik Eckelmann $controller->register_hook('HTML_REVISIONSFORM_OUTPUT', 'BEFORE', $this, 'handle_revisions', array()); 15*1794c5faSDominik Eckelmann } 16*1794c5faSDominik Eckelmann 17*1794c5faSDominik Eckelmann function handle_revisions(&$event, $param) { 18*1794c5faSDominik Eckelmann global $ID; 19*1794c5faSDominik Eckelmann 20*1794c5faSDominik Eckelmann if (!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { 21*1794c5faSDominik Eckelmann return; 22*1794c5faSDominik Eckelmann } 23*1794c5faSDominik Eckelmann 24*1794c5faSDominik Eckelmann $meta = p_get_metadata($ID); 25*1794c5faSDominik Eckelmann $latest_rev = $meta['last_change']['date']; 26*1794c5faSDominik Eckelmann 27*1794c5faSDominik Eckelmann $member = null; 28*1794c5faSDominik Eckelmann foreach ($event->data->_content as $key => $ref) { 29*1794c5faSDominik Eckelmann if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { 30*1794c5faSDominik Eckelmann $member = $key; 31*1794c5faSDominik Eckelmann } 32*1794c5faSDominik Eckelmann 33*1794c5faSDominik Eckelmann if ($member && $ref['_elem'] == 'tag' && 34*1794c5faSDominik Eckelmann $ref['_tag'] == 'input' && $ref['name'] == 'rev2[]'){ 35*1794c5faSDominik Eckelmann if ($meta['approval'][$ref['value']] || 36*1794c5faSDominik Eckelmann ($ref['value'] == 'current' && $meta['approval'][$latest_rev])) { 37*1794c5faSDominik Eckelmann $event->data->_content[$member]['class'] = 'li approved_revision'; 38*1794c5faSDominik Eckelmann } else { 39*1794c5faSDominik Eckelmann $event->data->_content[$member]['class'] = 'li unapproved_revision'; 40*1794c5faSDominik Eckelmann } 41*1794c5faSDominik Eckelmann $member = null; 42*1794c5faSDominik Eckelmann } 43*1794c5faSDominik Eckelmann } 44*1794c5faSDominik Eckelmann 45*1794c5faSDominik Eckelmann return true; 46*1794c5faSDominik Eckelmann } 47*1794c5faSDominik Eckelmann 48*1794c5faSDominik Eckelmann} 49