Overload funktioniert nicht

Thema wurde von Anonymous, 11. Juni 2017 erstellt.

  1. Anonymous

    Anonymous Aktives Mitglied

    Registriert seit:
    25. April 2017
    Beiträge:
    32
    Danke erhalten:
    0
    Danke vergeben:
    1
    Hallo,
    ich hab einen Overload erstellt, nur leider funktioniert dieser nicht.
    Ich nutze externe Bilder und muss deshalb die Pfadangaben zu den Bildern entfernen. Schreibe ich es direkt hinein geht alles. Hab auch den gesamten Cache geleert. Wo liegt der Fehler?
    Overload liegt unter : GXUserComponents/overloads/product
    Name ist: ProductOverload.inc.php
    Überladen wird: includes\classes\product.php

    Code:
    <?php
    class ProductOverload extends ProductOverload_parent
    
    {
        function productImage($name, $type)
        {   
            parent::productImage($name, $type); // prepare overloading process...
           
            switch($type)
            {
                case 'info' :
                    $path = DIR_WS_INFO_IMAGES;
                    break;
                case 'thumbnail' :
                    $path = DIR_WS_THUMBNAIL_IMAGES;
                    break;
                case 'popup' :
                    $path = DIR_WS_POPUP_IMAGES;
                    break;
            }
    
            if($name == '')
            {
                if($this->useStandardImage == 'true' && $this->standardImage != '')
                {
                    return $this->standardImage;
                }
            }
            else
            {
                // check if image exists
                if(!file_exists($path . $name))
                {
                    if($this->useStandardImage == 'true' && $this->standardImage != '')
                    {
                        $name = $this->standardImage;
                    }
                }
                return  $name;
            }
       
           
        }// end of function
    
    }// end class
     
  2. Sergej (Gambio)

    Sergej (Gambio) Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    1. August 2016
    Beiträge:
    336
    Danke erhalten:
    205
    Danke vergeben:
    69
    Ich denke du müsstest die Konstanten deinem Wunsch nach anpassen, die für $path gesetzt werden.
    Solange du die Konstanten beibehältst, verweisen diese auf einen Pfad der irgendwo im Root Verzeichnis des Shops liegt.

    Ändere in der Fallunterscheidung für Bildtypen den Pfad auf deine externe Bilder ab.
    Wird extern "https" verwendet, setzte den Pfad auf z.B. "https://extern.de/mein/pfad/zu/externen/verzeichnis/wo/die/bilder/abgelegt/sind/"

    Ich würde in dem externen Verzeichnis auch jeweils separate Ordner anlegen für die einzelnen Bildtypen z.B. "popup" und die Bilder in der entsprechenden Skalierung ablegen.
     
  3. Anonymous

    Anonymous Aktives Mitglied

    Registriert seit:
    25. April 2017
    Beiträge:
    32
    Danke erhalten:
    0
    Danke vergeben:
    1
    Da wurde ich missverstanden. Ich hab die Bilder nicht in einem externen Ordner sondern jedes Bild hat einen eigenen Link (was der Name ist). Wie gesagt wenn ich das in die entsprechenden Datein direkt hineinschreibe geht es auch. Nur der Overload geht nicht. Bitte nicht so auf den Inhalt des Overload konzentrieren, denn der ist total nebensächlich. Mir geht es um den Overload an sich. Ist da was falsch?
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.546
    Danke erhalten:
    11.305
    Danke vergeben:
    1.612
    Ich kann mich irren, aber eine "ProductOverload" - Datei habe ich noch nicht gesehen.
    Angenommen Du möchtest die Datei product.inc.php überladen, dann erstellst Du im Verzeichnis
    GXUserComponnts/ overloads/
    einen neuen Ordner "product"
    und darin eine Datei z.B. mit dem Namen bilder_product.inc.php.
    dann wäre die Zeile
    class bilder_product extends bilder_product_parent
     
  5. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.757
    Danke erhalten:
    1.370
    Danke vergeben:
    305
    @(Link nur für registrierte Nutzer sichtbar.)

    da du bei uns wegen einem anderen Problem noch ein Ticket offen hattest haben wir dein Overload auch mal kurz auf dem Server angesehen. Der Overload ist technisch in Ordnung gewesen aber deine Konfigurationsdateien waren fehlerhaft, weshalb der Overload erst gar nicht geladen wurde. Zusätzlich haben wir noch einen Fehler in der Datei
    GXUserComponents/overloads/product/ProductOverloadThumbnail.inc.php gefunden und korrigieren können. Hier waren an der falschen Stelle geschweifte Klammern gesetzt. Wir konnten dies aber alles korrigieren, sodass die Dateien nun ohne Fehler geladen werden.