1*17d0ef8fSDominik Eckelmann<?php 2*17d0ef8fSDominik Eckelmann 3*17d0ef8fSDominik Eckelmannif(!defined('DOKU_INC')) die(); 4*17d0ef8fSDominik Eckelmann 5*17d0ef8fSDominik Eckelmannclass action_plugin_publish_hide extends DokuWiki_Action_Plugin { 6*17d0ef8fSDominik Eckelmann 7*17d0ef8fSDominik Eckelmann /** 8*17d0ef8fSDominik Eckelmann * @var helper_plugin_publish 9*17d0ef8fSDominik Eckelmann */ 10*17d0ef8fSDominik Eckelmann private $hlp; 11*17d0ef8fSDominik Eckelmann 12*17d0ef8fSDominik Eckelmann function __construct() { 13*17d0ef8fSDominik Eckelmann $this->hlp = plugin_load('helper','publish'); 14*17d0ef8fSDominik Eckelmann } 15*17d0ef8fSDominik Eckelmann 16*17d0ef8fSDominik Eckelmann function register(&$controller) { 17*17d0ef8fSDominik Eckelmann if ($this->getConf('hide drafts')) { 18*17d0ef8fSDominik Eckelmann $controller->register_hook('TPL_ACT_RENDER', 'BEFORE', $this, 'hide', array()); 19*17d0ef8fSDominik Eckelmann } 20*17d0ef8fSDominik Eckelmann } 21*17d0ef8fSDominik Eckelmann 22*17d0ef8fSDominik Eckelmann /** 23*17d0ef8fSDominik Eckelmann * @param Doku_Event $event 24*17d0ef8fSDominik Eckelmann * @param array $param 25*17d0ef8fSDominik Eckelmann */ 26*17d0ef8fSDominik Eckelmann function hide(&$event, $param) { 27*17d0ef8fSDominik Eckelmann global $ID; 28*17d0ef8fSDominik Eckelmann global $REV; 29*17d0ef8fSDominik Eckelmann if ($this->hlp->isRevisionApproved($REV, $ID)) { 30*17d0ef8fSDominik Eckelmann return; 31*17d0ef8fSDominik Eckelmann } 32*17d0ef8fSDominik Eckelmann 33*17d0ef8fSDominik Eckelmann if (auth_quickaclcheck($ID) >= AUTH_EDIT) { 34*17d0ef8fSDominik Eckelmann return; 35*17d0ef8fSDominik Eckelmann } 36*17d0ef8fSDominik Eckelmann 37*17d0ef8fSDominik Eckelmann global $ACT; 38*17d0ef8fSDominik Eckelmann if (!in_array($ACT, array('show', 'edit', 'source', 'diff'))) { 39*17d0ef8fSDominik Eckelmann return; 40*17d0ef8fSDominik Eckelmann } 41*17d0ef8fSDominik Eckelmann 42*17d0ef8fSDominik Eckelmann $ACT = 'denied'; 43*17d0ef8fSDominik Eckelmann 44*17d0ef8fSDominik Eckelmann $event->preventDefault(); 45*17d0ef8fSDominik Eckelmann $event->stopPropagation(); 46*17d0ef8fSDominik Eckelmann 47*17d0ef8fSDominik Eckelmann print p_locale_xhtml('denied'); 48*17d0ef8fSDominik Eckelmann 49*17d0ef8fSDominik Eckelmann } 50*17d0ef8fSDominik Eckelmann 51*17d0ef8fSDominik Eckelmann}