Ergebnis 1 bis 2 von 2

Thema: Werte von zusätzlichen Attributen im Optionenmanager im Template

  1. #1
    Contao-Nutzer
    Registriert seit
    07.07.2016.
    Beiträge
    65

    Standard Werte von zusätzlichen Attributen im Optionenmanager im Template

    Hallo

    Im Optionenmanager habe ich Produzenten (producer) und als neues zusätzliches Attribut (page_producer) mit PageTree auf eine Link zu einer internen Infoseite zum Produzenten hinterlegt. Klappt alles wunderbar.

    Aber... Wie komme ich nun einfach auf die Werte in den Isotope-Templates (Produktlisten, Warenkorb/Checkout)? In den Template-Variablen sind die Angaben nicht. Das Handling ist ja auch je nach Template etwas unterschiedlich. Zumindest an die Produzentennamen komme ich wie folgt:

    iso_list_variants (Standard)
    PHP-Code:
    echo $this->generateAttribute('producer'); 
    iso_collection_default (angepasste Lösung)
    PHP-Code:
    $objAttributeProducer   =   $GLOBALS['TL_DCA']['tl_iso_product']['attributes']['producer']; 
    $producer_label         =   $objAttributeProducer->getOptionsForProductFilter(array($item['product']->producer));
    echo 
    $producer_label[0]['label']; 
    Da bin ich jetzt doch aufgeschmissen... Vielleicht habt ihr eine Idee oder einen Lösungsansatz?

    Freue mich auf Rückmeldungen!

  2. #2
    Contao-Nutzer
    Registriert seit
    07.07.2016.
    Beiträge
    65

    Standard

    Okay, die oder zumindest eine Lösung gefunden.

    Funktion in der Klasse AttributeOption (isotope/library/Isotope/Model) überschreiben mit:

    PHP-Code:
    public function getAsArray(IsotopeProduct $objProduct null$blnPriceInLabel true)
        {
            return array(
                
    'value' => $this->id,
                
    'page_producer'     => $this->page_producer,
                
    'label'     => ($blnPriceInLabel $this->getLabel($objProduct) : $this->label),
                
    'group'     => ($this->type == 'group' '1' ''),
                
    'default'   => ($this->isDefault '1' ''),
                
    'model'     => $this
            
    );
        } 
    (Muss ich noch mit eigenem Modul überschreiben).

    Danach in den Templates wie folgt auslesen:

    iso_list_variants
    PHP-Code:
    $objAttributeProducer   =   $GLOBALS['TL_DCA']['tl_iso_product']['attributes']['producer'];  
    $producer_label         =   $objAttributeProducer->getOptionsForProductFilter(array($item['product']->producer)); 
    echo 
    $producer_label['label']; 

    iso_collection_default
    PHP-Code:
    $objAttributeProducer   =   $GLOBALS['TL_DCA']['tl_iso_product']['attributes']['producer'];  
    $producer_label         =   $objAttributeProducer->getOptionsForProductFilter(array($item['product']->producer)); 
    echo 
    $producer_label[0]['label']; 
    Ist ein Lösungsansatz. Vielleicht haben aber die Isotope-Kenner noch einen viel eleganteren...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •