| Server IP : 188.114.96.3 / Your IP : 216.73.216.143 Web Server : Apache System : Linux sv058.home.net.pl 6.8.2 husak_dirty_pages_fix #1 SMP PREEMPT_DYNAMIC Tue Apr 2 22:06:51 CEST 2024 x86_64 User : ( 3194769) PHP Version : 8.5.12 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /test2.famaresto/inc/ |
Upload File : |
<?php
require_once __DIR__ . '/auth.php';
function cms_pages_dir(): string {
return cms_data_dir() . '/pages';
}
function cms_page_file(string $slug): string {
$slug = preg_replace('~[^a-z0-9\-]+~i', '', $slug);
return cms_pages_dir() . '/' . $slug . '.json';
}
function cms_ensure_pages_dir(): void {
$dir = cms_pages_dir();
if (!is_dir($dir)) {
@mkdir($dir, 0775, true);
}
}
function cms_list_pages(): array {
cms_ensure_pages_dir();
$out = [];
foreach (glob(cms_pages_dir() . '/*.json') ?: [] as $file) {
$slug = basename($file, '.json');
$data = cms_load_json($file, []);
$out[] = [
'slug' => $slug,
'title' => (string)($data['title'] ?? $slug),
'updated_at' => (string)($data['updated_at'] ?? ''),
'file' => $file,
];
}
usort($out, fn($a,$b) => strcasecmp($a['slug'],$b['slug']));
return $out;
}
function cms_load_page(string $slug): array {
$file = cms_page_file($slug);
$fallback = [
'slug' => $slug,
'title' => $slug,
'sections' => [],
];
$data = cms_load_json($file, $fallback);
if (!isset($data['sections']) || !is_array($data['sections'])) $data['sections'] = [];
$data['slug'] = $slug;
return $data;
}
function cms_save_page(string $slug, array $data): bool {
cms_ensure_pages_dir();
$data['slug'] = $slug;
$data['updated_at'] = date('c');
return cms_save_json(cms_page_file($slug), $data);
}