diff --git a/contao/templates/be_dummy_copier.html5 b/contao/templates/be_dummy_copier.html5 index c18043e..462b643 100644 --- a/contao/templates/be_dummy_copier.html5 +++ b/contao/templates/be_dummy_copier.html5 @@ -8,13 +8,17 @@ .dc-tools { margin: 0.25rem 0 0.5rem; display: flex; gap: 0.5rem; } .dc-filter { width: 100%; margin: 0.25rem 0; } .dc-button { padding: 0.15rem 0.45rem; } + .dc-section { border: 1px solid #ccc; padding: 1rem; margin-bottom: 1.5rem; border-radius: 4px; } + .dc-section h3 { margin: 0 0 0.75rem; font-size: 1rem; font-weight: bold; } + .dc-hint { color: #666; font-size: 0.85rem; margin: 0.25rem 0 0.75rem; } -
- Quell-Seiten (Mehrfachauswahl): - sourcePagesWidget)): ?> - = $this->sourcePagesWidget; ?> - + + + 1. Quell-Seiten auswaehlen + Alle Artikel und Inhaltselemente der gewaehlten Seiten werden automatisch mitkopiert (sofern Option "inkl. Content" aktiv ist). + + Quell-Seiten (Mehrfachauswahl): Alle @@ -25,96 +29,97 @@ selected['sourcePages'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - + + + - - Quell-Module (Mehrfachauswahl): - - - Alle - Keine - - - moduleChoices ?? []) as $id => $label): ?> - selected['sourceModules'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - - + + + 2. Quell-Module auswaehlen + Ausgewaehlte Module werden kopiert; Referenzen in den kopierten Seiten werden automatisch auf die neuen Module umgebogen. + + Module (Mehrfachauswahl): + + + Alle + Keine + + + moduleChoices ?? []) as $id => $label): ?> + selected['sourceModules'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> + + + + + - - Quell-Content (optional, Mehrfachauswahl): - - - Alle - Keine - - - contentChoices ?? []) as $id => $label): ?> - selected['sourceContent'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - - - - - Quell-Verzeichnisse (optional, Mehrfachauswahl): - sourceDirectoriesWidget)): ?> - = $this->sourceDirectoriesWidget; ?> - + + + 3. Quell-Verzeichnisse auswaehlen (optional) + Optionale Dateiverzeichnisse, die gespiegelt werden sollen. + + Verzeichnisse (Mehrfachauswahl): Alle Keine - + directoryChoices ?? []) as $path => $label): ?> selected['sourceDirectories'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - + + + - - Ziel-Elternseite: - targetParentPageWidget)): ?> - = $this->targetParentPageWidget; ?> - + + + 4. Kopieroptionen + selected['includeContent'] ?? true) ? 'checked' : ''; ?>> Artikel & Inhaltselemente der Seiten mitkopieren + selected['copyModules'] ?? true) ? 'checked' : ''; ?>> Module kopieren und in den kopierten Seiten neu verlinken + selected['copyDirectories'] ?? false) ? 'checked' : ''; ?>> Ausgewaehlte Verzeichnisse in Ziel-Verzeichnis kopieren + selected['dryRun'] ?? false) ? 'checked' : ''; ?>> Dry-Run (nur Vorschau, keine Schreibzugriffe) + + + + + 5. Ziel & Benennung + + Ziel-Elternseite (Pflichtfeld): Bitte waehlen pageChoices ?? []) as $id => $label): ?> selected['targetParentPage'] ?? 0) === (int) $id) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - - - Ziel-Artikel ID (nur fuer einzelne Content-IDs): - Ziel-Verzeichnis (z. B. files/kunden/kunde-x): - Praefix fuer Titel/Name/Alias: - - Seiten inkl. Artikel/Content kopieren - Module kopieren und neu verlinken - Verzeichnisse kopieren - Dry-Run (keine Schreibzugriffe) + + + + Ziel-Verzeichnis fuer Dateien (z. B. files/kunden/kunde-x): + + + + + Praefix fuer Titel / Name / Alias der Kopien: + + + + Ausfuehren result) && \is_object($this->result)): ?> Ergebnis - = json_encode([ - 'copiedPages' => $this->result->copiedPages, - 'copiedModules' => $this->result->copiedModules, - 'copiedContent' => $this->result->copiedContent, + = htmlspecialchars(json_encode([ + 'copiedPages' => $this->result->copiedPages, + 'copiedModules' => $this->result->copiedModules, + 'copiedContent' => $this->result->copiedContent, 'copiedDirectories' => $this->result->copiedDirectories, - 'pageMap' => $this->result->pageMap, - 'moduleMap' => $this->result->moduleMap, - 'notes' => $this->result->notes, - ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); ?> + 'pageMap' => $this->result->pageMap, + 'moduleMap' => $this->result->moduleMap, + 'notes' => $this->result->notes, + ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES), ENT_QUOTES, 'UTF-8'); ?>
Alle Artikel und Inhaltselemente der gewaehlten Seiten werden automatisch mitkopiert (sofern Option "inkl. Content" aktiv ist).
+ Quell-Seiten (Mehrfachauswahl): Alle @@ -25,96 +29,97 @@ selected['sourcePages'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - -
- Quell-Module (Mehrfachauswahl): - - - Alle - Keine - - - moduleChoices ?? []) as $id => $label): ?> - selected['sourceModules'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - -
Ausgewaehlte Module werden kopiert; Referenzen in den kopierten Seiten werden automatisch auf die neuen Module umgebogen.
+ Module (Mehrfachauswahl): + + + Alle + Keine + + + moduleChoices ?? []) as $id => $label): ?> + selected['sourceModules'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> + + + +
- Quell-Content (optional, Mehrfachauswahl): - - - Alle - Keine - - - contentChoices ?? []) as $id => $label): ?> - selected['sourceContent'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - -
- Quell-Verzeichnisse (optional, Mehrfachauswahl): - sourceDirectoriesWidget)): ?> - = $this->sourceDirectoriesWidget; ?> - + + + 3. Quell-Verzeichnisse auswaehlen (optional) + Optionale Dateiverzeichnisse, die gespiegelt werden sollen. + + Verzeichnisse (Mehrfachauswahl): Alle Keine - + directoryChoices ?? []) as $path => $label): ?> selected['sourceDirectories'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - + + + - - Ziel-Elternseite: - targetParentPageWidget)): ?> - = $this->targetParentPageWidget; ?> - + + + 4. Kopieroptionen + selected['includeContent'] ?? true) ? 'checked' : ''; ?>> Artikel & Inhaltselemente der Seiten mitkopieren + selected['copyModules'] ?? true) ? 'checked' : ''; ?>> Module kopieren und in den kopierten Seiten neu verlinken + selected['copyDirectories'] ?? false) ? 'checked' : ''; ?>> Ausgewaehlte Verzeichnisse in Ziel-Verzeichnis kopieren + selected['dryRun'] ?? false) ? 'checked' : ''; ?>> Dry-Run (nur Vorschau, keine Schreibzugriffe) + + + + + 5. Ziel & Benennung + + Ziel-Elternseite (Pflichtfeld): Bitte waehlen pageChoices ?? []) as $id => $label): ?> selected['targetParentPage'] ?? 0) === (int) $id) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - - - Ziel-Artikel ID (nur fuer einzelne Content-IDs): - Ziel-Verzeichnis (z. B. files/kunden/kunde-x): - Praefix fuer Titel/Name/Alias: - - Seiten inkl. Artikel/Content kopieren - Module kopieren und neu verlinken - Verzeichnisse kopieren - Dry-Run (keine Schreibzugriffe) + + + + Ziel-Verzeichnis fuer Dateien (z. B. files/kunden/kunde-x): + + + + + Praefix fuer Titel / Name / Alias der Kopien: + + + + Ausfuehren result) && \is_object($this->result)): ?> Ergebnis - = json_encode([ - 'copiedPages' => $this->result->copiedPages, - 'copiedModules' => $this->result->copiedModules, - 'copiedContent' => $this->result->copiedContent, + = htmlspecialchars(json_encode([ + 'copiedPages' => $this->result->copiedPages, + 'copiedModules' => $this->result->copiedModules, + 'copiedContent' => $this->result->copiedContent, 'copiedDirectories' => $this->result->copiedDirectories, - 'pageMap' => $this->result->pageMap, - 'moduleMap' => $this->result->moduleMap, - 'notes' => $this->result->notes, - ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); ?> + 'pageMap' => $this->result->pageMap, + 'moduleMap' => $this->result->moduleMap, + 'notes' => $this->result->notes, + ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES), ENT_QUOTES, 'UTF-8'); ?>
Optionale Dateiverzeichnisse, die gespiegelt werden sollen.
+ Verzeichnisse (Mehrfachauswahl): Alle Keine - + directoryChoices ?? []) as $path => $label): ?> selected['sourceDirectories'] ?? []), true) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - -
- Ziel-Elternseite: - targetParentPageWidget)): ?> - = $this->targetParentPageWidget; ?> - + + + 4. Kopieroptionen + selected['includeContent'] ?? true) ? 'checked' : ''; ?>> Artikel & Inhaltselemente der Seiten mitkopieren + selected['copyModules'] ?? true) ? 'checked' : ''; ?>> Module kopieren und in den kopierten Seiten neu verlinken + selected['copyDirectories'] ?? false) ? 'checked' : ''; ?>> Ausgewaehlte Verzeichnisse in Ziel-Verzeichnis kopieren + selected['dryRun'] ?? false) ? 'checked' : ''; ?>> Dry-Run (nur Vorschau, keine Schreibzugriffe) + + + + + 5. Ziel & Benennung + + Ziel-Elternseite (Pflichtfeld): Bitte waehlen pageChoices ?? []) as $id => $label): ?> selected['targetParentPage'] ?? 0) === (int) $id) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - - - - Ziel-Artikel ID (nur fuer einzelne Content-IDs): - Ziel-Verzeichnis (z. B. files/kunden/kunde-x): - Praefix fuer Titel/Name/Alias: - - Seiten inkl. Artikel/Content kopieren - Module kopieren und neu verlinken - Verzeichnisse kopieren - Dry-Run (keine Schreibzugriffe) + + + + Ziel-Verzeichnis fuer Dateien (z. B. files/kunden/kunde-x): + + + + + Praefix fuer Titel / Name / Alias der Kopien: + + + + Ausfuehren result) && \is_object($this->result)): ?> Ergebnis - = json_encode([ - 'copiedPages' => $this->result->copiedPages, - 'copiedModules' => $this->result->copiedModules, - 'copiedContent' => $this->result->copiedContent, + = htmlspecialchars(json_encode([ + 'copiedPages' => $this->result->copiedPages, + 'copiedModules' => $this->result->copiedModules, + 'copiedContent' => $this->result->copiedContent, 'copiedDirectories' => $this->result->copiedDirectories, - 'pageMap' => $this->result->pageMap, - 'moduleMap' => $this->result->moduleMap, - 'notes' => $this->result->notes, - ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); ?> + 'pageMap' => $this->result->pageMap, + 'moduleMap' => $this->result->moduleMap, + 'notes' => $this->result->notes, + ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES), ENT_QUOTES, 'UTF-8'); ?>
selected['includeContent'] ?? true) ? 'checked' : ''; ?>> Artikel & Inhaltselemente der Seiten mitkopieren
selected['copyModules'] ?? true) ? 'checked' : ''; ?>> Module kopieren und in den kopierten Seiten neu verlinken
selected['copyDirectories'] ?? false) ? 'checked' : ''; ?>> Ausgewaehlte Verzeichnisse in Ziel-Verzeichnis kopieren
selected['dryRun'] ?? false) ? 'checked' : ''; ?>> Dry-Run (nur Vorschau, keine Schreibzugriffe)
+ Ziel-Elternseite (Pflichtfeld): Bitte waehlen pageChoices ?? []) as $id => $label): ?> selected['targetParentPage'] ?? 0) === (int) $id) ? 'selected' : ''; ?>>= htmlspecialchars((string) $label, ENT_QUOTES, 'UTF-8'); ?> - - -
Ziel-Artikel ID (nur fuer einzelne Content-IDs):
Ziel-Verzeichnis (z. B. files/kunden/kunde-x):
Praefix fuer Titel/Name/Alias:
Seiten inkl. Artikel/Content kopieren
Module kopieren und neu verlinken
Verzeichnisse kopieren
Dry-Run (keine Schreibzugriffe)
+ Ziel-Verzeichnis fuer Dateien (z. B. files/kunden/kunde-x): + + +
+ Praefix fuer Titel / Name / Alias der Kopien: + + +
Ausfuehren
= json_encode([ - 'copiedPages' => $this->result->copiedPages, - 'copiedModules' => $this->result->copiedModules, - 'copiedContent' => $this->result->copiedContent, + = htmlspecialchars(json_encode([ + 'copiedPages' => $this->result->copiedPages, + 'copiedModules' => $this->result->copiedModules, + 'copiedContent' => $this->result->copiedContent, 'copiedDirectories' => $this->result->copiedDirectories, - 'pageMap' => $this->result->pageMap, - 'moduleMap' => $this->result->moduleMap, - 'notes' => $this->result->notes, - ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); ?> + 'pageMap' => $this->result->pageMap, + 'moduleMap' => $this->result->moduleMap, + 'notes' => $this->result->notes, + ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES), ENT_QUOTES, 'UTF-8'); ?>
= htmlspecialchars(json_encode([ + 'copiedPages' => $this->result->copiedPages, + 'copiedModules' => $this->result->copiedModules, + 'copiedContent' => $this->result->copiedContent, 'copiedDirectories' => $this->result->copiedDirectories, - 'pageMap' => $this->result->pageMap, - 'moduleMap' => $this->result->moduleMap, - 'notes' => $this->result->notes, - ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); ?>