xref: /plugin/publish/action/removeattic.php (revision 1a02c9e23af37f32e71a8b4ce1511f2a1a1d90ad)
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