public function __construct($request)
 {
     header("Access-Control-Allow-Origin: *");
     header("Access-Control-Allow-Methods: *");
     header("Content-Type: application/json");
     $this->METHOD = $_SERVER['REQUEST_METHOD'];
     if ($this->METHOD == 'POST' && array_key_exists('HTTP_X_HTTP_METHOD', $_SERVER)) {
         if ($_SERVER['HTTP_X_HTTP_METHOD'] == 'DELETE') {
             $this->METHOD = 'DELETE';
         } else {
             if ($_SERVER['HTTP_X_HTTP_METHOD'] == 'PUT') {
                 $this->METHOD = 'PUT';
             } else {
                 throw new Exception("Unexpected Header");
             }
         }
     }
     switch ($this->METHOD) {
         case 'DELETE':
         case 'POST':
             $this->TYPE = buckys_escape_query_string($_POST['TYPE']);
             $this->ACTION = buckys_escape_query_string($_POST['ACTION']);
             break;
         case 'PUT':
         case 'GET':
             $this->TYPE = buckys_escape_query_string($_GET['TYPE']);
             $this->ACTION = buckys_escape_query_string($_GET['ACTION']);
             break;
         default:
             $this->_response('Invalid Method', STATUS_CODE_INVALID_METHOD);
     }
 }
 function getCategoriesAction()
 {
     $request = $_GET;
     $videoClass = new BuckysVideo();
     $token = isset($request['TOKEN']) ? trim($request['TOKEN']) : null;
     if (!$token) {
         return ['STATUS_CODE' => STATUS_CODE_BAD_REQUEST, 'DATA' => ['STATUS' => 'ERROR', 'ERROR' => 'Api token should not be blank']];
     }
     if ($token != THENEWBOSTON_PUBLIC_API_KEY) {
         return ['STATUS_CODE' => STATUS_CODE_UNAUTHORIZED, 'DATA' => ['STATUS' => 'ERROR', 'ERROR' => 'Api token is not valid.']];
     }
     $subjectID = isset($request['subject']) ? buckys_escape_query_string($request['subject']) : 0;
     $videoCategories = $videoClass->getVideoCategories($subjectID);
     return ['STATUS_CODE' => STATUS_CODE_OK, "DATA" => $videoCategories];
 }
/**
 * Save Tracking number
 */
function saveTrackingNumber()
{
    $userID = buckys_is_logged_in();
    if (!$userID) {
        //You should be logged in
        return;
    } else {
        $tradeIns = new BuckysTrade();
        $tradeID = buckys_escape_query_integer($_REQUEST['tradeID']);
        $trackingNo = buckys_escape_query_string($_REQUEST['trackingNo']);
        $tradeData = $tradeIns->getTradeByID($tradeID);
        if (empty($tradeData) || $tradeData['sellerID'] != $userID && $tradeData['buyerID'] != $userID) {
            //error, no permission
            echo json_encode(['success' => 0, 'msg' => "You do not have permission."]);
        } else {
            if ($tradeData['sellerID'] == $userID) {
                $tradeIns->updateTrade($tradeID, ['sellerTrackingNo' => $trackingNo]);
            } else {
                $tradeIns->updateTrade($tradeID, ['buyerTrackingNo' => $trackingNo]);
            }
            echo json_encode(['success' => 1, 'msg' => "You have saved tracking number successfully."]);
        }
    }
}
<?php

