+ Antworten
Ergebnis 1 bis 3 von 3

Thema: Strings und Dateien im Joomla Kontext erfolgreich suchen und finden

  1. #1
    xbq
    xbq ist offline
    Verbringt hier viel Zeit Avatar von xbq
    Registriert seit
    11.02.2008
    Beiträge
    604
    Bedankte sich
    21
    Erhielt 132 Danksagungen
    in 114 Beiträgen

    Standard Strings und Dateien im Joomla Kontext erfolgreich suchen und finden

    Nicht jeder, der einen linuxbasierten Rootserver für sein Joomla CMS einsetzt, ist ein Linux/Unix Profi. Zumal Unix ein eigene Welt ist, und dessen Entstehung -glaubt man den Erzählungen - durchaus eigenwillig war. Daran hat sich zumindest nach meinen Erkenntnissen, bis dato nicht wesentlich etwas geändert. Dementsprechend sind etwaige Anleitungen oder Tipps -wenn denn vorhanden- in Foren etc. eher schwierige Kost. Für das passende Auffinden von z.B. einer Anleitung für eine spezielle Suchabfrage braucht es Zeit...
    Hat man ein umfangreiches Joomla Paket auf seinen Webserver geladen, viele Komponenten, Module und Plugins installiert, erhebt sich die Frage: was tun, wenn Text oder Textstrings im Frontend auftauchen, die man dort nicht haben will (!nicht mit dem Ziel des Löschens von Copyrighteinträgen!), bzw. wenn klar erkennbar ist, dass es sich um einen Bug handelt. Dies passiert öfter einmal in Komponenten, z.B. bei Formularen o.ä. Kennt man sich nun schon ein wenig mit der Joomla Systematik aus, könnte man ja prinzipiell eine Idee habe, in welchen Dateien man ggf. nachschauen muss. Bei größeren Komponenten mit Admin und Frontendteilen ist es jedoch zeitraubend, Hunderte von Dateien durchzuforsten. Selbst wenn man eine Stelle gefunden hat, kann der gleich Bug sich durchaus noch in weiteren 20 Dateien versteckt haben. Wie also diese Strings finden?
    1. Man öffnet das kostenlos erhältliche Miniprogramm Putty (zugegebenermassen nicht so userfreundlich), trägt seine Server IP Adresse ein, wählt "SSH Zugang" aus, danach ENTER
    2. Nach einer Weile wird im Grün/schwarz Mode der Benutzername und das Root Passwd abgefragt, die Eingabe erfolgt manuell, copy/paste geht hier nicht.
    3. Zur Orientierung, wo man sich denn nun gerade befindet, gibt man ls ein, danach mit cd /Ordner oder den ganzen Pfad cd /Ordner/Ordner/ordner/ordner ("Ordner" steht hier nur als Platzhalter für die realen Verzeichnisse) etc. solange, bis man 1 Ordner unter seinem Webstartverzeichnis steht. Ist also das Startverzeichnis httpdocs (der Pfad heisst bspw. /srv/www/vhosts/mysite.com/httpdocs/ )stellt man sich auf das Verzeichnis
    mysite.com
    4. Nun gibt man den folgenden Befehl ein:

    find httpdocs/ -type f -print | xargs grep -l "EINE TEXTSUCHE"

    "EINE TEXTSUCHE" steht hier als Platzhalter für den Textstring, den man sucht.
    Das Pipezeichen | findet man i.d.R. rechts neben dem < Zeichen. Blanks sind einzuhalten!
    Da es sich um Unix handelt: Groß-und Kleinschreibung beachten, sonst bleibt die Suche erfolglos.
    In hohem Tempo wird nun der komplette Webspace mit den Joomla Dateien durchsucht, in wenigen Sekunden werden zuverlässig alle Dateien, die den String enthalten, mit Pfadangabe angezeigt.
    Man kann dann auch mit einer Erweiterung des Befehls gleich die Strings mit neuem Text ersetzen, das ist aber risikoreich, sinnvoller ist es, sich die Dateien erst einmal in Ruhe und Gänze vor einer Änderung anzuschauen.

    Sucht man nur nach Dateien, benutzt man diese Eingaben zur Abfrage:
    find . -name *.log -o -name *.aux (Dateien mit der Erweiterung .log oder .aux, der * dient dabei als Platzhalter)

    oder

    find . -name mootools.js (Suche nach einer spaziellen Datei, deren Namen man kennt)

    Der . besagt: alle Verzeichnisse und Unterverzeichnisse ab dem Verzeichnis, auf dem man steht, werden durchsucht.
    Ist die Suche abgeschlossen, tippt man logout ein, Putty wird geschlossen.

    Hat man nun aber eine WAMP Installation lokal auf seinem PC laufen, versucht man i.d. Regel sein Glück hinsichtlich einer Datei oder Text (string)suche erstmal mit dem Windows Explorer (öfter ohne Erfolg...). Dafür gibt es das (schon sehr sehr alte) kleine Programm ZTREE, der Nachfolger von XTREE, zum testen gratis, nach der Testphase dann gegen einen geringen Betrag als Volllizenz. Anstelle von ZTREE gibt es bis heute nichts vergleichbares, was Geschwindigkeit und Zuverlässigkeit angeht. ZTREE findet alle Dateien und Textstrings (in allen Dateitypen!) zuverlässig in wenigen Sekunden, auch bei einer hohen Anzahl zu durchsuchender Datenbestände. Auch bei ZTREE könnte man, wenn man die Dateien gefunden hat, Ersetzungen über alle Textstrings wie ein Batchjob laufen lassen...
    A fool with a tool is still a fool (H.D.Thoreau,1854)
    Unix is user-friendly. It is, however, not idiot-friendly (anonymous)
    Wenn Dir meine Antwort weitergeholfen hat - ich freue mich über einen Klick auf den Danke-Button

  2. Erhielt Danksagungen von:


  3. #2
    Gehört zum Inventar Avatar von Taka
    Registriert seit
    23.05.2005
    Ort
    Downtown Zürich
    Alter
    39
    Beiträge
    5.067
    Bedankte sich
    152
    Erhielt 1.239 Danksagungen
    in 1.172 Beiträgen

    Standard

    So und jetzt noch eine alternative Lösung. Damit kann man nicht komplette Dateien etc. ersetzen, sondern sämtlichen Frontend-Output/Source:

    Search&Replace Erweiterung für 1.5.x http://www.nonumber.nl/index.php/extensions/rereplacer

  4. #3
    Joomla Guru Avatar von elkuku
    Registriert seit
    14.06.2006
    Ort
    Guayaquil - Südamerika
    Beiträge
    1.689
    Bedankte sich
    74
    Erhielt 517 Danksagungen
    in 397 Beiträgen

    Standard

    Mir stellt sich jetzt die Frage, was du denn machst, wenn du den String XYZ in der Datei foo.php gefunden hast ?
    Benutzt du dann vim o.ä. mit Putty ??
    Es geht dir denke ich darum, bestimmt Teile im PHP code zu finden und zu ersetzen ?
    I love Eclipse ! Dann kannst du mit einem einfachen Ctrl-H eben dies erreichen. Danach dann FTP sync o.ä.

    Trotzdem - schöner Beitrag !

    Putty war für mich übrigens genau der Grund endgültig das M$ von meiner Platte zu verbannen
    Probier mal den Konqueror (K-Dateimanager) mit dem "fish://" Protokoll.

    Für "ängstliche" gibt's auch die Linux live CD's zum schnuppern
    Gruß,
    Nikolai
    Hilf mit: Deutsche Joomla! Dokumentation Help testing: EasyCreator Noch Fragen ? Forum.Joomla-Nafu.de

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein