Beispiele für das Suchen & Ersetzen Werkzeug

28. Mär 2012

Zeichenketten in vielen Dateien in kurzer Zeit anpassen.

Änderungen in mehreren Dateien können Sie über das Werkzeug "Suchen und Ersetzen" auf Knopfdruck vornehmen. Hierfür steht Ihnen in jedem Projekt (Inhaltsprojekt, Assets, Global-Projekt) das Werkzeug zur Verfügung und beschränkt sich dort auf dieses Projekt.

Der Einsatz von regulären Ausdrücken beim Suchen gibt Ihnen zusätzlich eine sehr mächtige Funktion an die Hand, die entsprechende Sorgfalt mit dem Umgang dieses Werkzeuges erfordert. Beachten Sie hierzu die Hinweise am Ende des Artikels.

Beispiele für "Suchen und Ersetzen"

Für die "Suchen und Ersetzen" Beispiele empfehlen wir folgende Schrittfolge:

  1. Backup / Sicherung des zu durchsuchenden Verzeichnisses anlegen, um bei Problemen über ein Wiederherstellen des Backups schnell wieder den Stand vor dem Ersetzen herstellen zu können
  2. gewünschtes Projekt (z.B. /de) aufrufen und unter den Werkzeuge "Suchen und Ersetzen" auswählen
  3. Verzeichnis über "Suchen in" auswählen, zu dem Dateien rekursiv durchsucht und ersetzt werden soll
  4. ggf. die Dateitypen (z.B. php) angeben
  5. wenn Groß-/Kleinschreibung berücksichtigt werden soll, den Parameter aktivieren
  6. wenn im Suchen-Feld reguläre Ausdrücke verwendet werden, den Parameter hierfür aktivieren.
  7. über den Button "Nur Suchen" kann getestet werden, welche Dateien vom Vorgang erfasst werden; "Suchen und Ersetzen" führt den Vorgang schliesslich durch

Beispiel 1: Beschreibung (wd:description) mit regulären Ausdrücken rekursiv ändern

Beachten Sie beim "Suchen und Ersetzen" der Beschreibung (wd:description), dass dieses Tag in einer Datei mehrfach vorkommen kann. Z.B. wird das Tag bei Dateivorlagen zusätzlich zu den Metadaten (wd:meta) auch in den Templateinformationen (wd:asTemplate) verwendet!

Einzeltags für die Beschreibung (wd:description) in Dateien durch eine vordefinierte Beschreibung über reguläre Ausdrücke suchen und ersetzen:

Suchen nach:

<wd:description\s*/>

Ersetzen durch:

<wd:description>Ihre Beschreibung</wd:description>
 

Einzeltags und normale leere Tags für die Beschreibung (wd:description) in Dateien durch eine vordefinierte Beschreibung über reguläre Ausdrücke suchen und ersetzen:

Suchen nach:

(<wd:description\s*/>|<wd:description></wd:description>)

Ersetzen durch:

<wd:description>Ihre Beschreibung</wd:description>
 

Einzeltags und normale Tags (mit/ohne Inhalt) für die Beschreibung (wd:description) in Dateien durch eine vordefinierte Beschreibung über reguläre Ausdrücke suchen und ersetzen:

Suchen nach:

(<wd:description\s*/>|<wd:description>.*?</wd:description>)

Ersetzen durch:

<wd:description>Ihre Beschreibung</wd:description>
 

Beispiel 2: Schlüsselwörter (wd:keywords) mit regulären Ausdrücken ersetzen

Suchen nach:

<wd:keywords>(\r\n|.*?)</wd:keywords>

Ersetzen durch:

<wd:keywords>ihre, keywords</wd:keywords>
 

Beispiel 3: Cache-Einstellung mit regulären Ausdrücken auf Erben einstellen

Suchen nach:

<wd:cache[^>]+expires="[^"]*"[^>]*/>

Ersetzen durch:

<wd:cache expires="{wGetValueOfDefaultExtension()}"/>
 

Danach kann dann z.B. in den Standard-Dateieinstellungen vom Projektverzeichnis der Cache wie gewünscht eingestellt werden.
Beachten Sie, dass ein Datei-Cache bei Seiten mit Formularen nicht gesetzt sein sollte bzw. zumindest das Formular ohne Cache aufgerufen wird (wie in der jeweils aktuellen BASE umgesetzt (Framework-Funktion: wOutput::loadWithoutCache)).
Weiterhin sollten Sie den Datei-Cache auch nicht in folgenden Dateien setzen, sondern deaktivieren:

  • Suche-Seite
  • Seite empfehlen Seite
  • Kontakt- und Danke-Seite (auch andere Formulare)
  • RSS-Seite
  • Google-Sitemap
  • Newsletter-Formular Seiten
  • Errordocs-Seiten

