public function toHTML()
 {
     $returnHtml = $this->text;
     if (isset($this->params->vars)) {
         foreach ($this->params->vars as $i => $var) {
             $html = "<s>invalid</s>";
             switch ($var->type) {
                 case "user":
                     $user = UserManager::getFromBLID($var->blid);
                     $html = "<a href=\"/user/view.php?blid=" . $var->blid . "\">" . $user->getUserName() . "</a>";
                     break;
                 case "addon":
                     $addon = AddonManager::getFromID($var->id);
                     if ($addon) {
                         $html = "<a href=\"/addons/addon.php?id=" . $var->id . "\">" . $addon->getName() . "</a>";
                     } else {
                         $html = "<a href=\"/addons/addon.php?id=" . $var->id . "\">{error}</a>";
                     }
                     break;
             }
             $returnHtml = str_replace('$' . ($i + 1), $html, $returnHtml);
         }
     }
     return $returnHtml;
 }
Example #2
0
 public function testGetTag2()
 {
     $response = TagManager::getAddonsFromTagID(1);
     $this->assertNotEquals(false, $response);
     $this->assertEquals(1, count($response));
     $obj = AddonManager::getFromID($response[0]);
     $this->assertEquals('crapy adon', $obj->getName());
 }
Example #3
0
 public static function getAddonsFromBoardID($id, $offset, $limit)
 {
     if (isset($limit)) {
         return AddonManager::getFromBoardID($id, $offset, $limit);
     } else {
         return AddonManager::getFromBoardID($id);
     }
 }
 function getAddons($offset, $limit)
 {
     if (isset($limit)) {
         return AddonManager::getFromBoardId($this->id, false, $limit, $offset);
     } else {
         return AddonManager::getFromBoardId($this->id);
     }
 }
 function collectHourStat($store = false)
 {
     $stats = new stdClass();
     $stats->time = gmdate("Y-m-d H:00:00", time());
     $stats->duration = "hour";
     $database = new DatabaseManager();
     //Addons!
     $addons = new stdClass();
     $addonArray = AddonManager::getAll();
     $addons->count = sizeof($addonArray);
     $addons->cumulative_downloads = array();
     $addons->usage = array();
     $addons->usage_total = array();
     foreach ($addonArray as $addon) {
         $downloadData = new stdClass();
         // TODO we need to go back. I dont want total downloads, I want individual
         //$downloadData->web =
         //$downloadData->ingame =
         //$downloadData->update =
         $addons->cumulative_downloads[$addon->getId()] = $downloadData;
         $res = $database->query("SELECT `version` FROM `stats_usage` WHERE `aid`='" . $addon->getId() . "' AND `reported` > now() - INTERVAL 1 HOUR");
         $ret = $res->fetch_object();
         $usage = array();
         $total = 0;
         while ($obj = $res->fetch_object()) {
             $total++;
             if (!isset($usage[$obj->version])) {
                 $usage[$obj->version] = 1;
             } else {
                 $usage[$obj->version]++;
             }
         }
         $addons->usage[$addon->getId()] = $usage;
         $addons->usage_total[$addon->getId()] = $total;
     }
     $stats->addons = $addons;
     //Builds
     $builds = new stdClass();
     $buildArray = BuildManager::getAll();
     $builds->count = sizeof($buildArray);
     $builds->cumulative_downloads = array();
     foreach ($buildArray as $build) {
         // TODO this isn't done either...
         //$builds->cumulative_downloads[$build->getId()] = $build->getDownloads();
     }
     $stats->builds = $builds;
     //Master Server
     $stats->master = new stdClass();
     $master = CronStatManager::getMasterServerStats();
     $stats->master->users = $master[0];
     $stats->master->servers = $master[1];
     if ($store) {
         CronStatManager::verifyTable($database);
         $database->query("INSERT INTO `cron_statistics`  (`time` , `duration` , `data`) VALUES ('" . $stats->time . "',  'hour',  '" . $database->sanitize(json_encode($stats)) . "')");
     }
     return $stats;
 }
 public static function verifyTable($database)
 {
     require_once realpath(dirname(__FILE__) . '/UserManager.php');
     require_once realpath(dirname(__FILE__) . '/AddonManager.php');
     UserManager::verifyTable($database);
     AddonManager::verifyTable($database);
     if (!$database->query("CREATE TABLE IF NOT EXISTS `addon_ratings` (\n\t\t\t`id` INT AUTO_INCREMENT,\n\t\t\t`blid` INT NOT NULL,\n\t\t\t`aid` INT NOT NULL,\n\t\t\t`rating` TINYINT NOT NULL,\n\t\t\tFOREIGN KEY (`blid`)\n\t\t\t\tREFERENCES users(`blid`)\n\t\t\t\tON UPDATE CASCADE\n\t\t\t\tON DELETE CASCADE,\n\t\t\tFOREIGN KEY (`aid`)\n\t\t\t\tREFERENCES addon_addons(`id`)\n\t\t\t\tON UPDATE CASCADE\n\t\t\t\tON DELETE CASCADE,\n\t\t\tPRIMARY KEY (`id`))")) {
         throw new Exception("Unable to create table addon_ratings: " . $database->error());
     }
 }
Example #7
0
 public static function loadBasicDummyData()
 {
     TestManager::clearDatabase();
     $database = new DatabaseManager();
     UserManager::verifyTable($database);
     AddonManager::verifyTable($database);
     BoardManager::verifyTable($database);
     TagManager::verifyTable($database);
     GroupManager::verifyTable($database);
     DependencyManager::verifyTable($database);
     CommentManager::verifyTable($database);
     RatingManager::verifyTable($database);
     BuildManager::verifyTable($database);
     StatManager::verifyTable($database);
     ScreenshotManager::verifyTable($database);
     if (!$database->query("INSERT INTO `addon_boards` (name, video, description) VALUES ('General Content', 'general_content_bg', 'Bricks, Events, Sounds, Prints, Environments, and much more!')")) {
         throw new Exception("Database error: " . $database->error());
     }
     if (!$database->query("INSERT INTO `addon_boards` (name, video, description) VALUES ('Minigames', 'minigames_bg', 'Weapons, Vehicles, Gamemodes, and all your gaming needs!')")) {
         throw new Exception("Database error: " . $database->error());
     }
     if (!$database->query("INSERT INTO `addon_boards` (name, video, description) VALUES ('Client Mods', 'client_mods_bg', 'Mods that run on your client.')")) {
         throw new Exception("Database error: " . $database->error());
     }
     if (!$database->query("INSERT INTO `addon_boards` (name, video, description) VALUES ('Bargain Bin', 'bargain_bin_bg', 'A home for \\'special\\' content.')")) {
         throw new Exception("Database error: " . $database->error());
     }
     if (!$database->query("INSERT INTO `users` (username, blid, password, email, salt, verified) VALUES ('testuser', '4833', '1d8436e97ef95a7a6151f47b909167c77cfe1985ee5500efa8d46cfe825abc59', '*****@*****.**', '273eb4', '1')")) {
         throw new Exception("Database error: " . $database->error());
     }
     //the default json types likely need to be reworked
     if (!$database->query("INSERT INTO `addon_addons` (board, blid, name, filename, description, approved, versionInfo, authorInfo, reviewInfo) VALUES ('1', '4833', 'crapy adon', 'sciprt_hax.zip', 'bad addone pls delete', '1', '{}', '[]', '[]')")) {
         throw new Exception("Database error: " . $database->error());
     }
     StatManager::addStatsToAddon(1);
     if (!$database->query("INSERT INTO `addon_tags` (name, base_color, icon) VALUES ('dum tag', 'ff6600', 'brokenimage')")) {
         throw new Exception("Database error: " . $database->error());
     }
     if (!$database->query("INSERT INTO `addon_tagmap` (aid, tid) VALUES ('1', '1')")) {
         throw new Exception("Database error: " . $database->error());
     }
     if (!$database->query("INSERT INTO `group_groups` (leader, name, description, color, icon) VALUES ('4833', 'legion of dumies', 'a group for people who just want to be in a group', '00ff00', 'brokenimage')")) {
         throw new Exception("Database error: " . $database->error());
     }
     if (!$database->query("INSERT INTO `group_usermap` (gid, blid, administrator) VALUES ('1', '4833', '1')")) {
         throw new Exception("Database error: " . $database->error());
     }
     if (!$database->query("INSERT INTO `addon_comments` (blid, aid, comment) VALUES ('4833', '1', 'glorious addon comrade')")) {
         throw new Exception("Database error: " . $database->error());
     }
     if (!$database->query("INSERT INTO `addon_ratings` (blid, aid, rating) VALUES ('4833', '1', '1')")) {
         throw new Exception("Database error: " . $database->error());
     }
 }
 function collectHourStat($store = false)
 {
     $stats = new stdClass();
     $stats->time = gmdate("Y-m-d H:00:00", time());
     $stats->duration = "hour";
     //Addons!
     $addons = new stdClass();
     $addonArray = AddonManager::getAll();
     $addons->count = sizeof($addonArray);
     $addons->cumulative_downloads = array();
     foreach ($addonArray as $addon) {
         $downloadData = new stdClass();
         // TODO we need to go back. I dont want total downloads, I want individual
         //$downloadData->web =
         //$downloadData->ingame =
         //$downloadData->update =
         $addons->cumulative_downloads[$addon->getId()] = $downloadData;
     }
     $stats->addons = $addons;
     //Builds
     $builds = new stdClass();
     $buildArray = BuildManager::getAll();
     $builds->count = sizeof($buildArray);
     $builds->cumulative_downloads = array();
     foreach ($buildArray as $build) {
         // TODO this isn't done either...
         //$builds->cumulative_downloads[$build->getId()] = $build->getDownloads();
     }
     $stats->builds = $builds;
     //Master Server
     $stats->master = new stdClass();
     $master = CronStatManager::getMasterServerStats();
     $stats->master->users = $master[0];
     $stats->master->servers = $master[1];
     if ($store) {
         $database = new DatabaseManager();
         CronStatManager::verifyTable($database);
         $database->query("INSERT INTO `cron_statistics`  (`time` , `duration` , `data`) VALUES ('" . $stats->time . "',  'hour',  '" . $database->sanitize(json_encode($stats)) . "')");
     }
     return $stats;
 }
