Automatischer Wrap um Varianten <option>-Tag

  • spL spL
    Jedi-Meister
    0 x
    345 Beiträge
    3 Hilfreiche Beiträge
    27. 03. 2013, 14:06

    Hallo Zusammen,

    nach 3 Stunden Suche gebe ich genervt von der Extension auf...
    Ich bin bereit im Quelltext rumzufuschen - aber auch hier habe ich nichts finden können.

    [b]tt_products 2.7.5
    [/b]

    Wie kann ich die die DropDown-Ausgabe Select->Option im FrontEnd für die Varianten Felder Color, Description, etc verhindern und mir die Felder im Klartext anzeigen lassen?

    Hier hats mal einer gelöst - jedoch mit einer alten tt_products Version:
    http://www.typo3forum.net/forum/tt_products/27623-tt_products-varianten-ausgabe-formatieren.html

    Wer kann helfen?
    #angry#


  • 1
  • MrHawaii MrHawaii
    T3PO
    0 x
    25 Beiträge
    0 Hilfreiche Beiträge
    03. 04. 2013, 16:37

    Hi spL

    Ich bin grad an einem ähnlichen Problem dran. Ich glaub nicht, dass es geht, denn dann funktioniert die doFetchRow Funktion nicht mehr, wie sie soll. Sie hängt so wie ich es einschätze an dem Attribut selectedIndex. Damit wird der
    Index und der Value der gewählten Variante ausgeben. Wenn du es als Klartext wählst, musst du ja auf die HTML-Option verzichten, oder seh ich das falsch. Wäre natürlich nicht schlecht, wenn man option losgelöst von select verwenden kann.
    Das würde mir zumindest helfen. Ich versuch mich grad daran, eine Lösung zu finden, wie ich über meine Thumbnail-Scroll-Line die Variante auswählen und per Ajax laden kann. Als Link mit Neuladen ist das ja relative einfach. Aber ich
    will's eben in einer Ajaxvariante. Dazu hab ich versucht die doFetchRow Funktion umzuschreiben, aber irgendwie klemmts, denn die document.getElementById holt sich ja alle Werte aus den gesetzten Varianten-Auswahlboxen in der Einzelansicht.
    Mit dem Produktimage2 funktioniert es. Aber er springt nicht zum geklickten Element, sondern nimmt das erste Element der jeweiligen gesetzten ID. Wenn ich die ID veränder, dann müsste ich ja nach "var id = feTable+"-"+view+"-"+uid+"-"+field;"
    noch ne HTML-ID anhängen. Aber ich glaub dann funktioniert ja meine normale Varianten Select-Box nicht mehr.

    Hat jemand ne Idee, wie ich das lösen könnte? Oder wäre es einfacher eine neue Function zu schreiben,
    um den Wert von select gleich als Wert in das data[table][fields]zu schreiben?

    Danke schon mal für eure Tipps.

    Hier die doFetchRow Funktion aus class.tt_products_javascript.php mit meinen Anpassungsversuchen

    1. var vBoxCount = new Array(1); // number of select boxes
    2. var v = new Array(); // variants
    3. vBoxCount["tt_products"] = 10;
    4. v["tt_products"] = new Array(10);
    5. v["tt_products"][0] = "color";
    6. v["tt_products"][1] = "size";
    7. v["tt_products"][2] = "description";
    8. v["tt_products"][3] = "gradings";
    9. v["tt_products"][4] = "color2";
    10. v["tt_products"][5] = "color3";
    11. v["tt_products"][6] = "size2";
    12. v["tt_products"][7] = "size3";
    13. v["tt_products"][8] = "material";
    14. v["tt_products"][9] = "quality";
    15.  
    16. function doFetchRow(table, view, uid, select) { //select hab ich hinzugefügt, als Ersatz für selectedIndex)
    17. var data = new Array();
    18. var sb;
    19. var temp = table.split('_');
    20. var feTable = temp.join('-');
    21.  
    22. data["view"] = view;
    23. data[table] = new Array();
    24. data[table]["uid"] = uid;
    25.  
    26. for (var k = 0; k < vBoxCount[table]; k++) {
    27. var field = v[table][k];
    28. var id = feTable+"-"+view+"-"+uid+"-"+field;
    29. sb = document.getElementById(id);
    30.  
    31. if (typeof sb == 'object') {
    32. try {
    33. var index = sb.selectedIndex; // Verknüpfung zu HTML select
    34. var index2 = sb.title; // ein Alternativwert für selectedIndex
    35. if (typeof index != 'undefined') {
    36. var value = sb.options[index].value;
    37. data[table][field] = value;
    38. }
    39. if (index2 != '') { // Wenn im HTML-Element der Variante ein "title" gesetzt ist
    40. var value = select;
    41. data[table][color] = value;
    42. }
    43. }
    44. catch (e) {
    45. // nothing
    46. }
    47. }
    48. }
    49. tt_products_fetchRow(data);
    50. return true;
    51. }

    Auszug aus der Einzelansicht von meinem Shop-Template

    1. <span onclick="doFetchRow('tt_products','single',896,1);" id="###PRODUCT_SIZE_ID###" title="1">###PRODUCT_IMAGE2:MINI###</span>
    2. <span onclick="doFetchRow('tt_products','single',896,2);" id="###PRODUCT_SIZE_ID###" title="2">###PRODUCT_IMAGE3:MINI###</span>

  • spL spL
    Jedi-Meister
    0 x
    345 Beiträge
    3 Hilfreiche Beiträge
    05. 04. 2013, 10:56

    Danke für die Ansätze. Ich habe mich für eigene, individuelle Felder entschieden - das geht m.E. schneller.

    Was dein Ajax vorhaben angeht bin ich leider auch raus, wünsche aber viel Erfolg :)

  • 1