xref: /plugin/siteexport/helper.php (revision 7842d330555b658783c897f7c2e06605b954ab8d)
17d101cc1SGerry Weißbach<?php
27d101cc1SGerry Weißbach/**
37d101cc1SGerry Weißbach * Translation Plugin: Simple multilanguage plugin
47d101cc1SGerry Weißbach *
57d101cc1SGerry Weißbach * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
67d101cc1SGerry Weißbach * @author     Andreas Gohr <andi@splitbrain.org>
77d101cc1SGerry Weißbach */
87d101cc1SGerry Weißbach
97d101cc1SGerry Weißbach// must be run within Dokuwiki
107d101cc1SGerry Weißbachif(!defined('DOKU_INC')) die();
117d101cc1SGerry Weißbach
127d101cc1SGerry Weißbachclass helper_plugin_siteexport extends DokuWiki_Plugin {
137d101cc1SGerry Weißbach
147d101cc1SGerry Weißbach	/**
157d101cc1SGerry Weißbach	 * for backward compatability
167d101cc1SGerry Weißbach	 * @see inc/DokuWiki_Plugin#getInfo()
177d101cc1SGerry Weißbach	 */
187d101cc1SGerry Weißbach    function getInfo(){
197d101cc1SGerry Weißbach        if ( method_exists(parent, 'getInfo')) {
207d101cc1SGerry Weißbach            $info = parent::getInfo();
217d101cc1SGerry Weißbach        }
227d101cc1SGerry Weißbach        return is_array($info) ? $info : confToHash(dirname(__FILE__).'/plugin.info.txt');
237d101cc1SGerry Weißbach    }
247d101cc1SGerry Weißbach
257d101cc1SGerry Weißbach    /*
267d101cc1SGerry Weißbach     * return all the templates that this wiki has
277d101cc1SGerry Weißbach     */
287d101cc1SGerry Weißbach	function __getTemplates() {
297d101cc1SGerry Weißbach
307d101cc1SGerry Weißbach		// populate $this->_choices with a list of directories
317d101cc1SGerry Weißbach		$list = array();
327d101cc1SGerry Weißbach
337d101cc1SGerry Weißbach		$_dir = DOKU_INC . 'lib/tpl/';
347d101cc1SGerry Weißbach		$_pattern = '/^[\w-]+$/';
357d101cc1SGerry Weißbach		if ($dh = @opendir($_dir)) {
367d101cc1SGerry Weißbach			while (false !== ($entry = readdir($dh))) {
377d101cc1SGerry Weißbach				if ($entry == '.' || $entry == '..') continue;
387d101cc1SGerry Weißbach				if ($entry == '.' || $entry == '..') continue;
397d101cc1SGerry Weißbach				if ($_pattern && !preg_match($_pattern,$entry)) continue;
407d101cc1SGerry Weißbach
417d101cc1SGerry Weißbach				$file = (is_link($_dir.$entry)) ? readlink($_dir.$entry) : $entry;
427d101cc1SGerry Weißbach				if (is_dir($_dir.$file)) $list[] = $entry;
437d101cc1SGerry Weißbach			}
447d101cc1SGerry Weißbach			closedir($dh);
457d101cc1SGerry Weißbach		}
467d101cc1SGerry Weißbach
477d101cc1SGerry Weißbach
487d101cc1SGerry Weißbach		sort($list);
497d101cc1SGerry Weißbach		return $list;
507d101cc1SGerry Weißbach	}
517d101cc1SGerry Weißbach
527d101cc1SGerry Weißbach	/*
537d101cc1SGerry Weißbach	 * Return array list of plugins that exist
547d101cc1SGerry Weißbach	 */
557d101cc1SGerry Weißbach	function __getPluginList() {
567d101cc1SGerry Weißbach	    global $plugin_controller;
577d101cc1SGerry Weißbach
587d101cc1SGerry Weißbach	    $allPlugins = array();
59*7842d330SGerry Weißbach	    foreach($plugin_controller->getList(null,true) as $plugin ) { // All plugins
607d101cc1SGerry Weißbach	    	// check for CSS or JS
61*7842d330SGerry Weißbach	    	if ( !file_exists(DOKU_PLUGIN."$plugin/script.js") && !file_exists(DOKU_PLUGIN."$plugin/style.css") && !file_exists(DOKU_PLUGIN."$plugin/print.css") ) { continue; }
627d101cc1SGerry Weißbach	    	$allPlugins[] = $plugin;
637d101cc1SGerry Weißbach	    }
647d101cc1SGerry Weißbach
657d101cc1SGerry Weißbach    	return array($allPlugins, $plugin_controller->getList());
667d101cc1SGerry Weißbach	}
6795c3174fSGerry Weißbach
6895c3174fSGerry Weißbach	function __siteexport_addpage() {
6995c3174fSGerry Weißbach
7095c3174fSGerry Weißbach        global $ID, $conf;
7195c3174fSGerry Weißbach
7295c3174fSGerry Weißbach	    $templateSwitching = false;
7395c3174fSGerry Weißbach	    $pdfExport = false;
7495c3174fSGerry Weißbach	    $usenumberedheading = false;
7595c3174fSGerry Weißbach	    $cronEnabled = false;
7695c3174fSGerry Weißbach	    $translationAvailable = false;
7795c3174fSGerry Weißbach	    $usenumberedheading = true;
7895c3174fSGerry Weißbach
7995c3174fSGerry Weißbach        if ( $functions=& plugin_load('preload', 'siteexport') && $functions->__create_preload_function() ) {
8095c3174fSGerry Weißbach            $templateSwitching = true;
8195c3174fSGerry Weißbach        }
8295c3174fSGerry Weißbach
8395c3174fSGerry Weißbach        if ( $functions =& plugin_load('action', 'dw2pdf' ) ) {
8495c3174fSGerry Weißbach            $pdfExport = true;
8595c3174fSGerry Weißbach        }
8695c3174fSGerry Weißbach
8795c3174fSGerry Weißbach        // if ( $functions =& plugin_load('renderer', 'nodetailsxhtml' ) ) {
8895c3174fSGerry Weißbach        // }
8995c3174fSGerry Weißbach
9095c3174fSGerry Weißbach        if ( $functions =& plugin_load('cron', 'siteexport' ) ) {
9195c3174fSGerry Weißbach            $cronEnabled = $functions->canWriteSettings();
9295c3174fSGerry Weißbach        }
9395c3174fSGerry Weißbach
9495c3174fSGerry Weißbach        if ( $functions =& plugin_load('helper', 'translation' ) ) {
9595c3174fSGerry Weißbach            $translationAvailable = true;
9695c3174fSGerry Weißbach        }
9795c3174fSGerry Weißbach
9895c3174fSGerry Weißbach        $regenerateScript = '';
9995c3174fSGerry Weißbach        print $this->locale_xhtml('intro');
10095c3174fSGerry Weißbach
10195c3174fSGerry Weißbach        $form = new Doku_Form('siteexport', null, 'post');
10295c3174fSGerry Weißbach        $form->startFieldset( $this->getLang('startingNamespace') );
10395c3174fSGerry Weißbach
10495c3174fSGerry Weißbach        $form->addElement(form_makeTextField('ns', $ID, $this->getLang('ns') . ':', 'ns'));
10595c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
10695c3174fSGerry Weißbach        $form->addElement(form_makeTextField('ens', $ID, $this->getLang('ens') . ':', 'ens'));
10795c3174fSGerry Weißbach
10895c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
10995c3174fSGerry Weißbach        $form->addElement(form_makeListboxField('depthType', array( "0.0" => $this->getLang('depth.pageOnly'), "1.0" => $this->getLang('depth.allSubNameSpaces'), "2.0" => $this->getLang('depth.specifiedDepth') ), (empty($_REQUEST['depthType']) ? $this->getLang('depth.allSubNameSpaces') : $_REQUEST['depthType']), $this->getLang('depthType') . ':', 'depthType', null, array_merge(array('class' => 'edit'))));
11095c3174fSGerry Weißbach
11195c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
11295c3174fSGerry Weißbach        $form->addElement(form_makeOpenTag("div", array('style' => 'display:' . ($_REQUEST['depthType'] == "2" ? "block" : "none") . ';', 'id' => 'depthContainer')));
11395c3174fSGerry Weißbach        $form->addElement(form_makeTextField('depth', $this->getConf('depth'), $this->getLang('depth') . ':', 'depth'));
11495c3174fSGerry Weißbach        $form->addElement(form_makeCloseTag("div"));
11595c3174fSGerry Weißbach
11695c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
11795c3174fSGerry Weißbach        $form->addElement(form_makeOpenTag("div", array('style' => 'display:none;', 'id' => 'depthContainer')));
11895c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('exportLinkedPages', 1, $this->getLang('exportLinkedPages') . ':', 'exportLinkedPages'));
11995c3174fSGerry Weißbach        $form->addElement(form_makeCloseTag("div"));
12095c3174fSGerry Weißbach
12195c3174fSGerry Weißbach        $form->endFieldset();
12295c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
12395c3174fSGerry Weißbach
12495c3174fSGerry Weißbach        $form->startFieldset( $this->getLang('selectYourOptions') );
12595c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('absolutePath', 1, $this->getLang('absolutePath') . ':', 'absolutePath'));
12695c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
12795c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('exportBody', 1, $this->getLang('exportBody') . ':', 'exportBody'));
12895c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
12995c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('disableCache', 1, $this->getLang('disableCache') . ':', 'disableCache'));
13095c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
13195c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('addParams', 1, $this->getLang('addParams') . ':', 'addParams', null, array_merge(array('checked' => ($conf['userewrite'] != 1 ? 'checked' : '' ) ))));
13295c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
13395c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
13495c3174fSGerry Weißbach        $form->addElement(form_makeListboxField('renderer', array_merge(array('','xhtml'), plugin_list('renderer')), '', $this->getLang('renderer') . ':', 'renderer', null, array_merge(array('class' => 'edit'))));
13595c3174fSGerry Weißbach
13695c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
13795c3174fSGerry Weißbach        if ( $templateSwitching ) {
13895c3174fSGerry Weißbach            $form->addElement(form_makeListboxField('template', $this->__getTemplates(), $conf['template'], $this->getLang('template') . ':', 'template', null, array_merge(array('class' => 'edit'))));
13995c3174fSGerry Weißbach            $form->addElement(form_makeTag('br'));
14095c3174fSGerry Weißbach        } else
14195c3174fSGerry Weißbach        {
14295c3174fSGerry Weißbach            $form->addElement(form_makeTag('br'));
14395c3174fSGerry Weißbach            $form->addElement(form_makeOpenTag('p', array('style' => 'color: #a00;' )));
14495c3174fSGerry Weißbach            $form->addElement('Can\'t create preload file in \'inc\' directory. Template switching is not available. Plugin disabling is not available.');
14595c3174fSGerry Weißbach            $form->addElement(form_makeCloseTag('p'));
14695c3174fSGerry Weißbach        }
14795c3174fSGerry Weißbach
14895c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
14995c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('pdfExport', 1, $this->getLang('pdfExport') . ':', 'pdfExport', null, $pdfExport ? array() : array_merge(array('disabled' => 'disabled')) ));
15095c3174fSGerry Weißbach        if ( !$pdfExport ) {
15195c3174fSGerry Weißbach            $form->addElement(form_makeOpenTag('p', array('style' => 'color: #a00;' )));
15295c3174fSGerry Weißbach            $form->addElement('In order to use the PDF export, please ');
15395c3174fSGerry Weißbach            $form->addElement(form_makeOpenTag('a', array('href' => 'http://www.dokuwiki.org/plugin:dw2pdf', 'alt' => 'install plugin', 'target' => '_blank')));
15495c3174fSGerry Weißbach            $form->addElement('install the dw2pdf plugin.');
15595c3174fSGerry Weißbach            $form->addElement(form_makeCloseTag('a'));
15695c3174fSGerry Weißbach            $form->addElement(form_makeCloseTag('p'));
15795c3174fSGerry Weißbach        }
15895c3174fSGerry Weißbach
15995c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
16095c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('usenumberedheading', 1, $this->getLang('usenumberedheading') . ':', 'usenumberedheading', null, $usenumberedheading && $pdfExport ? array() : array_merge(array('disabled' => 'disabled')) ));
16195c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
16295c3174fSGerry Weißbach
16395c3174fSGerry Weißbach        if ( !$usenumberedheading ) {
16495c3174fSGerry Weißbach            $form->addElement(form_makeOpenTag('p', array('style' => 'color: #a00;' )));
16595c3174fSGerry Weißbach            $form->addElement('In order to use numbered headings, please ');
16695c3174fSGerry Weißbach            $form->addElement(form_makeOpenTag('a', array('href' => 'http://www.dokuwiki.org/plugin:nodetailsxhtml', 'alt' => 'install plugin', 'target' => '_blank')));
16795c3174fSGerry Weißbach            $form->addElement('install the nodetailsxhtml plugin.');
16895c3174fSGerry Weißbach            $form->addElement(form_makeCloseTag('a'));
16995c3174fSGerry Weißbach            $form->addElement(form_makeCloseTag('p'));
17095c3174fSGerry Weißbach        }
17195c3174fSGerry Weißbach
17295c3174fSGerry Weißbach        $form->endFieldset();
17395c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
17495c3174fSGerry Weißbach
17595c3174fSGerry Weißbach        $form->startFieldset( $this->getLang('helpCreationOptions') );
17695c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('eclipseDocZip', 1, $this->getLang('eclipseDocZip') . ':', 'eclipseDocZip'));
17795c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
17895c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('JavaHelpDocZip', 1, $this->getLang('JavaHelpDocZip') . ':', 'JavaHelpDocZip'));
17995c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
18095c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('useTocFile', 1, $this->getLang('useTocFile') . ':', 'useTocFile'));
18195c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
18295c3174fSGerry Weißbach        $form->addElement(form_makeCheckboxField('emptyTocElem', 1, $this->getLang('emptyTocElem') . ':', 'emptyTocElem'));
18395c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
18495c3174fSGerry Weißbach        if ( !$translationAvailable ) {
18595c3174fSGerry Weißbach            $form->addElement(form_makeCheckboxField('TOCMapWithoutTranslation', 1, $this->getLang('TOCMapWithoutTranslation') . ':', 'TOCMapWithoutTranslation'));
18695c3174fSGerry Weißbach            $form->addElement(form_makeTag('br'));
18795c3174fSGerry Weißbach        }
18895c3174fSGerry Weißbach        $form->endFieldset();
18995c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
19095c3174fSGerry Weißbach
19195c3174fSGerry Weißbach        if ( $templateSwitching )
19295c3174fSGerry Weißbach        {
19395c3174fSGerry Weißbach            $form->startFieldset( $this->getLang('disablePluginsOption') );
19495c3174fSGerry Weißbach
19595c3174fSGerry Weißbach            $form->addElement(form_makeCheckboxField("disableall", 1, 'Disable All:', "disableall", 'forceVisible'));
19695c3174fSGerry Weißbach            $form->addElement(form_makeTag('br'));
19795c3174fSGerry Weißbach            $form->addElement(form_makeTag('br'));
19895c3174fSGerry Weißbach
19995c3174fSGerry Weißbach            list($allPlugins, $enabledPlugins) = $this->__getPluginList();
20095c3174fSGerry Weißbach            foreach ( $allPlugins as $plugin ) {
20195c3174fSGerry Weißbach                $form->addElement(form_makeCheckboxField("disableplugin[]", $plugin, $plugin . ':', "disableplugin_$plugin", null, (!in_array($plugin, $enabledPlugins) ? array('checked' => 'checked', 'disabled' => 'disabled') : array() )));
20295c3174fSGerry Weißbach                $form->addElement(form_makeTag('br'));
20395c3174fSGerry Weißbach            }
20495c3174fSGerry Weißbach
20595c3174fSGerry Weißbach            $form->endFieldset();
20695c3174fSGerry Weißbach            $form->addElement(form_makeTag('br'));
20795c3174fSGerry Weißbach        }
20895c3174fSGerry Weißbach
20995c3174fSGerry Weißbach        $form->startFieldset( $this->getLang('customOptions') );
21095c3174fSGerry Weißbach        $form->addElement(form_makeOpenTag('p'));
21195c3174fSGerry Weißbach        $form->addElement( $this->getLang('customOptionsDescription') );
21295c3174fSGerry Weißbach        $form->addElement(form_makeCloseTag('p'));
21395c3174fSGerry Weißbach
21495c3174fSGerry Weißbach        $form->addElement(form_makeOpenTag('ul', array('id' => 'siteexport__customActions')));
21595c3174fSGerry Weißbach        $form->addElement(form_makeCloseTag('ul'));
21695c3174fSGerry Weißbach        $form->addElement(form_makeTag('br', array('class'=>'clear')));
21795c3174fSGerry Weißbach        $form->addElement(form_makeButton('submit', 'addoption', $this->getLang('addCustomOption') , array('style' => 'float:right;') ));
21895c3174fSGerry Weißbach
21995c3174fSGerry Weißbach        $form->endFieldset();
22095c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
22195c3174fSGerry Weißbach
22295c3174fSGerry Weißbach        $form->startFieldset( $this->getLang('startProcess') );
22395c3174fSGerry Weißbach
22495c3174fSGerry Weißbach        $form->addElement(form_makeTextField('copyurl', "", $this->getLang('directDownloadLink') . ':', 'copyurl', null, array('readonly' => 'readonly') ));
22595c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
22695c3174fSGerry Weißbach        $form->addElement(form_makeTextField('wgeturl', "", $this->getLang('wgetURLLink') . ':', 'wgeturl', null, array('readonly' => 'readonly') ));
22795c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
22895c3174fSGerry Weißbach        $form->addElement(form_makeTextField('curlurl', "", $this->getLang('curlURLLink') . ':', 'curlurl', null, array('readonly' => 'readonly') ));
22995c3174fSGerry Weißbach        $form->addElement(form_makeTag('br', array('class'=>'clear')));
23095c3174fSGerry Weißbach        $form->addElement(form_makeButton('submit', 'siteexport', $this->getLang('start') , array('style' => 'float:right;')));
23195c3174fSGerry Weißbach        $form->endFieldset();
23295c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
23395c3174fSGerry Weißbach
23495c3174fSGerry Weißbach        $form->startFieldset( $this->getLang('status') );
23595c3174fSGerry Weißbach        $form->addElement(form_makeOpenTag('span', array('id' => 'siteexport__out')));
23695c3174fSGerry Weißbach
23795c3174fSGerry Weißbach        $form->addElement(form_makeCloseTag('span'));
23895c3174fSGerry Weißbach        $form->addElement(form_makeOpenTag('span', array('class' => 'siteexport__throbber')));
23995c3174fSGerry Weißbach        $form->addElement(form_makeTag('img', array('src' => DOKU_BASE.'lib/images/loading.gif', 'id' => 'siteexport__throbber')));
24095c3174fSGerry Weißbach        $form->addElement(form_makeCloseTag('span'));
24195c3174fSGerry Weißbach        $form->endFieldset();
24295c3174fSGerry Weißbach        $form->addElement(form_makeTag('br'));
24395c3174fSGerry Weißbach
24495c3174fSGerry Weißbach        if ( $cronEnabled )
24595c3174fSGerry Weißbach        {
24695c3174fSGerry Weißbach            $form->startFieldset( $this->getLang('cronSaveProcess') );
24795c3174fSGerry Weißbach            $form->addElement(form_makeOpenTag('p'));
24895c3174fSGerry Weißbach            $form->addElement( $this->getLang('cronDescription') );
24995c3174fSGerry Weißbach            $form->addElement(form_makeCloseTag('p'));
25095c3174fSGerry Weißbach
25195c3174fSGerry Weißbach            $form->addElement(form_makeCheckboxField("cronOverwriteExisting", 1, $this->getLang('canOverwriteExisting'), "cronOverwriteExisting"));
25295c3174fSGerry Weißbach            $form->addElement(form_makeTag('br', array('class'=>'clear')));
25395c3174fSGerry Weißbach            $form->addElement(form_makeButton('submit', 'cronDeleteAction', $this->getLang('cronDeleteAction') , array('id' => 'cronDeleteAction', 'style' => 'float:left;display:none') ));
25495c3174fSGerry Weißbach            $form->addElement(form_makeButton('submit', 'cronSaveAction', $this->getLang('cronSaveAction') , array('id' => 'cronSaveAction', 'style' => 'float:right;') ));
25595c3174fSGerry Weißbach            $form->addElement(form_makeTag('br', array('class'=>'clear')));
25695c3174fSGerry Weißbach
25795c3174fSGerry Weißbach            $form->addElement(form_makeOpenTag('a', array('href' => '#cronactions', 'alt' => 'show cron jobs', 'id' => 'showcronjobs', 'target' => '_blank', 'style' => 'float:right;')));
25895c3174fSGerry Weißbach            $form->addElement('show all cron jobs');
25995c3174fSGerry Weißbach            $form->addElement(form_makeCloseTag('a'));
26095c3174fSGerry Weißbach
26195c3174fSGerry Weißbach            $form->endFieldset();
26295c3174fSGerry Weißbach        }
26395c3174fSGerry Weißbach
26495c3174fSGerry Weißbach        $form->printForm();
26595c3174fSGerry Weißbach	}
2667d101cc1SGerry Weißbach}
267