Sablonokból indultunk, sablon nélkül épül
Egy kutatócég kétnyelvű, egyoldalas honlapja. A terv áll, a tartalom véglegesítése zajlik — ez a lap a jelenlegi állást írja le.
- A helyzet
- Egy 2003 óta működő budapesti kutatócég honlapja megújításra várt. Egyetlen, végiggörgethető oldalt szerettek volna, menünek látszó horgony-navigációval, saját arculattal, magyarul és angolul.
- Amit eddig elvégeztem
- Egyedi téma oldalszerkesztő nélkül: nyolc szekció, kétnyelvűség többnyelvű bővítmény nélkül, három jogi aloldal két nyelven, és egy térkép, ami nem várakoztat.
- Hol tart
- Az első teljes terv 2026 júliusában ment át; a megrendelő a szövegeket véglegesíti. A munka fejlesztői aldomainen folyik, az éles oldal közben zavartalanul üzemel.
A munka számokban
| Az együttműködés kezdete | 2025. június |
|---|---|
| Állapot | épül — a tartalom véglegesítése zajlik |
| Szerkezet | egyoldalas, 8 szekció, horgony-navigációval |
| Nyelvek | 2 — magyar és angol, azonos szerkezettel |
| Jogi aloldal | 3, mindkét nyelven — összesen 6 cím |
| Hol épül | fejlesztői aldomainen, az éles oldal érintetlen |
- Projekt
- piac- és közvélemény-kutatás
- Szerep
- Egyedi téma, kétnyelvűsítés, jogi oldalak, üzemeltetés
- Együttműködés
- Szerződéses fejlesztés + havidíjas karbantartás
A sablon-kérdés, amit a megrendelő tett fel
A munka sablon-válogatással indult: küldtem néhány oldalt, amit az átlagnál egyedibbnek találtam. A visszakérdezés viszont pontos volt, és el is döntötte a projekt irányát — azt kérdezték, mi az, ami egy sablonban fix, amit nem lehet változtatni.
A válasz az lett, hogy semmi. Nem is kell egyetlen sablont választaniuk: gyűjtsék össze, melyikről mi tetszik, és abból összerakok egy egységes változatot. Amire nem adnak instrukciót, ott vagy improvizálok, vagy rákérdezek útközben.
A végén egyetlen sablon sem került be. Ami épül, az saját téma — a sablonok annyiban maradtak benne, hogy megmutatták, mi tetszik a megrendelőnek.
A domaint nem kellett átköltöztetni
A honlap egy korábbi szolgáltatónál volt, a céges e-mail-fiókokkal együtt. Utánanéztem, és arra jutottam, hogy a domaint nem szükséges átköltöztetni: elég egy fejlesztői aldomain, aminek az A rekordja az én kiszolgálómra mutat. A fődomain beállítása változatlan maradt, az e-mail zavartalanul működött tovább, és nem kellett átszerződni.
A megrendelő rendszergazdája állította be, a megrendelő saját levelében, pontról pontra megfogalmazott kérés alapján. A költöztetés ilyenkor a fejlesztő kényelme szokott lenni, nem műszaki szükségszerűség.
Mit jelent ez, ha hasonló a helyzeted
Ha egyoldalas bemutatkozó honlapot szeretnél, az oldalszerkesztő nem sokat ad: nincs sok aloldal, amit gondozni kellene, cserébe rétegeket tesz az oldal alá. Egyedi témával a megjelenés pontosan az lesz, amiben megegyeztünk, és később is oda tehető szerkeszthető rész, ahová tényleg kell.
Ha pedig épp fejlesztőt váltasz: kérdezz rá, miért kellene költöztetni. Sok esetben nem kell, és a meglévő e-mail-rendszer bolygatása a legdrágább része egy olyan lépésnek, ami elhagyható.
Ha egyoldalas, kétnyelvű bemutatkozó oldalra van szükséged, vagy fejlesztőt váltanál és nem tudod, mit kell hozzá megmozgatni, írj pár mondatot arról, mi van most. Egy levélváltásból általában kiderül, mennyi munka.
kristof@kristofkarner.comInnentől a részletek: a kétnyelvűség bővítmény nélkül, a jogi oldalak, amik buildelnek, egy térkép-beakadás mérése, és egy süti-banner, ami jelenleg semmit nem kapuz.
A megvalósítás mérete
| Egyedi téma | 30 PHP-sablon, 7 301 sor PHP + CSS + JS |
|---|---|
| Szekció | 8 élő + 8 archivált az első designváltozatból |
| Szöveg-kulcs | 143 magyar és 143 angol, azonos szerkezettel |
| Rewrite-szabály | 14 — nyelv, jogi oldalak, designváltozat |
| Oldalszerkesztő | nincs |
| Többnyelvű bővítmény | nincs |
$ find . -name "*.php" -not -path "*/vendor/*" | wc -l 30 $ cat $(find . -name "*.php" -o -name "*.css" -o -name "*.js" | grep -v vendor | grep -v rough.min) | wc -l 7301 $ grep -c "=>" inc/strings.hu.php inc/strings.en.php inc/strings.hu.php:143 inc/strings.en.php:143
Kétnyelvűség bővítmény nélkül
A többnyelvű bővítmények egy nagy rendszert hoznak: saját adatbázis-szerkezetet, saját szerkesztőfelületet, saját frissítési kockázatot. Egy nyolcszekciós egyoldalas honlapnál ez több terhet jelent, mint amennyit megold.
Helyette a szövegek két PHP-fájlban élnek, azonos szerkezettel, a címek
fordítását pedig 14 saját rewrite-szabály végzi: a /en/ előtag
angolra vált, a jogi aloldalaknak pedig saját angol címük van. A két
szövegkészlet azonos, 143 kulcsos — ha valamelyikből kimarad
egy, az összevetésnél kiderül.
Az angol jogi címeket a szabálylistában az általános
^en/(.+?) minta elé kellett tenni. Mögé kerülve a
WordPress oldalnévként próbálta volna feloldani őket, és nem találta volna meg
a hozzájuk tartozó sablont.
A jogi oldalak buildelnek
Az impresszum, az adatkezelési és a süti-tájékoztató nem kézzel írt HTML. Mindegyik konfigurációból és Markdown-sablonból generálódik, mindkét nyelven, egyetlen forrásból. A cégadat egy helyen van; a magyar és az angol változat ugyanabból készül.
A generálás két záron megy át, és ha bármelyiken elakad, nem születik kimenet:
- Helykitöltő-zár. Ha a sablonban kitöltetlen helykitöltő marad, a futás hibakóddal áll le.
- Törvényi zár. A konfiguráció felsorolja az elektronikus kereskedelmi törvény impresszumra vonatkozó szakaszának mind a nyolc pontját. Minden ponthoz vagy bizonyíték tartozik — konfigurációs útvonalak, amelyek értékének szó szerint meg kell jelennie a kész szövegben —, vagy egy indoklás arról, miért nem alkalmazandó; és annak is ki kell kerülnie az oldalra.
A nyolc pontból hathoz tartozik bizonyíték, kettő indoklással van lezárva. Az ok, amiért ez megéri: egy impresszum némán szokott hiányos lenni. Szépen renderelődik, jól néz ki, és közben lemarad róla a tárhelyszolgáltató — épp az, amit a legtöbben elfelejtenek. Így nem elég a konfigurációba beírni az adatot: ha a sablonból kimarad a helye, a build elhasal.
- 01 Adatok + sablon
- 02 Két zár
- 03 Kész szöveg
- 04 1. kitöltetlen helykitöltő ha maradt, a futás leáll
- 05 2. a törvény nyolc pontja bizonyíték vagy indoklás, szó szerint
egyetlen forrás · elakad → nincs kimenet · magyarul és angolul
A térkép, ami nem rajzolásra várt
A kapcsolat-szekcióban térkép van. Az első változat úgy viselkedett, hogy a görgetés megállása után 1,3–3,4 másodpercig mozdulatlan szürke doboz maradt. Kézenfekvő lett volna a böngésző fő szálát hibáztatni.
A mérés mást mutatott. A felépítés 1 550 milliszekundumából mindössze 165 esett a fő szálra; a többi hálózati várakozás volt, mert a csempeszolgáltatóhoz menő tizenhárom kérés csak akkor indult el, amikor a látogató már odaért. A leglassabb egyetlen kérés a betűkészleté volt, 730 milliszekundum.
A megoldás nem gyorsítás lett, hanem előrehozás. A kapcsolatfelvétel a csempeszolgáltatóval az oldal betöltésekor megtörténik, a stílust, a jelkészletet és a betűket pedig egy előmelegítő lépés tölti a böngésző gyorsítótárába, tétlen időben, a betöltés után. A térkép maga továbbra is csak akkor épül fel, amikor a látogató a közelébe ér.
Mérve: a holtidő 60 százalékkal esett asztali gépen, 31 százalékkal mobilon, és a fő szálon nulla többletköltséggel — az előmelegítés hálózati művelet, nem rajzolás.
Ami nem nyilvánvaló
A süti-banner jelenleg semmit nem kapuz
A térképszolgáltató cseréjével megszűnt az oldalon a hozzájárulás-köteles elem, így a süti-bővítmény magától már nem is jelenítette volna meg a bannert. A megrendelő úgy döntött, hogy maradjon, mert később jöhet mérés vagy hirdetés.
Ez vállalható döntés, de a kódban rögzítve van, hogy a banner jelenleg semmit nem kapuz, és hogy pontosan mit kell törölni, ha a mérés megérkezik. Egy másik oldalon ugyanez a kérdés az ellenkező válaszhoz vezetett — ezen az oldalon nincs banner, mert nincs mihez hozzájárulni.
Ahol a bővítmény tölt, ott már késő
A banner kikényszerítése nem fért el a témában. A süti-bővítmény a banner-betöltőt a saját indulásakor hozza létre, a téma pedig ennél később fut le. A beállítás ezért külön, korábban betöltődő modulba került — és mivel nem a témában van, a téma frissítése nem viszi magával, tehát élesben külön telepítendő. Ez a fajta függőség az, ami átadáskor szokott kiderülni.
Két design, és az egyik archívumban
A megjelenés nem sablonválasztással indult. Küldtem néhány sablont kiindulásnak — azzal, hogy egyikhez sem kell ragaszkodni, mert nem a sablon adja az oldal szerkeszthetőségét. A megrendelő ezután más ügynökségek oldalairól gyűjtött részleteket, és ezekből állt össze az irány. Két teljes változat készült el így. A döntés után a régebbi változat nem került a kukába: a fájljai a kódbázisban maradtak, csak nem töltődnek be. Nyolc szekció áll így archívumban.
Kérdések erről a munkáról
Miért épül egy honlap oldalszerkesztő nélkül?
Mert az oldalszerkesztő a szerkeszthetőségért cserébe rétegeket tesz az oldal alá, és a megjelenést a saját korlátaihoz köti. Ennél a projektnél a megrendelő egyetlen, végiggörgethető oldalt kért, saját arculattal — ott a szerkesztő nem segít, mert nincs sok különböző aloldal, amit gondozni kellene. Helyette egyedi téma épült: 30 saját PHP-sablon, 7 301 sor, nyolc szekció külön fájlban. Ha később mégis kell szerkeszthető rész, az célzottan építhető rá — ez a fordítottja annak, mint amikor az egészet egy szerkesztőre bízzuk, és utána próbáljuk visszavenni belőle.
Át kell-e költöztetni a domaint, ha új fejlesztő veszi át a honlapot?
Legtöbbször nem. Ennél a projektnél a megrendelő domainje és e-mail-fiókjai egy korábbi szolgáltatónál voltak; utánanéztem, és a fejlesztéshez elég volt egy fejlesztői aldomain, aminek az A rekordja az én kiszolgálómra mutat. A fődomain beállítása változatlan maradt, az e-mail zavartalanul működött tovább, és nem kellett átszerződni. A költöztetés a legtöbb esetben nem műszaki szükségszerűség, hanem a fejlesztő kényelme — érdemes rákérdezni, mi indokolja.
Hogyan lehet kétnyelvű egy WordPress-oldal többnyelvű bővítmény nélkül?
Saját rewrite-szabályokkal és szövegfájlokkal. Ennél a projektnél 14 rewrite-szabály fordítja le a beszédes címeket a belső paraméterekre: a /en/ előtag angol nyelvre vált, a jogi aloldalak pedig saját angol címükön érhetők el. A szövegek két PHP-fájlban élnek, azonos szerkezettel — a magyar és az angol készlet is 143 kulcsot tartalmaz, tehát ha valamelyikből kimarad egy, az összevetésnél kiderül. Ez egy nyolcszekciós oldalnál kevesebb terhet jelent, mint egy többnyelvű bővítmény és annak adatbázis-szerkezete.
Miért akad be egy beágyazott térkép, és mit lehet ellene tenni?
Mert jellemzően nem a rajzolás lassú, hanem a hálózat. Ennél az oldalnál a térkép a görgetés megállása után 1,3–3,4 másodpercig mozdulatlan szürke doboz maradt. Mérve kiderült, hogy a felépítés 1 550 milliszekundumából mindössze 165 esik a böngésző fő szálára; a többi hálózati várakozás, mert a csempeszolgáltatóhoz menő tizenhárom kérés csak akkor indul, amikor a látogató már odaért. A megoldás előrehozás volt: kapcsolat-előkészítés az oldal betöltésekor, és a stílus, a jelkészlet meg a betűk előmelegítése tétlen időben. A holtidő 60 százalékkal esett asztali gépen, 31 százalékkal mobilon, a fő szálon nulla többletköltséggel.
Kell-e süti-banner, ha az oldal nem mér semmit?
Jogilag nem, ha tényleg nincs olyan tárolás, amit meg lehetne tagadni. Ennél a projektnél a Google Maps helyére nyílt térképszolgáltatás került, amivel megszűnt a hozzájárulás-köteles elem — a süti-bővítmény ezért magától már nem is jelenítette volna meg a bannert. A megrendelő úgy döntött, hogy a banner maradjon, mert később jöhet mérés vagy hirdetés. Ez vállalható döntés, de a kódban rögzítve van, hogy amíg nincs tényleges mérés, a banner semmit nem kapuz — és hogy mit kell törölni, ha a mérés megérkezik.
Összefoglaló
Egy 2003 óta működő budapesti kutatócég kétnyelvű, egyoldalas honlapja épül 2025 júniusa óta. A megrendelő menünek látszó horgony-navigációt kért, saját arculattal; sablon-válogatásból indultunk, de a kérdésükre — mi az, ami egy sablonban fix — az lett a válasz, hogy semmi, és a végén egyetlen sablon sem került be. Ami épül, az egyedi téma: 30 PHP-sablon, 7 301 sor, nyolc szekció, oldalszerkesztő nélkül. A kétnyelvűség többnyelvű bővítmény helyett 14 saját rewrite-szabállyal és két, azonos szerkezetű szövegfájllal működik, mindkettő 143 kulccsal. A három jogi aloldal konfigurációból és Markdown-sablonból generálódik, két záron át: kitöltetlen helykitöltő vagy a törvény nyolc pontjának hiányzó bizonyítéka esetén nincs kimenet. A kapcsolat-szekció térképének beakadása mérve nem a böngésző fő szálán volt, hanem a hálózaton — előrehozott kapcsolatfelvétellel és előmelegítéssel a holtidő 60 százalékkal esett asztali gépen. A domaint nem kellett átköltöztetni: a fejlesztés aldomainen folyik, az éles oldal és a céges e-mail érintetlen. Az első teljes terv 2026 júliusában ment át; a tartalom véglegesítése zajlik.