*/ // must be run within Dokuwiki if (!defined('DOKU_INC')) die(); if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once(DOKU_PLUGIN.'action.php'); class action_plugin_datapopup extends DokuWiki_Action_Plugin { var $dthlp = null; function action_plugin_datapopup() { $this->dthlp =& plugin_load('helper', 'data'); } function register(Doku_Event_Handler $controller) { global $JSINFO; $JSINFO['plugin']['datapopup']['registered_types'] = $this->getConf('registered_types'); $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax_call_unknown'); } protected function _getFields($link, $name) { if(!$this->dthlp) return "The datapopup plugin reported an error. Please report."; $sqlite = $this->dthlp->_getDB(); if(!$sqlite) return "The datapopup had an error retrieving the SQLite plugin. Please report."; $query = "SELECT data.value FROM data JOIN pages ON data.pid=pages.pid WHERE pages.page='".$link."' AND data.key='".strtolower($name)."';"; $res = $sqlite->query($query); $rows = $sqlite->res2arr($res); return $rows[0]['value']; } public function handle_ajax_call_unknown(Doku_Event &$event, $param) { if($event->data != 'plugin_datapopup') return; global $auth; global $INPUT; $link = $INPUT->str('link'); $link = preg_replace('/\?.*/', '', $link); $fields = explode(',',$this->getConf('fields')); $fields = array_map('trim',$fields); $fields = array_filter($fields); echo '