Update of /cvsroot/upcase-project/UpCase/lib
In directory sc8-pr-cvs1:/tmp/cvs-serv14504
Modified Files:
uc_installer.php
Log Message:
added unregister function, uninstall function remove every trace of a package
Index: uc_installer.php
===================================================================
RCS file: /cvsroot/upcase-project/UpCase/lib/uc_installer.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** uc_installer.php 20 Nov 2002 12:50:28 -0000 1.4
--- uc_installer.php 20 Nov 2002 15:50:27 -0000 1.5
***************
*** 34,38 ****
// Return an array of
! // [pkgversion, pkgurl, pkgstatus]
function getStatus($packageName, $pkgVersion = '%', $pkgPath = '%')
{
--- 34,38 ----
// Return an array of
! // [pkgversion, pkgurl, tblprefix, pkgstatus]
function getStatus($packageName, $pkgVersion = '%', $pkgPath = '%')
{
***************
*** 52,55 ****
--- 52,56 ----
$pkg["version"] = $o->PKGVERSION;
$pkg["url"] = $o->PKGPATH;
+ $pkg["prefix"] = $o->TBLPREFIX;
if ($o->INSTALLED == 1)
$pkg["status"] = PACKAGE_FULLY_INSTALLED;
***************
*** 163,166 ****
--- 164,176 ----
}
+ function unregisterPackage($packageName, $packageVersion, $relPath, $tblPrefix)
+ {
+ $query = sprintf($GLOBALS["ucsql_packageunregister"],
+ $packageName, $packageVersion, $relPath, $tblPrefix);
+ $this->db->Execute($query)
+ or die("Unable to unregister package: " . $this->db->ErrorMsg());
+ return true;
+ }
+
function setInstallComplete($package, $relPath, $tblPrefix)
{
***************
*** 200,208 ****
$metaData = $this->metaBackup . "/" . $packageName . "-" .
$packageVersion . ".inc";
include($metaData);
! $tablesList = '';
foreach ($tables as $table)
! $tablesList .= $tblPrefix . "_" . $table . ', ';
$query = "DROP TABLE " . $tablesList;
rrmdir($cfg->siteRoot . "/" . $relUrl);
}
--- 210,224 ----
$metaData = $this->metaBackup . "/" . $packageName . "-" .
$packageVersion . ".inc";
+ $pkgAr = $this->getStatus($packageName, $packageVersion, $relUrl);
+ $tblPrefix = $pkgAr[0]["prefix"];
include($metaData);
! $tablesAr = array();
foreach ($tables as $table)
! $tablesAr[] = $tblPrefix . "_" . $table;
! $tablesList = join(',', $tablesAr);
$query = "DROP TABLE " . $tablesList;
+ $this->db->Execute($query)
+ or die("Unable to drop package tables: " . $this->db->ErrorMsg());
+ $this->unregisterPackage($packageName, $packageVersion, $relUrl, $tblPrefix);
rrmdir($cfg->siteRoot . "/" . $relUrl);
}
|