*/ class WiseChatKicksTab extends WiseChatAbstractTab { public function getFields() { return array( array('_section', 'Kicks', 'List of IP addresses blocked from publishing messages and seeing the chat.'), array('kicks', 'Current Kicks', 'kicksCallback', 'void'), array('kick_add', 'Add Kick', 'kickAddCallback', 'void'), ); } public function getDefaultValues() { return array( 'kicks' => null, 'kick_add' => null, ); } public function deleteKickAction() { $id = intval($_GET['id']); $kick = $this->kicksDAO->get($id); if ($kick !== null) { $this->kicksDAO->delete($id); $this->addMessage('Kick has been deleted'); } else { $this->addErrorMessage('Invalid kick'); } } public function addKickAction() { $newKickIP = $_GET['newKickIP']; if (!filter_var($newKickIP, FILTER_VALIDATE_IP)) { $this->addErrorMessage('Invalid IP address'); return; } if ($this->kicksService->isIpAddressKicked($newKickIP)) { $this->addErrorMessage('This IP is already kicked'); return; } $this->kicksService->kickIpAddress($newKickIP, 'No name'); $this->addMessage("Kick has been added"); } public function kicksCallback() { $url = admin_url("options-general.php?page=".WiseChatSettings::MENU_SLUG); $kicks = $this->kicksDAO->getAll(); $html = "
"; if (count($kicks) == 0) { $html .= 'No kicks were added yet'; } foreach ($kicks as $kick) { $deleteURL = $url.'&wc_action=deleteKick&id='.urlencode($kick->getId()); $deleteLink = "Delete
"; $html .= sprintf("[%s] %s | %s | %s", $kick->getIp(), date('Y-m-d H:i:s', $kick->getCreated()), $kick->getLastUserName(), $deleteLink); } $html .= "
"; print($html); } public function kickAddCallback() { $url = admin_url("options-general.php?page=".WiseChatSettings::MENU_SLUG."&wc_action=addKick"); printf( ''. 'Add Kick', wp_nonce_url($url), 'this.href += \'&newKickIP=\' + jQuery(\'#newKickIP\').val();' ); } }