Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <pre>
- <?php
- class ClanUser {
- private $username;
- private $rank;
- private $xp;
- private $kills;
- private $citadel;
- public function __construct($username, $rank, $xp, $kills)
- {
- $this->username = $username;
- $this->rank = $rank;
- $this->xp = $xp;
- $this->kills = $kills;
- }
- //Getter function for $host
- public function getUsername() {
- return $this->username;
- }
- public function getRank() {
- return $this->rank;
- }
- public function getXp() {
- return $this->xp;
- }
- public function getKills() {
- return $this->kills;
- }
- public function getCitadel() {
- if(!$this->citadel)
- {
- return 0;
- }
- return $this->citadel;
- }
- public function setCitadel($value) {
- $this->citadel = $value;
- }
- }
- // API Call
- function CallAPI($method, $url, $data = false)
- {
- $curl = curl_init();
- switch ($method)
- {
- case "POST":
- curl_setopt($curl, CURLOPT_POST, 1);
- if ($data)
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
- break;
- case "PUT":
- curl_setopt($curl, CURLOPT_PUT, 1);
- break;
- default:
- if ($data)
- $url = sprintf("%s?%s", $url, http_build_query($data));
- }
- // Optional Authentication:
- curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
- curl_setopt($curl, CURLOPT_USERPWD, "username:password");
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- $result = curl_exec($curl);
- curl_close($curl);
- return $result;
- }
- // Doe de call naar de API en verwerk deze naar een array met ClanUser objects.
- function getData()
- {
- $data = CallAPI("POST", "http://services.runescape.com/m=clan-hiscores/members_lite.ws?clanName=Dutch Undressed", true);
- # include parseCSV class.
- require_once('CSVparser.php');
- # create new parseCSV object.
- $csv = new parseCSV();
- # Parse 'csv' using automatic delimiter detection...
- $csv->auto($data);
- $allUsers = [];
- foreach ($csv->data as $key => $row) :
- $user = new ClanUser($row["Clanmate"], $row["Clan Rank"], $row["Total XP"], $row["Kills"]);
- array_push($allUsers, $user);
- endforeach;
- return $allUsers;
- }
- // Deze functie wordt aangeroepen als parameter
- function createCSV()
- {
- // Haal de data op uit de API
- $allUsers = getData();
- // Haal onze eigen citadel data op
- $ClanDataTxt = new parseCSV();
- $ClanDataTxt->auto("ClanData.txt");
- // Voor elke user die in ClanData zit
- foreach($ClanDataTxt->data as $key => $row)
- {
- // Voor elke user die in de API staat
- foreach($allUsers as $user)
- {
- // Als de data gelijk zijn (dus we hebben van de API en de ClanData hetzelfde object)
- if($row["Clanmate"] == $user->getUsername())
- {
- // Zet de citadel zoals deze in de ClanData staat
- $user->setCitadel($row["Citadel"]);
- }
- }
- }
- // Als er een username in de parameters staat
- if(isset($_GET['username']))
- {
- // Doorloop alle ClanUser objects
- foreach($allUsers as $user)
- {
- // Als we bij de username komen die gelijk is aan die van de parameter
- if($_GET['username'] == $user->getUsername())
- {
- // Zet de citadel aan/uit
- $user->setCitadel(!$user->getCitadel());
- }
- }
- }
- $ClanData = fopen("ClanData.txt", "w") or die("Unable to open file!");
- $ClanDataTxt = "Clanmate, Citadel";
- $ClanDataTxt .= "\r\n";
- foreach ($allUsers as $user)
- {
- $ClanDataTxt .= $user->getUsername();
- $ClanDataTxt .= ", ";
- $ClanDataTxt .= $user->getCitadel();
- $ClanDataTxt .= "\r\n";
- }
- fwrite($ClanData, $ClanDataTxt);
- fclose($ClanData);
- return $allUsers;
- }
- function databaseStuff($allUsers)
- {
- $servername = "localhost";
- $username = "Michael";
- $password = "pizza123";
- $dbname = "du_citadel";
- //connect to database
- $link = mysql_connect($servername, $username, $password)
- or die('Could not connect: ' . mysql_error());
- $selected = mysql_select_db($dbname, $link)
- or die ("Could not select citadel database");
- $result = mysql_query("SELECT * FROM Players ORDER BY ID");
- $dbCount = 0;
- $dbPlayers = array();
- while ($row = mysql_fetch_row($result)) {
- $dbPlayers[] = $row;
- $dbCount++;
- }
- // Create connection
- $conn = new mysqli($servername, $username, $password, $dbname);
- // Check connection
- if ($conn->connect_error) {
- die("Connection failed: " . $conn->connect_error);
- }
- if (count($allUsers) != $dbCount)
- {
- $timer = 1;
- foreach ($allUsers as $user)
- {
- foreach ($dbPlayers as $dbuser)
- {
- //if $dbuser[$]
- }
- //$user->getUsername() != )
- /*$sql = "INSERT INTO Players (ID, Player, Capped, Cap_aantal)
- VALUES (".$timer.",'".$user->getUsername()."', ".$user->getCitadel().", 0)";
- if ($conn->query($sql) === TRUE) {
- echo "New record created successfully";
- } else {
- echo "Error: " . $sql . "<br>" . $conn->error;
- }*/
- $timer++;
- }
- }
- $conn->close();
- }
- $allUsers = createCSV();
- // URL Zonder parameters opvragen
- $uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2);
- $actual_link = 'http://' . $_SERVER['HTTP_HOST'] . $uri_parts[0];
- databaseStuff($allUsers);
- ?>
- </pre>
- <style type="text/css" media="screen">
- table { background-color: #BBB; }
- th { background-color: #EEE; }
- td { background-color: #FFF; }
- .citadelDone {background-color: green; }
- .citadelNotDone {background-color: red; }
- </style>
- <table border="0" cellspacing="1" cellpadding="3">
- <tr>
- <th>User</th>
- <th>Rank</th>
- <th>Total XP</th>
- <th>Kills</th>
- <th>Citadel</th>
- </tr>
- <?php foreach ($allUsers as $user): ?>
- <tr>
- <td><?php echo $user->getUsername() ?></td>
- <td><?php echo $user->getRank() ?></td>
- <td><?php echo $user->getXp() ?></td>
- <td><?php echo $user->getKills() ?></td>
- <td class="
- <?php
- if($user->getCitadel())
- { echo "citadelDone"; }
- else
- { echo "citadelNotDone";}
- ?>
- ">
- <?php echo $user->getCitadel() ?>
- <!-- Button gebruiken om username parameters door te sturen naar de URL -->
- <input type="submit" value="switch" onClick="window.location='<?php echo $actual_link; ?>?username=<?php echo $user->getUsername();?>'">
- </td>
- </tr>
- <?php endforeach;?>
- </table>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement