<?php /** * CHANGELOG modifier * * @package MyAAC * @author Slawkens <slawkens@gmail.com> * @author Lee * @copyright 2020 MyAAC * @link https://my-aac.org */ defined('MYAAC') or die('Direct access not allowed!'); if (!hasFlag(FLAG_CONTENT_PAGES) && !superAdmin()) { echo 'Access denied.'; return; } $title = 'Changelog'; $use_datatable = true; const CL_LIMIT = 600; // maximum changelog body length ?> <link rel="stylesheet" type="text/css" href="<?php echo BASE_URL; ?>tools/css/jquery.datetimepicker.css"/ > <script src="<?php echo BASE_URL; ?>tools/js/jquery.datetimepicker.js"></script> <?php $id = $_GET['id'] ?? 0; require_once LIBS . 'changelog.php'; if(!empty($action)) { $id = $_REQUEST['id'] ?? null; $body = isset($_REQUEST['body']) ? stripslashes($_REQUEST['body']) : null; $create_date = isset($_REQUEST['createdate']) ? (int)strtotime($_REQUEST['createdate'] ): null; $player_id = isset($_REQUEST['player_id']) ? (int)$_REQUEST['player_id'] : null; $type = isset($_REQUEST['type']) ? (int)$_REQUEST['type'] : null; $where = isset($_REQUEST['where']) ? (int)$_REQUEST['where'] : null; $errors = array(); if($action == 'new') { if(isset($body) && Changelog::add($body, $type, $where, $player_id, $create_date, $errors)) { $body = ''; $type = $where = $player_id = $create_date = 0; success("Added successful."); } } else if($action == 'delete') { Changelog::delete($id, $errors); success("Deleted successful."); } else if($action == 'edit') { if(isset($id) && !isset($body)) { $cl = Changelog::get($id); $body = $cl['body']; $type = $cl['type']; $where = $cl['where']; $create_date = $cl['date']; $player_id = $cl['player_id']; } else { if(Changelog::update($id, $body, $type, $where, $player_id, $create_date,$errors)) { $action = $body = ''; $type = $where = $player_id = $create_date = 0; success("Updated successful."); } } } else if($action == 'hide') { Changelog::toggleHidden($id, $errors, $status); success(($status == 1 ? 'Show' : 'Hide') . " successful."); } if(!empty($errors)) error(implode(", ", $errors)); } $changelogs = $db->query('SELECT * FROM `' . TABLE_PREFIX . 'changelog' . '` ORDER BY `id` DESC')->fetchAll(); $i = 0; $log_type = [ ['id' => 1, 'icon' => 'added'], ['id' => 2, 'icon' => 'removed'], ['id' => 3, 'icon' => 'changed'], ['id' => 4, 'icon' => 'fixed'], ]; $log_where = [ ['id' => 1, 'icon' => 'server'], ['id' => 2, 'icon' => 'website'], ]; foreach($changelogs as $key => &$log) { $log['type'] = getChangelogType($log['type']); $log['where'] = getChangelogWhere($log['where']); } if($action == 'edit' || $action == 'new') { if($action == 'edit') { $player = new OTS_Player(); $player->load($player_id); } $account_players = $account_logged->getPlayersList(); $account_players->orderBy('group_id', POT::ORDER_DESC); $twig->display('admin.changelog.form.html.twig', array( 'action' => $action, 'cl_link_form' => constant('ADMIN_URL').'?p=changelog&action=' . ($action == 'edit' ? 'edit' : 'new'), 'cl_id' => $id ?? null, 'body' => isset($body) ? escapeHtml($body) : '', 'create_date' => $create_date ?? '', 'player_id' => $player_id ?? null, 'account_players' => $account_players, 'type' => $type ?? 0, 'where' => $where ?? 0, 'log_type' => $log_type, 'log_where' => $log_where, )); } $twig->display('admin.changelog.html.twig', array( 'changelogs' => $changelogs, )); ?> <script> $(document).ready(function () { $('#createdate').datetimepicker({format: "M d Y, H:i:s",}); $('.tb_datatable').DataTable({ "order": [[0, "desc"]], "columnDefs": [{targets: [1, 2,4,5],orderable: false}] }); }); </script>