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