Example #9
0
<?php

/*$_GET['aid'] = $_REQUEST['id'];
$comments = include(dirname(__DIR__) . "/../../../private/json/getPageCommentsWithUsers.php");
echo json_encode($comments, JSON_PRETTY_PRINT);*/
require_once dirname(__DIR__) . "/../../../private/class/AddonManager.php";
require_once dirname(__DIR__) . "/../../../private/class/CommentManager.php";
$aid = $_REQUEST['id'];
if (!isset($_REQUEST['page'])) {
    $page = 0;
} else {
    $page = $_REQUEST['page'];
}
$addonObject = AddonManager::getFromID($aid);
$ret = array();
$start = $page * 10;
$comments = CommentManager::getCommentIDsFromAddon($addonObject->getId(), $start, 10);
foreach ($comments as $comid) {
    $comment = CommentManager::getFromId($comid);
    $commento = new stdClass();
    $commento->id = $comment->getId();
    $commento->author = UserLog::getCurrentUsername($comment->getBLID());
    $commento->authorblid = $comment->getBlid();
    $text = str_replace("\r\n", "<br>", $comment->getComment());
    $text = str_replace("\n", "<br>", $text);
    $commento->text = $text;
    $commento->date = date("F j, g:i a", strtotime($comment->getTimeStamp()));
    $ret[] = $commento;
}
echo json_encode($ret, JSON_PRETTY_PRINT);
Example #10
0
<?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";
}
Example #11
0
 public static function getNewAddons($count = 10)
 {
     $count += 0;
     $newestAddonIDs = apc_fetch('newestAddonIDs_' . $count, $success);
     if ($success === false) {
         $database = new DatabaseManager();
         AddonManager::verifyTable($database);
         $resource = $database->query("SELECT * FROM `addon_addons` ORDER BY `uploadDate` DESC LIMIT " . $database->sanitize($count));
         if (!$resource) {
             throw new Exception("Database error: " . $database->error());
         }
         $newestAddonIDs = [];
         while ($row = $resource->fetch_object()) {
             $newestAddonIDs[] = AddonManager::getFromID($row->id, $row)->getID();
         }
         $resource->close();
         apc_store('newestAddonIDs_' . $count, $newestAddonIDs, AddonManager::$searchCacheTime);
     }
     return $newestAddonIDs;
 }
