feat: add privacy policy and terms of service pages with CMS content
This commit is contained in:
@@ -45,3 +45,21 @@
|
||||
✓ Compiled / in 25ms
|
||||
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
|
||||
GET / 200 in 202ms
|
||||
✓ Compiled /kapcsolat in 16ms
|
||||
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
|
||||
GET /kapcsolat 200 in 222ms
|
||||
✓ Compiled /_not-found/page in 136ms
|
||||
GET /adatvedelem 404 in 221ms
|
||||
GET /kapcsolat 200 in 104ms
|
||||
✓ Compiled /kapcsolat in 74ms
|
||||
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
|
||||
GET /kapcsolat 200 in 398ms
|
||||
GET /kapcsolat 200 in 346ms
|
||||
GET /favicon.ico?favicon.0b3bf435.ico 200 in 239ms
|
||||
✓ Compiled in 81ms
|
||||
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
|
||||
GET /kapcsolat 200 in 230ms
|
||||
GET /kapcsolat 200 in 91ms
|
||||
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
|
||||
GET /kapcsolat 200 in 83ms
|
||||
GET /kapcsolat 200 in 33ms
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
import { content } from '@/content'
|
||||
|
||||
export const metadata = {
|
||||
title: `${content.pages.adatvedelem.title} | ${content.common.labels.features || 'mozdIT Bt.'}`,
|
||||
description: 'Adatvédelmi tájékoztató - ismerje meg, hogyan kezeljük személyes adatait.',
|
||||
}
|
||||
|
||||
export default function PrivacyPolicy() {
|
||||
const pageContent = content.pages.adatvedelem
|
||||
|
||||
return (
|
||||
<div className="py-20 lg:py-28 max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="mb-12">
|
||||
<h1
|
||||
className="text-4xl md:text-5xl font-bold mb-4"
|
||||
style={{ color: 'var(--color-foreground)' }}
|
||||
>
|
||||
{pageContent.title}
|
||||
</h1>
|
||||
<p
|
||||
className="text-sm"
|
||||
style={{ color: 'var(--color-foreground-muted)' }}
|
||||
>
|
||||
Utolsó frissítés: {pageContent.lastUpdated}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="space-y-12">
|
||||
{pageContent.sections.map((section) => (
|
||||
<section key={section.id}>
|
||||
<h2
|
||||
className="text-2xl font-semibold mb-4"
|
||||
style={{ color: 'var(--color-foreground)' }}
|
||||
>
|
||||
{section.title}
|
||||
</h2>
|
||||
<div
|
||||
className="prose max-w-none"
|
||||
style={{ color: 'var(--color-foreground-muted)' }}
|
||||
dangerouslySetInnerHTML={{
|
||||
// Ehelyett a valódi alkalmazásban javasolt egy Markdown parser, de az egyszerűség kedvéért a sima sortöréseket lekezeljük
|
||||
__html: section.content
|
||||
.replace(/\n\n/g, '</p><p class="mb-4">')
|
||||
.replace(/• \*\*(.*?)\*\*/g, '<br/>• <strong>$1</strong>')
|
||||
.replace(/^/, '<p class="mb-4">')
|
||||
.replace(/$/, '</p>')
|
||||
}}
|
||||
/>
|
||||
</section>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
import { content } from '@/content'
|
||||
|
||||
export const metadata = {
|
||||
title: `${content.pages.hasznalatiFeltetelek.title} | ${content.common.labels.features || 'mozdIT Bt.'}`,
|
||||
description: 'Általános Szerződési Feltételek - Ismerje meg a mozdIT Bt. szolgáltatásainak használati feltételeit.',
|
||||
}
|
||||
|
||||
export default function TermsOfService() {
|
||||
const pageContent = content.pages.hasznalatiFeltetelek
|
||||
|
||||
return (
|
||||
<div className="py-20 lg:py-28 max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="mb-12">
|
||||
<h1
|
||||
className="text-4xl md:text-5xl font-bold mb-4"
|
||||
style={{ color: 'var(--color-foreground)' }}
|
||||
>
|
||||
{pageContent.title}
|
||||
</h1>
|
||||
<p
|
||||
className="text-sm"
|
||||
style={{ color: 'var(--color-foreground-muted)' }}
|
||||
>
|
||||
Utolsó frissítés: {pageContent.lastUpdated}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="space-y-12">
|
||||
{pageContent.sections.map((section) => (
|
||||
<section key={section.id}>
|
||||
<h2
|
||||
className="text-2xl font-semibold mb-4"
|
||||
style={{ color: 'var(--color-foreground)' }}
|
||||
>
|
||||
{section.title}
|
||||
</h2>
|
||||
<div
|
||||
className="prose max-w-none"
|
||||
style={{ color: 'var(--color-foreground-muted)' }}
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: section.content
|
||||
.replace(/\n\n/g, '</p><p class="mb-4">')
|
||||
.replace(/• \*\*(.*?)\*\*/g, '<br/>• <strong>$1</strong>')
|
||||
.replace(/^/, '<p class="mb-4">')
|
||||
.replace(/$/, '</p>')
|
||||
}}
|
||||
/>
|
||||
</section>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -20,7 +20,8 @@ import type {
|
||||
HomePageContent,
|
||||
AboutPageContent,
|
||||
ServicesPageContent,
|
||||
ContactPageContent
|
||||
ContactPageContent,
|
||||
LegalPageContent
|
||||
} from './types'
|
||||
|
||||
// Import JSON files
|
||||
@@ -29,6 +30,8 @@ import homeJson from './pages/home.json'
|
||||
import aboutJson from './pages/about.json'
|
||||
import servicesJson from './pages/services.json'
|
||||
import contactJson from './pages/contact.json'
|
||||
import adatvedelemJson from './pages/adatvedelem.json'
|
||||
import hasznalatiFeltetelekJson from './pages/hasznalati-feltetelek.json'
|
||||
|
||||
// Type assertions for JSON imports
|
||||
const common: CommonContent = commonJson as CommonContent
|
||||
@@ -36,6 +39,8 @@ const home: HomePageContent = homeJson as HomePageContent
|
||||
const about: AboutPageContent = aboutJson as AboutPageContent
|
||||
const services: ServicesPageContent = servicesJson as ServicesPageContent
|
||||
const contact: ContactPageContent = contactJson as ContactPageContent
|
||||
const adatvedelem: LegalPageContent = adatvedelemJson as LegalPageContent
|
||||
const hasznalatiFeltetelek: LegalPageContent = hasznalatiFeltetelekJson as LegalPageContent
|
||||
|
||||
// Combined content object
|
||||
export const content: SiteContent = {
|
||||
@@ -44,7 +49,9 @@ export const content: SiteContent = {
|
||||
home,
|
||||
about,
|
||||
services,
|
||||
contact
|
||||
contact,
|
||||
adatvedelem,
|
||||
hasznalatiFeltetelek
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +63,7 @@ export function getPageContent<T extends keyof SiteContent['pages']>(
|
||||
}
|
||||
|
||||
// Export individual content for direct imports
|
||||
export { common, home, about, services, contact }
|
||||
export { common, home, about, services, contact, adatvedelem, hasznalatiFeltetelek }
|
||||
|
||||
// Re-export types
|
||||
export * from './types'
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"title": "Adatvédelmi Tájékoztató",
|
||||
"lastUpdated": "2026. április 26.",
|
||||
"sections": [
|
||||
{
|
||||
"id": "bevezetes",
|
||||
"title": "1. Bevezetés",
|
||||
"content": "A mozdIT Bt. (székhely: Budapest, Magyarország; e-mail: info@mozdit.hu) mint adatkezelő elkötelezett a felhasználók személyes adatainak védelme iránt. Jelen tájékoztató célja, hogy az Európai Unió Általános Adatvédelmi Rendelete (GDPR) előírásainak megfelelően átlátható módon bemutassa cégünk adatkezelési gyakorlatát."
|
||||
},
|
||||
{
|
||||
"id": "adatkezeles-celja",
|
||||
"title": "2. Milyen adatokat kezelünk, mi a céljuk és a jogalapjuk?",
|
||||
"content": "A szolgáltatásaink nyújtása során az alábbi adatokat kezeljük:\n\n• **Kapcsolatfelvétel és űrlapok:** Név, e-mail cím, telefonszám, a beküldött üzenet tartalma. (Cél: ügyfélkapcsolat, árajánlatadás. Jogalap: hozzájárulás és szerződést megelőző lépések.)\n• **Ügyfél-nyilvántartás és számlázás:** Számlázási név és cím, adószám, kapcsolattartó adatai. (Cél: szolgáltatás biztosítása, számlázás. Jogalap: jogi kötelezettség, szerződés teljesítése.)\n• **Webtárhely és e-mail szolgáltatás:** Technikai naplófájlok (IP címek, belépési időpontok), e-mail forgalmi adatok szűrése (spam, vírusok). (Cél: IT biztonság fenntartása, szolgáltatás biztosítása. Jogalap: szerződés teljesítése, jogos érdek.)\n• **Domain-regisztráció:** Tulajdonosi és kapcsolattartói adatok. (Cél: domain delegáció ügyintézése a regisztrátorok felé. Jogalap: szerződés teljesítése.)\n• **Sütik (Cookies):** Weboldalunk a megfelelő technikai működés érdekében alapvető (munkamenet) sütiket használ. Harmadik fél analitikai kódjait (pl. Meta pixel) jelenleg nem használjuk az alapvető nyomkövetéshez."
|
||||
},
|
||||
{
|
||||
"id": "adattovabbitas",
|
||||
"title": "3. Adattovábbítás és adatfeldolgozók",
|
||||
"content": "A személyes adatokat bizalmasan kezeljük, és alapvetően a mozdIT Bt. saját, dedikált infrastruktúráján tároljuk. Harmadik félnek csak jogszabályi kötelezettség alapján (pl. NAV részére könyvelési okokból), illetve a domain-regisztrációs szolgáltatások keretében továbbítunk adatokat az illetékes regisztrátorok (pl. ISZT) felé."
|
||||
},
|
||||
{
|
||||
"id": "adatmegorzes",
|
||||
"title": "4. Az adatkezelés időtartama",
|
||||
"content": "A számviteli bizonylatokat a Számviteli törvény értelmében 8 évig megőrizzük. A kapcsolatfelvételi űrlapon megadott, de szerződéssel nem végződő adatokat az ügy lezárását követő 1 év elteltével töröljük. A webszerverek technikai naplófájljait (logokat) a biztonsági és üzemeltetési feladatok ellátása céljából legfeljebb 30 napig őrizzük meg."
|
||||
},
|
||||
{
|
||||
"id": "jogok",
|
||||
"title": "5. Az érintettek jogai",
|
||||
"content": "Az érintettek bármikor tájékoztatást kérhetnek adataik kezeléséről, kérhetik azok helyesbítését, törlését (a kötelező adatkezelések kivételével) vagy zárolását. Kérésüket az info@mozdit.hu e-mail címre küldhetik el, amire indokolatlan késedelem nélkül, de legkésőbb egy hónapon belül válaszolunk. Jogosulatlan adatkezelés esetén a Nemzeti Adatvédelmi és Információszabadság Hatósághoz (NAIH) lehet fordulni panasszal."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"title": "Használati Feltételek (ÁSZF)",
|
||||
"lastUpdated": "2026. április 26.",
|
||||
"sections": [
|
||||
{
|
||||
"id": "bevezetes",
|
||||
"title": "1. Általános rendelkezések",
|
||||
"content": "Jelen Általános Szerződési Feltételek (ÁSZF) a mozdIT Bt. (székhely: Budapest, Magyarország; e-mail: info@mozdit.hu) által nyújtott webtárhely, e-mail szolgáltatás és domain regisztráció szolgáltatásainak igénybevételére vonatkozó szabályokat tartalmazzák. A szolgáltatások megrendelésével és használatával az Ügyfél elfogadja jelen feltételeket."
|
||||
},
|
||||
{
|
||||
"id": "szolgaltatasok",
|
||||
"title": "2. Szolgáltatások leírása",
|
||||
"content": "A mozdIT Bt. dedikált szerverein nyújt webtárhely, e-mail fiók és DNS szolgáltatásokat. A szolgáltatások garantált rendelkezésre állása 99,9% éves szinten. A szolgáltató automatikus biztonsági mentéseket végez, de javasolja az Ügyfél számára is az adatai rendszeres mentését."
|
||||
},
|
||||
{
|
||||
"id": "ugyfel-kotelezettsegei",
|
||||
"title": "3. Az Ügyfél kötelezettségei",
|
||||
"content": "Az Ügyfél köteles a szolgáltatásokat rendeltetésszerűen használni. Szigorúan tilos a tárhelyen és e-mail fiókokban illegális, szerzői jogot sértő tartalmak elhelyezése, valamint spam (kéretlen reklámlevél) tömeges küldése. A Szolgáltató fenntartja a jogot, hogy jogsértés vagy hálózatot veszélyeztető tevékenység (pl. DDoS forrás) észlelése esetén a szolgáltatást előzetes értesítés nélkül azonnal szüneteltesse vagy megszüntesse."
|
||||
},
|
||||
{
|
||||
"id": "dijazas",
|
||||
"title": "4. Díjazás és fizetési feltételek",
|
||||
"content": "A szolgáltatások díjai a felek által megkötött egyedi megállapodás vagy elfogadott árajánlat alapján fizetendők. A számlázás elektronikus úton történik. A fizetési határidő elmulasztása esetén a Szolgáltató jogosult a szolgáltatás szüneteltetésére, melyről az Ügyfelet előzetesen e-mailben értesíti."
|
||||
},
|
||||
{
|
||||
"id": "felelosseg",
|
||||
"title": "5. Felelősségkorlátozás",
|
||||
"content": "A Szolgáltató mindent megtesz az adatok biztonsága és a folyamatos üzemeltetés érdekében, ugyanakkor nem vállal felelősséget a vis maior, illetve a harmadik felek által okozott (pl. hálózati) kimaradások miatti esetleges adatvesztésért vagy elmaradt haszonért."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -166,6 +166,16 @@ export interface CommonContent {
|
||||
}
|
||||
}
|
||||
|
||||
export interface LegalPageContent {
|
||||
title: string
|
||||
lastUpdated: string
|
||||
sections: {
|
||||
id: string
|
||||
title: string
|
||||
content: string
|
||||
}[]
|
||||
}
|
||||
|
||||
// Main content structure
|
||||
export interface SiteContent {
|
||||
common: CommonContent
|
||||
@@ -174,5 +184,8 @@ export interface SiteContent {
|
||||
about: AboutPageContent
|
||||
services: ServicesPageContent
|
||||
contact: ContactPageContent
|
||||
adatvedelem: LegalPageContent
|
||||
hasznalatiFeltetelek: LegalPageContent
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user