require dirname(__FILE__) . '/includes/bootstrap.php';
buckys_enqueue_stylesheet('search.css');
buckys_enqueue_javascript('search.js');
$searchIns = new BuckysSearch();
$TNB_GLOBALS['content'] = 'search';
$TNB_GLOBALS['headerType'] = '';
$paramQueryStr = buckys_escape_query_string($_REQUEST['q']);
$paramType = buckys_escape_query_string($_REQUEST['type']);
$paramSort = buckys_escape_query_string($_REQUEST['sort']);
$view = [];
//Create Base URL for pagination of search page
$view['page_base_url'] = buckys_pp_search_url($paramQueryStr, $paramType, $paramSort, true);
$page = isset($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 1;
$totalCount = $searchIns->getNumberOfSearchResult($paramQueryStr, $paramType);
$pagination = new Pagination($totalCount, BuckysSearch::SEARCH_RESULT_PER_PAGE, $page);
$page = $pagination->getCurrentPage();
//Get Friends
$view['search_result'] = $searchIns->search($paramQueryStr, $paramType, $paramSort, $page);
//Display
$TNB_GLOBALS['searchParamPP']['q'] = $paramQueryStr;
$TNB_GLOBALS['searchParamPP']['type'] = $paramType;
$TNB_GLOBALS['searchParamPP']['sort'] = $paramSort;
if ($paramQueryStr != '') {
    $TNB_GLOBALS['title'] = $paramQueryStr . ' - ' . TNB_SITE_NAME . ' Search';
} else {
    $TNB_GLOBALS['title'] = TNB_SITE_NAME . ' Search';
}
require DIR_FS_TEMPLATE . $TNB_GLOBALS['template'] . "/" . $TNB_GLOBALS['layout'] . ".php";
            $forumTopicIns->moveTopic($topicID, $catID);
            buckys_redirect('/forum/topic.php?id=' . $topicID, MSG_TOPIC_MOVED_SUCCESSFULLY);
        }
    }
}
$topicID = isset($_GET['id']) ? buckys_escape_query_integer($_GET['id']) : 0;
$topic = BuckysForumTopic::getTopic($topicID);
if (!$topic) {
    buckys_redirect('/forum');
}
$category = BuckysForumCategory::getCategory($topic['categoryID']);
//If the topic is not published(pending or suspended), only forum moderator and administrator can see this
if ($topic['status'] != 'publish' && !buckys_is_moderator() && $TNB_GLOBALS['user']['userID'] != $topic['creatorID']) {
    buckys_redirect('/forum');
}
$orderBy = isset($_GET['orderby']) ? buckys_escape_query_string($_GET['orderby']) : 'oldest';
//Getting Replies
$page = isset($_GET['page']) ? buckys_escape_query_integer($_GET['page']) : 1;
$total = BuckysForumReply::getTotalNumOfReplies($topic['topicID'], 'publish');
$pagination = new Pagination($total, BuckysForumReply::$COUNT_PER_PAGE, $page);
$page = $pagination->getCurrentPage();
$replies = BuckysForumReply::getReplies($topic['topicID'], 'publish', $page, $orderBy);
$hierarchical = BuckysForumCategory::getCategoryHierarchical($topic['categoryID']);
//Mark Forum Notifications to read
if (buckys_check_user_acl(USER_ACL_REGISTERED)) {
    BuckysForumNotification::makeNotificationsToRead($TNB_GLOBALS['user']['userID'], null, $topic['topicID']);
}
if (buckys_check_user_acl(USER_ACL_MODERATOR)) {
    $reportID = BuckysReport::isReported($topicID, 'topic');
    $categories = BuckysForumCategory::getAllCategories();
}
<?php

require dirname(dirname(__FILE__)) . '/includes/bootstrap.php';
//Getting Current User ID
if (!buckys_check_user_acl(USER_ACL_REGISTERED)) {
    buckys_redirect('/register.php');
}
$classAds = new BuckysAds();
$userID = buckys_is_logged_in();
$page = isset($_GET['page']) ? buckys_escape_query_integer($_GET['page']) : 1;
$status = isset($_GET['status']) ? buckys_escape_query_string($_GET['status']) : 'active';
$activeAdsCount = $classAds->getUserAdsCount($userID, 'active');
$pendingAdsCount = $classAds->getUserAdsCount($userID, 'pending');
$expiredAdsCount = $classAds->getUserAdsCount($userID, 'expired');
switch ($status) {
    case 'active':
        $totalCount = $activeAdsCount;
        break;
    case 'pending':
        $totalCount = $pendingAdsCount;
        break;
    case 'expired':
        $totalCount = $expiredAdsCount;
        break;
}
$pagination = new Pagination($totalCount, BuckysAds::$COUNT_PER_PAGE, $page);
$page = $pagination->getCurrentPage();
$userAds = $classAds->getUserAds($userID, $status, $page, BuckysAds::$COUNT_PER_PAGE);
buckys_enqueue_stylesheet('publisher.css');
$TNB_GLOBALS['headerType'] = "ads";
$TNB_GLOBALS['content'] = "ads/advertiser";
<?php

