Remove media menu option and verify route handling

This commit is contained in:
2026-06-23 16:20:29 +02:00
parent f5d95fd344
commit d97c67c6a9
60 changed files with 115 additions and 0 deletions

77
cms/core/class/Cache.php Normal file
View File

@@ -0,0 +1,77 @@
<?php
interface CacheInterface {
public function get(string $key);
public function set(string $key, $value, int $ttl = 3600): bool;
public function delete(string $key): bool;
public function clear(): bool;
public function has(string $key): bool;
}
class FileCache implements CacheInterface {
private string $cacheDir;
public function __construct(string $cacheDir = '/tmp/codepress_cache') {
$this->cacheDir = $cacheDir;
if (!is_dir($this->cacheDir)) {
mkdir($this->cacheDir, 0755, true);
}
}
public function get(string $key) {
$file = $this->getCacheFile($key);
if (!file_exists($file)) {
return null;
}
$data = unserialize(file_get_contents($file));
if ($data['expires'] < time()) {
unlink($file);
return null;
}
return $data['value'];
}
public function set(string $key, $value, int $ttl = 3600): bool {
$file = $this->getCacheFile($key);
$data = [
'value' => $value,
'expires' => time() + $ttl
];
return file_put_contents($file, serialize($data)) !== false;
}
public function delete(string $key): bool {
$file = $this->getCacheFile($key);
if (file_exists($file)) {
return unlink($file);
}
return true;
}
public function clear(): bool {
$files = glob($this->cacheDir . '/*');
foreach ($files as $file) {
if (is_file($file)) {
unlink($file);
}
}
return true;
}
public function has(string $key): bool {
$file = $this->getCacheFile($key);
if (!file_exists($file)) {
return false;
}
$data = unserialize(file_get_contents($file));
return $data['expires'] > time();
}
private function getCacheFile(string $key): string {
return $this->cacheDir . '/' . md5($key) . '.cache';
}
}