17d101cc1SGerry Weißbach<?php 27d101cc1SGerry Weißbach/** 37d101cc1SGerry Weißbach * Site Export Plugin 47d101cc1SGerry Weißbach * 57d101cc1SGerry Weißbach * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 67d101cc1SGerry Weißbach * @author i-net software <tools@inetsoftware.de> 77d101cc1SGerry Weißbach * @author Gerry Weissbach <gweissbach@inetsoftware.de> 87d101cc1SGerry Weißbach */ 97d101cc1SGerry Weißbach 107d101cc1SGerry Weißbach// must be run within Dokuwiki 117d101cc1SGerry Weißbachif(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); 127d101cc1SGerry Weißbachif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 137d101cc1SGerry Weißbachrequire_once(DOKU_PLUGIN.'action.php'); 147d101cc1SGerry Weißbach 157d101cc1SGerry Weißbachclass action_plugin_siteexport_startup extends DokuWiki_Action_Plugin { 167d101cc1SGerry Weißbach 177d101cc1SGerry Weißbach /** 187d101cc1SGerry Weißbach * for backward compatability 197d101cc1SGerry Weißbach * @see inc/DokuWiki_Plugin#getInfo() 207d101cc1SGerry Weißbach */ 217d101cc1SGerry Weißbach function getInfo(){ 227d101cc1SGerry Weißbach if ( method_exists(parent, 'getInfo')) { 237d101cc1SGerry Weißbach $info = parent::getInfo(); 247d101cc1SGerry Weißbach } 257d101cc1SGerry Weißbach return is_array($info) ? $info : confToHash(dirname(__FILE__).'/../plugin.info.txt'); 267d101cc1SGerry Weißbach } 277d101cc1SGerry Weißbach 287d101cc1SGerry Weißbach /** 297d101cc1SGerry Weißbach * Register Plugin in DW 307d101cc1SGerry Weißbach **/ 317d101cc1SGerry Weißbach function register(&$controller) { 327d101cc1SGerry Weißbach $controller->register_hook('DOKUWIKI_STARTED', 'AFTER', $this, 'siteexport_check_template'); 337d101cc1SGerry Weißbach $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'siteexport_check_export'); 34*95c3174fSGerry Weißbach $controller->register_hook('TEMPLATE_PAGETOOLS_DISPLAY', 'BEFORE', $this, 'siteexport_add_page_export'); 35*95c3174fSGerry Weißbach $controller->register_hook('TPL_ACT_UNKNOWN', 'BEFORE', $this, 'siteexport_addpage'); 367d101cc1SGerry Weißbach } 377d101cc1SGerry Weißbach 387d101cc1SGerry Weißbach /** 397d101cc1SGerry Weißbach * Check for Template changes 407d101cc1SGerry Weißbach **/ 417d101cc1SGerry Weißbach function siteexport_check_template() 427d101cc1SGerry Weißbach { 437d101cc1SGerry Weißbach global $conf, $INFO; 447d101cc1SGerry Weißbach 457d101cc1SGerry Weißbach if ( !defined('SITEEXPORT_TPL') ) { return; } 467d101cc1SGerry Weißbach $conf['template'] = SITEEXPORT_TPL; 477d101cc1SGerry Weißbach } 487d101cc1SGerry Weißbach 497d101cc1SGerry Weißbach function siteexport_check_export(&$event) 507d101cc1SGerry Weißbach { 517d101cc1SGerry Weißbach global $conf; 527d101cc1SGerry Weißbach if ( $event->data == 'export_siteexport_pdf') 537d101cc1SGerry Weißbach { 547d101cc1SGerry Weißbach $event->data = 'show'; 557d101cc1SGerry Weißbach $conf['renderer_xhtml'] = 'siteexport_pdf'; 56*95c3174fSGerry Weißbach } if ( $event->data == 'siteexport_addpage' && ($this->getConf('allowallusers') || auth_isadmin() || auth_ismanager() ) ) { 57*95c3174fSGerry Weißbach $event->preventDefault(); 58*95c3174fSGerry Weißbach } 59*95c3174fSGerry Weißbach } 60*95c3174fSGerry Weißbach 61*95c3174fSGerry Weißbach function siteexport_addpage(&$event) 62*95c3174fSGerry Weißbach { 63*95c3174fSGerry Weißbach if ( $event->data != 'siteexport_addpage' || ! ($this->getConf('allowallusers') || auth_isadmin() || auth_ismanager()) ) { return; } 64*95c3174fSGerry Weißbach if ( ! $functions=& plugin_load('helper', 'siteexport') ) { 65*95c3174fSGerry Weißbach msg("Can't initialize"); 66*95c3174fSGerry Weißbach return false; 67*95c3174fSGerry Weißbach } 68*95c3174fSGerry Weißbach 69*95c3174fSGerry Weißbach $functions->__siteexport_addpage(); 70*95c3174fSGerry Weißbach $event->preventDefault(); 71*95c3174fSGerry Weißbach } 72*95c3174fSGerry Weißbach 73*95c3174fSGerry Weißbach function siteexport_add_page_export(&$event) 74*95c3174fSGerry Weißbach { 75*95c3174fSGerry Weißbach global $ID; 76*95c3174fSGerry Weißbach 77*95c3174fSGerry Weißbach if ( ($this->getConf('allowallusers') || auth_isadmin() || auth_ismanager()) ) { 78*95c3174fSGerry Weißbach $event->data['items'][] = '<li>' . tpl_link(wl($ID, array('do' => 'siteexport_addpage')), '<span>Export Page</span>', 79*95c3174fSGerry Weißbach 'class="action siteexport_addpage" title="Add page"', 1) . '</li>'; 807d101cc1SGerry Weißbach } 817d101cc1SGerry Weißbach } 827d101cc1SGerry Weißbach}