11794c5faSDominik Eckelmann<?php 21794c5faSDominik Eckelmann 31794c5faSDominik Eckelmannif(!defined('DOKU_INC')) die(); 41794c5faSDominik Eckelmann 51794c5faSDominik Eckelmannclass action_plugin_publish_revisions extends DokuWiki_Action_Plugin { 61794c5faSDominik Eckelmann 71794c5faSDominik Eckelmann private $hlp; 81794c5faSDominik Eckelmann 91794c5faSDominik Eckelmann function __construct() { 101794c5faSDominik Eckelmann $this->hlp = plugin_load('helper','publish'); 111794c5faSDominik Eckelmann } 121794c5faSDominik Eckelmann 131794c5faSDominik Eckelmann function register(&$controller) { 141794c5faSDominik Eckelmann $controller->register_hook('HTML_REVISIONSFORM_OUTPUT', 'BEFORE', $this, 'handle_revisions', array()); 151794c5faSDominik Eckelmann } 161794c5faSDominik Eckelmann 171794c5faSDominik Eckelmann function handle_revisions(&$event, $param) { 181794c5faSDominik Eckelmann global $ID; 19*909a4de8SDominik Eckelmann global $INFO; 201794c5faSDominik Eckelmann 211794c5faSDominik Eckelmann if (!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { 221794c5faSDominik Eckelmann return; 231794c5faSDominik Eckelmann } 241794c5faSDominik Eckelmann 251794c5faSDominik Eckelmann $meta = p_get_metadata($ID); 261794c5faSDominik Eckelmann $latest_rev = $meta['last_change']['date']; 271794c5faSDominik Eckelmann 281794c5faSDominik Eckelmann $member = null; 291794c5faSDominik Eckelmann foreach ($event->data->_content as $key => $ref) { 301794c5faSDominik Eckelmann if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { 311794c5faSDominik Eckelmann $member = $key; 321794c5faSDominik Eckelmann } 331794c5faSDominik Eckelmann 341794c5faSDominik Eckelmann if ($member && $ref['_elem'] == 'tag' && 351794c5faSDominik Eckelmann $ref['_tag'] == 'input' && $ref['name'] == 'rev2[]'){ 36*909a4de8SDominik Eckelmann 37*909a4de8SDominik Eckelmann $revision = $ref['value']; 38*909a4de8SDominik Eckelmann if ($revision == 'current') { 39*909a4de8SDominik Eckelmann $revision = $INFO['meta']['date']['modified']; 40*909a4de8SDominik Eckelmann } 41*909a4de8SDominik Eckelmann if ($this->hlp->isRevisionApproved($revision)) { 421794c5faSDominik Eckelmann $event->data->_content[$member]['class'] = 'li approved_revision'; 431794c5faSDominik Eckelmann } else { 441794c5faSDominik Eckelmann $event->data->_content[$member]['class'] = 'li unapproved_revision'; 451794c5faSDominik Eckelmann } 461794c5faSDominik Eckelmann $member = null; 471794c5faSDominik Eckelmann } 481794c5faSDominik Eckelmann } 491794c5faSDominik Eckelmann 501794c5faSDominik Eckelmann return true; 511794c5faSDominik Eckelmann } 521794c5faSDominik Eckelmann 531794c5faSDominik Eckelmann} 54