11794c5faSDominik Eckelmann<?php 21794c5faSDominik Eckelmann 31794c5faSDominik Eckelmannclass action_plugin_publish_start extends DokuWiki_Action_Plugin { 41794c5faSDominik Eckelmann 5248339c4SDominik Eckelmann /** 6248339c4SDominik Eckelmann * @var helper_plugin_publish 7248339c4SDominik Eckelmann */ 81794c5faSDominik Eckelmann private $hlp; 91794c5faSDominik Eckelmann 101794c5faSDominik Eckelmann function __construct() { 111794c5faSDominik Eckelmann $this->hlp = plugin_load('helper','publish'); 121794c5faSDominik Eckelmann } 131794c5faSDominik Eckelmann 145ccce1abSMichael Große function register(Doku_Event_Handler $controller) { 151794c5faSDominik Eckelmann $controller->register_hook('DOKUWIKI_STARTED', 'BEFORE', $this, 'handle_start', array()); 161794c5faSDominik Eckelmann } 171794c5faSDominik Eckelmann 18a4264b97SAnna Dabrowska function handle_start(Doku_Event $event) { 191794c5faSDominik Eckelmann global $ACT; 201794c5faSDominik Eckelmann global $REV; 211794c5faSDominik Eckelmann global $INFO; 22*4aab27f5SLouis Ouellet global $INPUT; 231794c5faSDominik Eckelmann global $ID; 241794c5faSDominik Eckelmann 258655d91aSDominik Eckelmann if ($ACT !== 'show') { 268655d91aSDominik Eckelmann return; 278655d91aSDominik Eckelmann } 281794c5faSDominik Eckelmann 29a4264b97SAnna Dabrowska if (!empty($REV)) { 308655d91aSDominik Eckelmann return; 318655d91aSDominik Eckelmann } 321794c5faSDominik Eckelmann 338655d91aSDominik Eckelmann if ($INFO['perm'] != AUTH_READ) { 348655d91aSDominik Eckelmann return; 358655d91aSDominik Eckelmann } 361794c5faSDominik Eckelmann 37*4aab27f5SLouis Ouellet if($INPUT->has('force_rev')) { 388655d91aSDominik Eckelmann return; 398655d91aSDominik Eckelmann } 401794c5faSDominik Eckelmann 41d9258364SDominik Eckelmann if (!$this->hlp->isActive()) { 428655d91aSDominik Eckelmann return; 438655d91aSDominik Eckelmann } 441794c5faSDominik Eckelmann 45546b37feSDominik Eckelmann if (!$this->hlp->isCurrentRevisionApproved()) { 468655d91aSDominik Eckelmann $latestApproved = $this->hlp->getLatestApprovedRevision(); 478655d91aSDominik Eckelmann if ($latestApproved) { 488655d91aSDominik Eckelmann $REV = $latestApproved; 498655d91aSDominik Eckelmann $INFO['rev'] = $latestApproved; 508655d91aSDominik Eckelmann } 511794c5faSDominik Eckelmann } 52546b37feSDominik Eckelmann } 531794c5faSDominik Eckelmann} 54