require dirname(dirname(__FILE__)) . '/includes/bootstrap.php';
$categoryID = null;
if (isset($_REQUEST['id'])) {
    $categoryID = buckys_escape_query_integer($_REQUEST['id']);
    $category = BuckysForumCategory::getCategory($_REQUEST['id']);
}
$keyword = isset($_REQUEST['s']) ? buckys_escape_query_string($_GET['s']) : '';
$orderBy = isset($_GET['orderby']) ? buckys_escape_query_string($_GET['orderby']) : 'popular';
switch ($orderBy) {
    case 'recent':
        $orderByStr = ' c.createdDate DESC ';
        break;
    case 'popular':
    default:
        $orderByStr = ' c.followers DESC ';
        break;
}
$page = isset($_GET['page']) ? buckys_escape_query_integer($_GET['page']) : 1;
$results = BuckysForumCategory::searchCategories($keyword, $page, $orderByStr, BuckysForumCategory::$COUNT_PER_PAGE);
$pagination = new Pagination($results['total'], BuckysForumCategory::$COUNT_PER_PAGE, $page);
$page = $pagination->getCurrentPage();
buckys_enqueue_stylesheet('sceditor/themes/default.css');
buckys_enqueue_stylesheet('forum.css');
buckys_enqueue_stylesheet('publisher.css');
buckys_enqueue_stylesheet('uploadify.css');
buckys_enqueue_javascript('sceditor/jquery.sceditor.bbcode.js');
buckys_enqueue_javascript('uploadify/jquery.uploadify.js');
$view['action_type'] = 'create';
$TNB_GLOBALS['headerType'] = 'forum';
<?php

