function expunge($pPackage = NULL) { if (!empty($pPackage)) { $this->mPackage = $pPackage; } if ($this->isValid()) { $this->load(); $this->mDb->StartTrans(); // first we get all related versions $query = "SELECT `packager_id` FROM `" . BIT_DB_PREFIX . "packager_versions` WHERE `package` = ?"; $ids = $this->mDb->getCol($query, array($this->mPackage)); foreach ($ids as $id) { $version = new PackagerVersions($id); $version->load(); $version->expunge(); } if (!$this->mDb->query("DELETE FROM `" . BIT_DB_PREFIX . "packager_packages` WHERE `package` = ?", array($this->mPackage))) { $this->mErrors['delete'] = tra('The data could not be removed from the database.'); } if (count($this->mErrors) == 0) { $this->mDb->CompleteTrans(); } else { $this->mDb->RollbackTrans(); } } $this->postStore(); return count($this->mErrors) == 0; }
<?php if (!empty($_REQUEST['package'])) { $gPackager = new Packager($_REQUEST['package']); $gPackager->load(); } else { $gPackager = new Packager(); } if (@BitBase::verifyId($_REQUEST['packager_id'])) { $gVersions = new PackagerVersions($_REQUEST['packager_id']); $gVersions->load(); } else { $gVersions = new PackagerVersions(); } $gPackager->verifyServer(); $gBitSmarty->assign_by_ref('gPackager', $gPackager); $gBitSmarty->assign_by_ref('gVersions', $gVersions);