Ergebnis 1 bis 19 von 19

Thema: Isotope 2.2: Atttribut Radio-Button-Menü $this->generateAttribute gibt ID aus

  1. #1
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard Isotope 2.2: Atttribut Radio-Button-Menü $this->generateAttribute gibt ID aus

    Hallo ich habe ein Radio-Menü (Herstellungs-Art), bei dem im Produkt zwischen zwei Angaben gewählt werden kann

    Gebe ich das Attribut im Template aus

    PHP-Code:
    <?php echo $this->generateAttribute('herstellungs-art'); ?>
    wird nur die ID ausgegeben und nicht die Bezeichnung - kann man das anpassen? gibt es dafür einen Parameter?

    Dank vorab

  2. #2
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hi,

    da bin ich letztens auch verzweifelt. Ich glaub du musst noch das $item mit übergeben, also

    PHP-Code:
     <?php echo $this->generateAttribute('herstellungs-art',$item['item']); ?>
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  3. #3
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    hmm.. ich bin in iso_reader_default.html5 => da gibts kein $item['item']...

    was steht den bei Dir in der Variablen drinn?

    muss wohl ein Array sein(?)

  4. #4
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Ok, ich war jetzt im Template vom Warenkorb/Kasse unterwegs.
    In meinem Reader/List Template habe ich tatsächlich auch nur generateAttribute ohne $item.....

    evtl. kommst du aber auch über $this->raw['herstellungs-art'] ran
    .

    Alternativ lass dir mal per var_dump($this->raw) anzeigen was vorhanden ist. Ich hab das zumindest bei mir im Template auch gebraucht....
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  5. #5
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    :-((

    in dem Array wird auch nur die ID als String ausgegeben

  6. #6
    Contao-Nutzer
    Registriert seit
    16.04.2014.
    Beiträge
    3

    Standard

    any solution? same problem here

  7. #7
    Contao-Nutzer Avatar von Monique Hahnefeld
    Registriert seit
    22.11.2011.
    Ort
    Berlin
    Beiträge
    173

    Standard

    Hallo,

    könnt ihr denn eure Einstellungen näher erklären? Vielleicht auch Version von Isotope etc.

    Radio-Buttons Key
    PHP-Code:
    $this->arrData['hersteller_radio']; 
    Radio-Buttons Label
    PHP-Code:
    $this->generateAttribute('hersteller_radio'); 
    Geändert von Monique Hahnefeld (24.01.2015 um 01:21 Uhr)
    Curiosity killed the cat

  8. #8
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    bisher ungetestet von "zoltanseer"

    PHP-Code:
    /**
     * @param string    $id                 - returned id of attribute
     * @param string    $field              - attribute alias
     * @return string     $t[0]['label']   - attribute name
     */
    function getAttributeNameByID($id$field) {
       
    $objAttribute=$GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$field];
       
    $t $objAttribute->getOptionsForProductFilter(array($id));
       return 
    $t[0]['label'];

    inzwischen erfolgreich getestet!

    Aufruf z.B.
    PHP-Code:
     <?php echo getAttributeNameByID($this->production_type'production_type'); ?>
    ab 2.3 stable neu
    siehe https://community.contao.org/de/show...l=1#post382689

  9. #9
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    habs getestet in "iso_reader_default.html5"

    leider erscheint die Fehlermeldung:
    PHP-Code:
    Fatal errorCall to a member function getOptionsForProductFilter() on a non-object... 
    wie kann man auf die Funktion zugreifen?

  10. #10
    Contao-Nutzer
    Registriert seit
    16.11.2012.
    Beiträge
    88
    Partner-ID
    9840
    Contao-Projekt unterstützen

    Support Contao

    Daumen hoch Funktioniert

    Zitat Zitat von zonky Beitrag anzeigen
    habs getestet in "iso_reader_default.html5"

    leider erscheint die Fehlermeldung:
    PHP-Code:
    Fatal errorCall to a member function getOptionsForProductFilter() on a non-object... 
    wie kann man auf die Funktion zugreifen?
    Funktion im Template einfügen und z.B. so aufrufen:
    PHP-Code:
    <?php echo getAttributeNameByID($this->DeinAttributName,DeinAttributName);?>
    Danke an den Funktionsschreiber. Hat mir sehr geholfen.

    BOOH

  11. #11
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    tatsächlich - so gehts...

    PHP-Code:
    <?php echo getAttributeNameByID($this->production_type'production_type'); ?>

  12. #12
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard Im Backend sieht das auch so aus :-(

    Hallo, im Backend erhalte ich bei der Auswahl eines Foreign-keys (DB) bei den Varianten ebenso nur die ID ausgeschmissen:

    Früher (2.1.7):frueher.JPG

    Akutell (2.2.2):heute.JPG

    Wie kann ich das ändern?

    Gruß
    Hauge

  13. #13
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Hallo Hauge, ich glaube, Dein Eintrag ist nicht ganz passend... zumindest zu meinem Posting...

  14. #14
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Korrekt - sorry -> meins ist anscheinend doch ein Bug -> Github
    Geändert von Hauge (11.03.2015 um 07:21 Uhr)

  15. #15
    Contao-Nutzer
    Registriert seit
    14.08.2011.
    Beiträge
    32

    Standard Funktion für Mehrfachwahl

    Anbei eine kleine Ausarbeitung für Mehrfachauswahlen. Sollte so schnell auf alle Bedürfnisse anpassbar sein.
    EDIT: Ab 2.3.1 sollte folgende Funtion weiterhelfen
    PHP-Code:
    function getAttributes($attribute$field$type NULL){
        
    $objAttribute=$GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$field];
        if ( 
    strpos($attribute,'<ul>') && $type == 'string'){ 
            
    preg_match_all("|<[^>]+>(.*)</[^>]+>|U",  $attribute$attributes);
            
    $attributearray = array();
            foreach ( 
    $attributes[1] as $value ){
                
    array_push($attributearray$value);
            }
            
    $Attributestring implode(', '$attributearray);
            if ( 
    $attributearray[0] != ''){
                 return 
    '<p class="attribute"><span>' $objAttribute->name ':</span> ' $Attributestring '</p>';
            }
        } else if ( 
    strpos($attribute,'<ul>') && $type == 'list') {
            return 
    '<p class="attribute list"><span>' $objAttribute->name ':</span></p>' $attribute;    
        } else if ( !
    strpos($attribute,'<ul>') && $attribute !== '') {
            return 
    '<p class="attribute"><span>' $objAttribute->name ':</span> ' $attribute '</p>';    
        }
    }
    echo 
    getAttributes($this->generateAttribute('attributename'), 'attributename','list|string|null'); 
    Geändert von Lewdness (17.09.2015 um 10:38 Uhr) Grund: Outdatet

  16. #16
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    in 2.3.1 gab es noch einen Fix zum Thema...

  17. #17
    Contao-Nutzer
    Registriert seit
    16.11.2012.
    Beiträge
    88
    Partner-ID
    9840
    Contao-Projekt unterstützen

    Support Contao

    HTML

    Zitat Zitat von Lewdness Beitrag anzeigen
    Anbei eine kleine Ausarbeitung für Mehrfachauswahlen. Sollte so schnell auf alle Bedürfnisse anpassbar sein.
    EDIT: Ab 2.3.1 sollte folgende Funtion weiterhelfen
    PHP-Code:
    function getAttributes($attribute$field$type NULL){
        
    $objAttribute=$GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$field];
        if ( 
    strpos($attribute,'<ul>') && $type == 'string'){ 
            
    preg_match_all("|<[^>]+>(.*)</[^>]+>|U",  $attribute$attributes);
            
    $attributearray = array();
            foreach ( 
    $attributes[1] as $value ){
                
    array_push($attributearray$value);
            }
            
    $Attributestring implode(', '$attributearray);
            if ( 
    $attributearray[0] != ''){
                 return 
    '<p class="attribute"><span>' $objAttribute->name ':</span> ' $Attributestring '</p>';
            }
        } else if ( 
    strpos($attribute,'<ul>') && $type == 'list') {
            return 
    '<p class="attribute list"><span>' $objAttribute->name ':</span></p>' $attribute;    
        } else if ( !
    strpos($attribute,'<ul>') && $attribute !== '') {
            return 
    '<p class="attribute"><span>' $objAttribute->name ':</span> ' $attribute '</p>';    
        }
    }
    echo 
    getAttributes($this->generateAttribute('attributename'), 'attributename','list|string|null'); 
    Hallo Lewdness,

    danke für die Anpassung der Funktion! Bei Attributen, wo es nur eine Auswahl gibt funktioniert das super. Wenn ich im Attribut jedoch die Mehrfachauswahl anhake - ein Produkt kann also mehrere Eigenschaften aufweisen - wird das Attribut im Frontend nicht mehr angezeigt. Leider bin ich kein PHP-Crack. Hast du eine Idee woran das scheitert?

    In den Template-Vars wird es so angezeigt:

    Code:
    [oberflaeche] => 1,2,3,4,5,6,7
    Danke und Gruß
    BOOH

    EDIT: Kommando zurück! Habe es hinbekommen. Danke!
    Geändert von booh (20.10.2015 um 12:37 Uhr)

  18. #18
    Contao-Nutzer
    Registriert seit
    24.02.2016.
    Beiträge
    183

    Standard

    Hallo zusammen,
    ich habe ein sehr ähnliches Problem:

    Ich hab für T-Shirts verschiedene Größen via Select (FE-Attribut) bereit gestellt. Sie sind absichtlich keine Varianten. Zusätzlich gibt es noch ein Textfeld, mit dem der FE-Benutzer zusätzliche Informationen zu jedem T-Shirt mitschicken kann.

    Momentan geb ich das im Warenkorb so aus:

    PHP-Code:
    <?php foreach($item['attributes'] as $key => $value): ?>
        <?= $value?>
    <?php 
    endforeach; ?>
    Der Text wird problemlos ausgegeben, jedoch wird bei den Kleidungsgrößen jeweils nur die ID ausgegeben. Ich hab bereits die hier aufgelisteten Lösungen probiert, jedoch bekomm ich dann meist nur 0 oder ein leeren String zurück. :-/

    PHP-Code:
    <?php 
        
    switch($key):
            case 
    'clothes_size':
            echo 
    $this->generateAttribute('clothes_size'$item['item']);
            break;
            ...
        endswitch;
    ?>
    Bin für jeden Tipp dankbar!

  19. #19
    Contao-Nutzer
    Registriert seit
    24.02.2016.
    Beiträge
    183

    Standard

    Konnte das Problem mit
    PHP-Code:
    $this->attributeValue($key$value, ['html'=>true'item'=>$item['item']]); 
    lösen.

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
  •