müssen bestimmte Ordner geschützt werden?

  • Hallo,
    ich teile meine Fragen nun etwas thematisch auf, damit der andere Thread nicht so unübersichtlich wird :)


    Ich habe bisher ein Template installiert und diesen sicheren Ordner für Rechnungen angelegt. Alle weiteren Änderungen haben bisher nur im Backend stattgefunden.


    Nun lese ich im Zusammenhang mit Overridedateien, dass man da irgendwelche Dateien in andere Ordner kopieren soll, damit die Dateien bei einem möglichen späteren Softwareupdate nicht überschrieben werden.


    Ist dem tatsächlich so? Wenn ja, wie gehe ich da vor?


    Es sei erwähnt, dass ich überhaupt keine Ahnung habe, zu welchen Kundenfeldern, Versand- oder Zahlungsbedingungen etc. welche Dateien gehören. Vielleicht gibt es da eine Art Übersicht?


    Aus der tos.php habe ich eine Kopie als Widerruf gespeichert, die inhaltlich noch geändert werden müsste. Wäre diese Datei ebenfalls separat zu sichern?


    Es tauchen immer wieder ZEILEN_IN_GROSSBUCHSTABEN auf, entweder in Auswahlfeldern oder wenn ich mit der Maus über Feldbezeichnungen komme. Sind das lediglich die ursprünglichen "Programmnamen" die man dann auch in den Dateien wiederfinden könnte oder sind das Dateien, die Inhalte zu diesem Feld enthalten?


    LG
    Emily

  • Override-Dateien dienen tatsächlich dazu Änderungen so vorzunehmen, dass sie von einem Update nicht wieder überschrieben werden.


    Für was Overdrives angelegt werden können siehst Du im Template.
    Gehst im Backend auf dein Template (Erweiterungen --> Template) und dort hast Du den Menüpunkt "Overdrives erstellen".
    Dort siehst Du für welche Module und Komponenten Du Overrides anlegen kannst.


    Der Verritte erscheint dann unter dem Menüpunkt "Editor" im Ordner HTML. Dort kannst Du dann die entsprechende Datei bearbeiten.

  • Servus Emily,


    Overrides werden bei VirtueMart normalerweise für die "Views" und "sublayouts" angelegt. Die Views bestehen aus PHP-Dateien, die das Aussehen bestimmter Seitenansichten (Ansicht Warenkorb, Ansicht Produkt, Ansicht Kategorie usw.) bestimmen. Sublayouts sind ähnlich für kleinere Bereiche innerhalb einer Seitenansicht.


    Die originalen Dateien der Views befinden sich im Ordner
    /components/com_virtuemart/views/


    Hier gibt es verschiedene Ordner für verschiedene Views/Seitenansichten, dort findest innerhalb der Seitenansicht-Ordner jeweils den Ordner tmpl, dort sind die verantwortlichen Dateien für die Anzeige. Die Hauptdatei ist immer die default.php.
    z. Bsp. /components/com_virtuemart/views/cart/tmpl/default.php ist verantwortlich für die cart view, die Warenkorb-Ansicht.


    Die Dateien kann man verändern und in den Override-Ordner des Templates legen.


    Der Override-Ordner eines jeden Templates heißt html, z. Bsp:
    /templates/horme3/html/


    Innerhalb dieses Override-Ordners kann man für Module und Komponenten Dateien anlegen. VirtueMart ist eine Komponente. Komponenten werden in Ordner mit com_komponentenname abgelegt. Sie auch zuvor der Originalordner.
    /templates/horme3/html/com_virtuemart/ ist also der Ordner für die VirtueMart-Overrides.


    /templates/horme3/html/com_virtuemart/cart ist zum Beispiel der Ordner für die Overrides des Warenkorbes. Achtung, hier nicht den Ordner tmpl einsetzen. Obige default.php wäre direkt im cart-Ordner, so:
    /templates/horme3/html/com_virtuemart/cart/default.php


    Diese Override-Datei wird nun statt der originalen Datei geladen, die Originaldatei wird nicht geladen.


    Das ist im Grunde das Geheimnis von Overrides. Das ist nichts VirtueMart-spezifisches, das ist Joomla-Wissen, hier in Bezug auf VirtueMart erklärt, gilt aber für alle anderen Komponenten, Module und Plugins auch.



    Die Worte in Großbuchstaben sind auch Joomla-Dinge, das sind Sprachschlüssel, die durch die Sprachdateien in alle möglichen Sprachen übersetzt werden. Taucht so ein Schlüssel auf, existiert keine Übersetzung in den zur Verfügung stehenden Sprachdateien. Deutsche Sprachdateien für VirtueMart sind auf VirtueMart.de - Freie Online Shop Software für alle! direkt am Anfang verlinkt.


    Hope it helps
    Stefan


    PS
    Oakmountain hat wohl gleichzeitig getippt und es aus anderer Sicht beleuchtet, danke.
    Ich bevorzuge die Bearbeitung der Dateien mit einem Texteditor auf dem Rechner, danach lade ich die Dateien in die Ordner hoch, jeder hat da so seine Favoriten. Ein einfacher Texteditor ist Notepad++, Sublime Text ist auch nett. Es gibt da einige, wichtig ist nur, dass die Dateien in UTF-8 bearbeitet werden können.

  • Ja, aber was ihr beide nicht erwähnt habt.


    Die wid.php (mein Name für die Datei mit der Widerrufsbelehrung) sollte im sublayout ordner des Cores liegen. Denn sie ist im Core nicht dabei und würde nicht überschrieben werden (ausser Membership version). Vorteil das layout wäre in jedem template verfügbar.
    Sie kann aber auch die Datei in den Override folder des templates für die sublayouts legen, dann ist sie nur in diesem Template verfügbar.
    In ihrem Fall rate ich davon ab, Layout Overrides zu benutzen. Viele Templates bringen ihre eigenen Overrides bereits mit. Man sollte versuchen sich auf reine css overrides zu beschränken, dann hat man am wenigsten Ärger.

  • Danke Oakmountain, die Overrides hab ich auf Anhieb gefunden.


    Nur deinen letzten Absatz verstehe ich nicht:
    "Der Verritte erscheint dann unter dem Menüpunkt "Editor" im Ordner HTML. Dort kannst Du dann die entsprechende Datei bearbeiten."


    Natürlich hab ich jetzt prompt auf den ersten Eintrag unter Modul geklickt (2x) und mich gewundert, dass sich nichts öffnet, wie bei der Index.php. Dann habe ich den Eintrag oberhalb im grünen Feld gesehen:



    "Nachricht


    Es wurde ein Override erstellt in /templates/horme_3/html/mod_articles_archive


    Ein neuer Override wurde erstellt."


    Oh Schreck.


    In dem genannten Ordner befindet sich jetzt eine default.php und eine default-20151007-083007.php


    Ich nehme an, die mit den Zahlen/Datum kann ich wieder löschen ohne, dass etwas passiert?



    Danke Stefan,


    also im Ordner /components/com_virtuemart/views/ befinden sich Originaldateien für das Aussehen bestimmter Dinge. Als Override bezeichnet man nur die Kopie dieser Datei
    die unter /templates/horme3/html/ gespeichert und nach Wunsch angepasst wird?


    Im Backend unter Templates->overrides finde ich die Spalten Module, Komponenten, Layouts und darunter Dateinamen. Verstehe ich das richtig, dass das die Wiedergabe des Originalordners ist und ich mit Klick eine Kopie unter template erzeuge, die ich dann später verändern kann?


    Die Override-Datei unter Templates hat dann automatisch immer Vorrang vor der Originaldatei?


    Ich weiß, dass ich diese php-Dateien in meinem Editor (Windows) öffnen, bearbeiten und speichern kann. Allerdings macht mein Editor da eine ewig lange Zeile ohne Umbruch draus. Völlig unpraktisch, da muss ich ne Alternative suche. Sehe da immer mal einen mit den Zeilennummern vorne, der scheint sinnvoll zu sein.


    Gibt es außer dem Editor noch eine Bearbeitungsmöglichkeit direkt im Backend?


    Also wenn meine Schlussfolgerungen hier stimmen, hast du sehr gut erklärt :)


    Ich habe die deutschen Sprachdateien gleich zu Anfang installiert (hatte ich erwähnt, dass ich kein Engl. kann? :) )
    Einzelne Begriffe sind da aber wohl übersehen worden. Und einer dieser steht im Warenkorb im Feld Adresse Kurzbezeichnung: COM_VIRTUEMART_USER_FORM_ST_LABEL
    Wobei ich mich da wohl später beim Feinschliff des Warenkorbes mit befasse.



    Milbo:
    die wid.php hab ich in dem Ordner, in dem die tos.php liegt, nur ist sie inhaltlich noch nicht korrekt, da Kopie von tos.


    Nachdeinem Post nun gehe ich davon aus, dass die Overriddateien, die mir im Backend unter Template angezeigt werden bereits vom Templateentwickler erstellt wurden und somit die Originale überschreiben. Wenn ich diese nochmals ändern würde, würden sie bei einem update überschrieben werden.


    Ich möchte da so wenig wie möglich ändern, nur wenn es sein muss. Alleine schon aufgrund meiner nicht vorhandenen Kenntnisse :)


  • Darf ich nochmal nach oben schubsen?


    Müsste wissen, was ich mit dieser Datei machen soll/darf. Löschen oder nicht?


    Möchte nicht, dass durch diese Aktion eine Fehlfunktion ausgelöst wird.


    LG

  • Also bei mir scheint wirklich alles anders zu sein...


    Im Backend unter Template, Override bekomme ich drei Spalten angezeigt. Erste Spalte erster Eintrag ist mod_articles_archiv.


    Wenn ich darauf klicke, öffnet sich eben kein Fenster oder ähnliches, wie ich es von anderen Dateien kenne (index.php etc.). Es erscheint nur oben im gründen Feld die Meldung, dass eine neue Datei unter Pfad xy angelegt wurde.


    In filezilla sehe ich nun die default.php und noch zwei kopien mit Datum im Dateinamen - die erste hatte ich noch nicht gelöscht. Ich kann mir die Datei natürlich runterladen und bearbeiten.


    Wenn ich mal soweit bin, dass ich an die Override gehe würde ich zunächst die mit Datum nach Wunsch bearbeiten, dann die vorhandene in default_original.php umbenennen und aus meiner default.php machen. Wenns in die Hose geht, hätte ich immer noch das Original gesichert.


    Von meiner neuen muss ich dann wohl auch eine Kopie im Verzeichnis bereit halten, weil die default.php bei einem update überschrieben wird?

  • Im template gibt es 3 Reiter:
    1. Editor
    2. Overdrives erstellen
    3. Template-Beschreibung


    In 2 kannst Du die Overdrives nur erstellen nicht bearbeiten


    In 1 kannst du in dem Ordner HTML die Overdrives bearbeiten


    Filezilla oder ähnliches brauchst Du daher nicht, weil Du alles im Backend machen kannst. Klar kannst Du dir auch mal eine Datei als Sicherheit runterladen.


    Im Backend kannst Du auch alles löschen. Siehe ganz oben "Verzeichnisse verwalten"

  • Wenn in dem Ordner bereits eine default.php vorhanden ist, wird diese vermutlich aktuell verwendet?


    Wenn ich durch Klick im Register Override auf eine Datei klicke, wird diese neu angelegt. Also es erscheint die default-datum.php zusätzlich in dem Verzeichnis.


    Ich ging bisher davon aus, dass dies eine Kopie der default ist, die man nach Wunsch anpassen kann und die erst dann verwendet wird, wenn man sie in default.php umbenennt (und logischerweise die Original default.php löscht oder ebenfalls umbenennt).


    Ist dem nicht so?

  • Die Orginal default.php liegt in der Komponente, Modul oder dem Template
    Von dieser Datei wird ein Override angelegt.


    Löscht man alle Dateien aus dem Override-Ordner dann wir diese Original-Datei verwendet.


    Den Override, den Du anlegst bezieht sich immer auf die Originaldatei, nicht auf einen schon bestehenden Override.

  • sorry, wenn ich vlt wirres Zeug schreibe. :-)


    Wenn ich auf Template klicke steht dort bei Override erstellen z.b. mod_articels_archive, eine default.php ist enthalten.
    Diese wurde dann vermutlich vom Horme-Entwickler als Override angelegt und überschreibt quasi die von Joomla bzw. VM mitgelieferte Originaldatei, die irgendwo unter /components/com_virtuemart/..... liegt.


    Wenn ich nicht alles zerschießen will, arbeite ich zunächst in der Kopie dieser Datei, die unter Templates abgelegt ist, welche ich dann manuell erstellen müsste, denn wenn ich im Backend auf Kopie erstellen klicke, macht er mir ne Kopie von der Datei unter /components/com_virtuemart/?


    Würde ich versehentlich die Default.php im Templateunterordner löschen, würde das Programm auf die /components/com_virtuemart/ zurückgreifen.


    Jetzt richtig?

  • Es kann schon sein, dass der Templateersteller einen Override angelegt hat. Der Override ist dann aber noch nicht bearbeitet. Sondern 1zu1 die Datei, die man auch im Template finden würde. Ganz einfach weil er auch mit seiner Datei die Originaldatei der Komponente überschreibt.
    Hier vielleicht mal das Prinzip nachlesen:
    Joomla Template Overrides Tutorial

  • Es gibt da nochn Problem, wenn man Joomla benutzt zum erstellen der overrides.


    Ein Layout besteht oft aus Unterlayouts. Joomla kopiert immer das layout + die Unterlayouts. Damit handelt man sich aber schneller Probleme ein.


    Generell sollte man layout overrides vermeiden und versuchen die Anpassungen per css overrides zu machen. Wenn man um ein override nicht herumkommt, dann sollte man nur überschreiben, was man wirklich ändern will. Also z.B. man verändert den Warenkorb.


    Joomla würde jetzt einfach die default.php kopieren und alle Dateien die mit default_ anfangen. Meist will man aber nur die default_pricelist ändern, dann sollte man auch nur diese kopieren.


    Warum sollte man layout overrides vermeiden? Wir geben uns zwar viel Mühe, aber manchmal ist es nicht vermeidbar, daß eine funktionelle Änderung des Layouts notwendig ist, um ein Problem zu beheben. Wenn man dann VM updated wird weiterhin das alte Layout benutzt, d. h. entweder man hat nichts vom Fix, oder es läuft nimmer.