95 lines
5.7 KiB
PHP
95 lines
5.7 KiB
PHP
<?php
|
|
/**
|
|
* Skrypt aktualizacji szablonu Kontakt w bazie danych.
|
|
* Podejście: budujemy docelowy HTML z kawałków oryginalnego szablonu.
|
|
* Uruchom: php update_kontakt.php
|
|
*/
|
|
|
|
require_once 'files/config.php';
|
|
|
|
$db = new PDO(
|
|
'mysql:host=' . $database['host'] . ';dbname=' . $database['name'] . ';charset=utf8',
|
|
$database['user'],
|
|
$database['password']
|
|
);
|
|
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
|
|
$html = file_get_contents('_current_layout.html');
|
|
$q = '\\"'; // escaped quote - tak są zapisane w bazie
|
|
|
|
// Strategia: wycinamy fragmenty z oryginalnego HTML
|
|
// Część 1: od początku do <div id="contact"> (włącznie z otwierającym divem)
|
|
$contactStart = strpos($html, '<div id=' . $q . 'contact' . $q . '>');
|
|
$part1 = substr($html, 0, $contactStart);
|
|
$part1 .= '<div id=' . $q . 'contact' . $q . '>';
|
|
|
|
// Część 2: od "<!-- NOWY WYGLĄD KONTAKTU -->" do "Salony meblowe" nc-card (wycinamy tę kartę)
|
|
$newContactStart = strpos($html, '<!-- NOWY WYGLĄD KONTAKTU -->');
|
|
|
|
// Część 3: karta "Siedziba główna" (zostawiamy jak jest)
|
|
// Szukamy od newContactStart do "Salony meblowe"
|
|
$salonStart = strpos($html, 'Salony meblowe', $newContactStart);
|
|
// Cofamy się do <div class=\"nc-card\"> przed "Salony meblowe"
|
|
$salonCardStart = strrpos(substr($html, 0, $salonStart), '<div class=' . $q . 'nc-card' . $q . '>');
|
|
|
|
// Od NOWY WYGLĄD do początku karty Salony
|
|
$part2 = "\n " . substr($html, $newContactStart, $salonCardStart - $newContactStart);
|
|
|
|
// Część 4: nowa karta Żołynia (zastępuje starą kartę Salony meblowe)
|
|
$part3 = '<div class=' . $q . 'nc-card' . $q . '>
|
|
<div class=' . $q . 'nc-card-header' . $q . '>Salon meblowy – Żołynia</div>
|
|
<div class=' . $q . 'nc-card-body' . $q . '>
|
|
<div class=' . $q . 'nc-closed-info' . $q . '>
|
|
<div class=' . $q . 'nc-info-row' . $q . ' style=' . $q . 'text-decoration: line-through; opacity: 0.5;' . $q . '>
|
|
<div class=' . $q . 'nc-icon' . $q . '><svg viewBox=' . $q . '0 0 24 24' . $q . '><path d=' . $q . 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z' . $q . '/></svg></div>
|
|
<div class=' . $q . 'nc-info-content' . $q . '><strong>Żołynia ul. Rynek</strong><br>Dom Handlowy 1P</div>
|
|
</div>
|
|
<div class=' . $q . 'nc-info-row' . $q . ' style=' . $q . 'text-decoration: line-through; opacity: 0.5;' . $q . '>
|
|
<div class=' . $q . 'nc-icon' . $q . '><svg viewBox=' . $q . '0 0 24 24' . $q . '><path d=' . $q . 'M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z' . $q . '/></svg></div>
|
|
<div class=' . $q . 'nc-info-content' . $q . '><strong>tel/fax: 17 224-32-89</strong></div>
|
|
</div>
|
|
<div class=' . $q . 'nc-info-row' . $q . ' style=' . $q . 'text-decoration: line-through; opacity: 0.5;' . $q . '>
|
|
<div class=' . $q . 'nc-icon' . $q . '><svg viewBox=' . $q . '0 0 24 24' . $q . '><path d=' . $q . 'M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z' . $q . '/></svg></div>
|
|
<div class=' . $q . 'nc-info-content' . $q . '><a href=' . $q . 'mailto:zolynia.rekord@op.pl' . $q . '>zolynia.rekord@op.pl</a></div>
|
|
</div>
|
|
</div>
|
|
<div class=' . $q . 'nc-redirect-notice' . $q . '>
|
|
<div class=' . $q . 'nc-redirect-icon' . $q . '>
|
|
<svg viewBox=' . $q . '0 0 24 24' . $q . ' width=' . $q . '32' . $q . ' height=' . $q . '32' . $q . '><path d=' . $q . 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z' . $q . ' fill=' . $q . '#d4a017' . $q . '/></svg>
|
|
</div>
|
|
<p>Wszystkich dotychczasowych Klientów salonu w Żołyni<br>(asortyment BRW, Signal Meble, Halmar)<br><strong>serdecznie zapraszamy do naszej siedziby w Czarnej – w atrakcyjnych cenach!</strong></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
';
|
|
|
|
// Część 5: od "<!-- KONIEC NOWEGO WYGLĄDU -->" do końca pliku
|
|
$endComment = strpos($html, '<!-- KONIEC NOWEGO WYGLĄDU -->');
|
|
// Musimy znaleźć zamknięcie nc-grid i nc-wrapper przed komentarzem
|
|
$part4 = ' </div>
|
|
</div>
|
|
';
|
|
$part5 = substr($html, $endComment);
|
|
|
|
// Składamy końcowy HTML
|
|
$finalHtml = $part1 . $part2 . $part3 . $part4 . $part5;
|
|
|
|
// Weryfikacja przed zapisem
|
|
echo "Sprawdzenia:\n";
|
|
echo " contact_left usunięty: " . (strpos($finalHtml, 'contact_left') === false ? "OK" : "FAIL") . "\n";
|
|
echo " contact_right usunięty: " . (strpos($finalHtml, 'contact_right') === false ? "OK" : "FAIL") . "\n";
|
|
echo " nc-redirect-notice: " . (strpos($finalHtml, 'nc-redirect-notice') !== false ? "OK" : "FAIL") . "\n";
|
|
echo " Siedziba główna: " . (strpos($finalHtml, 'Siedziba główna') !== false ? "OK" : "FAIL") . "\n";
|
|
echo " Salon meblowy Żołynia: " . (strpos($finalHtml, 'Salon meblowy') !== false ? "OK" : "FAIL") . "\n";
|
|
echo " line-through: " . (strpos($finalHtml, 'line-through') !== false ? "OK" : "FAIL") . "\n";
|
|
echo " footer: " . (strpos($finalHtml, 'footer') !== false ? "OK" : "FAIL") . "\n";
|
|
|
|
// Zapisz do pliku do podglądu
|
|
file_put_contents('_updated_layout.html', $finalHtml);
|
|
echo "\nZapisano podgląd do _updated_layout.html\n";
|
|
|
|
// Aktualizacja bazy
|
|
$stmt = $db->prepare("UPDATE pp_layouts SET html = :html WHERE id = 2");
|
|
$stmt->execute(['html' => $finalHtml]);
|
|
echo "Baza danych zaktualizowana.\n";
|