PageRenderTime 57ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/empty.php

https://bitbucket.org/bplsilva/t2r
PHP | 251 lines | 199 code | 52 blank | 0 comment | 38 complexity | 4cf1c805d1eabccbcd9ec8b10b6fc965 MD5 | raw file
  1. <?php
  2. session_start();
  3. header('Content-Type: text/html; charset=utf-8');
  4. date_default_timezone_set('Europe/Paris');
  5. include_once("functions.php");
  6. ?>
  7. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
  8. <html xmlns='http://www.w3.org/1999/xhtml'>
  9. <?php
  10. $settingsXml = new DOMDocument('1.0','UTF-8');
  11. $settingsXml->formatOutput = true;
  12. $settingsXml->preserveWhiteSpace = false;
  13. $settingsXml->load("settings.xml");
  14. $settingsXpath = new DOMXPath($settingsXml);
  15. $totalNumberOfUsers = 0;
  16. $query = '//settings/accounts/user';
  17. $entries = $settingsXpath->query($query);
  18. $totalNumberOfUsers = $entries->length;
  19. if ($_SESSION['userConnected']) {
  20. $userConnected = $_SESSION['userConnected'];
  21. $userFile = $_SESSION['userFile'];
  22. $userFileXml = new DOMDocument('1.0','UTF-8');
  23. $userFileXml->formatOutput = true;
  24. $userFileXml->preserveWhiteSpace = false;
  25. $userFileXml->load("data/".$userFile);
  26. $userFileXpath = new DOMXPath($userFileXml);
  27. }
  28. if (!$userConnected) { $notLogged = true; }
  29. if ($userConnected) {
  30. $userData = array(
  31. 'id' => $userConnected,
  32. 'fullName' => getUserFullName($userFileXpath), 'firstName' => getUserFirstName($userFileXpath),
  33. 'email' => getUserEmail($userFileXpath), 'location' => getUserLocation($userFileXpath), 'img' => getUserImg($userFileXpath)
  34. );
  35. $userTotals = array('km' => 0, 'days' => 0, 'itineraries' => 0, 'cities' => 0);
  36. $userVisitedCities = array();
  37. $userVisitedCountries = array();
  38. $randomCities = array();
  39. $userTravels = array();
  40. $userUpcomingTravels = array();
  41. $userEmptyTravels = array();
  42. $query = '//travel-document/travel-data/travel';
  43. $travelsNode = $userFileXpath->query($query);
  44. foreach ($travelsNode as $travel) {
  45. $currentTravel = array(
  46. 'id' => $travel->getAttribute('id'), 'name' => $travel->getAttribute('name'),
  47. 'type' => $travel->getAttribute('type'),
  48. 'typeName' => null, 'typeImg' => null,
  49. 'firstDay' => null, 'lastDay' => null,
  50. 'days' => 0, 'km' => 0, 'avgSpeed' => null, 'itineraries' => array(),
  51. 'visitedCities' => array(), 'visitedCountries' => array(), 'transportTypes' => array()
  52. );
  53. $currentTravel['typeName'] = getTravelTypeName($settingsXpath,$currentTravel['type']);
  54. $currentTravel['typeImg'] = getTravelTypeImg($settingsXpath,$currentTravel['type']);
  55. $itineraryCount = 0;
  56. $itinerariesNode = $travel->childNodes;
  57. foreach ($itinerariesNode as $itinerary) {
  58. $itineraryCount++;
  59. $currentItinerary = array(
  60. 'number' => $itineraryCount,
  61. 'depLocation' => getItineraryDepartureLocation($userFileXpath,$itinerary),
  62. 'depDate' => getItineraryDepartureDate($userFileXpath,$itinerary),
  63. 'arrLocation' => getItineraryArrivalLocation($userFileXpath,$itinerary),
  64. 'arrDate' => getItineraryArrivalDate($userFileXpath,$itinerary),
  65. 'transport' => getItineraryTransport($userFileXpath,$itinerary),
  66. 'depLocationName' => null, 'depLocationCountry' => null, 'depLocationLat' => null, 'depLocationLng' => null,
  67. 'arrLocationName' => null, 'arrLocationCountry' => null, 'arrLocationLat' => null, 'arrLocationLng' => null,
  68. 'km' => null, 'days' => null
  69. );
  70. $currentItinerary['depLocationName'] = getLocationName($settingsXpath,$currentItinerary['depLocation']);
  71. $currentItinerary['depLocationCountry'] = getLocationCountry($settingsXpath,$currentItinerary['depLocation']);
  72. $depCoords = getLocationLatLng($settingsXpath,$currentItinerary['depLocation']);
  73. $currentItinerary['depLocationLat'] = $depCoords['lat'];
  74. $currentItinerary['depLocationLng'] = $depCoords['lng'];
  75. $currentItinerary['arrLocationName'] = getLocationName($settingsXpath,$currentItinerary['arrLocation']);
  76. $currentItinerary['arrLocationCountry'] = getLocationCountry($settingsXpath,$currentItinerary['arrLocation']);
  77. $arrCoords = getLocationLatLng($settingsXpath,$currentItinerary['arrLocation']);
  78. $currentItinerary['arrLocationLat'] = $arrCoords['lat'];
  79. $currentItinerary['arrLocationLng'] = $arrCoords['lng'];
  80. if (!in_array($currentItinerary['depLocation'],$currentTravel['visitedCities'])) { $currentTravel['visitedCities'][] = $currentItinerary['depLocation']; }
  81. if (!in_array($currentItinerary['depLocationCountry'],$currentTravel['visitedCountries'])) { $currentTravel['visitedCountries'][] = $currentItinerary['depLocationCountry']; }
  82. $systemDepDate = substr($currentItinerary['depDate'],6,4) . "-" . substr($currentItinerary['depDate'],3,2) . "-" . substr($currentItinerary['depDate'],0,2);
  83. if (!in_array($currentItinerary['arrLocation'],$currentTravel['visitedCities'])) { $currentTravel['visitedCities'][] = $currentItinerary['arrLocation']; }
  84. if (!in_array($currentItinerary['arrLocationCountry'],$currentTravel['visitedCountries'])) { $currentTravel['visitedCountries'][] = $currentItinerary['arrLocationCountry']; }
  85. $systemArrDate = substr($currentItinerary['arrDate'],6,4) . "-" . substr($currentItinerary['arrDate'],3,2) . "-" . substr($currentItinerary['arrDate'],0,2);
  86. if ($currentTravel['firstDay'] == null) { $currentTravel['firstDay'] = $systemDepDate; }
  87. if (strtotime($systemDepDate) < strtotime($currentTravel['firstDay'])) { $currentTravel['firstDay'] = $systemDepDate; }
  88. if ($currentTravel['lastDay'] == null) { $currentTravel['lastDay'] = $systemArrDate; }
  89. if (strtotime($systemArrDate) > strtotime($currentTravel['lastDay'])) { $currentTravel['lastDay'] = $systemArrDate; }
  90. if (!in_array($currentItinerary['transport'],$currentTravel['transportTypes'])) {
  91. $currentTravel['transportTypes'][] = $currentItinerary['transport'];
  92. }
  93. $currentItinerary['days'] = _date_diff(strtotime($systemDepDate),strtotime($systemArrDate));
  94. $currentItinerary['km'] = getDistance($currentItinerary['depLocationLat'],$currentItinerary['depLocationLng'],$currentItinerary['arrLocationLat'],$currentItinerary['arrLocationLng']);
  95. $currentTravel['km'] = $currentTravel['km'] + $currentItinerary['km'];
  96. if (($currentTravel['days'] == 0) && ($currentTravel['km'] != 0)) { $currentTravel['days'] = 1; }
  97. if ($currentTravel['days'] == 0) { $currentTravel['avgSpeed'] = 0; }
  98. else { $currentTravel['avgSpeed'] = round($currentTravel['km'] / ($currentTravel['days'] * 24),2); }
  99. $currentTravel['itineraries'][] = $currentItinerary;
  100. }
  101. $systemTravelDays = _date_diff(strtotime($currentTravel['firstDay']),strtotime($currentTravel['lastDay']));
  102. $currentTravel['days'] = $systemTravelDays['days'];
  103. $userTotals['km'] = $userTotals['km'] + $currentTravel['km'];
  104. $userTotals['days'] = $userTotals['days'] + $currentTravel['days'];
  105. $userTotals['itineraries'] = $userTotals['itineraries'] + count($currentTravel['itineraries']);
  106. $userTotals['cities'] = $userTotals['cities'] + count($currentTravel['visitedCities']);
  107. foreach ($currentTravel['visitedCities'] as $city) {
  108. if (!in_array($city,$userVisitedCities)) { $userVisitedCities[] = $city; }
  109. }
  110. if ($currentTravel['km'] == 0) { $userEmptyTravels[] = $currentTravel; }
  111. else if (strtotime($currentTravel['firstDay']) > strtotime(date("Y-m-d")) || strtotime($currentTravel['lastDay']) > strtotime(date("Y-m-d"))) {
  112. $userUpcomingTravels[] = $currentTravel;
  113. }
  114. else if (strtotime($currentTravel['lastDay']) < strtotime(date("Y-m-d"))) { $userTravels[] = $currentTravel; }
  115. }
  116. }
  117. openHeadTag();
  118. if ($notLogged) { title("Error"); }
  119. else { title("Empty Travels"); }
  120. defaultMetaTag();
  121. closeHeadTag();
  122. if ($notLogged) { displayNotLogged(); }
  123. else {
  124. echo "<body class='bodygrey'>
  125. <div class='headerspace'></div>
  126. <div class='header'>
  127. <!-- logo -->
  128. <a href=''><img src='images/logo2.png' alt='Logo' /></a>";
  129. displayNavbar("Travel Information");
  130. displayAccountInfo($userData);
  131. echo "</div><!-- header -->";
  132. displaySidebar("Empty Travels");
  133. echo "<div class='maincontent'>
  134. <div class='breadcrumbs'>
  135. <a href='index.php'>Dashboard</a>
  136. <a href='travelinfo.php'>Travel Information</a>
  137. <span>Empty Travels</span>
  138. </div><!-- breadcrumbs -->
  139. <div class='left'>
  140. <h1 class='pageTitle'>Empty Travels</h1>
  141. <div class='widgetbox'>
  142. <h3><span>About</span></h3>
  143. <div class='content'>
  144. <p>If you have just created a new travel, it does not contain any itinerary yet.<br/>
  145. Here is the list of the travels that are still waiting for the input of an itinerary.</p>
  146. </div><!-- content-->
  147. </div><!-- widgetbox -->";
  148. if (count($userEmptyTravels) == 0) {
  149. echo "<h2>You have no empty travels at the moment. Why not adding a new one?</h2>";
  150. }
  151. else {
  152. echo "<h2>There ".qty("is","are",count($userEmptyTravels))." ".count($userEmptyTravels)." empty ".qty("travel","travels",count($userEmptyTravels))." waiting for an itinerary.</h2>";
  153. }
  154. echo "<br/>";
  155. echo "<table cellpadding='0' cellspacing='0' border='0' class='dyntable' id='emptyTravels'>
  156. <thead>
  157. <tr>
  158. <th class='head0'>Travel #</th>
  159. <th class='head1'>Travel ID</th>
  160. <th class='head0'>Travel type</th>
  161. <th class='head1'>Travel name</th>
  162. </tr>
  163. </thead>
  164. <colgroup>
  165. <col class='con0' />
  166. <col class='con1' />
  167. <col class='con0' />
  168. <col class='con1' />
  169. </colgroup>
  170. <tbody>";
  171. $travelCount = 0;
  172. foreach ($userEmptyTravels as $travel) {
  173. $travelCount++;
  174. echo "<tr class='gradeC'>
  175. <td class='center'>#".$travelCount."</td>
  176. <td class='center'><a href='travel.php?id=".$travel['id']."'>".$travel['id']."</a></td>
  177. <td class='center'><img src='images/".$travel['typeImg']."' alt=''/> ".$travel['typeName']."</td>
  178. <td class='center'><a href='travel.php?id=".$travel['id']."'>".$travel['name']."</a></td>
  179. </tr>";
  180. }
  181. echo "</tbody>
  182. <tfoot>
  183. <tr>
  184. <th class='head0'>Travel #</th>
  185. <th class='head1'>Travel ID</th>
  186. <th class='head0'>Travel type</th>
  187. <th class='head1'>Travel name</th>
  188. </tr>
  189. </tfoot>
  190. </table>
  191. </div><!--left-->
  192. <br clear='all' />
  193. </div><!--maincontent-->
  194. <br />";
  195. displayFooter();
  196. echo "</body>";
  197. }
  198. ?>
  199. </html>