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 7*248339c4SDominik Eckelmann /** 8*248339c4SDominik Eckelmann * @var helper_plugin_publish 9*248339c4SDominik Eckelmann */ 101794c5faSDominik Eckelmann private $hlp; 111794c5faSDominik Eckelmann 121794c5faSDominik Eckelmann function __construct() { 131794c5faSDominik Eckelmann $this->hlp = plugin_load('helper','publish'); 141794c5faSDominik Eckelmann } 151794c5faSDominik Eckelmann 161794c5faSDominik Eckelmann function register(&$controller) { 171794c5faSDominik Eckelmann $controller->register_hook('DOKUWIKI_STARTED', 'BEFORE', $this, 'handle_start', array()); 181794c5faSDominik Eckelmann } 191794c5faSDominik Eckelmann 201794c5faSDominik Eckelmann function handle_start(&$event, $param) { 211794c5faSDominik Eckelmann global $ACT; 221794c5faSDominik Eckelmann global $REV; 231794c5faSDominik Eckelmann global $INFO; 241794c5faSDominik Eckelmann global $ID; 251794c5faSDominik Eckelmann 268655d91aSDominik Eckelmann if ($ACT !== 'show') { 278655d91aSDominik Eckelmann return; 288655d91aSDominik Eckelmann } 291794c5faSDominik Eckelmann 308655d91aSDominik Eckelmann if ($REV != '') { 318655d91aSDominik Eckelmann return; 328655d91aSDominik Eckelmann } 331794c5faSDominik Eckelmann 348655d91aSDominik Eckelmann if ($INFO['perm'] != AUTH_READ) { 358655d91aSDominik Eckelmann return; 368655d91aSDominik Eckelmann } 371794c5faSDominik Eckelmann 381794c5faSDominik Eckelmann global $_GET; 398655d91aSDominik Eckelmann if($_GET['force_rev']) { 408655d91aSDominik Eckelmann return; 418655d91aSDominik Eckelmann } 421794c5faSDominik Eckelmann 438655d91aSDominik Eckelmann if (!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { 448655d91aSDominik Eckelmann return; 458655d91aSDominik Eckelmann } 461794c5faSDominik Eckelmann 478655d91aSDominik Eckelmann $latestApproved = $this->hlp->getLatestApprovedRevision(); 488655d91aSDominik Eckelmann if ($latestApproved) { 498655d91aSDominik Eckelmann $REV = $latestApproved; 508655d91aSDominik Eckelmann $INFO['rev'] = $latestApproved; 518655d91aSDominik Eckelmann } 521794c5faSDominik Eckelmann } 531794c5faSDominik Eckelmann 541794c5faSDominik Eckelmann} 55