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 18*a4264b97SAnna Dabrowska function handle_start(Doku_Event $event) { 191794c5faSDominik Eckelmann global $ACT; 201794c5faSDominik Eckelmann global $REV; 211794c5faSDominik Eckelmann global $INFO; 221794c5faSDominik Eckelmann global $ID; 231794c5faSDominik Eckelmann 248655d91aSDominik Eckelmann if ($ACT !== 'show') { 258655d91aSDominik Eckelmann return; 268655d91aSDominik Eckelmann } 271794c5faSDominik Eckelmann 28*a4264b97SAnna Dabrowska if (!empty($REV)) { 298655d91aSDominik Eckelmann return; 308655d91aSDominik Eckelmann } 311794c5faSDominik Eckelmann 328655d91aSDominik Eckelmann if ($INFO['perm'] != AUTH_READ) { 338655d91aSDominik Eckelmann return; 348655d91aSDominik Eckelmann } 351794c5faSDominik Eckelmann 361794c5faSDominik Eckelmann global $_GET; 378655d91aSDominik Eckelmann if($_GET['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