Beispiel 4: Workflow über reguläre Ausdrücke auf Erben einstellen

Suchen nach:

<wd:workflow[^>]+>

Ersetzen durch:

<wd:workflow path="{wGetValueOfDefaultExtension()}"/>
 

Nach erfolgreichem Ersetzen können Sie in den Standard-Dateieinstellungen des Inhaltsprojektes einen Workflow hinterlegen, der dann von den Dateien geerbt wird, die entsprechend eingestellt sind.
Ggf. prüfen Sie, ob eventuell Dateien bestehen, die überhaupt kein workflow-Tag enthalten und setzen dies dort entsprechend.

Beispiel 5: Versionsnummer über reguläre Ausdrücke auf 1 zurücksetzen

Suchen nach:

<wd:version value="\d+"/>

Ersetzen durch:

<wd:version value="1"/>
 

Beispiel 6: Sprachknoten (nodeID) in Dateien und Verzeichniseinstellung zurücksetzen

Suchen nach:

<wd:language nodeID="[^"]+"/>

Ersetzen durch:

<wd:language nodeID=""/>
 

Beim erneuten Aufruf eines Verzeichnisses bzw. einer Datei werden die Sprachverknüpfungen i.d.R. neu geschrieben.

Beispiel 7: Datei hinzufügen Button mit regulären Ausdrücken ersetzen/löschen

Suchen nach:

<wd:item[^>]+type="button.createFile".*?</wd:item>[\n\r\s\t]*(<wd:item[^>]+type="list.standard".*?<wd:fragment id="listtemplate" type="src.file">/IhrGlobalesProjekt/wGlobal/layout/templates/lists/upload.wFilelist.php)

Ersetzen durch:

$1
 

Beispiel 8: Mit regulären Ausdrücken mehrere wd:object Tags ausfindig machen

NUR Suchen nach:

<wd:object.*<wd:object

KEIN Ersetzen

                              
 

Beispiel 9: Bildergalerie 1.x auf Weblic-Version 2.x anpassen

Wenn ein Projekt z.B. über Neuinstallation von BASE 1.x auf 2.x umgestellt wird, oder Weblics® 2.x in BASE 1.x eingesetzt werden sollen, ist ggf. das Anpassen der 1.x Bildergalerien erforderlich. Am Beispiel der Fancybox Bildergalerie erhalten Sie nachfolgend ein Beispiel, um eine existierende 1.x Bildergalerie (vom Typ Fancybox) auf die Bildergalerie-Variante 2.x (Typ Fancybox) umzustellen (Pfade bitte individuell berücksichtigen).

Suchen nach:

<wd:fragment id="listtemplate" type="src.default">/de-wGlobal/wGlobal/layout/templates/lists/galleryFancybox.wFilelist.php</wd:fragment>

Ersetzen durch:

<wd:fragment id="listtemplate" type="src.default">/de-wGlobal/wGlobal/layout/templates/lists/gallery.wFilelist.php</wd:fragment>
<wd:fragment id="layout" type="char.default">2</wd:fragment>
 

Beispiel 10: Fehlerhafte Dokumentenerweiterung anpassen

Die BASE wurde zum Assets-Verzeichnis eine kurze Zeit lang mit einer fehlerhaften Dokumentenerweiterung (wdExtension.php) für Binärdateien ausgeliefert (wd:edit doppelt, fehlendes wd:editExt Tag). Um dies zu korrigieren, können Sie folgende Daten für Suchen und Ersetzen verwenden:

Suchen nach:

  <wd:templates>
    <wd:master path="{wGetValueOfDefaultExtension()}"/>       
    <wd:edit path="{wGetValueOfDefaultExtension()}"/>
    <wd:edit path="{wGetValueOfDefaultExtension()}"/>    
    <wd:view path="{wGetValueOfDefaultExtension()}"/>
  </wd:templates>

Ersetzen durch:

  <wd:templates>
    <wd:master path="{wGetValueOfDefaultExtension()}"/>
    <wd:edit path="{wGetValueOfDefaultExtension()}"/>
    <wd:view path="{wGetValueOfDefaultExtension()}"/>
    <wd:editExt path="{wGetValueOfDefaultExtension()}"/>
  </wd:templates> 
 

Wichtige Hinweise

  •  Legen Sie vor jedem Suchen/Ersetzen Vorgang ein Backup des betroffenen Verzeichnisses an!
  • Es kann keine Gewähr für ein erfolgreiches Ersetzen übernommen werden!
  • In den einschlägigen Dokumentationen zu regulären Ausdrücken finden Sie weitere Beispiele und Einsatzmöglichkeiten.

 

Ähnliche Seiten

Entwicklerbereich Weblication® CMS - © Scholl Communications AG