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(); 597d101cc1SGerry Weißbach foreach($plugin_controller->getList(null,true) as $plugin ) { 607d101cc1SGerry Weißbach // check for CSS or JS 617d101cc1SGerry Weißbach if ( !file_exists(DOKU_PLUGIN."$plugin/script.js") && !file_exists(DOKU_PLUGIN."$p/style.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 } 67*95c3174fSGerry Weißbach 68*95c3174fSGerry Weißbach function __siteexport_addpage() { 69*95c3174fSGerry Weißbach 70*95c3174fSGerry Weißbach global $ID, $conf; 71*95c3174fSGerry Weißbach 72*95c3174fSGerry Weißbach $templateSwitching = false; 73*95c3174fSGerry Weißbach $pdfExport = false; 74*95c3174fSGerry Weißbach $usenumberedheading = false; 75*95c3174fSGerry Weißbach $cronEnabled = false; 76*95c3174fSGerry Weißbach $translationAvailable = false; 77*95c3174fSGerry Weißbach $usenumberedheading = true; 78*95c3174fSGerry Weißbach 79*95c3174fSGerry Weißbach if ( $functions=& plugin_load('preload', 'siteexport') && $functions->__create_preload_function() ) { 80*95c3174fSGerry Weißbach $templateSwitching = true; 81*95c3174fSGerry Weißbach } 82*95c3174fSGerry Weißbach 83*95c3174fSGerry Weißbach if ( $functions =& plugin_load('action', 'dw2pdf' ) ) { 84*95c3174fSGerry Weißbach $pdfExport = true; 85*95c3174fSGerry Weißbach } 86*95c3174fSGerry Weißbach 87*95c3174fSGerry Weißbach // if ( $functions =& plugin_load('renderer', 'nodetailsxhtml' ) ) { 88*95c3174fSGerry Weißbach // } 89*95c3174fSGerry Weißbach 90*95c3174fSGerry Weißbach if ( $functions =& plugin_load('cron', 'siteexport' ) ) { 91*95c3174fSGerry Weißbach $cronEnabled = $functions->canWriteSettings(); 92*95c3174fSGerry Weißbach } 93*95c3174fSGerry Weißbach 94*95c3174fSGerry Weißbach if ( $functions =& plugin_load('helper', 'translation' ) ) { 95*95c3174fSGerry Weißbach $translationAvailable = true; 96*95c3174fSGerry Weißbach } 97*95c3174fSGerry Weißbach 98*95c3174fSGerry Weißbach $regenerateScript = ''; 99*95c3174fSGerry Weißbach print $this->locale_xhtml('intro'); 100*95c3174fSGerry Weißbach 101*95c3174fSGerry Weißbach $form = new Doku_Form('siteexport', null, 'post'); 102*95c3174fSGerry Weißbach $form->startFieldset( $this->getLang('startingNamespace') ); 103*95c3174fSGerry Weißbach 104*95c3174fSGerry Weißbach $form->addElement(form_makeTextField('ns', $ID, $this->getLang('ns') . ':', 'ns')); 105*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 106*95c3174fSGerry Weißbach $form->addElement(form_makeTextField('ens', $ID, $this->getLang('ens') . ':', 'ens')); 107*95c3174fSGerry Weißbach 108*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 109*95c3174fSGerry 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')))); 110*95c3174fSGerry Weißbach 111*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 112*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag("div", array('style' => 'display:' . ($_REQUEST['depthType'] == "2" ? "block" : "none") . ';', 'id' => 'depthContainer'))); 113*95c3174fSGerry Weißbach $form->addElement(form_makeTextField('depth', $this->getConf('depth'), $this->getLang('depth') . ':', 'depth')); 114*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag("div")); 115*95c3174fSGerry Weißbach 116*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 117*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag("div", array('style' => 'display:none;', 'id' => 'depthContainer'))); 118*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('exportLinkedPages', 1, $this->getLang('exportLinkedPages') . ':', 'exportLinkedPages')); 119*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag("div")); 120*95c3174fSGerry Weißbach 121*95c3174fSGerry Weißbach $form->endFieldset(); 122*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 123*95c3174fSGerry Weißbach 124*95c3174fSGerry Weißbach $form->startFieldset( $this->getLang('selectYourOptions') ); 125*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('absolutePath', 1, $this->getLang('absolutePath') . ':', 'absolutePath')); 126*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 127*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('exportBody', 1, $this->getLang('exportBody') . ':', 'exportBody')); 128*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 129*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('disableCache', 1, $this->getLang('disableCache') . ':', 'disableCache')); 130*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 131*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('addParams', 1, $this->getLang('addParams') . ':', 'addParams', null, array_merge(array('checked' => ($conf['userewrite'] != 1 ? 'checked' : '' ) )))); 132*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 133*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 134*95c3174fSGerry Weißbach $form->addElement(form_makeListboxField('renderer', array_merge(array('','xhtml'), plugin_list('renderer')), '', $this->getLang('renderer') . ':', 'renderer', null, array_merge(array('class' => 'edit')))); 135*95c3174fSGerry Weißbach 136*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 137*95c3174fSGerry Weißbach if ( $templateSwitching ) { 138*95c3174fSGerry Weißbach $form->addElement(form_makeListboxField('template', $this->__getTemplates(), $conf['template'], $this->getLang('template') . ':', 'template', null, array_merge(array('class' => 'edit')))); 139*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 140*95c3174fSGerry Weißbach } else 141*95c3174fSGerry Weißbach { 142*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 143*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('p', array('style' => 'color: #a00;' ))); 144*95c3174fSGerry Weißbach $form->addElement('Can\'t create preload file in \'inc\' directory. Template switching is not available. Plugin disabling is not available.'); 145*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('p')); 146*95c3174fSGerry Weißbach } 147*95c3174fSGerry Weißbach 148*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 149*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('pdfExport', 1, $this->getLang('pdfExport') . ':', 'pdfExport', null, $pdfExport ? array() : array_merge(array('disabled' => 'disabled')) )); 150*95c3174fSGerry Weißbach if ( !$pdfExport ) { 151*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('p', array('style' => 'color: #a00;' ))); 152*95c3174fSGerry Weißbach $form->addElement('In order to use the PDF export, please '); 153*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('a', array('href' => 'http://www.dokuwiki.org/plugin:dw2pdf', 'alt' => 'install plugin', 'target' => '_blank'))); 154*95c3174fSGerry Weißbach $form->addElement('install the dw2pdf plugin.'); 155*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('a')); 156*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('p')); 157*95c3174fSGerry Weißbach } 158*95c3174fSGerry Weißbach 159*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 160*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('usenumberedheading', 1, $this->getLang('usenumberedheading') . ':', 'usenumberedheading', null, $usenumberedheading && $pdfExport ? array() : array_merge(array('disabled' => 'disabled')) )); 161*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 162*95c3174fSGerry Weißbach 163*95c3174fSGerry Weißbach if ( !$usenumberedheading ) { 164*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('p', array('style' => 'color: #a00;' ))); 165*95c3174fSGerry Weißbach $form->addElement('In order to use numbered headings, please '); 166*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('a', array('href' => 'http://www.dokuwiki.org/plugin:nodetailsxhtml', 'alt' => 'install plugin', 'target' => '_blank'))); 167*95c3174fSGerry Weißbach $form->addElement('install the nodetailsxhtml plugin.'); 168*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('a')); 169*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('p')); 170*95c3174fSGerry Weißbach } 171*95c3174fSGerry Weißbach 172*95c3174fSGerry Weißbach $form->endFieldset(); 173*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 174*95c3174fSGerry Weißbach 175*95c3174fSGerry Weißbach $form->startFieldset( $this->getLang('helpCreationOptions') ); 176*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('eclipseDocZip', 1, $this->getLang('eclipseDocZip') . ':', 'eclipseDocZip')); 177*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 178*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('JavaHelpDocZip', 1, $this->getLang('JavaHelpDocZip') . ':', 'JavaHelpDocZip')); 179*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 180*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('useTocFile', 1, $this->getLang('useTocFile') . ':', 'useTocFile')); 181*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 182*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('emptyTocElem', 1, $this->getLang('emptyTocElem') . ':', 'emptyTocElem')); 183*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 184*95c3174fSGerry Weißbach if ( !$translationAvailable ) { 185*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField('TOCMapWithoutTranslation', 1, $this->getLang('TOCMapWithoutTranslation') . ':', 'TOCMapWithoutTranslation')); 186*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 187*95c3174fSGerry Weißbach } 188*95c3174fSGerry Weißbach $form->endFieldset(); 189*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 190*95c3174fSGerry Weißbach 191*95c3174fSGerry Weißbach if ( $templateSwitching ) 192*95c3174fSGerry Weißbach { 193*95c3174fSGerry Weißbach $form->startFieldset( $this->getLang('disablePluginsOption') ); 194*95c3174fSGerry Weißbach 195*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField("disableall", 1, 'Disable All:', "disableall", 'forceVisible')); 196*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 197*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 198*95c3174fSGerry Weißbach 199*95c3174fSGerry Weißbach list($allPlugins, $enabledPlugins) = $this->__getPluginList(); 200*95c3174fSGerry Weißbach foreach ( $allPlugins as $plugin ) { 201*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField("disableplugin[]", $plugin, $plugin . ':', "disableplugin_$plugin", null, (!in_array($plugin, $enabledPlugins) ? array('checked' => 'checked', 'disabled' => 'disabled') : array() ))); 202*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 203*95c3174fSGerry Weißbach } 204*95c3174fSGerry Weißbach 205*95c3174fSGerry Weißbach $form->endFieldset(); 206*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 207*95c3174fSGerry Weißbach } 208*95c3174fSGerry Weißbach 209*95c3174fSGerry Weißbach $form->startFieldset( $this->getLang('customOptions') ); 210*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('p')); 211*95c3174fSGerry Weißbach $form->addElement( $this->getLang('customOptionsDescription') ); 212*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('p')); 213*95c3174fSGerry Weißbach 214*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('ul', array('id' => 'siteexport__customActions'))); 215*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('ul')); 216*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br', array('class'=>'clear'))); 217*95c3174fSGerry Weißbach $form->addElement(form_makeButton('submit', 'addoption', $this->getLang('addCustomOption') , array('style' => 'float:right;') )); 218*95c3174fSGerry Weißbach 219*95c3174fSGerry Weißbach $form->endFieldset(); 220*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 221*95c3174fSGerry Weißbach 222*95c3174fSGerry Weißbach $form->startFieldset( $this->getLang('startProcess') ); 223*95c3174fSGerry Weißbach 224*95c3174fSGerry Weißbach $form->addElement(form_makeTextField('copyurl', "", $this->getLang('directDownloadLink') . ':', 'copyurl', null, array('readonly' => 'readonly') )); 225*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 226*95c3174fSGerry Weißbach $form->addElement(form_makeTextField('wgeturl', "", $this->getLang('wgetURLLink') . ':', 'wgeturl', null, array('readonly' => 'readonly') )); 227*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 228*95c3174fSGerry Weißbach $form->addElement(form_makeTextField('curlurl', "", $this->getLang('curlURLLink') . ':', 'curlurl', null, array('readonly' => 'readonly') )); 229*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br', array('class'=>'clear'))); 230*95c3174fSGerry Weißbach $form->addElement(form_makeButton('submit', 'siteexport', $this->getLang('start') , array('style' => 'float:right;'))); 231*95c3174fSGerry Weißbach $form->endFieldset(); 232*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 233*95c3174fSGerry Weißbach 234*95c3174fSGerry Weißbach $form->startFieldset( $this->getLang('status') ); 235*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('span', array('id' => 'siteexport__out'))); 236*95c3174fSGerry Weißbach 237*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('span')); 238*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('span', array('class' => 'siteexport__throbber'))); 239*95c3174fSGerry Weißbach $form->addElement(form_makeTag('img', array('src' => DOKU_BASE.'lib/images/loading.gif', 'id' => 'siteexport__throbber'))); 240*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('span')); 241*95c3174fSGerry Weißbach $form->endFieldset(); 242*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br')); 243*95c3174fSGerry Weißbach 244*95c3174fSGerry Weißbach if ( $cronEnabled ) 245*95c3174fSGerry Weißbach { 246*95c3174fSGerry Weißbach $form->startFieldset( $this->getLang('cronSaveProcess') ); 247*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('p')); 248*95c3174fSGerry Weißbach $form->addElement( $this->getLang('cronDescription') ); 249*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('p')); 250*95c3174fSGerry Weißbach 251*95c3174fSGerry Weißbach $form->addElement(form_makeCheckboxField("cronOverwriteExisting", 1, $this->getLang('canOverwriteExisting'), "cronOverwriteExisting")); 252*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br', array('class'=>'clear'))); 253*95c3174fSGerry Weißbach $form->addElement(form_makeButton('submit', 'cronDeleteAction', $this->getLang('cronDeleteAction') , array('id' => 'cronDeleteAction', 'style' => 'float:left;display:none') )); 254*95c3174fSGerry Weißbach $form->addElement(form_makeButton('submit', 'cronSaveAction', $this->getLang('cronSaveAction') , array('id' => 'cronSaveAction', 'style' => 'float:right;') )); 255*95c3174fSGerry Weißbach $form->addElement(form_makeTag('br', array('class'=>'clear'))); 256*95c3174fSGerry Weißbach 257*95c3174fSGerry Weißbach $form->addElement(form_makeOpenTag('a', array('href' => '#cronactions', 'alt' => 'show cron jobs', 'id' => 'showcronjobs', 'target' => '_blank', 'style' => 'float:right;'))); 258*95c3174fSGerry Weißbach $form->addElement('show all cron jobs'); 259*95c3174fSGerry Weißbach $form->addElement(form_makeCloseTag('a')); 260*95c3174fSGerry Weißbach 261*95c3174fSGerry Weißbach $form->endFieldset(); 262*95c3174fSGerry Weißbach } 263*95c3174fSGerry Weißbach 264*95c3174fSGerry Weißbach $form->printForm(); 265*95c3174fSGerry Weißbach } 2667d101cc1SGerry Weißbach} 267