Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Möglichkeit Attribute auszublenden

    Daniel14

    • Neu im Forum
    • Beiträge: 28
    Möglichkeit Attribute auszublenden
    am: 18. Januar 2016, 12:53:27
    Hallo zusammen,

    gibt es eine Möglichkeit bestimmte Attribute auszublenden, obwohl diese einen Preis haben? Ich arbeite wieder mit dem Preisupdater von web.

    Ich habe diverse Artikelmerkmale und dazu Attribute. Jetzt möchte ich zum Beispiel den {$item_data.PRICE} bei {$options_data.ID} 13 und 14 ausblenden. Bei allen anderen soll dieser weiter visualisiert werden.

    Das Markup in der products_option_dropdown_apu.html sieht ja bekanntlich so aus:
    Code: PHP  [Auswählen]
    <select name="id[{$options_data.ID}]" id="{$options_data.ID}">
            {foreach key=key_data item=item_data from=$options_data.DATA}
                            <option value="{$item_data.ID}" >&nbsp; {$item_data.TEXT} {if $item_data.PRICE !='' } {$item_data.PREFIX}{$item_data.PRICE}{/if}&nbsp; </option>
            {/foreach}
    </select>

    Ich kann mir guit vorstellen, hier aktiv zu werden. {if $item_data.PRICE !='' } Habe es bisher allerdings nicht hinbekommen.

    Danke für Eure Hilfe.

    Linkback: https://www.modified-shop.org/forum/index.php?topic=34199.0

    Whiteflash

    • Fördermitglied
    • Beiträge: 186
    • Geschlecht:
    Re: Möglichkeit Attribute auszublenden
    Antwort #1 am: 18. Januar 2016, 23:26:11
    Hi,

    jedes item der Option (also $item_data) hat doch eine ID - und mit der kannst du arbeiten. So kannst du ganz einfach mit
    Code: PHP  [Auswählen]
    ...
    {if ($item_data.ID!=13) || ($item_data.ID!=14)}
        ...
    {/if}
    ...
     
    die Ausgabe von HTML nur dann bewerkstelligen wenn die ID nicht 13 oder 14 ist - allerdings legst du dich natürlich somit fest, das ist nicht so gut - halte deinen Shop flexibel. Besserer Ansatz wäre, wenn du die Abfrage vielleicht so aussehen lässt:
    Code: PHP  [Auswählen]
    {if $item_data.DENIED != 'true'}
        ... alles was angezeigt werden soll
    {/if}
     
    - Dafür musst du natürlich allerdings die PHP-Datei abändern, die deine Daten assigned und jedem Element der Option eine Eigenschaft 'DENIED' mit dem Wert 'true' mitgeben, die nicht angezeigt werden soll.

    Hoffe das reicht als Denkanstoß, viel Erfolg,
    liebe Grüße

    Whiteflash

    Daniel14

    • Neu im Forum
    • Beiträge: 28
    Re: Möglichkeit Attribute auszublenden
    Antwort #2 am: 19. Januar 2016, 08:40:21
    Danke Dir. Ich schau einmal ob ich das hinbekomme.

    Daniel14

    • Neu im Forum
    • Beiträge: 28
    Re: Möglichkeit Attribute auszublenden
    Antwort #3 am: 19. Januar 2016, 09:06:08
    So habe es mal versucht. Irgendwie haut das nicht hin. Von der Logik her absolut klar.

    Code: PHP  [Auswählen]
    <select name="id[{$options_data.ID}]" id="{$options_data.ID}">
            {foreach key=key_data item=item_data from=$options_data.DATA}
                            <option value="{$item_data.ID}" >{$options_data.ID}&nbsp; {$item_data.TEXT} {if ($options_data.ID !=13) || ($options_data.ID !=14)} {$item_data.PREFIX}{$item_data.PRICE}{/if}&nbsp; </option>
            {/foreach}
    </select>
     

    Du hattest item_data.ID geschrieben, meinst aber sicherlich die options_data.ID. Die ist in der Tat 13 und 14. Die item_data.ID sind die einzelnen Preise. Die ID's hier sind 92-161. Habe das in verschiedenen Konstellationen eingebaut. Aber nichts funktioniert. Kann ich das überhaupt so da einbringen?

    Wenn ich nur auf eine options_ID eingrenze, dann haut es hin. Also scheint was mit dem || nicht korrekt zu sein. Das hier funktioniert.

    Code: PHP  [Auswählen]
    <select name="id[{$options_data.ID}]" id="{$options_data.ID}">
            {foreach key=key_data item=item_data from=$options_data.DATA}
                            <option value="{$item_data.ID}" >{$options_data.ID}&nbsp; {$item_data.TEXT} {if ($options_data.ID != 13)} {$item_data.PREFIX}{$item_data.PRICE}{/if}&nbsp; </option>
            {/foreach}
    </select>

    Habe es hinbekommen. Statt || muss ein && da rein. Hier der richtige Code.

    Code: PHP  [Auswählen]
    <select name="id[{$options_data.ID}]" id="{$options_data.ID}">
            {foreach key=key_data item=item_data from=$options_data.DATA}
                            <option value="{$item_data.ID}" >{$options_data.ID}&nbsp; {$item_data.TEXT} {if ($options_data.ID != 13 && $options_data.ID != 14)} {$item_data.PREFIX}{$item_data.PRICE}{/if}&nbsp; </option>
            {/foreach}
    </select>

    Whiteflash

    • Fördermitglied
    • Beiträge: 186
    • Geschlecht:
    Re: Möglichkeit Attribute auszublenden
    Antwort #4 am: 19. Januar 2016, 11:27:17
    Hi,

    ah, ja du hast recht mit der {$options_data.ID}! Hm... versuche doch mal, die Vergleichswerte in Quotes zu setzen, vielleicht vergleicht smarty hier mit einem String - also so:
    Code: PHP  [Auswählen]
    {if ($options_data.ID !='13') || ($options_data.ID !='14')} {$item_data.PREFIX}{$item_data.PRICE}{/if}
     
    1 Antworten
    1919 Aufrufe
    02. Januar 2014, 23:39:23 von CojaX
    15 Antworten
    9022 Aufrufe
    14. November 2013, 17:13:32 von noRiddle (revilonetz)
    4 Antworten
    2779 Aufrufe
    24. August 2011, 17:03:02 von sicalord