1
0
Files
breadcrumb-the-shire/docs/howto-globale-suche.md
fs 545bcc789b docs: replace ASCII umlaut fallbacks with proper äöüß across all .md
Most German docs were written with `ue`/`ae`/`oe`/`ss` ASCII fallbacks
(`fuer`, `aenderung`, `koennen`, `gemaess`) — relic from older toolchain
constraints. Replaced 237 occurrences across 38 .md files with proper
umlauts and ß so the docs read naturally.

Substitutions are constrained to plain prose: fenced code blocks
(```...```), inline code spans (`...`), markdown link targets `[..](..)`,
and HTML comments are preserved verbatim. Path references like
`docs/howto-erste-aenderung.md` keep their original (umlaut-replaced)
filenames — only the surrounding prose is normalised.

Tool: bin/fix-md-umlauts.py (idempotent — no-op on already-clean files).
Re-runnable if ASCII fallbacks creep back in via copy-paste.

Doc-link-check + doc-drift-check stay green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 09:57:22 +02:00

2.1 KiB

Globale Suche erweitern

Letzte Aktualisierung: 2026-04-01

Ziel

Neue Search-Resource korrekt in Aside-Preview und Vollsuche integrieren.

Architektur

Zwei Endpunkte teilen dieselbe Konfiguration:

  • Aside-Preview: pages/admin/search/data().php
  • Vollsuche: pages/search/data().php

Zentrale Fassade:

  • core/Support/SearchConfig.php
  • Laufzeit-Orchestrierung: core/Service/Search/SearchDataService.php
  • SQL-Ausführung: core/Repository/Search/SearchQueryRepository.php

Provider:

  • SQL-Definitionen: SearchSqlResourceProvider
  • UI-Meta (Icons/URLs): SearchUiMetaProvider
  • Mapping: SearchItemMapperProvider
  • Spezialquellen (docs, hotkeys): SearchSpecialResourceProvider
  • Modul-Erweiterungen: SearchResourceProvider via Modul-Manifest search_resources

Laufzeitpfad

  1. pages/admin/search/data().php oder pages/search/data().php
  2. SearchDataService baut Scope/Permission + Resource-Iteration
  3. SearchQueryRepository führt countSql/previewSql/resultSql aus
  4. SearchConfig mapped auf API/UI-Items

Standardablauf für neue Resource

  1. Resource in SearchSqlResourceProvider::resources() ergänzen:
    • key, label, permission
    • countSql, previewSql, resultSql
  2. Bei Tenant-Daten tenantScopeFilters() ergänzen.
  3. UI ergänzen:
    • iconForKey()
    • listUrl()
  4. Mapping ergänzen:
    • mapPreviewItem()
    • mapResultItem()
  5. Bei Modul-Resources: Provider-Klasse in module.php unter search_resources registrieren.
  6. i18n-Labels prüfen.

Wichtige Regeln

  • Permission immer serverseitig in der Resource setzen.
  • Tenant-Scope nicht nur im UI lösen.
  • Preview immer mit limit ? und ohne sensitive Daten.

Docs-Resource

Die Entwicklerdoku läuft als Spezialresource docs:

  • Quelle: DocsCatalogService::search()
  • Permission: docs.view
  • Ziel: admin/docs/{slug}#anchor

Check vor Merge

  1. php -l core/Support/SearchConfig.php
  2. php -l core/Support/Search/*.php
  3. Preview testen (admin/search/data?q=...)
  4. Vollsuche testen (/search?search=...)
  5. Permission/Scope mit reduziertem User prüfen