*/ // must be run within Dokuwiki if (!defined('DOKU_INC')) die(); if (!defined('DOKU_LF')) define('DOKU_LF', "\n"); if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t"); if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once(DOKU_PLUGIN.'admin.php'); class admin_plugin_sqlite extends DokuWiki_Admin_Plugin { function getInfo() { return confToHash(dirname(__FILE__).'plugin.info.txt'); } function getMenuSort() { return 500; } function forAdminOnly() { return true; } function handle() { } function html() { global $ID; echo $this->locale_xhtml('intro'); if($_REQUEST['db'] && checkSecurityToken()){ echo '

'.$this->getLang('db').' '.hsc($_REQUEST['db']).'

'; echo '
'; echo ''; $form = new Doku_Form(array('class'=>'sqliteplugin')); $form->startFieldset('SQL Command'); $form->addHidden('id',$ID); $form->addHidden('do','admin'); $form->addHidden('page','sqlite'); $form->addHidden('db',$_REQUEST['db']); $form->addElement(''); $form->addElement(''); $form->endFieldset(); $form->printForm(); if($_REQUEST['sql']){ $DBI =& plugin_load('helper', 'sqlite'); if(!$DBI->init($_REQUEST['db'],'')) return; $sql = explode(";",$_REQUEST['sql']); foreach($sql as $s){ $s = preg_replace('!^\s*--.*$!m', '', $s); $s = trim($s); if(!$s) continue; $res = $DBI->query("$s;"); if ($res === false) continue; msg($DBI->res2count($res).' affected rows',1); $result = $DBI->res2arr($res); if(!count($result)) continue; echo '

'; $ths = array_keys($result[0]); echo ''; echo ''; foreach($ths as $th){ echo ''; } echo ''; foreach($result as $row){ echo ''; $tds = array_values($row); foreach($tds as $td){ echo ''; } echo ''; } echo '
'.hsc($th).'
'.hsc($td).'
'; echo '

'; } } echo '
'; } } function getTOC(){ global $conf; global $ID; $toc = array(); $dbfiles = glob($conf['metadir'].'/*.sqlite'); if(is_array($dbfiles)) foreach($dbfiles as $file){ $db = basename($file,'.sqlite'); $toc[] = array( 'link' => wl($ID,array('do'=>'admin','page'=>'sqlite','db'=>$db,'sectok'=>getSecurityToken())), 'title' => $this->getLang('db').' '.$db, 'level' => 1, 'type' => 'ul', ); } return $toc; } } // vim:ts=4:sw=4:et: