Merge branch 'main' into develop

This commit is contained in:
slawkens
2025-04-26 06:17:38 +02:00
14 changed files with 239 additions and 193 deletions

View File

@@ -234,6 +234,19 @@ class OTS_DB_MySQL extends OTS_Base_DB
return $this->hasTable($table) && ($this->has_column_cache[$table . '.' . $column] = count($this->query('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $column . "'")->fetchAll()) > 0);
}
public function hasTableAndColumns(string $table, array $columns = []): bool
{
if (!$this->hasTable($table)) return false;
foreach ($columns as $column) {
if (!$this->hasColumn($table, $column)) {
return false;
}
}
return true;
}
public function revalidateCache() {
foreach($this->has_table_cache as $key => $value) {
$this->hasTableInternal($key);

View File

@@ -89,8 +89,6 @@ if($logged && $account_logged && $account_logged->isLoaded()) {
* Routes loading
*/
$dispatcher = FastRoute\cachedDispatcher(function (FastRoute\RouteCollector $r) {
$routes = require SYSTEM . 'routes.php';
$routesFinal = [];
foreach(getDatabasePages() as $page) {
$routesFinal[] = ['*', $page, '__database__/' . $page, 100];
@@ -106,8 +104,13 @@ $dispatcher = FastRoute\cachedDispatcher(function (FastRoute\RouteCollector $r)
*/
}
$routes = require SYSTEM . 'routes.php';
foreach ($routes as $route) {
if (!str_contains($route[2], '__redirect__') && !str_contains($route[2], '__database__')) {
if (!is_file(BASE . 'system/pages/' . $route[2])) {
continue;
}
$routesFinal[] = [$route[0], $route[1], 'system/pages/' . $route[2], $route[3] ?? 10000];
}
else {

View File

@@ -151,7 +151,8 @@ class Plugins {
$pagesDefaultPriority = $plugin['pages-default-priority'];
}
if (self::getAutoLoadOption($plugin, 'pages', true)) {
$autoLoadPages = self::getAutoLoadOption($plugin, 'pages', true);
if ($autoLoadPages) {
//
// Get all plugins/*/pages/*.php pages
//
@@ -164,7 +165,8 @@ class Plugins {
}
}
if (self::getAutoLoadOption($plugin, 'pagesSubFolders', true)) {
if ($autoLoadPages && self::getAutoLoadOption($plugin, 'pagesSubFolders', true) &&
self::getAutoLoadOption($plugin, 'pages-sub-folders', true)) {
//
// Get all plugins/*/pages/subFolder/*.php pages
//
@@ -699,6 +701,7 @@ class Plugins {
return false;
}
clearCache();
return true;
}
@@ -792,25 +795,19 @@ class Plugins {
}
}
if($success) {
foreach($plugin_info['uninstall'] as $file) {
if(!deleteDirectory(BASE . $file)) {
self::$warnings[] = 'Cannot delete: ' . $file;
}
}
$cache = Cache::getInstance();
if($cache->enabled()) {
$cache->delete('templates');
$cache->delete('hooks');
$cache->delete('template_menus');
}
return true;
if(!$success) {
$revertEnable();
return false;
}
$revertEnable();
return false;
foreach($plugin_info['uninstall'] as $file) {
if(!deleteDirectory(BASE . $file)) {
self::$warnings[] = 'Cannot delete: ' . $file;
}
}
clearCache();
return true;
}
public static function is_installed($plugin_name, $version): bool

View File

@@ -4,7 +4,9 @@
let colors = [];
{% for cat, menu in menus %}
last_id[{{ cat }}] = {{ last_id[cat] }};
{% if config('menu_categories')[cat] is not empty %}
last_id[{{ cat }}] = {{ last_id[cat] }};
{% endif %}
{% endfor %}
{% set menuDefaultLinksColor = config('menu_default_links_color') %}