Example #12
0
require_once dirname(dirname(__DIR__)) . '/private/class/SemVer.php';
header('Content-Type: text/json');
$db = new DatabaseManager();
if (!isset($_GET['mods'])) {
    $ret = new stdClass();
    $ret->status = "error";
    $ret->error = "mods field is blank";
    die(json_encode($ret, JSON_PRETTY_PRINT));
}
$addonIds = explode("-", $db->sanitize($_GET['mods']));
$repo = new stdClass();
$repo->name = "Blockland Glass Generated Repo";
$ao = 'add-ons';
$repo->{$ao} = array();
foreach ($addonIds as $id) {
    $obj = AddonManager::getFromId($id);
    $webUrl = "api.blocklandglass.com";
    $cdnUrl = "cdn.blocklandglass.com";
    $addon = new stdClass();
    $addon->name = $obj->getFilename();
    $addon->description = str_replace("\r\n", "<br>", $obj->getDescription());
    $channelId[1] = "stable";
    $channelId[2] = "unstable";
    $channelId[3] = "development";
    foreach ($channelId as $cid => $name) {
        $channel = new stdClass();
        $chanDat = $obj->getBranchInfo($cid);
        if ($chanDat !== false) {
            $channel->name = $channelId[$cid];
            $channel->version = $chanDat->version;
            if ($chanDat->restart !== null && $chanDat->restart !== false) {
Example #13
0
        } catch (Exception $e) {
            continue;
        }
    }
    echo json_encode($ret, JSON_PRETTY_PRINT);
    return;
}
if ($request == "comments") {
    $ret = array();
    if (!isset($_GET['page'])) {
        $page = 0;
    } else {
        $page = $_GET['page'];
    }
    $start = $page * 10;
    $end = $start + 10;
    $addonObject = AddonManager::getFromId($_GET['aid']);
    $comments = $addonObject->getCommentsRange($start, $end);
    foreach ($comments as $comment) {
        $commento = new stdClass();
        $commento->author = $comment->getAuthor()->getName();
        $commento->authorblid = $comment->getAuthor()->getBlid();
        $text = str_replace("\r\n", "<br>", $comment->getText());
        $text = str_replace("\n", "<br>", $text);
        $commento->text = $text;
        $commento->date = date("F j, g:i a", strtotime($comment->getTime()));
        $ret[] = $commento;
    }
    echo json_encode($ret, JSON_PRETTY_PRINT);
    return;
}
Example #14
0
	</div>
	<hr />
	<div style="text-align:center"><img src="/img/rtb_logo.gif"></div>
	<hr />
	<?php 
if ($addonData->glass_id == 0 || $addonData->approved != 1) {
    ?>
	<div style="text-align: center">
		<?php 
    $id = "RTB";
    $class = "red";
    echo '<a href="http://' . AWSFileManager::getBucket() . '/rtb/' . $addonData->filename . '" class="btn dlbtn ' . $class . '"><b>' . ucfirst($id) . '</b><span style="font-size:9pt"><br />Imported Archive</span></a>';
    ?>
	</div>
	<?php 
} else {
    $addon = AddonManager::getFromId($addonData->glass_id);
    ?>
		<p style="text-align:center">This add-on has been imported to <a href="/addons/addon.php?id=<?php 
    echo $addon->getId();
    ?>
"><?php 
    echo $addon->getName();
    ?>
</a></p>
	<?php 
}
?>
</div>
<?php 
include realpath(dirname(__DIR__) . "/../private/footer.php");
 public static function submitRating($aid, $blid, $rating)
 {
     if ($rating < 1) {
         $rating = 1;
     }
     if ($rating > 5) {
         $rating = 5;
     }
     $rating = ceil($rating);
     $db = new DatabaseManager();
     AddonManager::verifyTable($db);
     $res = $db->query($sq = "SELECT COUNT(*) FROM `addon_ratings` WHERE `blid`='" . $db->sanitize($blid) . "' AND `aid`='" . $db->sanitize($aid) . "'");
     $ret = $res->fetch_row();
     if (!isset($ret[0]) || $ret[0] == 0) {
         $res = $db->query($sq = "INSERT INTO `addon_ratings` (`blid`, `aid`, `rating`) VALUES (\n      '" . $db->sanitize($blid) . "',\n      '" . $db->sanitize($aid) . "',\n      '" . $db->sanitize($rating) . "')");
     } else {
         $db->update("addon_ratings", ["blid" => $blid, "aid" => $aid], ["rating" => $rating]);
     }
     //recalculate total
     $res = $db->query("SELECT * FROM `addon_ratings` WHERE `aid`='" . $db->sanitize($aid) . "'");
     $ratings = array();
     while ($obj = $res->fetch_object()) {
         $ratings[] = $obj->rating;
     }
     $avg = array_sum($ratings) / sizeof($ratings);
     $db->update("addon_addons", ["id" => $aid], ["rating" => $avg]);
     echo $db->error();
     return $avg;
 }
Example #16
0
 public static function verifyTable($database)
 {
     if ($database->debug()) {
         require_once realpath(dirname(__FILE__) . '/UserManager.php');
         require_once realpath(dirname(__FILE__) . '/AddonManager.php');
         UserManager::verifyTable($database);
         //we need users table to exist before we can create this one
         AddonManager::verifyTable($database);
         if (!$database->query("CREATE TABLE IF NOT EXISTS `build_builds` (\n\t\t\t\t`id` INT NOT NULL AUTO_INCREMENT,\n\t\t\t\t`blid` INT NOT NULL,\n\t\t\t\t`name` VARCHAR(60) NOT NULL,\n\t\t\t\t`filename` VARCHAR(60) NOT NULL,\n\t\t\t\t`bricks` INT NOT NULL DEFAULT 0,\n\t\t\t\t`description` TEXT NOT NULL,\n\t\t\t\tFOREIGN KEY (`blid`)\n\t\t\t\t\tREFERENCES users(`blid`)\n\t\t\t\t\tON UPDATE CASCADE\n\t\t\t\t\tON DELETE CASCADE,\n\t\t\t\tKEY (`name`),\n\t\t\t\tPRIMARY KEY (`id`))")) {
             throw new Exception("Error creating builds table: " . $database->error());
         }
         //to do: probably should move this to another class, maybe make dependencyManager more general
         if (!$database->query("CREATE TABLE IF NOT EXISTS `build_dependency` (\n\t\t\t\t`id` INT NOT NULL AUTO_INCREMENT,\n\t\t\t\t`bid` INT NOT NULL,\n\t\t\t\t`aid` INT NOT NULL,\n\t\t\t\tFOREIGN KEY (`bid`)\n\t\t\t\t\tREFERENCES build_builds(`id`)\n\t\t\t\t\tON UPDATE CASCADE\n\t\t\t\t\tON DELETE CASCADE,\n\t\t\t\tFOREIGN KEY (`aid`)\n\t\t\t\t\tREFERENCES addon_addons(`id`)\n\t\t\t\t\tON UPDATE CASCADE\n\t\t\t\t\tON DELETE CASCADE,\n\t\t\t\tPRIMARY KEY (`id`))")) {
             throw new Exception("unable to create build dependency table: " . $database->error());
         }
     }
 }
Example #17
0
<?php

session_start();
require_once realpath(dirname(__DIR__) . "/../private/class/AddonManager.php");
var_dump($_POST);
$userObject = UserManager::getCurrent();
if (isset($_POST['action']) && is_object($userObject)) {
    if ($_POST['action'] == "Approve") {
        // approve
        AddonManager::approveAddon($_POST['aid'], $_POST['board'], $userObject->getBLID());
        header('Location: /addons/addon.php?id=' . $_POST['aid']);
    } else {
        if ($_POST['action'] == "Reject") {
            // reject
        }
    }
}
Example #18
0
<?php

$_PAGETITLE = "Blockland Glass | Inspect Update";
include realpath(dirname(__DIR__) . "/../private/header.php");
include realpath(dirname(__DIR__) . "/../private/navigationbar.php");
require_once realpath(dirname(__DIR__) . "/../private/class/AddonManager.php");
require_once realpath(dirname(__DIR__) . "/../private/class/BoardManager.php");
require_once realpath(dirname(__DIR__) . "/../private/class/UserManager.php");
require_once realpath(dirname(__DIR__) . "/../private/class/UserLog.php");
$user = UserManager::getCurrent();
$review = false;
if (is_object($user)) {
    $review = $user->inGroup("Reviewer");
}
$addon = AddonManager::getFromID($_REQUEST['id']);
$manager = UserManager::getFromBLID($addon->getManagerBLID());
?>
<script type="text/javascript">
var addonId = <?php 
echo $addon->getId();
?>
;
var isReviewer = <?php 
echo $review ? 1 : 0;
?>
;
var root = null;

function openPopup(title, body) {
	$("#popupTitle").html(title);
	$("#popupBody").html(body);
Example #19
0
<?php

require_once dirname(__DIR__) . "/../../../private/class/AddonManager.php";
$by = $_REQUEST['by'];
$type = $_REQUEST['type'];
$query = $_REQUEST['query'];
if ($type == "addon") {
    if ($by == "name" || $by == "blid") {
        $res = AddonManager::searchAddons(array($by => $query));
    } else {
        $ret = new stdClass();
        $ret->status = "error";
        $ret->error = "invalid search type";
        die(json_encode($ret, JSON_PRETTY_PRINT));
    }
    $ret = new stdClass();
    $ret->results = array();
    //$ret->count = ?
    foreach ($res as $result) {
        $r = new stdClass();
        $addon = AddonManager::getFromId($result);
        $r->type = "addon";
        $r->title = $addon->getName();
        //$r->author
        $r->description = $addon->getDescription();
        $ret->results[] = $r;
    }
} else {
    //coming soon?
}
echo json_encode($ret, JSON_PRETTY_PRINT);
 public static function injectVersionInfo($aid, $branchId, $file)
 {
     $addonObject = AddonManager::getFromID($aid);
     $branchName[1] = "stable";
     $branchName[2] = "beta";
     if ($branchId == 1) {
         $v = $addonObject->getVersion();
     } else {
         $v = $addonObject->getBetaVersion();
     }
     $versionData = new stdClass();
     $versionData->version = $v;
     $versionData->channel = $branchName[$branchId];
     $mainRepo = new stdClass();
     $mainRepo->url = "http://api.blocklandglass.com/api/2/repository.php";
     $mainRepo->format = "JSON";
     $mainRepo->id = $aid;
     $backupRepo = new stdClass();
     $backupRepo->url = "http://" . AWSFileManager::getBucket() . "/repository.txt";
     $backupRepo->format = "JSON";
     $backupRepo->id = $aid;
     $versionData->repositories = [$mainRepo, $backupRepo];
     $workingDir = dirname(dirname(__DIR__)) . "/addons/upload/files/";
     $tempFile = $workingDir . "temp/" . $addonObject->getId() . "version.json";
     if (!is_dir($workingDir . "temp")) {
         mkdir($workingDir . "temp", 0777, true);
     }
     $res = file_put_contents($tempFile, json_encode($versionData));
     if ($res === false) {
         return false;
     }
     $zip = new ZipArchive();
     $res = $zip->open($file);
     if ($res === TRUE) {
         $zip->addFile($tempFile, 'version.json');
         $zip->close();
         unlink($tempFile);
     } else {
         return false;
     }
 }
Example #21
0
    //to do: aws stuff instead of this
    move_uploaded_file($tempPath, $tempLocation);
    chmod($tempLocation, 0777);
    $type = $_POST['type'];
    //these should probably return an array with something like
    //	'ok' => true/false
    //	'message' => descriptive message
    if ($type == 1) {
        $valid = AddonFileHandler::validateAddon($tempLocation);
    } else {
        if ($type == 2) {
            $valid = AddonFileHandler::validatePrint($tempLocation);
        } else {
            if ($type == 3) {
                $valid = AddonFileHandler::validateColorset($tempLocation);
            } else {
                $valid = false;
            }
        }
    }
    if (!$valid) {
        $response = ["message" => "Your add-on is missing required files"];
        return $response;
    } else {
        //repeated but slightly different path from above?
        $tempLocation = realpath(dirname(__DIR__) . "/../addons/upload/files/" . $filename);
        $response = AddonManager::uploadNewAddon($user, $uploadAddonName, $type, $tempLocation, $uploadFileName, $uploadDescription);
        return $response;
    }
}
return $response;
Example #22
0
 public static function verifyTable($database)
 {
     if ($database->debug()) {
         UserManager::verifyTable($database);
         AddonManager::verifyTable($database);
         TagManager::verifyTable($database);
         BuildManager::verifyTable($database);
         GroupManager::verifyTable($database);
         if (!$database->query("CREATE TABLE IF NOT EXISTS `addon_stats` (\n\t\t\t\t`aid` INT NOT NULL,\n\t\t\t\t`rating` FLOAT,\n\t\t\t\t`totalDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t\t`iterationDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t\t`webDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t\t`ingameDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t\t`updateDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t\tKEY (`totalDownloads`),\n\t\t\t\tKEY (`iterationDownloads`),\n\t\t\t\tFOREIGN KEY (`aid`)\n\t\t\t\t\tREFERENCES addon_addons(`id`)\n\t\t\t\t\tON UPDATE CASCADE\n\t\t\t\t\tON DELETE CASCADE)")) {
             throw new Exception("Failed to create addon stats table: " . $database->error());
         }
         if (!$database->query("CREATE TABLE IF NOT EXISTS `build_stats` (\n\t\t\t\t`bid` INT NOT NULL,\n\t\t\t\t`rating` FLOAT,\n\t\t\t\t`totalDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t\t`iterationDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t\tKEY (`totalDownloads`),\n\t\t\t\tKEY (`iterationDownloads`),\n\t\t\t\tFOREIGN KEY (`bid`)\n\t\t\t\t\tREFERENCES build_builds(`id`)\n\t\t\t\t\tON UPDATE CASCADE\n\t\t\t\t\tON DELETE CASCADE)")) {
             throw new Exception("Failed to create build stats table: " . $database->error());
         }
         if (!$database->query("CREATE TABLE IF NOT EXISTS `tag_stats` (\n\t\t\t\t`tid` INT NOT NULL,\n\t\t\t\t`totalDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t\t`iterationDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t\tKEY (`totalDownloads`),\n\t\t\t\tKEY (`iterationDownloads`),\n\t\t\t\tFOREIGN KEY (`tid`)\n\t\t\t\t\tREFERENCES addon_tags(`id`)\n\t\t\t\t\tON UPDATE CASCADE\n\t\t\t\t\tON DELETE CASCADE)")) {
             throw new Exception("Failed to create tag stats table: " . $database->error());
         }
         //includes a lot of foreign keys, not sure if it is a good idea to include them all
         if (!$database->query("CREATE TABLE IF NOT EXISTS `statistics` (\n\t\t\t\t`id` INT NOT NULL AUTO_INCREMENT,\n\t\t\t\t`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\n\t\t\t\t`users` INT NOT NULL DEFAULT 0,\n\t\t\t\t`addons` INT NOT NULL DEFAULT 0,\n\t\t\t\t`downloads` INT NOT NULL DEFAULT 0,\n\t\t\t\t`groups` INT NOT NULL DEFAULT 0,\n\t\t\t\t`comments` INT NOT NULL DEFAULT 0,\n\t\t\t\t`builds` INT NOT NULL DEFAULT 0,\n\t\t\t\t`tags` INT NOT NULL DEFAULT 0,\n\t\t\t\t`addon0` INT NOT NULL,\n\t\t\t\t`addon1` INT NOT NULL,\n\t\t\t\t`addon2` INT NOT NULL,\n\t\t\t\t`addon3` INT NOT NULL,\n\t\t\t\t`addon4` INT NOT NULL,\n\t\t\t\t`addon5` INT NOT NULL,\n\t\t\t\t`addon6` INT NOT NULL,\n\t\t\t\t`addon7` INT NOT NULL,\n\t\t\t\t`addon8` INT NOT NULL,\n\t\t\t\t`addon9` INT NOT NULL,\n\t\t\t\t`addonDownloads0` INT NOT NULL,\n\t\t\t\t`addonDownloads1` INT NOT NULL,\n\t\t\t\t`addonDownloads2` INT NOT NULL,\n\t\t\t\t`addonDownloads3` INT NOT NULL,\n\t\t\t\t`addonDownloads4` INT NOT NULL,\n\t\t\t\t`addonDownloads5` INT NOT NULL,\n\t\t\t\t`addonDownloads6` INT NOT NULL,\n\t\t\t\t`addonDownloads7` INT NOT NULL,\n\t\t\t\t`addonDownloads8` INT NOT NULL,\n\t\t\t\t`addonDownloads9` INT NOT NULL,\n\t\t\t\t`tag0` INT NOT NULL,\n\t\t\t\t`tag1` INT NOT NULL,\n\t\t\t\t`tag2` INT NOT NULL,\n\t\t\t\t`tag3` INT NOT NULL,\n\t\t\t\t`tag4` INT NOT NULL,\n\t\t\t\t`tagDownloads0` INT NOT NULL,\n\t\t\t\t`tagDownloads1` INT NOT NULL,\n\t\t\t\t`tagDownloads2` INT NOT NULL,\n\t\t\t\t`tagDownloads3` INT NOT NULL,\n\t\t\t\t`tagDownloads4` INT NOT NULL,\n\t\t\t\t`build0` INT NOT NULL,\n\t\t\t\t`build1` INT NOT NULL,\n\t\t\t\t`build2` INT NOT NULL,\n\t\t\t\t`buildDownloads0` INT NOT NULL,\n\t\t\t\t`buildDownloads1` INT NOT NULL,\n\t\t\t\t`buildDownloads2` INT NOT NULL,\n\t\t\t\tKEY (`date`),\n\t\t\t\tPRIMARY KEY (`id`))")) {
             throw new Exception("Failed to create stat history table: " . $database->error());
         }
     }
 }
Example #23
0
?>
	</div>
	<table class="boardtable">
	<tbody>
		<tr class="boardheader">
			<td>Name</td>
			<td>Author(s)</td>
			<td>Rating</td>
			<td>Downloads</td>
		</tr>
<?php 
//$addons = $boardObject->getAddons(($page-1)*10, 10);
$addonIDs = AddonManager::getFromBoardID($boardObject->getID(), ($page - 1) * 10, 10);
//$addons = BoardManager::getAddonsFromBoardID($boardObject->getID(), ($page-1)*10, 10);
foreach ($addonIDs as $aid) {
    $addon = AddonManager::getFromID($aid);
    ?>
		<tr>
		<td style="width: 33%"><a href="addon.php?id=<?php 
    echo $addon->getID();
    ?>
"><?php 
    echo $addon->getName();
    ?>
</a></td>
		<td style="font-size: 11pt"><?php 
    $authors = $addon->getAuthorInfo();
    //This system should probably be rethought
    if (sizeof($authors) == 1) {
        //$uo = new UserHandler();
        //$uo->initFromId($authors[0]->id);
Example #24
0
<?php

session_start();
require_once realpath(dirname(__DIR__) . "/../private/class/AddonManager.php");
var_dump($_POST);
$userObject = UserManager::getCurrent();
if (!$userObject || !$userObject->inGroup("Reviewer")) {
    header('Location: /addons');
    return;
}
if (isset($_POST['action']) && is_object($userObject)) {
    if ($_POST['action'] == "Approve") {
        // approve
        AddonManager::approveAddon($_POST['aid'], $_POST['board'], $userObject->getBLID());
        header('Location: list.php');
    } else {
        if ($_POST['action'] == "Reject") {
            AddonManager::rejectAddon($_POST['aid'], $_POST['reason'], $userObject->getBLID());
            header('Location: list.php');
        }
    }
}
<?php

require_once realpath(dirname(__DIR__) . "/private/class/AddonManager.php");
$uo = UserManager::getCurrent();
if (isset($_REQUEST['aid']) && isset($_REQUEST['rating'])) {
    $aid = $_REQUEST['aid'];
    $rating = $_REQUEST['rating'];
    $blid = $uo->getBLID();
    $newAvg = AddonManager::submitRating($aid, $blid, $rating);
    echo $newAvg;
}
Example #26
0
 public static function verifyTable($database)
 {
     if ($database->debug()) {
         AddonManager::verifyTable($database);
         //to do: change addon_tags to something more general so build and stuff can be tagged
         if (!$database->query("CREATE TABLE IF NOT EXISTS `addon_tags` (\n\t\t\t\t`id` INT NOT NULL AUTO_INCREMENT,\n\t\t\t\t`name` varchar(16) NOT NULL,\n\t\t\t\t`base_color` varchar(6) NOT NULL,\n\t\t\t\t`icon` text NOT NULL,\n\t\t\t\t`important` TINYINT NOT NULL DEFAULT 0,\n\t\t\t\tKEY (`name`),\n\t\t\t\tPRIMARY KEY (`id`))")) {
             throw new Exception("Error creating tag table: " . $database->error());
         }
         //this table might not need a primary key
         if (!$database->query("CREATE TABLE IF NOT EXISTS `addon_tagmap` (\n\t\t\t\t`id` INT NOT NULL AUTO_INCREMENT,\n\t\t\t\t`aid` INT NOT NULL,\n\t\t\t\t`tid` INT NOT NULL,\n\t\t\t\tFOREIGN KEY (`aid`)\n\t\t\t\t\tREFERENCES addon_addons(id)\n\t\t\t\t\tON UPDATE CASCADE\n\t\t\t\t\tON DELETE CASCADE,\n\t\t\t\tFOREIGN KEY (`tid`)\n\t\t\t\t\tREFERENCES addon_tags(id)\n\t\t\t\t\tON UPDATE CASCADE\n\t\t\t\t\tON DELETE CASCADE,\n\t\t\t\tPRIMARY KEY (`id`))")) {
             throw new Exception("Error creating tagmap table: " . $database->error());
         }
     }
 }
 public static function verifyTable($database)
 {
     UserManager::verifyTable($database);
     AddonManager::verifyTable($database);
     if (!$database->query("CREATE TABLE IF NOT EXISTS `addon_stats` (\n\t\t\t`aid` INT NOT NULL,\n\t\t\t`rating` FLOAT,\n\n\t\t\t`totalDownloads` INT NOT NULL DEFAULT 0,\n\n\t\t\t`iterationDownloads` INT NOT NULL DEFAULT 0,\n\n\t\t\t`webDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t`ingameDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t`updateDownloads` INT NOT NULL DEFAULT 0,\n\n\t\t\tKEY (`totalDownloads`),\n\t\t\tFOREIGN KEY (`aid`)\n\t\t\t\tREFERENCES addon_addons(`id`)\n\t\t\t\tON UPDATE CASCADE\n\t\t\t\tON DELETE CASCADE)")) {
         throw new Exception("Failed to create addon stats table: " . $database->error());
     }
     if (!$database->query("CREATE TABLE IF NOT EXISTS `addon_stats_hist` (\n\t\t\t`id` INT NOT NULL AUTO_INCREMENT,\n\t\t\t`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\n\t\t\t`aid` INT NOT NULL DEFAULT 0,\n\n\t\t\t`webDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t`ingameDownloads` INT NOT NULL DEFAULT 0,\n\t\t\t`updateDownloads` INT NOT NULL DEFAULT 0,\n\t\t\tFOREIGN KEY (`aid`)\n\t\t\t\tREFERENCES addon_addons(`id`)\n\t\t\t\tON UPDATE CASCADE\n\t\t\t\tON DELETE CASCADE,\n\t\t\tPRIMARY KEY (`id`))")) {
         throw new Exception("Failed to create addon stat history table: " . $database->error());
     }
 }
Example #28
0
<?php

//collects together all the information needed by /addons/addon.php
if (!isset($_GET['id'])) {
    return false;
}
require_once realpath(dirname(__DIR__) . "/class/AddonManager.php");
require_once realpath(dirname(__DIR__) . "/class/UserManager.php");
require_once realpath(dirname(__DIR__) . "/class/TagManager.php");
require_once realpath(dirname(__DIR__) . "/class/DependencyManager.php");
$addon = AddonManager::getFromID($_GET['id'] + 0);
if ($addon === false) {
    return false;
}
$user = UserManager::getFromBLID($addon->blid);
$tagIDs = $addon->getTags();
$dependencyIDs = $addon->getDependencies();
$tags = [];
$dependencies = [];
foreach ($tagIDS as $tid) {
    $tags[] = TagManager::getFromID($tid);
}
foreach ($dependencyIDs as $did) {
    $dependencies[] = DependencyManager::getFromID($did);
}
//to do: replace "downloads" with "stats"
$response = ["addon" => $addon, "user" => $user, "tags" => $tags, "dependencies" => $dependencies, "downloads" => $addon->getTotalDownloads()];
return $response;
 function getCount()
 {
     require_once dirname(__FILE__) . "/AddonManager.php";
     return AddonManager::getCountFromBoard($this->id);
 }
Example #30
0
    updates: [],
    date: 138247923
  },{
    type: "summary",
    popular: [],
    statistics: [],
    date: 138247923
  },{
    type: "message",
    text: "asdf",
    date: 138247923
  }
]
*/
$recent = AddonManager::getRecentAddons();
$recentUpdates = AddonManager::getRecentUpdates();
$dlg = new stdClass();
$dlg->type = "recent";
$ar = array();
foreach ($recent as $ao) {
    if ($ao->getBoard() == 10) {
        // bargain bin
        continue;
    }
    $board[1] = "Client Mods";
    $board[2] = "Server Mods";
    $board[3] = "Bricks";
    $board[4] = "Cosmetics";
    $board[5] = "Gamemodes";
    $board[6] = "Tools";
    $board[7] = "Weapons";