<?php require_once 'engine/init.php'; include 'layout/overall/header.php'; $otservers_eu_voting = $config['otservers_eu_voting']; if ($otservers_eu_voting['enabled']) { if (user_logged_in()) { $isRewardRequest = isset($_GET['action']) && $_GET['action'] === 'reward'; if (!$isRewardRequest) { $result = vote($user_data['id'], $otservers_eu_voting); if ($result === false) { echo '<p>Something went wrong! Could not make a vote request.</p>'; } else { header('Location: ' . $result['voteLink']); die; } } else { $result = checkHasVoted($user_data['id'], $otservers_eu_voting); if ($result !== false) { if ($result['voted'] === true) { $points = $otservers_eu_voting['points']; $pointsText = $points === '1' ? 'point' : 'points'; mysql_update("UPDATE `znote_accounts` SET `points` = `points` + '$points' WHERE `account_id`=" . $user_data['id']); echo "<p>Thank you for voting! You have been rewarded with $points $pointsText!</p>"; } else { echo '<p>It does not seem like you have voted.</p>'; } } else { echo '<p>Could not verify that you have voted.</p>'; } } } else { header('Location: ' . $otservers_eu_voting['simpleVoteUrl']); die; } } else { echo '<p>Voting is not enabled.</p>'; } include 'layout/overall/footer.php'; function vote($otUserId, $otservers_eu_voting) { $context = stream_context_create([ 'http' => [ 'header' => "Content-type: application/json", 'method' => 'POST', 'content' => json_encode([ 'otUserId' => $otUserId, 'secretToken' => $otservers_eu_voting['secretToken'], 'landingPage' => $otservers_eu_voting['landingPage'] ]) ] ]); $result = file_get_contents($otservers_eu_voting['voteUrl'], false, $context); return $result !== false ? json_decode($result, true) : false; } function checkHasVoted($otUserId, $otservers_eu_voting) { $context = stream_context_create([ 'http' => [ 'header' => "Content-type: application/json", 'method' => 'POST', 'content' => json_encode([ 'otUserId' => $otUserId, 'secretToken' => $otservers_eu_voting['secretToken'], 'consume' => true ]) ] ]); $result = file_get_contents($otservers_eu_voting['voteCheckUrl'], false, $context); return $result !== false ? json_decode($result, true) : false; }