forked from extern/egroupware
moved header version number to the version.inc.php and adjusted the phpgw.inc.php to reflext that change. Upgrades of the header will be done in the new setup program
This commit is contained in:
parent
cc10ad0f54
commit
dbdf4c5f64
@ -1,55 +1,45 @@
|
||||
<?php
|
||||
include("./inc/functions.inc.php");
|
||||
include("../version.inc.php");
|
||||
|
||||
if ($download) {
|
||||
header("Content-disposition: attachment; filename=header.inc.php");
|
||||
header("Content-type: application/octet-stream");
|
||||
header("Pragma: no-cache");
|
||||
header("Expires: 0");
|
||||
$ftemplate = fopen(dirname($SCRIPT_FILENAME)."../header.inc.php.template","r");
|
||||
$template = fread($ftemplate,filesize(dirname($SCRIPT_FILENAME)."../header.inc.php.template"));
|
||||
fclose($ftemplate);
|
||||
while(list($k,$v) = each($HTTP_POST_VARS)) {
|
||||
$template = ereg_replace("__".strtoupper($k)."__",$v,$template);
|
||||
}
|
||||
echo $template;
|
||||
echo $newheader;
|
||||
exit;
|
||||
}else{
|
||||
?>
|
||||
<html><head></head><body bgcolor="#ffffff">
|
||||
if you are done and wrote the config without errors you can go <a href="./">here</a> to
|
||||
finish the setup
|
||||
<table>
|
||||
<tr bgcolor="486591">
|
||||
<th colspan=2><font color="fefefe"> Analysis </font></th></tr>
|
||||
<tr><td colspan=2>
|
||||
<?
|
||||
// Hardly try to find what DB-support is compiled in
|
||||
// this dont work with PHP 3.0.10 and lower !
|
||||
if(isset($write_config) && !empty($write_config)) {
|
||||
$fsetup = true;
|
||||
$ftemplate = fopen(dirname($SCRIPT_FILENAME)."../header.inc.php.template","r");
|
||||
if($ftemplate){
|
||||
$fsetup = fopen($server_root."/header.inc.php","w");
|
||||
if(!$fsetup){
|
||||
echo "could not open header.inc.php for writing !<br>";
|
||||
echo "please check read/write permissions on directories or back up and download the file. Then save it to the correct location<br>";
|
||||
echo "</td></tr></table></body></html>";
|
||||
exit;
|
||||
}else{
|
||||
$template = fread($ftemplate,filesize(dirname($SCRIPT_FILENAME)."../header.inc.php.template"));
|
||||
fclose($ftemplate);
|
||||
while(list($k,$v) = each($HTTP_POST_VARS)) {
|
||||
echo "Replace token '__".strtoupper($k)."__' with value '$v'<br>\n";
|
||||
$template = ereg_replace("__".strtoupper($k)."__",$v,$template);
|
||||
}
|
||||
fwrite($fsetup,$template);
|
||||
fclose($fsetup);
|
||||
echo "Created header.inc.php!<br>";
|
||||
}
|
||||
}elseif ($view) {
|
||||
show_header("Generated header.inc.php");
|
||||
echo "<br>Save this text as contents of your header.inc.php<br><hr>";
|
||||
$newheader = generate_header();
|
||||
echo "<pre>";
|
||||
echo htmlentities($newheader);
|
||||
echo "</pre></body></html>";
|
||||
exit;
|
||||
}elseif ($createfile) {
|
||||
if(!is_writeable ($server_root."/header.inc.php")){
|
||||
show_header("Error generating header.inc.php");
|
||||
echo "Could not open header.inc.php for writing!<br>\n";
|
||||
echo "Please check read/write permissions on directories or back up and use another option.<br>";
|
||||
echo "</td></tr></table></body></html>";
|
||||
exit;
|
||||
}else{
|
||||
echo "could not open template header for reading !<br>";
|
||||
show_header("Saved header.inc.php");
|
||||
$newheader = generate_header();
|
||||
$fsetup = fopen($server_root."/header.inc.php","w");
|
||||
fwrite($fsetup,$newheader);
|
||||
fclose($fsetup);
|
||||
echo "Created header.inc.php!<br>";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
show_header("Create/Edit your header.inc.php");
|
||||
echo '<table>
|
||||
<tr bgcolor="486591"><th colspan=2><font color="fefefe"> Analysis </font></th></tr>
|
||||
<tr><td colspan=2>';
|
||||
// Hardly try to find what DB-support is compiled in
|
||||
// this dont work with PHP 3.0.10 and lower !
|
||||
|
||||
$supported_db = array();
|
||||
if(extension_loaded("mysql")) {
|
||||
@ -79,15 +69,32 @@ finish the setup
|
||||
echo "<b><p align=center><font size=+2 color=red>did not found any valid DB support !<br>try to configure your php to support one of the above mentioned dbs or install phpgroupware by hand </font></p></b><td></tr></table></body></html>";
|
||||
exit;
|
||||
}
|
||||
|
||||
$no_guess = false;
|
||||
$may_test = false;
|
||||
if(file_exists("../header.inc.php") && is_file("../header.inc.php")) {
|
||||
echo "found configuration. using this for defaults<br>\n";
|
||||
echo "Found existing configuration file. Loading settings from the file...<br>\n";
|
||||
$phpgw_info["flags"]["noapi"] = True;
|
||||
include("../header.inc.php");
|
||||
$no_guess = true;
|
||||
$may_test = true;
|
||||
/* This code makes sure the newer multi-domain supporting header.inc.php is being used */
|
||||
if (!isset($phpgw_domain)) {
|
||||
echo "Your using an old configuration file format...<br>\n";
|
||||
echo "Importing old settings into the new format....<br>\n";
|
||||
}else{
|
||||
if ($phpgw_info["server"]["header_version"] != $phpgw_info["server"]["current_header_version"]) {
|
||||
echo "Your using an old header.inc.php version...<br>\n";
|
||||
echo "Importing old settings into the new format....<br>\n";
|
||||
}
|
||||
reset($phpgw_domain);
|
||||
$default_domain = each($phpgw_domain);
|
||||
$phpgw_info["server"]["default_domain"] = $default_domain[0];
|
||||
unset ($default_domain); // we kill this for security reasons
|
||||
$phpgw_info["server"]["db_host"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_host"];
|
||||
$phpgw_info["server"]["db_name"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_name"];
|
||||
$phpgw_info["server"]["db_user"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_user"];
|
||||
$phpgw_info["server"]["db_pass"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_pass"];
|
||||
$phpgw_info["server"]["db_type"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["db_type"];
|
||||
$phpgw_info["server"]["config_passwd"] = $phpgw_domain[$phpgw_info["server"]["default_domain"]]["config_passwd"];
|
||||
}
|
||||
} else {
|
||||
echo "sample configuration not found. using built in defaults<br>\n";
|
||||
$phpgw_info["server"]["server_root"] = "/path/to/phpgroupware";
|
||||
@ -119,21 +126,6 @@ finish the setup
|
||||
}
|
||||
?>
|
||||
</td></tr>
|
||||
<?
|
||||
if($may_test) {
|
||||
?>
|
||||
<tr bgcolor=486591><th colspan=2><font color="fefefe">Test DB Connection</font></th></tr>
|
||||
<tr><td colspan=2 align=center><form action="<? echo $PHP_SELF ?>" method=post>
|
||||
<input type=hidden name=test_con value=1>
|
||||
<input type=submit value="Test Connection Now">
|
||||
</form>
|
||||
<?
|
||||
if(isset($test_con) && $test_con == 1) {
|
||||
echo "Not yet implemented !<br>\n";
|
||||
}
|
||||
echo "</td></tr>\n";
|
||||
}
|
||||
?>
|
||||
<tr bgcolor=486591><th colspan=2><font color="fefefe">Settings</font></th></tr>
|
||||
<form action="<? echo $PHP_SELF ?>" method=post>
|
||||
<input type=hidden name=write_config value=true>
|
||||
@ -179,7 +171,7 @@ finish the setup
|
||||
|
||||
<tr><td><b>Configuration Password</b><br><input type=text name=config_pass value="<? echo $phpgw_info["server"]["config_passwd"] ?>"></td><td>Password needed for configuration</td></tr>
|
||||
<tr><td colspan=2><b>Enable MCrypt<br>
|
||||
<select name=mcrypt_enabled >
|
||||
<select name=enable_mcrypt >
|
||||
<? if($phpgw_info["flags"]["mcrypt_enabled"] == True) { ?>
|
||||
<option value=True selected>True
|
||||
<option value=False>False
|
||||
@ -191,16 +183,26 @@ finish the setup
|
||||
</td></tr>
|
||||
<tr><td><b>MCrypt version</b><br><input type=text name=mcrypt_version value="<? echo $phpgw_info["server"]["mcrypt_version"] ?>"></td><td>Set this to "old" for versions < 2.4, otherwise the exact mcrypt version you use</td></tr>
|
||||
<tr><td><b>MCrypt initilazation vector</b><br><input type=text name=mcrypt_iv value="<? echo $phpgw_info["server"]["mcrypt_iv"] ?>"></td><td>It should be around 30 bytes in length</td></tr>
|
||||
</table>
|
||||
<?
|
||||
if(!$found_dbtype) {
|
||||
echo "<br><font color=red>Warning!<br>The db_type in defaults (".$phpgw_info["server"]["db_type"].") is not supported on this server. using first supported type.</font>";
|
||||
}
|
||||
?>
|
||||
</td></tr>
|
||||
<tr><th colspan=2 align=center><input type=submit value="write config"> or <input type=submit name="download" value="download"></th></tr>
|
||||
</form>
|
||||
</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
<form>
|
||||
<?php
|
||||
|
||||
if(is_writeable ($server_root."/header.inc.php")){
|
||||
echo '<input type=submit name="createfile" value="write config">';
|
||||
}else{
|
||||
echo 'Cannot create the header.inc.php due to file permission restrictions.<br> Instead you can ';
|
||||
echo'<input type=submit name="download" value="download">or <input type=submit name="view" value="view"> the file.';
|
||||
echo'<br> After retrieving the file put it into place as the header.inc.php, then click continue.<br>';
|
||||
echo'<input type=submit name="continue" value="continue">';
|
||||
}
|
||||
?>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
<?php } ?>
|
@ -84,8 +84,8 @@
|
||||
echo "</body></html>\n";
|
||||
}
|
||||
|
||||
// function loaddb(){
|
||||
// global $phpgw_domain, $FormLogout, $FormDomain, $SetupPW, $SetupDomain, $db, $PHP_SELF;
|
||||
function loaddb(){
|
||||
global $phpgw_domain, $FormLogout, $FormDomain, $SetupPW, $SetupDomain, $db, $PHP_SELF, $HTTP_POST_VARS;
|
||||
|
||||
/* This code makes sure the newer multi-domain supporting header.inc.php is being used */
|
||||
if (!isset($phpgw_domain)) {
|
||||
@ -134,6 +134,6 @@
|
||||
$db->Database = $phpgw_domain[$SetupDomain]["db_name"];
|
||||
$db->User = $phpgw_domain[$SetupDomain]["db_user"];
|
||||
$db->Password = $phpgw_domain[$SetupDomain]["db_pass"];
|
||||
// }
|
||||
// loaddb();
|
||||
}
|
||||
loaddb();
|
||||
?>
|
||||
|
392
setup/index.php
392
setup/index.php
@ -16,338 +16,72 @@
|
||||
// page explaining what to do from there (ie, create there own account)
|
||||
|
||||
$phpgw_info["flags"] = array("noheader" => True, "nonavbar" => True, "currentapp" => "home", "noapi" => True);
|
||||
include("../header.inc.php");
|
||||
include("../version.inc.php"); // To set the current core version
|
||||
|
||||
// Authorize the user to use setup app and load the database
|
||||
include("./inc/setup_auth.inc.php");
|
||||
// Does not return unless user is authorized
|
||||
|
||||
// $db->Halt_On_Error = "report";
|
||||
$db->Halt_On_Error = "no";
|
||||
|
||||
if (!isset($oldversion)){
|
||||
@$db->query("select app_version from applications where app_name='admin'");
|
||||
@$db->next_record();
|
||||
$oldversion = $db->f("app_version");
|
||||
}
|
||||
|
||||
/**********************************************************************\
|
||||
* First order of business is to upgrade or install the core. *
|
||||
* if $ok is set to false after this include, the setup stops here *
|
||||
* otherwise, we display the app setup form. *
|
||||
* This is sorta kludgy still, but until I can figure out a clean way *
|
||||
* for applications to inteact with the user, this is how it is. *
|
||||
* *
|
||||
\**********************************************************************/
|
||||
|
||||
/* Commenting out the following header since it breaks necessary
|
||||
redirections in the setup code (core_setup.inc.php). -mr_e
|
||||
|
||||
echo ' <table border="0" width="100%"><tr>'
|
||||
. '<td align="left" bgcolor="486591"> <font color="fefefe">phpGroupWare version '
|
||||
. $phpgw_info["server"]["version"] . ' setup</font></td><td align="right" bgcolor="486591">';
|
||||
echo "<form action='".$PHP_SELF."' method='POST'>\n";
|
||||
echo " <input type='hidden' name='FormLogout' value='True'>\n";
|
||||
echo " <input type='submit' name='Logout' value='Logout'>\n";
|
||||
echo " </form>\n";
|
||||
echo "</td></tr></table>";
|
||||
*/
|
||||
|
||||
$ok = true;
|
||||
$baseDir = $phpgw_info["server"]["server_root"];
|
||||
include("./inc/core_setup.inc.php");
|
||||
if (!$ok) {
|
||||
exit;
|
||||
} else {
|
||||
setup_header();
|
||||
echo "<p><table width=\"70%\" border='0' align='center' bgcolor='#e6e6e6' cellpadding='3' cellspacing='0'>\n";
|
||||
echo "<tr bgcolor='#486591'>";
|
||||
echo "<th align=\"center\"><font color='#fefefe'>phpGroupWare Core Staus</font></th>";
|
||||
echo "</tr>\n";
|
||||
$db->query("select app_version from applications where app_name='admin'");
|
||||
$db->next_record();
|
||||
$curversion = $db->f("app_version");
|
||||
echo "<tr><td align=\"center\">Core version $curversion. No updates needed.</td></tr>\n";
|
||||
echo "</table>\n\n";
|
||||
}
|
||||
// Remove the appName from all users and groupws on the system
|
||||
function removeAppPerms($appName) {
|
||||
global $db;
|
||||
|
||||
}
|
||||
|
||||
/**********************************************************************\
|
||||
* See the Developers HOWTO and the example app in phpgwapps for more *
|
||||
* info on how to integrate your application with this system. *
|
||||
\**********************************************************************/
|
||||
|
||||
|
||||
// Called by the app setup classes to add/remove lang records
|
||||
// it acts correctly according to the current action,
|
||||
// for an install/upgrade it removes the old record & installes the new one
|
||||
// for an uninstall it removes the record (as long is as it NOT in common)
|
||||
//
|
||||
// TODO: This mechanism is VERY TEMPORARY until jengo and blinky can figure
|
||||
// out a clean way to use transy for this!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
function do_lang($msg_id,$app,$lang,$content) {
|
||||
global $db,$currentAction;
|
||||
|
||||
$msg_id = strtolower($msg_id);
|
||||
$act = strtolower($currentAction);
|
||||
//echo "Do Lang: $act, $msg_id, $app, $lang, $content<br>\n";
|
||||
// Remove the old one
|
||||
if ($act == "uninstall" || $act == "upgrade") {
|
||||
if ($app == "common") {
|
||||
echo "<!-- Not touching message_id '".$msg_id."' as it is in app common. -->\n";
|
||||
} else {
|
||||
$sql = "DELETE FROM lang WHERE message_id='" . $msg_id . "' AND app_name='". $app ."'";
|
||||
$db->query($sql);
|
||||
}
|
||||
}
|
||||
// Add the new one
|
||||
// By setting $content == "", it allows you to prune old messages from the system
|
||||
if ($content != "" && $act == "install") {
|
||||
$sql = "INSERT INTO lang(message_id,app_name,lang,content) VALUES(";
|
||||
$sql .= "'".$msg_id."',";
|
||||
$sql .= "'".$app."',";
|
||||
$sql .= "'".$lang."',";
|
||||
$sql .= "'".$content."')";
|
||||
$db->query($sql);
|
||||
}
|
||||
if ($content != "" && $act == "upgrade") {
|
||||
$sql = "UPDATE lang SET ";
|
||||
$sql .= "content='".$content."' WHERE";
|
||||
$sql .= " message_id ='".$msg_id."'";
|
||||
$sql .= " AND app_name = '".$app."'";
|
||||
$sql .= " AND lang = '".$lang."'";
|
||||
$db->query($sql);
|
||||
}
|
||||
}
|
||||
|
||||
/**********************************************************************\
|
||||
* *
|
||||
\**********************************************************************/
|
||||
|
||||
/**********************************************************************\
|
||||
* Apps should call this function to report errors if possible to *
|
||||
* display them in a nice and controlled format *
|
||||
\**********************************************************************/
|
||||
function error($msg) {
|
||||
global $error_count;
|
||||
++$error_count;
|
||||
echo "<tr><td><font color='#ff0000'>".$msg."</font></td></tr>\n";
|
||||
}
|
||||
|
||||
/**********************************************************************\
|
||||
* Apps should call this function to report warnings if possible to *
|
||||
* display them in a nice and controlled format *
|
||||
\**********************************************************************/
|
||||
function warn($msg) {
|
||||
echo "<tr><td><font color='#ff00ff'>".$msg."</font></td></tr>\n";
|
||||
}
|
||||
|
||||
/**********************************************************************\
|
||||
* Applications (and the core) inherit from this class which provides *
|
||||
* all the hooks that setup needs to call for the app. *
|
||||
* *
|
||||
* Applications should call warn() or error() to communicate with *
|
||||
* the user. *
|
||||
\**********************************************************************/
|
||||
include("./inc/functions.inc.php");
|
||||
|
||||
if(!file_exists("../header.inc.php") || !is_file("../header.inc.php")) {
|
||||
$stage = 1.1;
|
||||
$header_msg = "Stage One";
|
||||
}else{
|
||||
include("../header.inc.php");
|
||||
if (!isset($phpgw_domain) || $phpgw_info["server"]["header_version"] != $phpgw_info["server"]["current_header_version"]) {
|
||||
$stage = 1.2;
|
||||
$header_msg = "Stage One (Upgrade your header.inc.php)";
|
||||
}else{ /* header.inc.php part settled. Moving to authentication */
|
||||
$stage = 1.3;
|
||||
$header_msg = "Stage One (Completed)";
|
||||
if (!auth()){
|
||||
show_header("Please login",True);
|
||||
loginForm($login_msg);
|
||||
exit;
|
||||
}else{ /* authentication settled. Moving to the database portion. */
|
||||
loaddb();
|
||||
$db->Halt_On_Error = "no";
|
||||
|
||||
// Template for the app-specific setup classes
|
||||
class Setup {
|
||||
// Is *ANY* version of the app currently installed ?
|
||||
function is_installed() {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Is the app installed and up to date?
|
||||
function is_current() {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Can the installed version be upgraded to the
|
||||
// new one?
|
||||
function can_upgrade() {
|
||||
return false;
|
||||
}
|
||||
|
||||
// If this application dpends on any other apps
|
||||
// this shouldd return an array of the app names (the directory name)
|
||||
// or return false if it can stand alone
|
||||
function dependant_apps() {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Called to actually upgrade the app
|
||||
function upgrade() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function install() {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Called to uninstall the app
|
||||
// You should remove all tables and files you created,
|
||||
// and return the system to the state it was before upgrade/install was called
|
||||
function uninstall() {
|
||||
}
|
||||
}
|
||||
|
||||
// Loop through all the directories looking for possible 3rd party apps
|
||||
$baseDir = $phpgw_info["server"]["server_root"];
|
||||
$setupFile = "/inc/setup.inc.php"; // File to look for to identify apps
|
||||
|
||||
$dh = opendir($baseDir);
|
||||
while ($dir = readdir($dh)) {
|
||||
$fp = $baseDir . "/" . $dir;
|
||||
if ($dir[0] != '.' && is_dir($fp)) {
|
||||
$fp .= $setupFile;
|
||||
if (is_file($fp) && $dir != "setup") {
|
||||
//echo "found a setup! in $fp<br>\n";
|
||||
$detectedApps[$dir]["path"] = $fp;
|
||||
$detectedApps[$dir]["name"] = $dir;
|
||||
$detectedApps[$dir]["dir"] = $baseDir."/".$dir;
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($dh);
|
||||
|
||||
|
||||
while ($detectedApps && list($name,$app) = each($detectedApps)) {
|
||||
include($app["path"]);
|
||||
$detectedApps[$name]["setup"] = new $classname($app["dir"]);
|
||||
}
|
||||
|
||||
// If the user wanted to upgrade/install/remove an app, now is the time
|
||||
if ((isset($submit) && $submit == "Perform Actions") &&
|
||||
is_array($appAction)) {
|
||||
echo "<p>\n";
|
||||
echo "<table border='0' align='center' bgcolor='#e6e6e6' cellpadding='3' cellspacing='0'>\n";
|
||||
echo "<tr bgcolor='#486591'>";
|
||||
echo "<th><font color='#fefefe'>Making Application Changes</font></th>";
|
||||
echo "</tr>\n";
|
||||
reset($detectedApps);
|
||||
$numAltered = 0;
|
||||
while ($detectedApps && list($name,$a) = each($detectedApps)) {
|
||||
$app = $a["setup"];
|
||||
switch ($appAction[$name]) {
|
||||
case "ignore":
|
||||
break;
|
||||
case "upgrade":
|
||||
$currentAction = "upgrade";
|
||||
if ($app->upgrade()) {
|
||||
echo "<tr><td><b>$name</b> upgraded.</td></tr>\n";
|
||||
} else {
|
||||
echo "<tr bgcolor='#ff4444'><td><b>$name</b> - upgrade failed!</td></tr>\n";
|
||||
$db->query("show tables");
|
||||
if ($db->num_rows()){
|
||||
/* tables exists. checking for post beta version */
|
||||
$db->free();
|
||||
$db->query("select app_version from applications where app_name='admin'");
|
||||
$db->next_record();
|
||||
$oldversion = $db->f("app_version");
|
||||
$db->free();
|
||||
if (isset($oldversion)){
|
||||
if ($oldversion == $phpgw_info["server"]["version"]){
|
||||
$stage = 2.5;
|
||||
$header_msg = "Stage 2 (Tables are Current)";
|
||||
}else{
|
||||
$stage = 2.4;
|
||||
$header_msg = "Stage 2 (Tables need upgrading)";
|
||||
}
|
||||
}else{
|
||||
$stage = 2.2;
|
||||
$header_msg = "Stage 2 (Tables appear to be pre-beta)";
|
||||
}
|
||||
++$numAltered;
|
||||
break;
|
||||
case "install":
|
||||
$currentAction = "install";
|
||||
if ($app->install()) {
|
||||
echo "<tr><td><b>$name</b> installed.</td></tr>\n";
|
||||
} else {
|
||||
echo "<tr bgcolor='#ff4444'><td><b>$name</b> - install failed!</td></tr>\n";
|
||||
}else{
|
||||
/* no tables, so checking if we can create them */
|
||||
$db->free();
|
||||
$isdb = $db->connect("kljkjh", "localhost", "phpgroupware", "phpgr0upwar3");
|
||||
echo "isdb: ".$isdb."<br>\n";
|
||||
|
||||
|
||||
$db->free();
|
||||
$db_rights = $db->query("CREATE TABLE phpgw_testrights ( testfield varchar(5) NOT NULL )");
|
||||
echo "db_rights: ".$db_rights."<br>\n";
|
||||
|
||||
if (isset($db_rights)){
|
||||
$stage = 2.3;
|
||||
$header_msg = "Stage 2 (Create tables)";
|
||||
}else{
|
||||
$stage = 2.1;
|
||||
$header_msg = "Stage 2 (Create Database)";
|
||||
}
|
||||
++$numAltered;
|
||||
break;
|
||||
case "uninstall":
|
||||
$currentAction = "uninstall";
|
||||
if ($app->uninstall()) {
|
||||
echo "<tr><td><b>$name</b> uninstalled.</td></tr>\n";
|
||||
removeAppPerms($name);
|
||||
} else {
|
||||
echo "<tr bgcolor='#ff4444'><td><b>$name</b> - uninstall failed!</td></tr>\n";
|
||||
}
|
||||
++$numAltered;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($numAltered == 0) {
|
||||
echo "<tr><td>No applications altered.</td></tr>\n";
|
||||
}
|
||||
echo "</table>\n";
|
||||
}
|
||||
|
||||
echo "<form action='".$PHP_SELF."' method='POST'>\n";
|
||||
|
||||
echo "<table border='0' align='center' bgcolor='#e6e6e6' cellpadding='3' cellspacing='1' width=\"70%\">\n";
|
||||
echo "<tr bgcolor='#486591'><th colspan='7'><font color='#fefefe'>Application Setup</font></th></tr>\n";
|
||||
echo "<tr bgcolor='#486591'>";
|
||||
echo "<td align=\"center\"><font color='#fefefe'>Application</font></td>";
|
||||
echo "<td align=\"center\"><font color='#fefefe'>Installed Version</font></td>";
|
||||
echo "<td align=\"center\"><font color='#fefefe'>Detected Version</font></td>";
|
||||
echo "<td align=\"center\"><font color='#fefefe'>Install</font></td>";
|
||||
echo "<td align=\"center\"><font color='#fefefe'>Upgrade</font></td>";
|
||||
echo "<td align=\"center\"><font color='#fefefe'>Remove</font></td>";
|
||||
echo "<td align=\"center\"><font color='#fefefe'>Do Nothing</font></td>";
|
||||
echo "</tr>\n";
|
||||
|
||||
$numApps = 0;
|
||||
if (isSet($detectedApps)) reset($detectedApps);
|
||||
while ($detectedApps && list($name,$a) = each($detectedApps)) {
|
||||
$app = $a["setup"];
|
||||
|
||||
echo "<tr>";
|
||||
echo " <td>".$name."</td>\n";
|
||||
|
||||
if (is_object($a["setup"])) {
|
||||
$installed = $app->is_installed();
|
||||
$code = $app->code_version();
|
||||
}
|
||||
if (!$installed) {
|
||||
echo " <td>-not yet installed-</td>\n";
|
||||
} else if ($installed == "0.0.0" || $installed == "0.0") {
|
||||
echo " <td>Pre-Beta</td>";
|
||||
} else {
|
||||
echo " <td>".$installed."</td>\n";
|
||||
}
|
||||
|
||||
echo " <td>".$code."</td>\n";
|
||||
|
||||
if ($installed && $app->is_current()) {
|
||||
echo " <td>N/A</td>"; // Can't install
|
||||
echo " <td>N/A</td>"; // Can't upgrade
|
||||
echo " <td><input type='radio' name='appAction[".$name."]' value='uninstall'>"; // Can remove
|
||||
echo " <td><input type='radio' name='appAction[".$name."]' value='ignore' checked>"; // Can ignore
|
||||
} else if ($installed) {
|
||||
echo " <td>N/A</td>"; // Can't install
|
||||
echo " <td><input type='radio' name='appAction[".$name."]' value='upgrade' checked>"; // Can upgrade
|
||||
echo " <td><input type='radio' name='appAction[".$name."]' value='uninstall'>"; // Can remove
|
||||
echo " <td><input type='radio' name='appAction[".$name."]' value='ignore'>"; // Can ignore
|
||||
} else {
|
||||
echo " <td><input type='radio' name='appAction[".$name."]' value='install' checked>"; // Can install
|
||||
echo " <td>N/A</td>"; // Can't upgrade
|
||||
echo " <td>N/A</td>"; // Can't remove
|
||||
echo " <td><input type='radio' name='appAction[".$name."]' value='ignore'>"; // Can ignore
|
||||
}
|
||||
echo "</tr>\n";
|
||||
++$numApps;
|
||||
}
|
||||
if ($numApps) {
|
||||
echo "<tr><td colspan='7' align='right'><input type='submit' name='submit' value='Perform Actions'></td></tr>\n";
|
||||
} else {
|
||||
echo "<tr><td colspan='7' align='right'>Found no non-core applications. ";
|
||||
echo "Visit <a href='http://phpgroupware.org/'>phpGroupWare.org</a> to obtain add-on applications.</td></tr>\n";
|
||||
}
|
||||
echo "</table>\n";
|
||||
echo "</form>\n";
|
||||
|
||||
echo "Applications not in the table above are either part of the phpGroupWare core, or ";
|
||||
echo "have not been upgraded to the new phpGroupWare application setup code.";
|
||||
|
||||
echo "<p>When you are done installing and upgrading applications, you should ";
|
||||
echo "continue to the <a href='config.php'>Configuration Page</a>";
|
||||
echo "<br>or skip to <a href='lang.php'>Configure multi-language support</a>.\n";
|
||||
echo "<br><br>or for a drastic measure, you can delete all your tables and data and recreate the new empty tables.\n";
|
||||
echo " <form method=\"POST\" action=\"$PHP_SELF\">\n";
|
||||
echo " <input type=\"submit\" name=\"action\" value=\"Delete my old tables\">\n";
|
||||
echo " </form>\n";
|
||||
|
||||
$db->query("DROP TABLE phpgw_testrights");
|
||||
}
|
||||
} /* from authentication check */
|
||||
} /* from header version check */
|
||||
} /* From header.inc.php not existing */
|
||||
show_header($header_msg);
|
||||
show_steps($stage);
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -12,4 +12,4 @@
|
||||
/* $Id$ */
|
||||
|
||||
$phpgw_info["server"]["version"] = "0.9.7pre1";
|
||||
?>
|
||||
$phpgw_info["server"]["current_header_version"] = "1.4";
|
||||
|
Loading…
Reference in New Issue
Block a user