function historyLink($rev) { $linkurl = parent::historyLink($rev); $linkurl->setAttr('target', '_content'); // FIXME: Smelly hack to get smaller history buttons in sidebar $linkurl = new RawXML(str_replace('<img ', '<img style="height:2ex" ', asXML($linkurl))); return $linkurl; }
/** * For dumping pages as html to a file. */ function GeneratePageasXML($content, $title, $page_revision = false, $args = false) { global $request; if (!is_array($args)) { $args = array(); } $content->_basepage = $title; $args['CONTENT'] = $content; $args['TITLE'] = SplitPagename($title); $args['revision'] = $page_revision; if (!isset($args['HEADER'])) { $args['HEADER'] = SplitPagename($title); } global $HIDE_TOOLBARS, $NO_BASEHREF, $HTML_DUMP; $HIDE_TOOLBARS = true; $HTML_DUMP = true; $html = asXML(new Template('htmldump', $request, $args)); $HIDE_TOOLBARS = false; $HTML_DUMP = false; return $html; }
function _db_init() { if (!$this->isSQL) { return; } /* SQLite never needs admin params */ $backend_type = $this->dbi->_backend->backendType(); if (substr($backend_type, 0, 6) == "sqlite") { return; } $dbadmin_user = '******'; if ($dbadmin = $this->request->getArg('dbadmin')) { $dbadmin_user = $dbadmin['user']; if (isset($dbadmin['cancel'])) { return; } elseif (!empty($dbadmin_user)) { if ($this->_try_dbadmin_user($dbadmin['user'], $dbadmin['passwd'])) { return; } } } elseif (DBADMIN_USER) { if ($this->_try_dbadmin_user(DBADMIN_USER, DBADMIN_PASSWD)) { return true; } } // Check if the privileges are enough. Need CREATE and ALTER perms. // And on windows: SELECT FROM mysql, possibly: UPDATE mysql. $form = HTML::form(array("method" => "post", "action" => $this->request->getPostURL(), "accept-charset" => $GLOBALS['charset']), HTML::p(_("Upgrade requires database privileges to CREATE and ALTER the phpwiki database."), HTML::br(), _("And on windows at least the privilege to SELECT FROM mysql, and possibly UPDATE mysql")), HiddenInputs(array('action' => 'upgrade', 'overwrite' => $this->request->getArg('overwrite'))), HTML::table(array("cellspacing" => 4), HTML::tr(HTML::td(array('align' => 'right'), _("DB admin user:"******"dbadmin[user]", 'size' => 12, 'maxlength' => 256, 'value' => $dbadmin_user)))), HTML::tr(HTML::td(array('align' => 'right'), _("DB admin password:"******"dbadmin[passwd]", 'type' => 'password', 'size' => 12, 'maxlength' => 256)))), HTML::tr(HTML::td(array('align' => 'center', 'colspan' => 2), Button("submit:", _("Submit"), 'wikiaction'), HTML::raw(' '), Button("submit:dbadmin[cancel]", _("Cancel"), 'button'))))); $form->printXml(); echo "</div><!-- content -->\n"; echo asXML(Template("bottom")); echo "</body></html>\n"; $this->request->finish(); exit; }
function _upgrade_db_init(&$dbh) { global $request, $DBParams, $DBAuthParams; if (!in_array($DBParams['dbtype'], array('SQL', 'ADODB', 'PDO'))) { return; } if (DBADMIN_USER) { // if need to connect as the root user, for CREATE and ALTER privileges $AdminParams = $DBParams; if ($DBParams['dbtype'] == 'SQL') { $dsn = DB::parseDSN($AdminParams['dsn']); } else { // ADODB or PDO $dsn = parseDSN($AdminParams['dsn']); } $AdminParams['dsn'] = sprintf("%s://%s:%s@%s/%s", $dsn['phptype'], DBADMIN_USER, DBADMIN_PASSWD, $dsn['hostspec'], $dsn['database']); if (DEBUG & _DEBUG_SQL and $DBParams['dbtype'] == 'PDO') { echo "<br>\nDBParams['dsn']: '", $DBParams['dsn'], "'"; echo "<br>\ndsn: '", print_r($dsn), "'"; echo "<br>\nAdminParams['dsn']: '", $AdminParams['dsn'], "'"; } $dbh = WikiDB::open($AdminParams); } elseif ($dbadmin = $request->getArg('dbadmin')) { if (empty($dbadmin['user']) or isset($dbadmin['cancel'])) { $dbh =& $request->_dbi; } else { $AdminParams = $DBParams; if ($DBParams['dbtype'] == 'SQL') { $dsn = DB::parseDSN($AdminParams['dsn']); } else { $dsn = parseDSN($AdminParams['dsn']); } $AdminParams['dsn'] = sprintf("%s://%s:%s@%s/%s", $dsn['phptype'], $dbadmin['user'], $dbadmin['passwd'], $dsn['hostspec'], $dsn['database']); $dbh = WikiDB::open($AdminParams); } } else { // Check if the privileges are enough. Need CREATE and ALTER perms. // And on windows: SELECT FROM mysql, possibly: UPDATE mysql. $form = HTML::form(array("method" => "post", "action" => $request->getPostURL(), "accept-charset" => $GLOBALS['charset']), HTML::p(_("Upgrade requires database privileges to CREATE and ALTER the phpwiki database."), HTML::br(), _("And on windows at least the privilege to SELECT FROM mysql, and possibly UPDATE mysql")), HiddenInputs(array('action' => 'upgrade')), HTML::table(array("cellspacing" => 4), HTML::tr(HTML::td(array('align' => 'right'), _("DB admin user:"******"dbadmin[user]", 'size' => 12, 'maxlength' => 256, 'value' => 'root')))), HTML::tr(HTML::td(array('align' => 'right'), _("DB admin password:"******"dbadmin[passwd]", 'type' => 'password', 'size' => 12, 'maxlength' => 256)))), HTML::tr(HTML::td(array('align' => 'center', 'colspan' => 2), Button("submit:", _("Submit"), 'wikiaction'), HTML::raw(' '), Button("submit:dbadmin[cancel]", _("Cancel"), 'button'))))); $form->printXml(); echo "</div><!-- content -->\n"; echo asXML(Template("bottom")); echo "</body></html>\n"; $request->finish(); exit; } }
/** * For dumping pages as html to a file. * Used for action=dumphtml,action=ziphtml,format=pdf,format=xml */ function GeneratePageasXML($content, $title, $page_revision = false, $args = false) { global $request; if (!is_array($args)) { $args = array(); } $content->_basepage = $title; $args['CONTENT'] = $content; $args['TITLE'] = SplitPagename($title); $args['revision'] = $page_revision; if (!isset($args['HEADER'])) { $args['HEADER'] = SplitPagename($title); } global $HIDE_TOOLBARS, $NO_BASEHREF, $WikiTheme; $HIDE_TOOLBARS = true; if (!$WikiTheme->DUMP_MODE) { $WikiTheme->DUMP_MODE = 'HTML'; } // FIXME: unfatal errors and login requirements $html = asXML(new Template('htmldump', $request, $args)); $HIDE_TOOLBARS = false; //$WikiTheme->DUMP_MODE = false; return $html; }