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;
 }
Esempio n. 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());
 }
 public static function removeDependencyByAddonID($targetID, $requiredID)
 {
     $target = AddonManager::getFromID($targetID);
     if ($target === false) {
         return false;
     }
     $required = AddonManager::getFromID($requiredID);
     if ($required === false) {
         return false;
     }
     DependencyManager::removeDependencyByAddon($target, $required);
 }
 public static function addStatsToAddon($aid)
 {
     $database = new DatabaseManager();
     StatManager::verifyTable($database);
     $addon = AddonManager::getFromID($aid);
     if (!$addon->getApproved()) {
         return;
         //only create for approved add-ons
     }
     if (!$database->query("INSERT INTO `addon_stats` (`aid`) VALUES ('" . $database->sanitize($aid) . "')")) {
         throw new Exception("Database Error: " . $database->error());
     }
 }
Esempio n. 5
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);
Esempio n. 6
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);
Esempio n. 7
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);
Esempio n. 8
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;
 }
 public static function getNewAddons($count = 10)
 {
     $count += 0;
     $database = new DatabaseManager();
     AddonManager::verifyTable($database);
     $resource = $database->query("SELECT * FROM `addon_addons` WHERE `deleted`=0 AND `approved`=1 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();
     return $newestAddonIDs;
 }
Esempio n. 10
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;
Esempio n. 11
0
 public static function removeTagIDFromAddonID($tid, $aid)
 {
     $addon = AddonManager::getFromID($aid);
     if ($addon === false) {
         return false;
     }
     $tag = TagManager::getFromID($tid);
     if ($tag === false) {
         return false;
     }
     return TagManager::removeTagFromAddon($tag, $addon);
 }
Esempio n. 12
0
 public static function downloadAddonID($aid)
 {
     $addon = AddonManager::getFromID($aid);
     if (!$addon) {
         return false;
     }
     return downloadAddon($addon);
 }
 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;
     }
 }
<?php

session_start();
require_once realpath(dirname(__DIR__) . "/../private/class/AddonManager.php");
var_dump($_POST);
$addon = AddonManager::getFromID($_POST['aid']);
$userObject = UserManager::getCurrent();
$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
Esempio n. 15
0
 public static function injectVersionInfo($aid, $branchId, $file)
 {
     $addonObject = AddonManager::getFromID($aid);
     /*
     {
             "version": "1.0.0",
             "channel": "stable",
             "repositories": [
                 {
                     "url": "http://blocklandglass.com/api/support_updater/repo.php",
                     "format": "JSON",
                     "id": "11"
                 },
                 {
                     "url": "http://cdn.blocklandglass.com/repo.txt",
                     "format": "JSON",
                     "id": "11"
                 }
             ]
         }
     */
     $branchName[1] = "stable";
     $branchName[2] = "unstable";
     $branchName[3] = "development";
     $versionInfo = $addonObject->getVersionInfo();
     $bn = $branchName[$branchId];
     $branch = $versionInfo->{$bn};
     $versionData = new stdClass();
     $versionData->version = $branch->version;
     $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://cdn.blocklandglass.com/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;
     }
 }
Esempio n. 16
0
    $debug = $_REQUEST['debug'];
}
if ($type == "addon_update" || $type == "addon_download") {
    $id = $_REQUEST['id'];
    if (isset($_REQUEST['branch'])) {
        $branch = $_REQUEST['branch'];
    } else {
        $branch = 1;
    }
    $head = 'Location: http://cdn.blocklandglass.com/addons/' . $id . '_' . $branch;
    if ($debug) {
        echo $head;
    } else {
        header($head);
    }
    $ao = AddonManager::getFromID($id);
    /*
    //ideal code? need to review how stats work and are kept
    //(object, type[0=web, 1=ingame, 2=update], increment)
    AddonManager::incrementDailyDownloads($ao, 1 ,1);
    AddonManager::incrementWeeklyDownloads($ao, 1, 1);
    AddonManager::incrementTotalDownloads($ao, 1, 1);
    */
} else {
    if ($type == "build") {
        $id = $_REQUEST['id'];
        $head = 'Location: http://cdn.blocklandglass.com/build/' . $id;
        if ($debug) {
            echo $head;
        } else {
            header($head);