getDbh();
$path = FindLocalizedFile(WIKI_PGSRC);
$pgsrc = new fileSet($path);
// fixme: verification, ...
foreach ($pgsrc->getFiles() as $pagename) {
$pagename = urldecode($pagename);
if (substr($pagename,-1,1) == '~') continue;
if ($dbh->isWikiPage($pagename)) {
// check mtime
; //echo "$pagename exists
\n";
} else {
echo "$pagename does not exist
\n";
LoadAny($request,$path."/".$pagename);
echo "
\n";
}
}
return;
}
/**
* search table definition in appropriate schema and
* create it.
* supported: mysql
*/
function installTable(&$dbh, $table) {
if (!in_array($DBParam['dbtype'],array('SQL','ADODB'))) return;
$backend = 'mysql'; // fixme
$schema = findFile("schemas/$backend.sql");
if (!$schema)
return false;
switch ($table) {
case 'session':
break;
case 'user':
break;
case 'pref':
break;
case 'members':
break;
}
}
/**
* currently update only session, user, pref and member
* jeffs-hacks database api (around 1.3.2) later
* people should export/import their pages if using that old versions.
*/
function CheckDatabaseUpdate($request) {
global $DBParam, $DBAuthParams;
if (!in_array($DBParam['dbtype'],array('SQL','ADODB'))) return;
$dbh = &$request->_dbi;
$backend = &$dbh->_backend->_dbh;
if ($DBParam['dbtype'] == 'SQL') {
$tables = $backend->getListOf('tables');
} elseif ($DBParam['dbtype'] == 'ADODB') {
$tables = $backend->MetaTables();
}
//...
return;
}
/**
* Upgrade: Base class for multipage worksteps
* identify, validate, display options, next step
*/
class Upgrade {
}
class Upgrade_CheckPgsrc extends Upgrade {
}
class Upgrade_CheckDatabaseUpdate extends Upgrade {
}
// TODO: At which step are we?
// validate and do it again or go on with next step.
/** entry function from lib/main.php
*/
function DoUpgrade($request) {
if (!$request->_user->isAdmin()) {
$request->_notAuthorized(WIKIAUTH_ADMIN);
$request->finish(
HTML::div(array('class' => 'disabled-plugin'),
fmt("Upgrade disabled: user != isAdmin")));
return;
}
StartLoadDump($request, _("Upgrading this PhpWiki"));
CheckDatabaseUpdate($request);
CheckPgsrcUpdate($request);
EndLoadDump($request);
}
/**
$Log: not supported by cvs2svn $
*/
// 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:
?>