Batch-Import trennt Schlagworte nur noch an Zeilenumbrüchen (v2.42.2) - #130
Merged
Merged
Conversation
…42.2) Das Formular warnt seit jeher: „Trennen Sie die Schlagwörter nicht mit Komma" — ein Komma darf Teil eines Schlagworts sein (z. B. „Berlin, Stadt"). Der Batch-Import spaltete dieselbe Eingabe aber zusätzlich an Kommas. Dieselben Rohdaten ergaben je nach Weg ein anderes Ergebnis, und ein per Komma geschriebenes Schlagwort landete beim Veröffentlichen unbemerkt als mehrere dcat:keyword-Werte statt einem. Aufgefallen an den eigenen Beispieldateien: "Demografie, Statistik" wurde beim Import zu zwei Schlagworten, im Formular wäre es eines geblieben — exakt das Muster, das beim Live-Test des Harvest-Endpunkts schon einmal auffiel (dort ein anderes Feld, derselbe Widerspruch zwischen Formular- und Import-Verhalten). Der Import trennt jetzt ausschließlich an Zeilenumbrüchen. Mehrere Zeilen passen weiterhin in eine CSV-Zelle, wenn sie in Anführungszeichen steht — fgetcsv() liest das korrekt, Excel/LibreOffice schreiben es beim Export automatisch so. Geändert: - includes/class-batch-import.php — Regex von /[\r\n,]+/ auf /[\r\n]+/ - tests/test-batch-import.php — der bestehende Test verlangte die alte, falsche Form (Komma spaltet); umgestellt, plus ein neuer Test, der ein Komma innerhalb eines Schlagworts erhalten hält - samples/import-example.csv, .json — nutzten kommagetrennte Schlagworte als Beispiel; auf Zeilentrennung umgestellt (CSV-Zellen mit echten, eingebetteten Zeilenumbrüchen, per fgetcsv() gegengeprüft) - README.md — Feldbeschreibung des Imports korrigiert Lokal geprüft: Regex-Verhalten separat verifiziert (Kontrollausgabe für Zeilenumbruch+Leerzeile sowie Komma-Erhalt), CSV-Sample mit fgetcsv() neu eingelesen (5 Zeilen, Schlagworte korrekt getrennt), JSON-Sample geparst, Paketprüfung und i18n sauber. PHPUnit läuft in dieser Umgebung nicht (Composer erreicht github.com nicht) — entscheidet sich in der CI. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JB1xUQM892bVZ4Yv3MZjvq
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Umsetzung der offenen Entscheidung aus dem letzten Turtle-Fix: Der Batch-Import trennt Schlagworte an Kommas — das Formular tut das ausdrücklich nicht.
Der Widerspruch
Das Formular warnt seit jeher:
Ein Komma darf also Teil eines Schlagworts sein (z. B. „Berlin, Stadt"). Der Batch-Import spaltete dieselbe Eingabe aber zusätzlich an Kommas — dieselben Rohdaten ergaben je nach Weg ein anderes Ergebnis, und ein per Komma geschriebenes Schlagwort landete beim Veröffentlichen unbemerkt als mehrere
dcat:keyword-Werte statt einem.Aufgefallen an den eigenen Beispieldateien:
"Demografie, Statistik"wurde beim Import zu zwei Schlagworten, im Formular wäre es eines geblieben.Die Änderung
includes/class-batch-import.php: Die Trenn-Regex für Schlagworte geht von/[\r\n,]+/auf/[\r\n]+/— nur noch Zeilenumbrüche trennen, wie im Formular. Mehrere Zeilen passen weiterhin in eine CSV-Zelle, wenn sie in Anführungszeichen steht;fgetcsv()liest eingebettete Zeilenumbrüche korrekt, Excel/LibreOffice schreiben das beim Export automatisch so.Die Themen-Mehrfachauswahl (
theme) ist bewusst unverändert: Dort ist Komma-Trennung nicht dokumentiert widersprüchlich zum Formular, das bleibt außerhalb dieses Fixes.Mitgezogen
tests/test-batch-import.php— der bestehende Test verlangte die alte, falsche Form (Komma spaltet) und ist umgestellt; ein neuer Test hält fest, dass ein Komma innerhalb eines Schlagworts erhalten bleibt.samples/import-example.csv/.json— gingen mit schlechtem Beispiel voran (kommagetrennte Schlagworte). Auf echte Zeilentrennung umgestellt, mitfgetcsv()gegengeprüft (5 Zeilen, Schlagworte sauber getrennt).README.md— Feldbeschreibung des Imports korrigiert.Lokal geprüft
Composer erreicht in dieser Umgebung github.com nicht — PHPUnit läuft daher nicht lokal, das entscheidet sich in der CI. Stattdessen lokal verifiziert:
fgetcsv()neu eingelesen — 5 Zeilen, Schlagworte korrekt getrennt.bin/verify-package.pyundbin/check-i18n.pysauber.Version 2.42.1 → 2.42.2.
🤖 Generated with Claude Code
https://claude.ai/code/session_01JB1xUQM892bVZ4Yv3MZjvq
Generated by Claude Code