1*4e55e2a1SDominik Eckelmann<?php 2*4e55e2a1SDominik Eckelmann 3*4e55e2a1SDominik Eckelmannif(!defined('DOKU_INC')) die(); 4*4e55e2a1SDominik Eckelmann 5*4e55e2a1SDominik Eckelmannclass action_plugin_publish_removeattic extends DokuWiki_Action_Plugin { 6*4e55e2a1SDominik Eckelmann 7*4e55e2a1SDominik Eckelmann /** 8*4e55e2a1SDominik Eckelmann * @var helper_plugin_publish 9*4e55e2a1SDominik Eckelmann */ 10*4e55e2a1SDominik Eckelmann private $hlp; 11*4e55e2a1SDominik Eckelmann 12*4e55e2a1SDominik Eckelmann function __construct() { 13*4e55e2a1SDominik Eckelmann $this->hlp = plugin_load('helper','publish'); 14*4e55e2a1SDominik Eckelmann } 15*4e55e2a1SDominik Eckelmann 16*4e55e2a1SDominik Eckelmann function register(Doku_Event_Handler &$controller) { 17*4e55e2a1SDominik Eckelmann $controller->register_hook('PLUGIN_PUBLISH_APPROVE', 'AFTER', $this, 'remove', array()); 18*4e55e2a1SDominik Eckelmann } 19*4e55e2a1SDominik Eckelmann 20*4e55e2a1SDominik Eckelmann /** 21*4e55e2a1SDominik Eckelmann * @param Doku_Event $event 22*4e55e2a1SDominik Eckelmann * @param array $param 23*4e55e2a1SDominik Eckelmann */ 24*4e55e2a1SDominik Eckelmann function remove(&$event, $param) { 25*4e55e2a1SDominik Eckelmann if (!$this->getConf('delete attic on first approve')) { 26*4e55e2a1SDominik Eckelmann return; 27*4e55e2a1SDominik Eckelmann } 28*4e55e2a1SDominik Eckelmann 29*4e55e2a1SDominik Eckelmann if ($this->hlp->getPreviousApprovedRevision()) { 30*4e55e2a1SDominik Eckelmann return; // previous version exist 31*4e55e2a1SDominik Eckelmann } 32*4e55e2a1SDominik Eckelmann global $ID; 33*4e55e2a1SDominik Eckelmann $revisions = getRevisions($ID, 0, 0, 0); 34*4e55e2a1SDominik Eckelmann 35*4e55e2a1SDominik Eckelmann foreach ($revisions as $revision) { 36*4e55e2a1SDominik Eckelmann $fn = wikiFN($ID, $revision); 37*4e55e2a1SDominik Eckelmann if (file_exists($fn)) { 38*4e55e2a1SDominik Eckelmann @unlink($fn); 39*4e55e2a1SDominik Eckelmann } 40*4e55e2a1SDominik Eckelmann } 41*4e55e2a1SDominik Eckelmann } 42*4e55e2a1SDominik Eckelmann 43*4e55e2a1SDominik Eckelmann}