[ [ "title" => "Gitea", "description" => "Mein privates Git-Repository – Quellcode, Projekte & mehr.", "url" => "/git", "logo" => "/icons/gitea.svg", "color" => "#609926" ], [ "title" => "Nextcloud", "description" => "Meine persönliche Cloud – Dateien, Kalender & Kontakte.", "url" => "/nextcloud", "logo" => "/icons/nextcloud.svg", "color" => "#0082c9" ], ], "schule" => [ [ "title" => "Geizkragen.store", "description" => "Schulprojekt – Ein Online-Shop für Schnäppchenjäger.", "url" => "https://geizkragen.store", "logo" => "/icons/geizkragen.png", "color" => "#e8281e", "external" => true ], ], "dienste" => [ [ "title" => "Home Assistant", "description" => "Meine Smart-Home-Zentrale – Automatisierungen & Geräte.", "url" => "http://homeassistant.fabianschieder.com", "logo" => "/icons/homeassistant.svg", "color" => "#18BCF2", "external" => true ], [ "title" => "NAS", "description" => "Mein Netzwerkspeicher – Daten & Backups.", "url" => "http://nas.fabianschieder.com", "logo" => "/icons/nas.svg", "color" => "#a855f7", "external" => true ], ], ]; /** * Optional: Prüft serverseitig, ob die Logo-Datei existiert. * Verhindert Broken Images. */ function logoExists(string $webPath): bool { $base = rtrim($_SERVER['DOCUMENT_ROOT'] ?? '/var/www/fabianschieder.com', '/'); $full = $base . '/' . ltrim($webPath, '/'); return is_file($full); } // ── DEBUG: Entferne diesen Block nach dem Testen ────────────────────────── if (isset($_GET['debug'])) { echo '
';
    echo "DOCUMENT_ROOT: " . ($_SERVER['DOCUMENT_ROOT'] ?? 'nicht gesetzt') . "\n";
    echo "PHP __FILE__:  " . __FILE__ . "\n";
    echo "PHP dirname:   " . dirname(__FILE__) . "\n\n";
    $testIcons = ['/icons/gitea.svg', '/icons/nextcloud.svg', '/icons/geizkragen.png', '/icons/homeassistant.svg', '/icons/nas.svg'];
    foreach ($testIcons as $icon) {
        $base = rtrim($_SERVER['DOCUMENT_ROOT'] ?? '/var/www/fabianschieder.com', '/');
        $full = $base . '/' . ltrim($icon, '/');
        $alt  = dirname(__FILE__) . '/' . ltrim($icon, '/');
        echo $icon . "\n";
        echo "  via DOCUMENT_ROOT → " . $full . " → " . (is_file($full) ? "✅ OK" : "❌ nicht gefunden") . "\n";
        echo "  via dirname       → " . $alt  . " → " . (is_file($alt)  ? "✅ OK" : "❌ nicht gefunden") . "\n\n";
    }
    echo '
'; } // ── END DEBUG ───────────────────────────────────────────────────────────── ?> Fabian Schieder
FS

Fabian Schieder

Entwickler · Schüler · Macher

$items): ?>

Privat'; break; case "schule": echo ' Schule'; break; case "dienste": echo ' Dienste'; break; } ?>