| 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 : /polana/includes/ |
Upload File : |
<?php
declare(strict_types=1);
/** POLANA V18.15: only UI links, no database mutations. */
if (!defined('PV1815_MENU_LOADED')) define('PV1815_MENU_LOADED', true);
function pv1815_map(): array {
return [
'Sala' => [
['Dzisiaj','today.php',['admin','manager','editor']],
['Grafik zmian','schedule.php',['admin','manager','editor','waiter','kitchen']],
['Dzienny plan rezerwacji','reservations-day.php',['admin','manager','editor','waiter']],
['Godziny rezerwacji','polana-godziny-rezerwacji.php',['admin']],
],
'Menu' => [
['Centrum menu','polana-menu-centrum.php',['admin','editor']],
['Karty menu','menus.php',['admin','editor']],
['Edytor dań','menu.php',['admin','editor']],
['Kolejność pozycji','menu-order.php',['admin','editor']],
['Eksport menu','menu-export.php',['admin','editor']],
['Menu Word / PDF','tklm-menu-word.php',['admin','editor']],
['Tłumaczenia menu','translate-menu.php',['admin','editor']],
['Centrum tłumaczeń','polana-v16-tlumaczenia.php',['admin','editor']],
['QR menu','qr.php',['admin','editor']],
],
'Poczta i rezerwacje' => [
['Komunikacja','polana-komunikacja.php',['admin']],
['Ustawienia SMTP','polana-poczta.php',['admin']],
['Diagnostyka e-maili','polana-v1812-naprawa-maili.php',['admin']],
['Kalendarz Google','polana-kalendarz.php',['admin']],
['Powiadomienia ntfy','polana-v186-ntfy.php',['admin']],
['Newsletter','polana-newsletter.php',['admin']],
['Ustawienia rezerwacji','reservation-settings.php',['admin']],
['Integracje rezerwacji','reservation-integrations.php',['admin']],
],
'Treści' => [
['Centrum treści','polana-centrum-tresci.php',['admin','editor']],
['Zdjęcia / galeria','media.php',['admin','editor']],
['Blog','blog.php',['admin','editor']],
['Tłumaczenia strony','translate-site.php',['admin','editor']],
],
'SEO i Google' => [
['Centrum SEO','polana-seo-centrum.php',['admin']],
['Analityka, GTM, Clarity','polana-analityka.php',['admin']],
['IndexNow','polana-indexnow.php',['admin']],
['Google Business','google-business.php',['admin']],
['Opinie','opinie.php',['admin']],
['SEO / zaślepka','seo.php',['admin']],
],
'Operacje' => [
['Napiwki','tips.php',['admin','manager','editor','waiter','kitchen']],
['Terminal napiwków','tips-kiosk.php',['admin','manager']],
['Raport managera','manager-report.php',['admin','manager']],
],
'System' => [
['Centrum zarządzania','polana-zarzadzanie.php',['admin','editor']],
['Ustawienia','settings.php',['admin','editor']],
['Użytkownicy','users.php',['admin']],
['Backup SQL','database-backup.php',['admin']],
['Automatyczne kopie','polana-backup-automat.php',['admin']],
['Pełne kopie na Drive','polana-v1811-backup-kontrola.php',['admin']],
['Wszystkie moduły','polana-v1814-moduly.php',['admin']],
['Diagnostyka menu V18.15','polana-v1815-diagnostyka.php',['admin']],
]
];
}
function pv1815_nav_render(string $role): void {
$adminBase = dirname(__DIR__) . '/admin/';
$script = basename((string)parse_url((string)($_SERVER['SCRIPT_NAME'] ?? ''),PHP_URL_PATH));
$direct = [
['Pulpit','index.php',['admin','manager','editor','waiter','kitchen']],
['Rezerwacje','reservations.php',['admin','manager','editor','waiter']]
];
foreach ($direct as $item) {
if (!in_array($role, $item[2],true) || !is_file($adminBase . $item[1])) continue;
$active=$script===$item[1];
echo '<a'.($active?' class="is-active" aria-current="page"':'').' href="/admin/'.htmlspecialchars($item[1],ENT_QUOTES,'UTF-8').'">'.htmlspecialchars($item[0],ENT_QUOTES,'UTF-8').'</a>';
}
foreach (pv1815_map() as $section=>$items) {
$links=[];
foreach ($items as $i) {
if (!in_array($role,$i[2],true)) continue;
// Link only to an actual PHP file; missing module is reported by diagnostics.
if (!is_file($adminBase.$i[1])) continue;
$links[]=$i;
}
if (!$links) continue;
$selected=false;
foreach ($links as $x) if ($script===$x[1]) $selected=true;
$right=in_array($section,['System','SEO i Google'],true);
echo '<details class="admin-nav-group pv1815-group'.($selected?' is-active':'').'">';
echo '<summary>'.htmlspecialchars($section,ENT_QUOTES,'UTF-8').'</summary>';
echo '<div class="admin-nav-dropdown'.($right?' admin-nav-dropdown-right':'').'" role="group" aria-label="'.htmlspecialchars($section,ENT_QUOTES,'UTF-8').'">';
foreach ($links as $x) {
$active=($script===$x[1]);
echo '<a'.($active?' class="is-active" aria-current="page"':'').' href="/admin/'.htmlspecialchars($x[1],ENT_QUOTES,'UTF-8').'">'.htmlspecialchars($x[0],ENT_QUOTES,'UTF-8').'</a>';
}
echo '</div></details>';
}
}