Merge branch 'develop' into feature/migrations-up-down

This commit is contained in:
slawkens 2024-11-19 14:37:47 +01:00
commit cc8b0dba7f
9 changed files with 100 additions and 79 deletions

View File

@ -26,7 +26,7 @@ if (!hasFlag(FLAG_CONTENT_PAGES) && !superAdmin()) {
header('X-XSS-Protection:0'); header('X-XSS-Protection:0');
// some constants, used mainly by database (cannot by modified without schema changes) // some constants, used mainly by database (cannot be modified without schema changes)
const NEWS_TITLE_LIMIT = 100; const NEWS_TITLE_LIMIT = 100;
const NEWS_BODY_LIMIT = 65535; // maximum news body length const NEWS_BODY_LIMIT = 65535; // maximum news body length
const ARTICLE_TEXT_LIMIT = 300; const ARTICLE_TEXT_LIMIT = 300;
@ -136,9 +136,18 @@ if($action == 'edit' || $action == 'new') {
$query = $db->query('SELECT * FROM ' . $db->tableName(TABLE_PREFIX . 'news')); $query = $db->query('SELECT * FROM ' . $db->tableName(TABLE_PREFIX . 'news'));
$newses = array(); $newses = array();
$cachePlayers = [];
foreach ($query as $_news) { foreach ($query as $_news) {
$playerId = $_news['player_id'];
if (isset($cachePlayers[$playerId])) {
$_player = $cachePlayers[$playerId];
}
else {
$_player = new OTS_Player(); $_player = new OTS_Player();
$_player->load($_news['player_id']); $_player->load($playerId);
$cachePlayers[$playerId] = $_player;
}
$newses[$_news['type']][] = array( $newses[$_news['type']][] = array(
'id' => $_news['id'], 'id' => $_news['id'],
@ -147,7 +156,7 @@ foreach ($query as $_news) {
'title' => $_news['title'], 'title' => $_news['title'],
'date' => $_news['date'], 'date' => $_news['date'],
'player_name' => $_player->isLoaded() ? $_player->getName() : '', 'player_name' => $_player->isLoaded() ? $_player->getName() : '',
'player_link' => $_player->isLoaded() ? getPlayerLink($_player->getName(), false) : '', 'player_link' => $_player->isLoaded() ? getPlayerLink($_player, false) : '',
); );
} }

View File

@ -1,6 +1,6 @@
{ {
"require": { "require": {
"php": "^8.0", "php": "^8.1",
"ext-pdo": "*", "ext-pdo": "*",
"ext-pdo_mysql": "*", "ext-pdo_mysql": "*",
"ext-json": "*", "ext-json": "*",

View File

@ -89,6 +89,10 @@ function getForumBoardLink($board_id, $page = NULL): string {
function getPlayerLink($name, $generate = true, bool $colored = false): string function getPlayerLink($name, $generate = true, bool $colored = false): string
{ {
if (is_object($name) and $name instanceof OTS_Player) {
$player = $name;
}
else {
$player = new OTS_Player(); $player = new OTS_Player();
if(is_numeric($name)) { if(is_numeric($name)) {
@ -97,6 +101,7 @@ function getPlayerLink($name, $generate = true, bool $colored = false): string
else { else {
$player->find($name); $player->find($name);
} }
}
if (!$player->isLoaded()) { if (!$player->isLoaded()) {
return '(error)'; return '(error)';

View File

@ -39,7 +39,7 @@ if($config['server_path'][strlen($config['server_path']) - 1] !== '/')
$config['server_path'] .= '/'; $config['server_path'] .= '/';
// enable gzip compression if supported by the browser // enable gzip compression if supported by the browser
if(isset($config['gzip_output']) && $config['gzip_output'] && isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false && function_exists('ob_gzhandler')) if(isset($config['gzip_output']) && $config['gzip_output'] && isset($_SERVER['HTTP_ACCEPT_ENCODING']) && str_contains($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && function_exists('ob_gzhandler'))
ob_start('ob_gzhandler'); ob_start('ob_gzhandler');
// cache // cache

View File

@ -165,7 +165,8 @@ class OTS_DB_MySQL extends OTS_Base_DB
} }
if($this->logged) { if($this->logged) {
log_append('database.log', $_SERVER['REQUEST_URI'] . PHP_EOL . $this->getLog()); $currentScript = $_SERVER['REQUEST_URI'] ?? $_SERVER['SCRIPT_FILENAME'];
log_append('database.log', $currentScript . PHP_EOL . $this->getLog());
} }
} }

5
system/src/Cache.php Normal file
View File

@ -0,0 +1,5 @@
<?php
namespace MyAAC;
class Cache extends Cache\Cache {}

View File

@ -766,22 +766,21 @@ class Plugins {
* Helper function for plugins * Helper function for plugins
* *
* @param string $templateName * @param string $templateName
* @param array $categories * @param array $menus
*/ */
public static function installMenus($templateName, $categories, $clearOld = true) public static function installMenus($templateName, $menus, $clearOld = false)
{ {
global $db;
if (!$db->hasTable(TABLE_PREFIX . 'menu')) {
return;
}
if ($clearOld) { if ($clearOld) {
Menu::where('template', $templateName)->delete(); Menu::where('template', $templateName)->delete();
} }
foreach ($categories as $category => $menus) { if (Menu::where('template', $templateName)->count()) {
return;
}
foreach ($menus as $category => $_menus) {
$i = 0; $i = 0;
foreach ($menus as $name => $link) { foreach ($_menus as $name => $link) {
$color = ''; $color = '';
$blank = 0; $blank = 0;

View File

@ -16,6 +16,8 @@ use Twig\Loader\FilesystemLoader as Twig_FilesystemLoader;
use Twig\TwigFilter; use Twig\TwigFilter;
use Twig\TwigFunction; use Twig\TwigFunction;
global $twig, $twig_loader;
$dev_mode = (config('env') === 'dev'); $dev_mode = (config('env') === 'dev');
$twig_loader = new Twig_FilesystemLoader(SYSTEM . 'templates'); $twig_loader = new Twig_FilesystemLoader(SYSTEM . 'templates');
$twig = new Twig_Environment($twig_loader, array( $twig = new Twig_Environment($twig_loader, array(

View File

@ -291,7 +291,7 @@
</a> </a>
</div> </div>
</div> </div>
{% set title = 'Account logs' %} {% set title = 'Account Logs' %}
{% set tableClass = 'Table3' %} {% set tableClass = 'Table3' %}
{% set content %} {% set content %}
<table style="width:100%;"> <table style="width:100%;">