xref: /plugin/siteexport/inc/settings.php (revision 7d101cc131696cb3a0de345d8044a69fb2ef70e9)
1*7d101cc1SGerry Weißbach<?php
2*7d101cc1SGerry Weißbach
3*7d101cc1SGerry Weißbachif(!defined('DOKU_PLUGIN')) die('meh');
4*7d101cc1SGerry Weißbachclass settings_plugin_siteexport_settings extends DokuWiki_Plugin
5*7d101cc1SGerry Weißbach{
6*7d101cc1SGerry Weißbach    var $fileType = 'html';
7*7d101cc1SGerry Weißbach    var $exportNamespace = '';
8*7d101cc1SGerry Weißbach    var $pattern = null;
9*7d101cc1SGerry Weißbach
10*7d101cc1SGerry Weißbach    var $isCLI = false;
11*7d101cc1SGerry Weißbach
12*7d101cc1SGerry Weißbach    var $depth = '';
13*7d101cc1SGerry Weißbach
14*7d101cc1SGerry Weißbach    var $zipFile = '';
15*7d101cc1SGerry Weißbach//    var $origEclipseZipFile = 'doc.zip';
16*7d101cc1SGerry Weißbach//    var $eclipseZipFile = '';
17*7d101cc1SGerry Weißbach    var $addParams = false;
18*7d101cc1SGerry Weißbach    var $origZipFile = '';
19*7d101cc1SGerry Weißbach    var $downloadZipFile = '';
20*7d101cc1SGerry Weißbach    var $exportLinkedPages = false;
21*7d101cc1SGerry Weißbach    var $additionalParameters = array();
22*7d101cc1SGerry Weißbach    var $isAuthed = false;
23*7d101cc1SGerry Weißbach
24*7d101cc1SGerry Weißbach    var $TOCMapWithoutTranslation = false;
25*7d101cc1SGerry Weißbach
26*7d101cc1SGerry Weißbach    var $hasValidCacheFile = false;
27*7d101cc1SGerry Weißbach
28*7d101cc1SGerry Weißbach    var $useTOCFile = false;
29*7d101cc1SGerry Weißbach
30*7d101cc1SGerry Weißbach    function settings_plugin_siteexport_settings($functions) {
31*7d101cc1SGerry Weißbach        global $ID;
32*7d101cc1SGerry Weißbach
33*7d101cc1SGerry Weißbach        if ( empty($_REQUEST['pattern']) )
34*7d101cc1SGerry Weißbach        {
35*7d101cc1SGerry Weißbach            $params = $_REQUEST;
36*7d101cc1SGerry Weißbach            $this->pattern = $functions->requestParametersToCacheHash($params);
37*7d101cc1SGerry Weißbach        } else {
38*7d101cc1SGerry Weißbach            // Set the pattern
39*7d101cc1SGerry Weißbach            $this->pattern = $_REQUEST['pattern'];
40*7d101cc1SGerry Weißbach        }
41*7d101cc1SGerry Weißbach
42*7d101cc1SGerry Weißbach        $this->isCLI = (!$_SERVER['REMOTE_ADDR'] && 'cli' == php_sapi_name());
43*7d101cc1SGerry Weißbach
44*7d101cc1SGerry Weißbach        // Load Variables
45*7d101cc1SGerry Weißbach        $this->origZipFile = $this->getConf('zipfilename');
46*7d101cc1SGerry Weißbach
47*7d101cc1SGerry Weißbach        // ID
48*7d101cc1SGerry Weißbach        $this->downloadZipFile = $functions->getSpecialExportFileName($this->origZipFile, $this->pattern);
49*7d101cc1SGerry Weißbach        //        $this->eclipseZipFile = $functions->getSpecialExportFileName(getNS($this->origZipFile) . ':' . $this->origEclipseZipFile, $this->pattern);
50*7d101cc1SGerry Weißbach
51*7d101cc1SGerry Weißbach        $this->zipFile = mediaFN($this->downloadZipFile);
52*7d101cc1SGerry Weißbach
53*7d101cc1SGerry Weißbach        $this->tmpDir = mediaFN(getNS($this->origZipFile));
54*7d101cc1SGerry Weißbach        $this->exportLinkedPages = intval($_REQUEST['exportLinkedPages']) == 1 ? true : false;
55*7d101cc1SGerry Weißbach
56*7d101cc1SGerry Weißbach        $this->namespace = $functions->getNamespaceFromID($_REQUEST['ns'], $PAGE);
57*7d101cc1SGerry Weißbach        $this->addParams = !empty($_REQUEST['addParams']);
58*7d101cc1SGerry Weißbach
59*7d101cc1SGerry Weißbach        $this->useTOCFile = !empty($_REQUEST['useTocFile']);
60*7d101cc1SGerry Weißbach
61*7d101cc1SGerry Weißbach        // set export Namespace - which is a virtual Root
62*7d101cc1SGerry Weißbach        $pg = noNS($ID);
63*7d101cc1SGerry Weißbach        if ( empty( $this->namespace ) ) { $this->namespace = $functions->getNamespaceFromID(getNS($ID), $pg); }
64*7d101cc1SGerry Weißbach        $this->exportNamespace = !empty($_REQUEST['ens']) && preg_match("%^" . $functions->getNamespaceFromID($_REQUEST['ens'], $pg) . "%", $this->namespace) ? $functions->getNamespaceFromID($_REQUEST['ens'], $pg) : $this->namespace;
65*7d101cc1SGerry Weißbach
66*7d101cc1SGerry Weißbach        $this->TOCMapWithoutTranslation = intval($_REQUEST['TOCMapWithoutTranslation']) == 1 ? true : false;
67*7d101cc1SGerry Weißbach
68*7d101cc1SGerry Weißbach        // Strip params that should be forwarded
69*7d101cc1SGerry Weißbach        $this->additionalParameters = $_REQUEST;
70*7d101cc1SGerry Weißbach        $functions->removeWikiVariables($this->additionalParameters, true);
71*7d101cc1SGerry Weißbach
72*7d101cc1SGerry Weißbach        $tmpID = $ID;
73*7d101cc1SGerry Weißbach        $ID = $this->origZipFile;
74*7d101cc1SGerry Weißbach
75*7d101cc1SGerry Weißbach        $INFO = pageinfo();
76*7d101cc1SGerry Weißbach        if ( !$this->isCLI )
77*7d101cc1SGerry Weißbach        {
78*7d101cc1SGerry Weißbach            // Workaround for the cron which cannot authenticate but has access to everything.
79*7d101cc1SGerry Weißbach            if ( $INFO['perm'] < AUTH_DELETE ) {
80*7d101cc1SGerry Weißbach                list ( $USER, $PASS) = $functions->basic_authentication();
81*7d101cc1SGerry Weißbach                auth_login($USER, $PASS);
82*7d101cc1SGerry Weißbach            }
83*7d101cc1SGerry Weißbach        }
84*7d101cc1SGerry Weißbach
85*7d101cc1SGerry Weißbach        $ID = $tmpID;
86*7d101cc1SGerry Weißbach    }
87*7d101cc1SGerry Weißbach}
88*7d101cc1SGerry Weißbach
89*7d101cc1SGerry Weißbach?>