* * * @author: ReiniUrban */ class WikiPlugin_SqlResult extends WikiPlugin { var $_args; function getName () { return _("SqlResult"); } function getDescription () { return _("Display arbitrary SQL result tables"); } function getVersion() { return preg_replace("/[Revision: $]/", '', "\$Revision: 1.2 $"); } function getDefaultArguments() { return array('page' => '[pagename]', 'alias' => false, 'template' => false, ); } function getDsn($alias) { $ini = parse_ini_file(FindFile("lib/plugin/SqlResult.ini")); return $ini[$alias]; } /** Get the SQL statement from the rest of the lines */ function handle_plugin_args_cruft($argstr, $args) { $this->_sql = str_replace("\n"," ",$argstr); return; } function run($dbi, $argstr, &$request, $basepage) { global $DBParams; //$request->setArg('nocache','1'); extract($this->getArgs($argstr, $request)); if (!$alias) return $this->error(_("No DSN alias for SqlResult.ini specified")); $sql = $this->_sql; //TODO: handle variables $inidsn = $this->getDsn($alias); if (!$inidsn) return $this->error(sprintf(_("No DSN for alias %s in SqlResult.ini found"), $alias)); $db = DB::connect($inidsn); $all = $db->getAll($sql); $html = HTML::table(array('class'=>'sqlresult')); $i = 0; foreach ($all as $row) { $tr = HTML::tr(array('class'=> $i++ % 2 ? 'evenrow' : 'oddrow')); foreach ($row as $col) { $tr->pushContent(HTML::td($col)); } $html->pushContent($tr); } return $html; } }; // $Log: not supported by cvs2svn $ // Revision 1.1 2004/05/03 20:44:58 rurban // fixed gettext strings // new SqlResult plugin // _WikiTranslation: fixed init_locale // // For emacs users // Local Variables: // mode: php // tab-width: 8 // c-basic-offset: 4 // c-hanging-comment-ender-p: nil // indent-tabs-mode: nil // End: ?>