14e55e2a1SDominik Eckelmann<?php 24e55e2a1SDominik Eckelmann 34e55e2a1SDominik Eckelmannif(!defined('DOKU_INC')) die(); 44e55e2a1SDominik Eckelmann 54e55e2a1SDominik Eckelmannclass action_plugin_publish_removeattic extends DokuWiki_Action_Plugin { 64e55e2a1SDominik Eckelmann 74e55e2a1SDominik Eckelmann /** 84e55e2a1SDominik Eckelmann * @var helper_plugin_publish 94e55e2a1SDominik Eckelmann */ 104e55e2a1SDominik Eckelmann private $hlp; 114e55e2a1SDominik Eckelmann 124e55e2a1SDominik Eckelmann function __construct() { 134e55e2a1SDominik Eckelmann $this->hlp = plugin_load('helper','publish'); 144e55e2a1SDominik Eckelmann } 154e55e2a1SDominik Eckelmann 165ccce1abSMichael Große function register(Doku_Event_Handler $controller) { 174e55e2a1SDominik Eckelmann $controller->register_hook('PLUGIN_PUBLISH_APPROVE', 'AFTER', $this, 'remove', array()); 184e55e2a1SDominik Eckelmann } 194e55e2a1SDominik Eckelmann 204e55e2a1SDominik Eckelmann /** 214e55e2a1SDominik Eckelmann * @param Doku_Event $event 224e55e2a1SDominik Eckelmann * @param array $param 234e55e2a1SDominik Eckelmann */ 244e55e2a1SDominik Eckelmann function remove(&$event, $param) { 25d9258364SDominik Eckelmann if (!$this->hlp->isActive()) { 26d9258364SDominik Eckelmann return; 27d9258364SDominik Eckelmann } 28d9258364SDominik Eckelmann 294e55e2a1SDominik Eckelmann if (!$this->getConf('delete attic on first approve')) { 304e55e2a1SDominik Eckelmann return; 314e55e2a1SDominik Eckelmann } 324e55e2a1SDominik Eckelmann 334e55e2a1SDominik Eckelmann if ($this->hlp->getPreviousApprovedRevision()) { 344e55e2a1SDominik Eckelmann return; // previous version exist 354e55e2a1SDominik Eckelmann } 364e55e2a1SDominik Eckelmann global $ID; 37*1a02c9e2SAndreas Gohr 38*1a02c9e2SAndreas Gohr $changelog = new PageChangelog($ID, 0); 39*1a02c9e2SAndreas Gohr $revisions = $changelog->getRevisions(0, 0); 404e55e2a1SDominik Eckelmann 414e55e2a1SDominik Eckelmann foreach ($revisions as $revision) { 424e55e2a1SDominik Eckelmann $fn = wikiFN($ID, $revision); 434e55e2a1SDominik Eckelmann if (file_exists($fn)) { 444e55e2a1SDominik Eckelmann @unlink($fn); 454e55e2a1SDominik Eckelmann } 464e55e2a1SDominik Eckelmann } 474e55e2a1SDominik Eckelmann } 484e55e2a1SDominik Eckelmann 494e55e2a1SDominik Eckelmann} 50