public static function get() { //Gets the amount from GET or use default if (isset($_GET['amount'])) { $amount = $_GET['amount']; } else { $amount = ChatConfig::DEFAULT_AMOUNT; } try { //Get messages $messages = ChatDB::getChatMessages($amount); foreach ($messages as $message) { //Calculate difference between now and message post time $timeDiff = (new DateTime(null, new DateTimeZone(GlobalConfig::PHP_TIME_ZONE)))->diff(DateTime::createFromFormat('d/m/Y H:i', $message->messageTime)); //If message was posted less than 1 day ago show time as hour, else show as date if ($timeDiff->y > 0 || $timeDiff->m > 0 || $timeDiff->d >= 1) { $messageTime = substr($message->messageTime, 0, 10); } else { $messageTime = substr($message->messageTime, 11, 5); } //Cut user's name if it's too long $posterFullName = $message->posterFirstName . ' ' . $message->posterLastName; if (strlen($posterFullName) > 10) { $posterFullName = substr($posterFullName, 0, 10) . '...'; } echo '<tr><td>' . htmlentities($posterFullName, ENT_QUOTES, 'utf-8') . '</td><td>' . htmlentities($message->text, ENT_QUOTES, 'utf-8') . '</td><td>' . htmlentities($messageTime, ENT_QUOTES, 'utf-8') . '</td></tr>'; } } catch (Exception $ex) { http_response_code(500); } }
public static function post() { $page = new Page(); $page->data['title'] = 'Chat'; $page->addView('chat/ChatView'); $page->addExtraJsFile('views/chat/ChatViewMessageListRefresher.js'); $page->addExtraJsFile('views/chat/ChatViewOnLoadHandler.js'); $errMsgs = ChatViewValidator::validate($_POST); if (empty($errMsgs)) { try { ChatDB::addChatMessage(new ChatMessage(null, null, null, $_SESSION['Stippers']['user']->userId, $_POST['new_message'], null)); ChatController::buildChatView($page, false); } catch (Exception $ex) { ChatController::buildChatView($page, true); $page->data['ChatView']['errMsgs']['global'] = '<h2 class="error_message" id="new_message_form_error_message">Kan bericht niet posten, probeer het opnieuw.</h2>'; } } else { ChatController::buildChatView($page, true); $page->data['ChatView']['errMsgs'] = array_merge($page->data['ChatView']['errMsgs'], $errMsgs); } $page->showWithMenu(); }