Advertisement
Guest User

Untitled

a guest
Jan 24th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.22 KB | None | 0 0
  1. <pre>
  2. <?php
  3.  
  4. class ClanUser {
  5.  
  6. private $username;
  7. private $rank;
  8. private $xp;
  9. private $kills;
  10. private $citadel;
  11.  
  12. public function __construct($username, $rank, $xp, $kills)
  13. {
  14. $this->username = $username;
  15. $this->rank = $rank;
  16. $this->xp = $xp;
  17. $this->kills = $kills;
  18. }
  19. //Getter function for $host
  20. public function getUsername() {
  21. return $this->username;
  22. }
  23.  
  24. public function getRank() {
  25. return $this->rank;
  26. }
  27.  
  28. public function getXp() {
  29. return $this->xp;
  30. }
  31.  
  32. public function getKills() {
  33. return $this->kills;
  34. }
  35.  
  36. public function getCitadel() {
  37. if(!$this->citadel)
  38. {
  39. return 0;
  40. }
  41. return $this->citadel;
  42. }
  43.  
  44. public function setCitadel($value) {
  45. $this->citadel = $value;
  46. }
  47.  
  48. }
  49.  
  50. // API Call
  51. function CallAPI($method, $url, $data = false)
  52. {
  53. $curl = curl_init();
  54.  
  55. switch ($method)
  56. {
  57. case "POST":
  58. curl_setopt($curl, CURLOPT_POST, 1);
  59.  
  60. if ($data)
  61. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  62. break;
  63. case "PUT":
  64. curl_setopt($curl, CURLOPT_PUT, 1);
  65. break;
  66. default:
  67. if ($data)
  68. $url = sprintf("%s?%s", $url, http_build_query($data));
  69. }
  70.  
  71. // Optional Authentication:
  72. curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  73. curl_setopt($curl, CURLOPT_USERPWD, "username:password");
  74.  
  75. curl_setopt($curl, CURLOPT_URL, $url);
  76. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  77.  
  78. $result = curl_exec($curl);
  79.  
  80. curl_close($curl);
  81.  
  82. return $result;
  83. }
  84.  
  85. // Doe de call naar de API en verwerk deze naar een array met ClanUser objects.
  86. function getData()
  87. {
  88. $data = CallAPI("POST", "http://services.runescape.com/m=clan-hiscores/members_lite.ws?clanName=Dutch Undressed", true);
  89.  
  90. # include parseCSV class.
  91. require_once('CSVparser.php');
  92.  
  93. # create new parseCSV object.
  94. $csv = new parseCSV();
  95.  
  96. # Parse 'csv' using automatic delimiter detection...
  97. $csv->auto($data);
  98.  
  99. $allUsers = [];
  100. foreach ($csv->data as $key => $row) :
  101. $user = new ClanUser($row["Clanmate"], $row["Clan Rank"], $row["Total XP"], $row["Kills"]);
  102. array_push($allUsers, $user);
  103. endforeach;
  104.  
  105. return $allUsers;
  106. }
  107.  
  108. // Deze functie wordt aangeroepen als parameter
  109. function createCSV()
  110. {
  111. // Haal de data op uit de API
  112. $allUsers = getData();
  113.  
  114. // Haal onze eigen citadel data op
  115. $ClanDataTxt = new parseCSV();
  116. $ClanDataTxt->auto("ClanData.txt");
  117.  
  118. // Voor elke user die in ClanData zit
  119. foreach($ClanDataTxt->data as $key => $row)
  120. {
  121. // Voor elke user die in de API staat
  122. foreach($allUsers as $user)
  123. {
  124. // Als de data gelijk zijn (dus we hebben van de API en de ClanData hetzelfde object)
  125. if($row["Clanmate"] == $user->getUsername())
  126. {
  127. // Zet de citadel zoals deze in de ClanData staat
  128. $user->setCitadel($row["Citadel"]);
  129. }
  130. }
  131. }
  132.  
  133. // Als er een username in de parameters staat
  134. if(isset($_GET['username']))
  135. {
  136. // Doorloop alle ClanUser objects
  137. foreach($allUsers as $user)
  138. {
  139. // Als we bij de username komen die gelijk is aan die van de parameter
  140. if($_GET['username'] == $user->getUsername())
  141. {
  142. // Zet de citadel aan/uit
  143. $user->setCitadel(!$user->getCitadel());
  144. }
  145. }
  146. }
  147.  
  148. $ClanData = fopen("ClanData.txt", "w") or die("Unable to open file!");
  149.  
  150. $ClanDataTxt = "Clanmate, Citadel";
  151. $ClanDataTxt .= "\r\n";
  152. foreach ($allUsers as $user)
  153. {
  154. $ClanDataTxt .= $user->getUsername();
  155. $ClanDataTxt .= ", ";
  156. $ClanDataTxt .= $user->getCitadel();
  157. $ClanDataTxt .= "\r\n";
  158. }
  159. fwrite($ClanData, $ClanDataTxt);
  160.  
  161. fclose($ClanData);
  162.  
  163.  
  164. return $allUsers;
  165. }
  166.  
  167. function databaseStuff($allUsers)
  168. {
  169.  
  170. $servername = "localhost";
  171. $username = "Michael";
  172. $password = "pizza123";
  173. $dbname = "du_citadel";
  174.  
  175. //connect to database
  176. $link = mysql_connect($servername, $username, $password)
  177. or die('Could not connect: ' . mysql_error());
  178.  
  179. $selected = mysql_select_db($dbname, $link)
  180. or die ("Could not select citadel database");
  181.  
  182. $result = mysql_query("SELECT * FROM Players ORDER BY ID");
  183. $dbCount = 0;
  184. $dbPlayers = array();
  185. while ($row = mysql_fetch_row($result)) {
  186. $dbPlayers[] = $row;
  187. $dbCount++;
  188. }
  189. // Create connection
  190. $conn = new mysqli($servername, $username, $password, $dbname);
  191. // Check connection
  192. if ($conn->connect_error) {
  193. die("Connection failed: " . $conn->connect_error);
  194. }
  195.  
  196. if (count($allUsers) != $dbCount)
  197. {
  198. $timer = 1;
  199.  
  200. foreach ($allUsers as $user)
  201. {
  202. foreach ($dbPlayers as $dbuser)
  203. {
  204. //if $dbuser[$]
  205. }
  206. //$user->getUsername() != )
  207. /*$sql = "INSERT INTO Players (ID, Player, Capped, Cap_aantal)
  208. VALUES (".$timer.",'".$user->getUsername()."', ".$user->getCitadel().", 0)";
  209. if ($conn->query($sql) === TRUE) {
  210. echo "New record created successfully";
  211. } else {
  212. echo "Error: " . $sql . "<br>" . $conn->error;
  213. }*/
  214.  
  215. $timer++;
  216. }
  217. }
  218. $conn->close();
  219.  
  220. }
  221.  
  222. $allUsers = createCSV();
  223.  
  224. // URL Zonder parameters opvragen
  225. $uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2);
  226. $actual_link = 'http://' . $_SERVER['HTTP_HOST'] . $uri_parts[0];
  227.  
  228. databaseStuff($allUsers);
  229. ?>
  230. </pre>
  231. <style type="text/css" media="screen">
  232. table { background-color: #BBB; }
  233. th { background-color: #EEE; }
  234. td { background-color: #FFF; }
  235. .citadelDone {background-color: green; }
  236. .citadelNotDone {background-color: red; }
  237. </style>
  238.  
  239. <table border="0" cellspacing="1" cellpadding="3">
  240. <tr>
  241. <th>User</th>
  242. <th>Rank</th>
  243. <th>Total XP</th>
  244. <th>Kills</th>
  245. <th>Citadel</th>
  246. </tr>
  247. <?php foreach ($allUsers as $user): ?>
  248. <tr>
  249. <td><?php echo $user->getUsername() ?></td>
  250. <td><?php echo $user->getRank() ?></td>
  251. <td><?php echo $user->getXp() ?></td>
  252. <td><?php echo $user->getKills() ?></td>
  253. <td class="
  254. <?php
  255. if($user->getCitadel())
  256. { echo "citadelDone"; }
  257. else
  258. { echo "citadelNotDone";}
  259. ?>
  260. ">
  261. <?php echo $user->getCitadel() ?>
  262. <!-- Button gebruiken om username parameters door te sturen naar de URL -->
  263. <input type="submit" value="switch" onClick="window.location='<?php echo $actual_link; ?>?username=<?php echo $user->getUsername();?>'">
  264. </td>
  265. </tr>
  266.  
  267. <?php endforeach;?>
  268. </table>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement