fix: leere Telefonnummer wird nirgends mehr angezeigt
Ohne im Admin-Bereich gepflegte Nummer griff bisher der Rueckfallwert aus
lib/site-config.ts — und der war eine Platzhalternummer
("+49 (0) 000 000000"). Sie stand damit tatsaechlich auf der Kontaktseite
und im Impressum. Eine Nummer, unter der niemand erreichbar ist, ist
schlimmer als gar keine Angabe.
Der Rueckfallwert ist jetzt leer, und beide Stellen lassen die Zeile bei
leerem Feld weg:
- kontakt/page.tsx rendert das Absatz-Element gar nicht erst.
- impressum/page.tsx nimmt die Telefonzeile aus dem Kontakt-Abschnitt.
§ 5 TMG verlangt eine Moeglichkeit zur unmittelbaren Kontaktaufnahme,
nicht zwingend ein Telefon — die E-Mail-Adresse erfuellt das.
Der DHL-Versand war bereits darauf vorbereitet: buildDhlContact setzt
"phone: address.phone || undefined" und laesst das Feld im Aufruf
entsprechend weg (lib/dhl.ts).
Die Go-Live-Pruefung warnt weiterhin bei einer EINGETRAGENEN
Platzhalternummer, aber nicht mehr bei einem leeren Feld — leer ist ab
sofort eine zulaessige Entscheidung, und der Hinweistext sagt das.
tsc: 0 Fehler. vitest: 316/316 gruen. eslint: 0 Warnungen.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
1 parent
dbf146c19f
commit
5170e477bc
4 files changed
+35
-8
No files matched your search
@@ -239,10 +239,15 @@ try {
|
|||||||
`Noch offen: ${withPlaceholder.join(", ")}. Im Admin-Bereich unter "Inhalte" pflegbar — kein Deploy noetig. Ein unvollstaendiges Impressum nach § 5 TMG ist in Deutschland abmahnfaehig: Name, Rechtsform und Umsatzsteuer-ID bzw. der Hinweis auf § 19 UStG muessen eingetragen sein.`
|
`Noch offen: ${withPlaceholder.join(", ")}. Im Admin-Bereich unter "Inhalte" pflegbar — kein Deploy noetig. Ein unvollstaendiges Impressum nach § 5 TMG ist in Deutschland abmahnfaehig: Name, Rechtsform und Umsatzsteuer-ID bzw. der Hinweis auf § 19 UStG muessen eingetragen sein.`
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Ein LEERES Feld ist ausdruecklich in Ordnung und loest keine Warnung aus:
|
||||||
|
// ohne gepflegte Nummer entfaellt die Zeile auf der Kontaktseite und im
|
||||||
|
// Impressum einfach (siehe lib/site-config.ts). Gemeldet wird nur eine
|
||||||
|
// tatsaechlich eingetragene Platzhalternummer — die sieht nach einem
|
||||||
|
// Kontaktweg aus, an dessen Ende niemand abnimmt.
|
||||||
should(
|
should(
|
||||||
"Telefonnummer ist keine Platzhalternummer",
|
"Telefonnummer ist keine Platzhalternummer",
|
||||||
!(await getContentValue("company.phone", "de")).includes("000 000000"),
|
!(await getContentValue("company.phone", "de")).includes("000 000000"),
|
||||||
'Sichtbar im Footer, auf der Kontaktseite und im Impressum. Im Admin-Bereich unter "Inhalte" pflegbar.'
|
'Eingetragen ist eine Platzhalternummer. Entweder die echte Nummer eintragen oder das Feld LEEREN — dann entfaellt die Angabe ueberall. Im Admin-Bereich unter "Inhalte" pflegbar.'
|
||||||
);
|
);
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
// Bewusst KEIN Blocker und KEIN stilles Bestehen: ohne Datenbank laesst
|
// Bewusst KEIN Blocker und KEIN stilles Bestehen: ohne Datenbank laesst
|
||||||
|
|||||||
@@ -28,7 +28,15 @@ export default async function ImpressumPage() {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
heading: t.impressumPage.contactHeading,
|
heading: t.impressumPage.contactHeading,
|
||||||
paragraphs: [`${t.impressumPage.phoneLabel}: ${company.phone}`, `${t.impressumPage.emailLabel}: ${company.email}`],
|
// Die Telefonzeile nur, wenn eine Nummer gepflegt ist. § 5 TMG
|
||||||
|
// verlangt eine Moeglichkeit zur unmittelbaren Kontaktaufnahme,
|
||||||
|
// nicht zwingend ein Telefon — die E-Mail-Adresse erfuellt das.
|
||||||
|
// Eine Platzhalternummer im Impressum waere dagegen eine Angabe,
|
||||||
|
// die ins Leere fuehrt.
|
||||||
|
paragraphs: [
|
||||||
|
...(company.phone ? [`${t.impressumPage.phoneLabel}: ${company.phone}`] : []),
|
||||||
|
`${t.impressumPage.emailLabel}: ${company.email}`,
|
||||||
|
],
|
||||||
},
|
},
|
||||||
ustSection,
|
ustSection,
|
||||||
redaktionSection,
|
redaktionSection,
|
||||||
|
|||||||
@@ -35,7 +35,10 @@ export default async function KontaktPage() {
|
|||||||
{company.email}
|
{company.email}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<p>{company.phone}</p>
|
{/* Ohne gepflegte Nummer entfaellt die Zeile ganz. Eine
|
||||||
|
Platzhalternummer waere schlimmer als keine: sie sieht nach
|
||||||
|
einem Kontaktweg aus, an dessen Ende niemand abnimmt. */}
|
||||||
|
{company.phone ? <p>{company.phone}</p> : null}
|
||||||
</ScrollReveal>
|
</ScrollReveal>
|
||||||
|
|
||||||
<ScrollReveal delay={0.18} className="mt-12 border-t border-ink/10 pt-8">
|
<ScrollReveal delay={0.18} className="mt-12 border-t border-ink/10 pt-8">
|
||||||
|
|||||||
+16
-5
@@ -1,8 +1,8 @@
|
|||||||
// Zentrale, austauschbare Inhalte fuer Navigation, Footer und Firmendaten.
|
// Zentrale, austauschbare Inhalte fuer Navigation, Footer und Firmendaten.
|
||||||
// email/phone sind noch keine echten Kontaktdaten (auf dem Etikett nicht
|
// email ist noch keine echte Kontaktadresse (auf dem Etikett nicht abgebildet)
|
||||||
// abgebildet) und muessen vor dem Live-Gang ersetzt werden — bewusst ohne
|
// und muss vor dem Live-Gang ersetzt werden — bewusst ohne sichtbaren
|
||||||
// sichtbaren "[PLATZHALTER]"-Text im String, da dieser sonst 1:1 im Footer
|
// "[PLATZHALTER]"-Text im String, da dieser sonst 1:1 im Footer und auf der
|
||||||
// und auf der Kontaktseite mitgerendert wuerde.
|
// Kontaktseite mitgerendert wuerde.
|
||||||
|
|
||||||
export const categoryLabels = {
|
export const categoryLabels = {
|
||||||
HONIG: "Honig",
|
HONIG: "Honig",
|
||||||
@@ -19,7 +19,18 @@ export const siteConfig = {
|
|||||||
"Entdecke hochwertigen Honig aus eigener Imkerei in Altenmünster. Kleine Ernten, klare Herkunft und echtes Imkerhandwerk.",
|
"Entdecke hochwertigen Honig aus eigener Imkerei in Altenmünster. Kleine Ernten, klare Herkunft und echtes Imkerhandwerk.",
|
||||||
location: "Altenmünster, Bayern",
|
location: "Altenmünster, Bayern",
|
||||||
email: "[email protected]",
|
email: "[email protected]",
|
||||||
phone: "+49 (0) 000 000000",
|
/**
|
||||||
|
* Leer, und das ist die Vorgabe: eine Telefonnummer ist keine Pflichtangabe.
|
||||||
|
* § 5 TMG verlangt eine Moeglichkeit zur unmittelbaren Kontaktaufnahme —
|
||||||
|
* die E-Mail-Adresse erfuellt das.
|
||||||
|
*
|
||||||
|
* Frueher stand hier eine Platzhalternummer ("+49 (0) 000 000000"). Wer im
|
||||||
|
* Admin-Bereich keine Nummer pflegte, bekam sie auf der Kontaktseite und im
|
||||||
|
* Impressum tatsaechlich angezeigt — eine Nummer, unter der niemand zu
|
||||||
|
* erreichen ist, ist schlimmer als gar keine. Bleibt das Feld leer, wird die
|
||||||
|
* Zeile jetzt ueberall weggelassen (kontakt/page.tsx, impressum/page.tsx).
|
||||||
|
*/
|
||||||
|
phone: "",
|
||||||
address: {
|
address: {
|
||||||
street: "Buhlweg 10",
|
street: "Buhlweg 10",
|
||||||
zip: "86450",
|
zip: "86450",
|
||||||
|
|||||||
Reference in new issue
Block a user