require dirname(dirname(__FILE__)) . '/includes/bootstrap.php';
if (!($userID = buckys_is_logged_in())) {
    buckys_redirect('/index.php', MSG_NOT_LOGGED_IN_USER, MSG_TYPE_ERROR);
}
buckys_enqueue_stylesheet('trade.css');
buckys_enqueue_javascript('trade.js');
$TNB_GLOBALS['content'] = 'trade/traded';
$TNB_GLOBALS['headerType'] = 'trade';
$paramCurrentPage = buckys_escape_query_integer($_REQUEST['page']);
$paramType = buckys_escape_query_string($_REQUEST['type']);
$view = [];
$baseURL = '/trade/traded.php';
if ($paramType == 'history') {
    $baseURL .= '?type=' . $paramType;
} else {
    $paramType = 'completed';
}
//Get offer_received info
$tradeIns = new BuckysTrade();
$countryIns = new BuckysCountry();
$view['trades'] = $tradeIns->getTradesByUserID($userID, $paramType);
$view['trades'] = fn_buckys_pagination($view['trades'], $baseURL, $paramCurrentPage, COMMON_ROWS_PER_PAGE);
$view['myID'] = $userID;
switch ($paramType) {
    case 'history':
        $view['pagetitle'] = 'My Trade History';
        break;
    case 'completed':
    default:
<?php

require dirname(dirname(__FILE__)) . '/includes/bootstrap.php';
buckys_enqueue_stylesheet('shop.css');
buckys_enqueue_javascript('shop.js');
$TNB_GLOBALS['content'] = 'shop/search';
$TNB_GLOBALS['headerType'] = 'shop';
$paramCurrentPage = buckys_escape_query_string($_REQUEST['page']);
$paramQueryStr = buckys_escape_query_string($_REQUEST['q'], true);
$paramCategory = buckys_escape_query_string($_REQUEST['cat'], true);
$paramLocation = buckys_escape_query_string($_REQUEST['loc'], true);
$paramSort = buckys_escape_query_string($_REQUEST['sort']);
$paramUserID = buckys_escape_query_string($_REQUEST['user']);
$view = [];
//Get available products
$shopProductIns = new BuckysShopProduct();
$countryIns = new BuckysCountry();
$productResultList = $shopProductIns->search($paramQueryStr, $paramCategory, $paramLocation, $paramUserID);
$productResultList = $shopProductIns->sortProducts($productResultList, $paramSort);
$view['categoryList'] = $shopProductIns->countProductInCategory($productResultList);
//Create Base URL for pagination of search page
$paginationUrlBase = buckys_shop_search_url($paramQueryStr, $paramCategory, $paramLocation, $paramSort, $paramUserID);
//Display
$view['products'] = fn_buckys_pagination($productResultList, $paginationUrlBase, $paramCurrentPage, COMMON_ROWS_PER_PAGE);
$view['param']['q'] = $paramQueryStr;
$view['param']['cat'] = $paramCategory;
$view['param']['loc'] = $paramLocation;
$view['param']['sort'] = $paramSort;
$view['param']['user'] = $paramUserID;
$TNB_GLOBALS['shopSearchParam'] = $view['param'];
$view['countryList'] = $countryIns->getCountryList();
<?php

/**
 * Show All Videos
 */
require dirname(__FILE__) . '/includes/bootstrap.php';
$videoClass = new BuckysVideo();
$subjectID = isset($_GET['subject']) ? buckys_escape_query_string($_GET['subject']) : 0;
$categoryID = isset($_GET['cat']) ? buckys_escape_query_integer($_GET['cat']) : null;
$videoID = isset($_GET['video']) ? buckys_escape_query_integer($_GET['video']) : null;
if ($videoID) {
    $video = $videoClass->getVideo($videoID);
    if (!$video) {
        buckys_redirect("/videos.php", MSG_INVALID_REQUEST, MSG_TYPE_ERROR);
        exit;
    }
    $categoryID = $video['categoryID'];
}
if ($categoryID) {
    $category = $videoClass->getCategory($categoryID);
    $categoryVideos = $videoClass->getVideos($categoryID);
    if (!$videoID) {
        $video = $categoryVideos[0];
    }
    //Getting Forum Recent Posts
    $topics = BuckysForumTopic::getTopics(1, 'publish', $category['forumCategoryID'], 'lastReplyDate DESC', 10);
    $forumCategory = BuckysForumCategory::getCategory($category['forumCategoryID']);
    //Get Prev, Next Video
    $prevVideoId = null;
    $nextVideoId = null;
    foreach ($categoryVideos as $idx => $v) {
<?php

require dirname(dirname(__FILE__)) . '/includes/bootstrap.php';
buckys_enqueue_stylesheet('trade.css');
buckys_enqueue_javascript('trade.js');
$TNB_GLOBALS['content'] = 'trade/search';
$TNB_GLOBALS['headerType'] = 'trade';
$paramCurrentPage = buckys_escape_query_integer(isset($_REQUEST['page']) ? $_REQUEST['page'] : 1);
$paramQueryStr = buckys_escape_query_string(isset($_REQUEST['q']) ? $_REQUEST['q'] : '');
$paramCategory = buckys_escape_query_string(isset($_REQUEST['cat']) ? $_REQUEST['cat'] : null);
$paramLocation = buckys_escape_query_string(isset($_REQUEST['loc']) ? $_REQUEST['loc'] : null);
$paramSort = buckys_escape_query_string(isset($_REQUEST['sort']) ? $_REQUEST['sort'] : null);
$paramUserID = buckys_escape_query_integer(isset($_REQUEST['user']) ? $_REQUEST['user'] : null);
$view = [];
//Get available items
$tradeItemIns = new BuckysTradeItem();
$countryIns = new BuckysCountry();
$tradeCatIns = new BuckysTradeCategory();
$itemResultList = $tradeItemIns->search($paramQueryStr, $paramCategory, $paramLocation, $paramUserID);
$itemResultList = $tradeItemIns->sortItems($itemResultList, $paramSort);
$view['categoryList'] = $tradeItemIns->countItemInCategory($itemResultList);
//Create Base URL for pagination of search page
$paginationUrlBase = buckys_trade_search_url($paramQueryStr, $paramCategory, $paramLocation, $paramSort, $paramUserID);
//Display
$view['items'] = fn_buckys_pagination($itemResultList, $paginationUrlBase, $paramCurrentPage, COMMON_ROWS_PER_PAGE);
$view['param']['q'] = $paramQueryStr;
$view['param']['cat'] = $paramCategory;
$view['param']['loc'] = $paramLocation;
$view['param']['sort'] = $paramSort;
$view['param']['user'] = $paramUserID;
$TNB_GLOBALS['tradeSearchParam'] = $view['param'];