Merged
Conversation
Priorität 1 — Bugfixes & Sicherheit: - Zeitzone: current_time() statt gmdate() für _odw_modified (class-fields.php) - Sortierbare Spalte Thema: pre_get_posts Hook mit meta_key/meta_value (class-admin.php) - $_GET Sanitization: wp_unslash() + sanitize_text_field() konsequent, absint() für post_id (class-admin.php, class-validation.php) - Byte-Size Validierung: is_numeric() + >= 0 Prüfung vor JSON-LD Ausgabe (class-fields.php) Priorität 2 — Code-Qualität: - License Single Source of Truth: ODW_Fields::get_license_label() eingeführt (class-fields.php, class-admin.php) - sessionStorage: try/catch Wrapper + post_id-spezifischer Key odw_active_tab_<id> (wizard-tabs.js) - MutationObserver: disconnect() via beforeunload Event (wizard-tabs.js) - Transient-TTL: 60s → 300s für Validierungsnotices (class-validation.php) - Carbon Fields Boot: try/catch um boot() mit Admin-Notice bei Fehler (open-data-wizard.php) Priorität 2 — Activation/Deactivation: - register_activation_hook: CPT registrieren, Rewrite Rules flush, Capabilities setzen - register_deactivation_hook: Rewrite Rules flush - uninstall.php: Opt-in Datenlöschung (odw_delete_data_on_uninstall Option) Priorität 3 — Features: - REST API Transient-Cache: 5 Minuten TTL, Cache-Invalidierung bei save_post/trash, X-ODW-Cache Header (class-rest-api.php) - Capability manage_open_data: Administrator und Editor erhalten die Capability bei Aktivierung - Filter-Hooks: odw_license_options, odw_theme_options, odw_dataset_jsonld, odw_catalog_title (class-fields.php, class-rest-api.php) - Admin Help Tabs: DCAT-AP Feldbeschreibungen + Harvest-Endpoint Doku auf Edit-Screen (class-admin.php) - CSS Custom Properties: --odw-color-* Variablen statt Hard-coded Hex-Werte (admin.css) https://claude.ai/code/session_013ma6QYffgnE2eKgDfh1Qgn
Validierungslogik zentralisiert (4.2): - ODW_Fields::get_required_fields() als zentrale Pflichtfeld-Registry - class-validation.php iteriert über Registry statt Felder doppelt zu pflegen - get_field_value() vereinfacht: CF-Key-Parameter entfernt Content Negotiation ?format= (3.3): - ?format=jsonld (Standard) → application/ld+json - ?format=json → application/json - An beiden Endpoints /catalog und /datasets/<id> verfügbar - Grundlage für spätere Turtle/RDF-XML Unterstützung PHPStan + WordPress Coding Standards + CI (4.1): - phpstan.neon: Level 6 Analyse inkl. szepeviktor/phpstan-wordpress Stubs - composer.json: require-dev mit phpstan, wpcs, phpunit, wp_mock - phpunit.xml: PHPUnit Konfiguration für tests/ Verzeichnis - tests/bootstrap.php: WP_Mock Bootstrap + Konstanten-Definitionen - tests/test-fields.php: Tests für ODW_Fields (license options, labels, format MIME) - .github/workflows/ci.yml: PHPCS + PHPStan + PHPUnit auf PHP 8.1/8.2/8.3 Dokumentation (4.4): - CHANGELOG.md: Vollständiges Changelog für v1.0.0, v1.1.0, v1.2.0 - README.md: ?format= Parameter, korrekte Filter-Hook-Namen, Dev-Tools Sektion, aktualisierte Dateistruktur, Deinstallations-Anleitung, Lizenz korrigiert auf GPL-2.0 https://claude.ai/code/session_013ma6QYffgnE2eKgDfh1Qgn
…tändigt - is_valid_url() Methode: filter_var(FILTER_VALIDATE_URL) + Schema-Whitelist (http, https, ftp, ftps) blockt javascript:, data: und andere unsichere Schemes - has_valid_distribution() prüft nun URLs aus CF compact input UND bestehenden Meta-Werten - Schließt den letzten offenen Punkt aus Plan-Eintrag 1.2 https://claude.ai/code/session_013ma6QYffgnE2eKgDfh1Qgn
Neues Scoring-System (0–100 Punkte, 3 Levels) bewertet die DCAT-AP Metadaten-Vollständigkeit automatisch nach jedem Speichern. - class-quality.php: 10 Indikatoren in 3 Gruppen (Pflicht 55 Pkt., Empfohlen 40 Pkt., Optional 5 Pkt.); Persistenz in 4 Meta-Keys; odw:qualityScore via odw_dataset_jsonld Filter in JSON-LD - class-admin.php: Qualitätsspalte mit farbigem Badge, sortierbar nach _odw_quality_score (meta_value_num); Meta-Box mit Gauge, Level-Badge und gruppierter Indikator-Tabelle - class-rest-api.php: odw:-Namespace in JSONLD_CONTEXT ergänzt - admin.css: --odw-color-quality-* Custom Properties; Badge, Gauge und Tabellen-Komponenten für Listenansicht und Edit-Screen https://claude.ai/code/session_013ma6QYffgnE2eKgDfh1Qgn
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.
No description provided.