public static function submitUpdate($addon, $version, $file, $changelog, $restart) { if (!is_object($addon)) { $addon = AddonManager::getFromID($addon); } //remove pre-existing updates, merge changelogs $db = new DatabaseManager(); $ups = AddonManager::getUpdates($addon); foreach ($ups as $up) { if ($up->isPending()) { return array("message" => "Update already pending. Wait for approval or cancel previous update."); } } $db->query("INSERT INTO `addon_updates` (`id`, `aid`, `version`, `tempfile`, `changelog`, `submitted`, `restart`, `approved`) VALUES (NULL, " . "'" . $addon->getId() . "'," . "'" . $db->sanitize($version) . "'," . "'" . $db->sanitize($file) . "'," . "'" . $db->sanitize($changelog) . "'," . "CURRENT_TIMESTAMP," . "b'" . ($up ? 1 : 0) . "'," . "NULL);"); $error = $db->error(); if ($error != "") { return array("message" => "Database error: " . $error); } return array("message" => "You're being redirected...", "redirect" => "/addons/review/update.php?id=" . $addon->getId()); }
<?php require_once dirname(__DIR__) . "/../private/class/AddonManager.php"; header('Content-Type: text/tml'); $addon = AddonManager::getFromId($_REQUEST['id']); if ($addon === false) { die("Error: add-on doesn't exist"); } $updates = AddonManager::getUpdates($addon); foreach ($updates as $up) { echo "<version:" . $up->getVersion() . ">\n"; echo $up->getChangeLog(); echo "\n</version>\n"; }
width: 870px; font-size: 0.8em; } .diff td { font-size: 0.8em; width: 50%; vertical-align : top; white-space : pre; white-space : pre-wrap; font-family : monospace; } .diffDeleted { border: 1px solid rgb(255,192,192); background: rgb(255,224,224); } .diffInserted { border: 1px solid rgb(192,255,192); background: rgb(224,255,224); } </style> <?php require_once dirname(__DIR__) . '/class/AddonManager.php'; require_once dirname(__DIR__) . '/class/AddonUpdateObject.php'; $up = AddonManager::getUpdates(AddonManager::getFromId(4)); $up = $up[0]; $diff = $up->getDiff(); foreach ($diff['changes'] as $file => $table) { echo $file . "<br />" . $table . "<hr />"; }
$reviewer = false; $owner = false; if ($userObject->getBlid() == $addon->getManagerBLID()) { $owner = true; } if ((!$userObject || !$userObject->inGroup("Reviewer")) && !$owner) { header('Location: /addons'); return; } else { $reviewer = true; } if ($reviewer) { if (isset($_POST['action']) && is_object($userObject)) { if ($_POST['action'] == "Approve") { // approve $update = AddonManager::getUpdates($addon)[0]; try { AddonManager::approveUpdate($update); } catch (Exception $e) { } header('Location: updates.php'); } else { if ($_POST['action'] == "Reject") { // reject } } } } if ($owner) { if ($_POST['action'] == "Cancel Update") { }
public function getRestartVersion() { $ups = AddonManager::getUpdates($this); foreach ($ups as $up) { if ($up->isRestart()) { return $up->getVersion(); } } return "0"; }