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