Overload ProductInfoContentView

Thema wurde von Anonymous, 19. Mai 2020 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Dezember 2012
    Beiträge:
    229
    Danke erhalten:
    23
    Danke vergeben:
    27
    Hallo liebe Gambio Gemeinde,

    Hätte hier ein kleines Problem, und zwar holt mein Overload mir nicht mehr die manufacturer_id und stellt diese mir als Variable MANUFACTURERS_ID zur Verfügung.

    Jemand nen Plan woran das liegen könnte, seit welchem Update das nicht mehr funzt kann ich leider nicht sagen :)

    Code:
    <?php
    /* --------------------------------------------------------------
       ProductViewOverload.inc.php 2016-06-24
       Gambio GmbH
       http://www.gambio.de
       Copyright (c) 2016 Gambio GmbH
       Released under the GNU General Public License (Version 2)
       [http://www.gnu.org/licenses/gpl-2.0.html]
       --------------------------------------------------------------
    */
    
    // Diese Datei erweitert die ProductInfoContentView
    class manuid_ProductInfoContentView extends manuid_ProductInfoContentView_parent {
    
         // Funktion die festlegt, dass in ProductData auch der Hersteller aufgenommen wird
      public function _assignProductData()
      { 
           // _assignProductData ist die bestehende Funktion die ergänzt wird
           parent::_assignProductData();
         
           // Feld Hersteller wird hinzugefügt
           $this->_assignManufacturersID();
      }
    
         // Funktion, die den Wert für_assignManufacturers holt
      public function _assignManufacturersID()
      {
      // übergibt die manufacturers_id an das Template
           $this->set_content_data('MANUFACTURERS_ID', $this->product->data['manufacturers_id']);
      }
    
    }
    ?>
     
  2. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.656
    Danke erhalten:
    1.261
    Danke vergeben:
    300
    @BMS Wenn du auf ein Theme umgestellt hast, musst du den Overload noch in der ProductInfoThemeContentView machen.
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Dezember 2012
    Beiträge:
    229
    Danke erhalten:
    23
    Danke vergeben:
    27
    @Till (Gambio) Keine Ahnung was Du mit Theme meinst :) Aber hab ich mal angelegt, leider ohne Erfolg. Immer noch keine MF_ID :( verstehe ich nicht. Haste noch ein Tipp für mich?
     
  4. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.884
    Danke erhalten:
    617
    Danke vergeben:
    113
  5. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Da der Shop noch in Template und offenbar in der Version 3.15. ist, frage ich mal etwas anderes:
    Wo genau liegt denn Dein Overload?
    Ist der noch in GXUserComponents/overloads/
    oder schon in GXModules/Name/Änderung/Shop/Overloads/
    ?
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Dezember 2012
    Beiträge:
    229
    Danke erhalten:
    23
    Danke vergeben:
    27
    @barbara bin noch in GXUserComponents/overloads/
     
  7. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Dann ist das die Ursache.
    Der Ordner wird nicht mehr gelesen.
     
  8. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Dezember 2012
    Beiträge:
    229
    Danke erhalten:
    23
    Danke vergeben:
    27
    Ah ok.. deprecated.. hab ich gar net mitbekommen..

    also hab das jetzt in:
    /GXModules/BMS/BMS/Shop/Overloads/ProductInfoContentView/manuid_ProductInfoContentView.inc.php
    /GXModules/BMS/BMS/Shop/Overloads/ProductInfoThemeContentView/manuid_ProductInfoThemeContentView.inc.php

    und funzt wieder, Danke Barbara :)
     
  9. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Dezember 2012
    Beiträge:
    229
    Danke erhalten:
    23
    Danke vergeben:
    27
    Hallo liebe Gambio Gemeinde,

    wollte meine ProductinfoContentView Overload etwas abändern, bekomme aber nicht das gewünscht Ergebnis, hat jemand nen Tipp für mich?
    und zwar wollte ich mir die Variable manufacturers_name zur Verfügung stellen. (Zusätzlich zur ID)

    Code:
    <?php
    
    // Diese Datei erweitert die ProductInfoContentView
    class manuid_ProductInfoContentView extends manuid_ProductInfoContentView_parent {
    
         // Funktion die festlegt, dass in ProductData auch der Hersteller aufgenommen wird
      protected function _assignProductData()
      { 
           // _assignProductData ist die bestehende Funktion die ergänzt wird
           parent::_assignProductData();
         
           // Feld Hersteller wird hinzugefügt
           $this->_assignManufacturersID();
           $this->_assignManufacturersNAME();
      }
    
         // Funktion, die den Wert für_assignManufacturers holt
      protected function _assignManufacturersID()
      {
      // übergibt die manufacturers_id an das Template
           $this->set_content_data('MANUFACTURERS_ID', $this->product->data['manufacturers_id']);
      }  
     
         // Funktion, die den Wert für_assignManufacturers holt
      protected function _assignManufacturersNAME()
      {
      // übergibt die manufacturers_name an das Template
           $this->set_content_data('MANUFACTURERS_NAME', $this->product->data['manufacturers_name']);
      }
    
    }
    ?>
     
  10. M. Zitzmann

    M. Zitzmann Erfahrener Benutzer

    Registriert seit:
    3. März 2016
    Beiträge:
    367
    Danke erhalten:
    118
    Danke vergeben:
    39
    Warum so umständlich?

    Code:
    <?php
    
        class manuid_ProductInfoContentView extends manuid_ProductInfoContentView_parent {
    
        protected function _assignProductData()
        {
            parent::_assignProductData();
            $this->set_content_data('MANUFACTURERS_ID', $this->product->data['manufacturers_id']);
            $this->set_content_data('MANUFACTURERS_NAME', $this->product->data['manufacturers_name']);
        }
    
        }
    ?>
    
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Dezember 2012
    Beiträge:
    229
    Danke erhalten:
    23
    Danke vergeben:
    27
    och is nur der Übersichlichkeit, mach das so selten, da vergess ich immer alles wieder. :)

    Aber Leider hilft das mir bei meinem Problem nicht weiter.

    Echt komisch, bekomme die id aber nicht den namen.
     
  12. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.403
    Danke erhalten:
    707
    Danke vergeben:
    92
    Ich gehe mal davon aus, dass in "product->data" der Name nicht enthalten ist.

    Probiere mal folgenden Code:

    PHP:
    $manufacturer $this->getManufacturerById($this->product->data['manufacturers_id']);
    $manufacturer_name $manufacturer->getName();
    $this->set_content_data('MANUFACTURERS_NAME'$manufacturer_name);
    Ist allerdings ungetestet.
     
  13. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Dezember 2012
    Beiträge:
    229
    Danke erhalten:
    23
    Danke vergeben:
    27
    @Kai Stejuhn ja, hab dann auch den Part aus der ProductInfoContentView benutzt :)

    habs jetzt so und funzt.. Danke für die Hilfestellungen!
    Code:
    <?php
    
    // Diese Datei erweitert die ProductInfoContentView
    class manuid_ProductInfoContentView extends manuid_ProductInfoContentView_parent {
    
      // Funktion die festlegt, dass in ProductData auch der Hersteller aufgenommen wird
      protected function _assignProductData()
      {
           // _assignProductData ist die bestehende Funktion die ergänzt wird
           parent::_assignProductData();
        
           // Felder hinzufügen
           $this->set_content_data('MANUFACTURERS_ID', $this->product->data['manufacturers_id']);
           $this->set_content_data('MANUFACTURERS_NAME', $this->getManufacturerById($this->product->data['manufacturers_id'])->getName());
      }
    
    }
    ?>
    Die Gambio-Gemeinde hat halt immer eine Lösung :)