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

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

View File

@@ -89,13 +89,18 @@ function getForumBoardLink($board_id, $page = NULL): string {
function getPlayerLink($name, $generate = true, bool $colored = false): string
{
$player = new OTS_Player();
if(is_numeric($name)) {
$player->load((int)$name);
if (is_object($name) and $name instanceof OTS_Player) {
$player = $name;
}
else {
$player->find($name);
$player = new OTS_Player();
if(is_numeric($name)) {
$player->load((int)$name);
}
else {
$player->find($name);
}
}
if (!$player->isLoaded()) {

View File

@@ -39,7 +39,7 @@ if($config['server_path'][strlen($config['server_path']) - 1] !== '/')
$config['server_path'] .= '/';
// 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');
// cache

View File

@@ -53,49 +53,49 @@ class OTS_DB_MySQL extends OTS_Base_DB
* @param array $params Connection parameters.
* @throws PDOException On PDO operation error.
*/
public function __construct($params)
{
$user = null;
$password = null;
$dns = array();
public function __construct($params)
{
$user = null;
$password = null;
$dns = array();
// host:port support
if( strpos(':', $params['host']) !== false)
{
$host = explode(':', $params['host'], 2);
// host:port support
if( strpos(':', $params['host']) !== false)
{
$host = explode(':', $params['host'], 2);
$params['host'] = $host[0];
$params['port'] = $host[1];
}
$params['host'] = $host[0];
$params['port'] = $host[1];
}
if( isset($params['database']) )
{
$dns[] = 'dbname=' . $params['database'];
}
if( isset($params['database']) )
{
$dns[] = 'dbname=' . $params['database'];
}
if( isset($params['user']) )
{
$user = $params['user'];
}
if( isset($params['user']) )
{
$user = $params['user'];
}
if( isset($params['password']) )
{
$password = $params['password'];
}
if( isset($params['password']) )
{
$password = $params['password'];
}
if( isset($params['prefix']) )
{
$this->prefix = $params['prefix'];
}
if( isset($params['prefix']) )
{
$this->prefix = $params['prefix'];
}
if( isset($params['log']) && $params['log'] )
{
$this->logged = true;
}
if( isset($params['log']) && $params['log'] )
{
$this->logged = true;
}
if( !isset($params['persistent']) ) {
$params['persistent'] = false;
}
if( !isset($params['persistent']) ) {
$params['persistent'] = false;
}
global $config;
$cache = Cache::getInstance();
@@ -144,10 +144,10 @@ class OTS_DB_MySQL extends OTS_Base_DB
}
parent::__construct('mysql:' . implode(';', $dns), $user, $password, $driverAttributes);
}
}
public function __destruct()
{
{
global $config;
$cache = Cache::getInstance();
@@ -165,7 +165,8 @@ class OTS_DB_MySQL extends OTS_Base_DB
}
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());
}
}
@@ -175,10 +176,10 @@ class OTS_DB_MySQL extends OTS_Base_DB
* @param string $name Field name.
* @return string Quoted name.
*/
public function fieldName($name)
{
return '`' . $name . '`';
}
public function fieldName($name)
{
return '`' . $name . '`';
}
/**
* LIMIT/OFFSET clause for queries.
@@ -187,26 +188,26 @@ class OTS_DB_MySQL extends OTS_Base_DB
* @param int|bool $offset Number of rows to be skipped before applying query effects (false if no offset).
* @return string LIMIT/OFFSET SQL clause for query.
*/
public function limit($limit = false, $offset = false)
{
// by default this is empty part
$sql = '';
public function limit($limit = false, $offset = false)
{
// by default this is empty part
$sql = '';
if($limit !== false)
{
$sql = ' LIMIT ';
if($limit !== false)
{
$sql = ' LIMIT ';
// OFFSET has no effect if there is no LIMIT
if($offset !== false)
{
$sql .= $offset . ', ';
}
// OFFSET has no effect if there is no LIMIT
if($offset !== false)
{
$sql .= $offset . ', ';
}
$sql .= $limit;
}
$sql .= $limit;
}
return $sql;
}
return $sql;
}
public function hasTable($name) {
if(isset($this->has_table_cache[$name])) {

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
*
* @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) {
Menu::where('template', $templateName)->delete();
}
foreach ($categories as $category => $menus) {
if (Menu::where('template', $templateName)->count()) {
return;
}
foreach ($menus as $category => $_menus) {
$i = 0;
foreach ($menus as $name => $link) {
foreach ($_menus as $name => $link) {
$color = '';
$blank = 0;

View File

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