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: MODUL: product_options_selection.html mit jQuery

    h-h-h

    • modified Team
    • Beiträge: 4.563
    MODUL: product_options_selection.html mit jQuery
    am: 28. September 2010, 19:03:10
    Hi,
    habe die product_options_selection.html zum Accordion Style hin angepasst

    1. Neue product_options_selection.html runterladen, die alte umbennen. (xtc5\module\product_options)
    2. Javascript-Datei jquery-ui.js im javascript Ordner des Templates wie folgt erweitern:

    Code: Javascript  [Auswählen]
    /*
     * jQuery UI Button 1.8.5
     *
     * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
     * Dual licensed under the MIT or GPL Version 2 licenses.
     * http://jquery.org/license
     *
     * http://docs.jquery.com/UI/Button
     *
     * Depends:
     *      jquery.ui.core.js
     *      jquery.ui.widget.js
     */

    (function($,undefined){var lastActive,baseClasses="ui-button ui-widget ui-state-default ui-corner-all",stateClasses="ui-state-hover ui-state-active ",typeClasses="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",formResetHandler=function(event){$(":ui-button",event.target.form).each(function(){var inst=$(this).data("button");setTimeout(function(){inst.refresh();},1);});},radioGroup=function(radio){var name=radio.name,form=radio.form,radios=$([]);if(name){if(form){radios=$(form).find("[name='"+name+"']");}else{radios=$("[name='"+name+"']",radio.ownerDocument).filter(function(){return!this.form;});}}return radios;};$.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",formResetHandler);if(typeof this.options.disabled!=="boolean"){this.options.disabled=this.element.attr("disabled");}this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var self=this,options=this.options,toggleButton=this.type==="checkbox"||this.type==="radio",hoverClass="ui-state-hover"+(!toggleButton?" ui-state-active":""),focusClass="ui-state-focus";if(options.label===null){options.label=this.buttonElement.html();}if(this.element.is(":disabled")){options.disabled=true;}this.buttonElement.addClass(baseClasses).attr("role","button").bind("mouseenter.button",function(){if(options.disabled){return;}$(this).addClass("ui-state-hover");if(this===lastActive){$(this).addClass("ui-state-active");}}).bind("mouseleave.button",function(){if(options.disabled){return;}$(this).removeClass(hoverClass);}).bind("focus.button",function(){$(this).addClass(focusClass);}).bind("blur.button",function(){$(this).removeClass(focusClass);});if(toggleButton){this.element.bind("change.button",function(){self.refresh();});}if(this.type==="checkbox"){this.buttonElement.bind("click.button",function(){if(options.disabled){return false;}$(this).toggleClass("ui-state-active");self.buttonElement.attr("aria-pressed",self.element[0].checked);});}else if(this.type==="radio"){this.buttonElement.bind("click.button",function(){if(options.disabled){return false;}$(this).addClass("ui-state-active");self.buttonElement.attr("aria-pressed",true);var radio=self.element[0];radioGroup(radio).not(radio).map(function(){return $(this).button("widget")[0];}).removeClass("ui-state-active").attr("aria-pressed",false);});}else{this.buttonElement.bind("mousedown.button",function(){if(options.disabled){return false;}$(this).addClass("ui-state-active");lastActive=this;$(document).one("mouseup",function(){lastActive=null;});}).bind("mouseup.button",function(){if(options.disabled){return false;}$(this).removeClass("ui-state-active");}).bind("keydown.button",function(event){if(options.disabled){return false;}if(event.keyCode==$.ui.keyCode.SPACE||event.keyCode==$.ui.keyCode.ENTER){$(this).addClass("ui-state-active");}}).bind("keyup.button",function(){$(this).removeClass("ui-state-active");});if(this.buttonElement.is("a")){this.buttonElement.keyup(function(event){if(event.keyCode===$.ui.keyCode.SPACE){$(this).click();}});}}this._setOption("disabled",options.disabled);},_determineButtonType:function(){if(this.element.is(":checkbox")){this.type="checkbox";}else{if(this.element.is(":radio")){this.type="radio";}else{if(this.element.is("input")){this.type="input";}else{this.type="button";}}}if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("label[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var checked=this.element.is(":checked");if(checked){this.buttonElement.addClass("ui-state-active");}this.buttonElement.attr("aria-pressed",checked);}else{this.buttonElement=this.element;}},widget:function(){return this.buttonElement;},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass(baseClasses+" "+stateClasses+" "+typeClasses).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());if(!this.hasTitle){this.buttonElement.removeAttr("title");}$.Widget.prototype.destroy.call(this);},_setOption:function(key,value){$.Widget.prototype._setOption.apply(this,arguments);if(key==="disabled"){if(value){this.element.attr("disabled",true);}else{this.element.removeAttr("disabled");}}this._resetButton();},refresh:function(){var isDisabled=this.element.is(":disabled");if(isDisabled!==this.options.disabled){this._setOption("disabled",isDisabled);}if(this.type==="radio"){radioGroup(this.element[0]).each(function(){if($(this).is(":checked")){$(this).button("widget").addClass("ui-state-active").attr("aria-pressed",true);}else{$(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false);}});}else if(this.type==="checkbox"){if(this.element.is(":checked")){this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true);}else{this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false);}}},_resetButton:function(){if(this.type==="input"){if(this.options.label){this.element.val(this.options.label);}return;}var buttonElement=this.buttonElement.removeClass(typeClasses),buttonText=$("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(buttonElement.empty()).text(),icons=this.options.icons,multipleIcons=icons.primary&&icons.secondary;if(icons.primary||icons.secondary){buttonElement.addClass("ui-button-text-icon"+(multipleIcons?"s":(icons.primary?"-primary":"-secondary")));if(icons.primary){buttonElement.prepend("<span class='ui-button-icon-primary ui-icon "+icons.primary+"'></span>");}if(icons.secondary){buttonElement.append("<span class='ui-button-icon-secondary ui-icon "+icons.secondary+"'></span>");}if(!this.options.text){buttonElement.addClass(multipleIcons?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");if(!this.hasTitle){buttonElement.attr("title",buttonText);}}}else{buttonElement.addClass("ui-button-text-only");}}});$.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset");this._init();},_init:function(){this.refresh();},_setOption:function(key,value){if(key==="disabled"){this.buttons.button("option",key,value);}$.Widget.prototype._setOption.apply(this,arguments);},refresh:function(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return $(this).button("widget")[0];}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":visible").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end().end();},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return $(this).button("widget")[0];}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");$.Widget.prototype.destroy.call(this);}});}(jQuery));

    /*    jQuery RadioButton                 */
            $(function() {
                    $( ".radio" ).buttonset();
            });
     
    3. CSS-Datei jquery-ui.css im css Ordner des Templates wie folgt erweitern:

    Code: CSS  [Auswählen]
    /* jQuery UI Button
    ----------------------------------*/

    .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
    .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
    button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
    .ui-button-icons-only { width: 3.4em; }
    button.ui-button-icons-only { width: 3.7em; }

    /*button text element */
    .ui-button .ui-button-text { display: block; line-height: 1.4;  }
    .ui-button-text-only .ui-button-text { padding: .4em 1em; }
    .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
    .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
    .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
    .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
    /* no icon support for input elements, provide padding by default */
    input.ui-button { padding: .4em 1em; }

    /*button icon element(s) */
    .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
    .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
    .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
    .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
    .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }

    /*button sets*/
    .ui-buttonset { margin-right: 7px; }
    .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }

    /* workarounds */
    button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
     
    Gruß h-h-h

      [ Für Gäste sind keine Dateianhänge sichtbar ]



    Linkback: https://www.modified-shop.org/forum/index.php?topic=8346.0
    Trade Republic - Provisionsfrei Aktien handeln

    MW

    • Fördermitglied
    • Beiträge: 420
    • Geschlecht:
    MODUL: product_options_selection.html mit jQuery
    Antwort #1 am: 28. September 2010, 19:22:53
    Super Sache, vielen Dank, sieht schick aus ^^

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.199
    • Geschlecht:
    MODUL: product_options_selection.html mit jQuery
    Antwort #2 am: 28. September 2010, 19:32:42
    Sieht schick aus, Danke! :thx:

    Grüße

    Torsten

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    MODUL: product_options_selection.html mit jQuery
    Antwort #3 am: 30. September 2010, 00:05:05
    Bin von den jQuery-Geschichten auch begeistert, doch leider nehmen die Dateigrößen rasch zu.
    Wird Zeit, dass zumindest 16.000er DSL flächendeckend das Minimum ist, das in Deutschland verfügbar ist :)

    h-h-h

    • modified Team
    • Beiträge: 4.563
    MODUL: product_options_selection.html mit jQuery
    Antwort #4 am: 30. September 2010, 00:49:13
    Gern geschehen!
    Jetzt ist das schon anders formatiert als ich es gepostet hatte.
    Im Vergleich zum Urzustand ist das auch nicht viel mehr Code der nur auf der product-info geladen wird.
    Hier im Anhang noch mal alle 3 angepassten Dateien. (für Euren Modulordner oder next modified eCommerce Shopsoftware Version)
    jquery-ui.js, jquery-ui.css und die product_options_selection.html

    Gruß h-h-h

    [EDIT Tomcraft 30.09.2010: Modul in Beitrag 1 aktualisiert.]

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    MODUL: product_options_selection.html mit jQuery
    Antwort #5 am: 30. September 2010, 00:56:31
    Schönen Dank ;)

    distefanio

    • Frisch an Board
    • Beiträge: 56
    MODUL: product_options_selection.html mit jQuery
    Antwort #6 am: 10. Oktober 2010, 19:29:41
    Hallo,

    habe alles eingespielt, aber es hat sich nichts verändert.
    Ist es zu der Version 1.05 nicht kompatibel?

    Freundliche Grüße
    Distefanio

    h-h-h

    • modified Team
    • Beiträge: 4.563
    MODUL: product_options_selection.html mit jQuery
    Antwort #7 am: 10. Oktober 2010, 19:37:11
    Sollte funktionieren, habe es selbst im Shop eingebaut.
    Kannst mir auch einen Link schicken damit ich mal anschauen kann, um das Problem zu finden.

    Bitte alle Schritte noch mal überprüfen.

    Gruß h-h-h

    armandogarcia

    • Fördermitglied
    • Beiträge: 333
    • Geschlecht:
    MODUL: product_options_selection.html mit jQuery
    Antwort #8 am: 15. Dezember 2010, 01:26:16
    Hi und Danke für diese Erweiterung, :) wollte gerade schlafen gehen da bin ich noch über deine Anleitung gestolpert und hat auf Anhieb geklappt! Super! :D

    Gibt es noch 'ne Möglichkeit die Farben anzupassen, momentan passt es ins Template hab's bei skizzoshop.de eingesetzt, aber mach bald eine Seite mit dunklen Farben, da wäre es genial wenn man das anpassen könnte.

    LG

    Armando

    armandogarcia

    • Fördermitglied
    • Beiträge: 333
    • Geschlecht:
    MODUL: product_options_selection.html mit jQuery
    Antwort #9 am: 18. Dezember 2010, 13:50:30
    Ok, hab die Lösung gefunden, :) hätte besser drauf achten sollen die Hintergründe sind natürlich im Ordner "/img/". :)

    Sorry

    LG

    Armando

    armandogarcia

    • Fördermitglied
    • Beiträge: 333
    • Geschlecht:
    MODUL: product_options_selection.html mit jQuery
    Antwort #10 am: 23. Dezember 2010, 12:23:54
    Hallo, :) sowas wäre auch für die product_options_dropdown schön, für Shops mit vielen Variationen würde das Sinn machen, brauch ich gerade zwar nicht aber wenn das jemand kann, kann es ja gepostet werden. Dann könnte man das ja theoretisch auch für den Hersteller-Dropdown verwenden und hätte ein clean designte jquery-dropdowns im gesamten Shop.

    LG

    Armando

    h-h-h

    • modified Team
    • Beiträge: 4.563
    MODUL: product_options_selection.html mit jQuery
    Antwort #11 am: 23. Dezember 2010, 14:46:15
    Wird noch ein bisschen dauern, bis es direkt über die jQuery-UI verfügbar ist.
    Ist natürlich jetzt schon mit jQuery möglich aber nicht nach dem gleichem Muster. ;)

    Gruß

    h-h-h

    memocorex

    • Frisch an Board
    • Beiträge: 51
    MODUL: product_options_selection.html mit jQuery
    Antwort #12 am: 08. Januar 2011, 16:47:21
    hey,

    das sieht ja spitze aus, gibt es auch eine Möglichkeit das ganze einzeilig zu machen?

    LG

    h-h-h

    • modified Team
    • Beiträge: 4.563
    MODUL: product_options_selection.html mit jQuery
    Antwort #13 am: 08. Januar 2011, 17:06:31
    Herzlich Willkommen memocorex,
    versuche mal folgendes.

    Code: CSS  [Auswählen]
    .radio {float:left;margin-left:20px;}
    In die stylesheet.css hinzufügen.

    Gruß

    h-h-h

    memocorex

    • Frisch an Board
    • Beiträge: 51
    MODUL: product_options_selection.html mit jQuery
    Antwort #14 am: 08. Januar 2011, 17:25:08
    danke für die rasche antwort,
    wenn ich das tue, bekomm ich leider ein anderes problem wie hier zu sehen:

      [ Für Gäste sind keine Dateianhänge sichtbar ]

    8 Antworten
    1702 Aufrufe
    31. August 2020, 16:34:47 von eronweb
    5 Antworten
    4613 Aufrufe
    07. September 2009, 09:01:21 von DokuMan