| 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);
/**
* 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";
}
}