11794c5faSDominik Eckelmann<?php 21794c5faSDominik Eckelmann 31794c5faSDominik Eckelmannif(!defined('DOKU_INC')) die(); 41794c5faSDominik Eckelmann 51794c5faSDominik Eckelmannclass action_plugin_publish_start 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('DOKUWIKI_STARTED', 'BEFORE', $this, 'handle_start', array()); 151794c5faSDominik Eckelmann } 161794c5faSDominik Eckelmann 171794c5faSDominik Eckelmann function handle_start(&$event, $param) { 181794c5faSDominik Eckelmann global $ACT; 191794c5faSDominik Eckelmann global $REV; 201794c5faSDominik Eckelmann global $INFO; 211794c5faSDominik Eckelmann global $ID; 221794c5faSDominik Eckelmann 23*8655d91aSDominik Eckelmann if ($ACT !== 'show') { 24*8655d91aSDominik Eckelmann return; 25*8655d91aSDominik Eckelmann } 261794c5faSDominik Eckelmann 27*8655d91aSDominik Eckelmann if ($REV != '') { 28*8655d91aSDominik Eckelmann return; 29*8655d91aSDominik Eckelmann } 301794c5faSDominik Eckelmann 31*8655d91aSDominik Eckelmann if ($INFO['perm'] != AUTH_READ) { 32*8655d91aSDominik Eckelmann return; 33*8655d91aSDominik Eckelmann } 341794c5faSDominik Eckelmann 351794c5faSDominik Eckelmann global $_GET; 36*8655d91aSDominik Eckelmann if($_GET['force_rev']) { 37*8655d91aSDominik Eckelmann return; 38*8655d91aSDominik Eckelmann } 391794c5faSDominik Eckelmann 40*8655d91aSDominik Eckelmann if (!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { 41*8655d91aSDominik Eckelmann return; 42*8655d91aSDominik Eckelmann } 431794c5faSDominik Eckelmann 44*8655d91aSDominik Eckelmann $latestApproved = $this->hlp->getLatestApprovedRevision(); 45*8655d91aSDominik Eckelmann if ($latestApproved) { 46*8655d91aSDominik Eckelmann $REV = $latestApproved; 47*8655d91aSDominik Eckelmann $INFO['rev'] = $latestApproved; 48*8655d91aSDominik Eckelmann } 491794c5faSDominik Eckelmann } 501794c5faSDominik Eckelmann 511794c5faSDominik Eckelmann} 52