Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie mache ich es richtig?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    (Zen-Cart 1.5.6) Wie mache ich es richtig?

    Ich habe ja durchaus schon einige Erfahrungen mit Zen Cart, aber manchmal stoße sogar ich an Grenzen. Heute ist mal wieder so ein Fall, der ja durchaus auch bei anderen Modulen auftreten kann. Ich will das hier einmal mit einem Beispiel aufzeigen. Heute habe ich mal einen Demoshop neu installiert, weil ich gesehen habe, dass es das Modul Amazon Pay in einer neuen Version gibt. Bei einer Erstinstallation in einen nackten Shop sollte es ja kein Problem geben, zumindest wenn ich nach der Installationsanleitung gehe:
    Wenn Sie Zen Cart 1.5.6 gerade frisch installiert haben und noch keinerlei Änderungen an den Dateien vorgenommen haben, können Sie nun alle Dateien/Ordner aus dem Ordner GEAENDERTE DATEIEN in der vorgegebenen Struktur in die Zen Cart Installation hochladen. Dabei werden dann bestehende Dateien überschrieben.
    Wenn ich das nun aber so machen würde, wie es da geschrieben steht, dann würde sich beispielsweise die Datei tpl_shopping_cart_default.php gewaltig verändern:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: shoppingcart1.jpg
Ansichten: 1
Größe: 26,2 KB
ID: 104186
    Hier würde ja - so wie ich es verstehe - die Einstellung für Tablets und Smartphones gelöscht, wenn ich die Datei einfach überschreiben würde. Auch beim nächsten Bild ist es so, dass links (die Originaldatei) etwas anderes steht als in der Vergleichsdatei des Moduls:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: shoppingcart2.jpg
Ansichten: 1
Größe: 41,3 KB
ID: 104187
    Auch im dritten Bild ist dieselbe Situation gegeben, auch hier würden Einstellungen zu Mobilgeräten überschrieben werden:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: shoppingcart3.jpg
Ansichten: 1
Größe: 34,6 KB
ID: 104188
    (Die Grafiken können mit einem Klick in Originalgröße aufgerufen werden)

    Nun habe ich es mir zur Gewohnheit gemacht, grundsätzlich, auch bei einer Neuinstallation, alle geänderten Dateien zu vergleichen. Aber hier wäre ich auch bei einem Vergleich überfordert, denn was muss ich überschreiben und was nicht? Das ist ja ein grundsätzliches Problem beim Einbau von Modulen, weil man nicht immer weiß, was von der Originaldatei geändert werden darf und was nicht. Ich habe mal bewusst diese Datei als Beispiel hierfür genommen, weil sie die Probleme aufzeigt, die man hat, wenn man nicht unbedingt ein Kenner von PHP ist.

    Nach meinem Verständnis ist die Datei tpl_shopping_cart_default.php im Amazon-Modul vermutlich noch aus einer früheren Version von Zen Cart, denn die eigentliche Änderung beginnt ja erst in Zeile 168 mit dem Eintrag:
    Code:
    <!-- ** BEGIN AMAZON FRITES LOGIN ** -->
    <br class="clearBoth" />
        <?php  // the tpl_login_button template only displays LOGIN option if cart contents > 0 and value > 0 and if there are no virtual products
        
        if (defined('MODULE_PAYMENT_FRITES_STATUS') && MODULE_PAYMENT_FRITES_STATUS == 'True') {
            
      if ($_SESSION['cart']->in_cart_check('products_virtual')) {
          //
      } else {
          include DIR_FS_CATALOG . DIR_WS_MODULES . 'payment/frites/tpl_login_button.php';
        }
    }
    
        ?>
        <!-- ** END AMAZON FRITES LOGIN ** -->
    Die vorangegangenen Unterschiede scheinen mir wie gesagt aus einer früheren Version der tpl_shopping_cart_default.php zu stammen, weil sie wie gesagt auch keine Einträge für Mobilgeräte enthält. Die tpl_shopping_cart_default.php for Free Gifts ist beispielsweise mit der Originaldatei bis auf die Änderungen für die Freebees identisch. Aber vielleicht ist meine Interpretation ja auch verkehrt, ich will das nicht ausschließen. Aber das Problem würde deshalb trotzdem bestehen bleiben, und wenn schon weitere Module installiert wären, dann müsste ja auch zwangsläufig die tpl_shopping_cart_default.php verglichen werden. Wie also mache ich es nun richtig?

    #2
    Bei Modulen, die Templates verändern, beziehen sich die gezeigten Änderungen immer auf die entsprechenden Templates in includes/templates/template_default
    Außer es werden bereits welche für das responsive_classic mitgeliefert.
    Das aktuelle Amazon Modul liefert keine speziellen für responsive_classic mit, wird in der nächsten Version ergänzt, dann ist es vielleicht einfacher.

    Die tpl_shopping_cart_default.php ist im responsive_classic sehr anders als im template_default, daher ist ein "Mergen" auf den ersten Blick kompliziert.
    Im Endeffekt gibt es aber nur eine einzige Änderung, die das Amazon Modul in dieser Datei vornimmt, sie ist kommentiert:

    Code:
    <!-- ** BEGIN AMAZON FRITES LOGIN ** -->
    <br class="clearBoth" />
        <?php  // the tpl_login_button template only displays LOGIN option if cart contents > 0 and value > 0 and if there are no virtual products
        
        if (defined('MODULE_PAYMENT_FRITES_STATUS') && MODULE_PAYMENT_FRITES_STATUS == 'True') {
            
      if ($_SESSION['cart']->in_cart_check('products_virtual')) {
          //
      } else {
          include DIR_FS_CATALOG . DIR_WS_MODULES . 'payment/frites/tpl_login_button.php';
        }
    }
    
        ?>
        <!-- ** END AMAZON FRITES LOGIN ** -->
    Hier wird einfach der Amazon Login Button an der gewünschten Stelle eingefügt, andere Änderungen gibt es nicht.
    Du siehst das, indem Du die tpl_shopping_cart_default.php des Amazon Moduls mit der aus template_default vergleichst.
    Generell auch immer auf meist vorhandene Kommentare achten, die zeigen wo ein Modul Änderungen vornimmt.

    In diesem Fall setzt Du also einfach den oben gezeigten Block an die Stelle von includes/tremplates/responsive_classic/templates/tpl_shopping_cart_default.php ein, an der Du den Amazon Button anzeigen lassen willst. Alles andere lässt Du völlig unverändert.

    Kommentar


      #3
      Danke für die schnelle Antwort. Ich habe das auch so wie von Dir beschrieben gemacht, weil die anderen Änderungen für mich nicht plausibel waren. Aber Dein Hinweis auf die tpl_shopping_cart_default.php im template_default hat mich auf mein eigenes Versäumnis aufmerksam gemacht, künftig weiß ich bei unklaren Änderungen, dass es sinnvoll sein kann, die Moduldatei mit jener aus dem template_default zu vergleichen. Manchmal sieht man den Wald vor lauter Bäumen nicht.

      Kommentar

      Info zu diesem Forenarchiv:
      Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
      Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
      Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
      PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
      Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
      FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

      Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
      Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
      Fehler in der Software können auf Github als Issues gemeldet werden.
      Follow us
      aktuelle version
      Zen Cart 1.5.7g deutsch
      vom 12.12.2023
      [Download]
      Lädt...
      X