Parameter per select an itemType übergeben

  • Hallo zusammen,


    ich möchte im Shop zu bestimmten Items ein Select hinzufügen mit dem man z.B. Anzahl, Farbe, Ausführung etc. übergeben kann. Hierfür habe ich einen neuen ItemType erstellt, der die Parameter entspechend verarbeitet.


    Da ich am jCoins Plugin keine Änderungen hierfür vornehmen möchte, ist jetzt meine Frage, wie ich das am besten umsetzen kann. Ich müsste mich hierfür ja in den Kaufen-Button einhängen um das Inputfeld auszulesen und weiterzureichen - wie löse ich das am geschicktesten?


    Ich freue mich auf euer Feedback.


    Viele Grüße


    Daniel

  • Hey Josh,


    danke fürs Feedback. Wäre natürlich ideal, wenn du hierfür eine Möglichkeit einbaust - sonst muss ich das Plugin eben für meine Zwecke anpassen, wobei das natürlich aufgrund der Updatefähigkeit nicht wünschenswert ist.


    Hoffe dir fällt die nächsten Tage was ein. - Kannst mir auch gerne vorab eine Betaversion zuschicken, dann teste ich ob das gut klappt.


    Gruß


    Daniel

    • Offizieller Beitrag

    Hey,


    spontan ist mir gerade folgendes eingefallen: Wie wäre es, wenn du einfach eigenes JavaScript unabhängig von dem JCoins schriebt, welches das macht, was du möchtest. Dieses JS dann in das Template via Events einbindest und dann zusätzlich alle buttonBuy-Elemente, welche auf deinen Object-Type zutreffen, eine zusätzliche, andere Klasse hinzufügst und die buttonBuy-Klasse entfernst, sodass das Event gar nicht erst bei diesem Button getriggert wird?


    Beste Grüße.

  • Also generell ist es kein Problem einen eigenes JavaScript einzubinden. Aber wie kann ich via Plugin die buttonBuy Klasse für meinen ItemType überschreiben?


    Nachtrag:
    also ich prüfe jetzt testweise auf $item->type->getIdentifer() direkt im Template. Aber ich möchte ungern eine direkte Templateänderung machen. - hast du eine Idee?


    Nachtrag 2:


    Jetzt hatte ich grad eine neue Idee. Dafür benötige ich im Template jCoinsShop.tpl ein event in der buttonList also z.B.


    Code
    <ul class="buttonList smallButtons marginTop jCoinsShopItemButtons" style="float: right;">
    {event name='buttonListBefore'}
    . . .
    </ul>


    dann könnte ich mich da via templateListener einhängen und folgenden Code einbinden


    Code
    {if $item->type->getIdentifer() == 'mySelectItemType'}
    <select id="mySelectItemTypeSelect">
    {foreach}
    <option>{$optionName}</option>
    {/foreach}
    </select>
    {/if}


    Dann erstelle ich einen neues JS das von WCF.JCoins.Shop.Buy erbt und die Funktion _buy überschreibt und eine Prüfung auf $('#mySelectItemTypeSelect') einfüge und es, wenn vorhanden, mit an den Controller übergebe


    Wie findest du die Idee? - Alles was ich dazu brauche ist nur das TemplateEvent

    • Offizieller Beitrag

    Hey,


    nochmal zu der Idee mit der Klasse überschreiben, bevor überhaupt die Events von meinem Plugins regstriert werden und dort dann eigene Events registrieren, welche, wenn man auf kaufen klickt, ein Konfigurationsoverlay anzeigt, welche ich persönlich immer noch am schönsten finde ^^


    JavaScript
    $('.buttonBuy').removeClass('buttonBuy').addClass('myCustomClassForEvents');


    Beste Grüße.