Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- date_default_timezone_set("Europe/Sofia");
- $page = $_GET['page'];
- $pageSize = $_GET['pageSize'];
- $text = $_GET['conferences'];
- $pattern = "/\\[(\\d\\d\\d\\d-\\d\\d-\\d\\d|\\d\\d\\d\\d\\/\\d\\d\\/\\d\\d)\\s*,\\s*(#[a-zA-Z.-]+)\\s*,\\s*'(.+?)'\\s*,\\s*([a-zA-Z,-]+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\]/";
- $events = array();
- $dateArr = array();
- $locationArr = array();
- $ticketsArr = array();
- $nameArr = array();
- preg_match_all($pattern, $text, $matches);
- for ($i = 0; $i < count($matches[0]); $i++) {
- $date = trim($matches[1][$i]);
- $hash = trim($matches[2][$i]);
- $name = trim($matches[3][$i]);
- $location = trim($matches[4][$i]);
- $allTickets = trim($matches[5][$i]);
- $ticketsSold = trim($matches[6][$i]);
- $events[] = [
- "date" => date_create($date),
- "hash" => $hash,
- "name" => $name,
- "location" => $location,
- "all-tickets" => $allTickets,
- "tickets-sold" => $ticketsSold
- ];
- $nameArr[] = $name;
- $dateArr[] = date_create($date);
- $locationArr[] = $location;
- $ticketsArr[] = $allTickets;
- }
- array_multisort($dateArr, SORT_DESC, $locationArr, SORT_ASC, $ticketsArr, SORT_DESC, $nameArr, SORT_ASC, $events);
- var_dump($events);
- $currPage = ($page - 1) * $pageSize;
- $endPage = $currPage + $pageSize;
- $len = count($events);
- for ($i = 0; $i < $len; $i++) {
- if ($i < $currPage || $i >= $endPage) {
- unset($events[$i]);
- }
- }
- $eventsGrouped = array();
- foreach ($events as $event) {
- $key = $event['date']->format("Y-m-d");
- if (!isset($eventsGrouped[$key])) {
- $eventsGrouped[$key] = array();
- }
- $today = date_create("2015-05-03");
- $diff = $event['date']->diff($today);
- $days = $diff->days;
- if ($event['date'] < $today) {
- $days = "-" . $days;
- } else if ($event['date'] >= $today) {
- $days = "+" . $days;
- }
- $seatsLeft = intval($event['all-tickets']) - intval($event['tickets-sold']);
- $eventsGrouped[$key][] = [
- "name" => $event['name'],
- "hash" => $event['hash'],
- "days-left" => $days,
- "seats-left" => $seatsLeft
- ];
- }
- echo "<table border=\"1\" cellpadding=\"5\">";
- echo "<tr>";
- echo "<th>Date</th>";
- echo "<th>Event name</th>";
- echo "<th>Event hash</th>";
- echo "<th>Days left</th>";
- echo "<th>Seats left</th>";
- echo "</tr>";
- if (empty($eventsGrouped)) {
- echo "<tr><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>";
- } else {
- foreach ($eventsGrouped as $key => $value) {
- $rowspan = count($value);
- if ($rowspan > 1) {
- for ($i = 0; $i < count($value); $i++) {
- if ($i == 0) {
- echo "<tr><td rowspan=\"$rowspan\">$key</td>";
- } else {
- echo "<tr>";
- }
- $currName = htmlspecialchars($value[$i]['name']);
- $currName = str_replace("'", "", $currName);
- echo "<td>" . $currName . "</td>";
- echo "<td>" . htmlspecialchars($value[$i]['hash']) . "</td>";
- echo "<td>" . htmlspecialchars($value[$i]['days-left']) . " days</td>";
- echo "<td>" . htmlspecialchars($value[$i]['seats-left']) . " seats left</td>";
- echo "</tr>";
- }
- } else {
- $currName = htmlspecialchars($value[0]['name']);
- $currName = str_replace("'", "", $currName);
- echo "<tr><td>$key</td>";
- echo "<td>" . $currName . "</td>";
- echo "<td>" . htmlspecialchars($value[0]['hash']) . "</td>";
- echo "<td>" . htmlspecialchars($value[0]['days-left']) . " days</td>";
- echo "<td>" . htmlspecialchars($value[0]['seats-left']) . " seats left</td>";
- echo "</tr>";
- }
- }
- }
- echo "</table>";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement