Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
/**
 * 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;
}
Ejemplo n.º 3
0
 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('&nbsp;'), Button("submit:dbadmin[cancel]", _("Cancel"), 'button')))));
     $form->printXml();
     echo "</div><!-- content -->\n";
     echo asXML(Template("bottom"));
     echo "</body></html>\n";
     $this->request->finish();
     exit;
 }
Ejemplo n.º 4
0
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('&nbsp;'), Button("submit:dbadmin[cancel]", _("Cancel"), 'button')))));
        $form->printXml();
        echo "</div><!-- content -->\n";
        echo asXML(Template("bottom"));
        echo "</body></html>\n";
        $request->finish();
        exit;
    }
}
Ejemplo n.º 5
0
/**
 * 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;
}