document.addEventListener('DOMContentLoaded', () => { const container = document.getElementById('berater-container'); fetch('json/berater.json') .then(response => { if (!response.ok) throw new Error('Fehler beim Laden der JSON'); return response.json(); }) .then(beraterDaten => { beraterDaten.forEach(berater => { const card = document.createElement('div'); card.className = 'berater-card'; // 1. Bekannte Listen und Zusätze verarbeiten let zertifikateHtml = ''; if (berater.zertifikate && berater.zertifikate.length > 0) { zertifikateHtml = `

Zertifikate

`; } let linksHtml = ''; if (berater.links && berater.links.length > 0) { linksHtml = ``; } let zusatzHtml = ''; if (berater.zusatzInfo) { zusatzHtml = `

${berater.zusatzInfo}

`; } // 2. NEU: Alle eigenen/unbekannten Felder automatisch generieren // Wir definieren zuerst, welche Felder Standard sind und ignoriert werden sollen const standardFelder = ['id', 'name', 'role', 'image', 'bioTitle', 'bioText', 'zertifikate', 'links', 'zusatzInfo']; let eigeneFelderHtml = ''; // Wir durchlaufen jeden Eintrag in der JSON für diesen Berater for (const [schluessel, wert] of Object.entries(berater)) { // Wenn das Feld kein Standardfeld ist, bauen wir daraus Überschrift + Text if (!standardFelder.includes(schluessel)) { eigeneFelderHtml += `

${schluessel}

${wert}

`; } } // 3. Die Karte zusammenbauen card.innerHTML = `
${berater.name} Profilbild

${berater.name}

${berater.role}

${berater.bioTitle}

${berater.bioText}

${eigeneFelderHtml} ${zusatzHtml} ${zertifikateHtml} ${linksHtml}
`; container.appendChild(card); }); }) .catch(error => { console.error('Fehler:', error); container.innerHTML = '

Daten konnten nicht geladen werden.

'; }); });