Addon-Values in ContentViews "vernünftig" auslesen

Thema wurde von Anonymous, 20. Juli 2018 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    17. Juli 2018
    Beiträge:
    49
    Danke erhalten:
    8
    Danke vergeben:
    11
    Hi,

    ich versuche Addon-Values, die ich bei Produkten hinzugefügt habe im Template auszugeben. Dazu habe ich nun den folgenden Weg gefunden. Ich lege einen Overload für ProductInfoContentView an, der folgendermaßen funktioniert:

    Code:
    
    class ProductZusatzfelder extends ProductZusatzfelder_parent
    {
        function _assignProductData()
        {
            $this->_assignExtrafields();
    
            return parent::_assignProductData();
        }
    
        public function _assignExtrafields()
        {
            $productReadService = StaticGXCoreLoader::getService('ProductRead');
            $productObj = $productReadService->getProductById(new IdType($this->product->pID));
            $addonValues = $productObj->getAddonValues()->getArray();
            $this->set_content_data('MYFIELDNAME', $addonValues['myfieldname']);
        }
    }
    
    
    Das klappt alles soweit und ich kann im Smarty dann $MYFIELDNAME ansprechen, ausgeben etc.

    Mich beschleicht aber das Gefühl, dass das eine etwas zu aufwendige Lösung ist: Den Service holen, Objekt erzeugen, Array holen und einen Wert auslesen.

    Geht das irgendwie einfacher? Ich werde das Gefühl nicht los, dass es hierzu einen Einzeiler geben könnte, der mir einfach nicht bekannt ist und der das ganze ggf. auch noch performanter macht wie mein Code. Irgendwas nach dem Motto

    Code:
    $this->set_content_data('MYFIELDNAME', $this->product->getAddonValue('myfieldname'));
    
    Gibt es sowas? Oder andere, "bessere" Ansätze? Für sachdienliche Hinweise bin ich sehr dankbar!
    Gruß, Christian
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    die Zusatzfelder, die Du im Artikel eingeben kannst, werden doch auch im Artikel (frondend) ausgegeben.
    Ich verstehe nicht , was du da versuchst.
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    17. Juli 2018
    Beiträge:
    49
    Danke erhalten:
    8
    Danke vergeben:
    11
    Mir gefielen die Zusatzfelder nicht, da ich mit anderen Datentypen arbeiten wollte statt Strings. Z.B. wollte ich Checkboxen haben und nicht den Kollegen erklären müssen, wie Sie bei allen Artikeln ein Key-Value Paar anlegen müssen. Sondern ich schlicht sagen kann "Da gibt es eine Checkbox, setzt die wenn xyz erfüllt ist einfach".

    Daher habe ich wie hier beschrieben eigene Felder in die Artikelbearbeitungsmaske gebaut. Nun ging es mir darum, die Inhalte dieser Addon Values möglichst effizient ins Frontend zu bekommen. Die in dem o.g. genannten Möglichkeiten scheinen aber nicht (mehr) zu funktionieren. Daher die Frage.
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    #4 barbara, 22. Juli 2018
    Zuletzt bearbeitet: 22. Juli 2018
    Mit meinen Extrafelder geht es noch, die sind allerdings in eigenen Datenbank-Spalten angelegt....
    Ich schaue mal eben, ob sich an den Dateien, die hier beschrieben wurden, etwas geändert hat....

    Nachtrag: nein, an meiner extrafeld_ProductInfoContentView hat sich nichts geändert
     
  5. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    17. Juli 2018
    Beiträge:
    49
    Danke erhalten:
    8
    Danke vergeben:
    11
    Danke Barbara. Eigentlich war ich davon ausgegangen, dass die Addon-Values der "richtige" Weg in dem Sinne sind, dass sie der seit ihrer Einführung der von Gambio vorgesehene (oder "empfohlene") Weg zur Erweiterung von Produkten, Kategorien, Kunden etc. sind und einem das Schreiben von eigenen DB-Anfragen abnehmen sollen.

    Ich lasse mich da aber gerne eines besseren belehren.

    Was wäre, mal anders rum gefragt, der zeitgemäße Ansatz um z.B. die Artikelmaske um weitere Inputs (Checkboxen, Selections, Textareas) zu erweitern, deren Inhalte man im Frontend ausgeben kann?
     
  6. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.656
    Danke erhalten:
    1.261
    Danke vergeben:
    300
    @chrisW Die Addon-Values sind aktuell der richtige Weg die Daten zu speichern und wieder auszulesen. Leider sind die Addon-Values im FrontEnd noch nicht so implementiert, dass diese einfach ausgelesen werden können. Dein Ansatz ist schon der aktuellste Weg.

    Unter (Link nur für registrierte Nutzer sichtbar.) findest du die aktuelle Methode weitere Elemente und Eingabefelder in der Artikelbearbeitung einzufügen.