v2.0.x Artikel mit Attributen kann ohne in Warenkorb gelegt werden

Thema wurde von Petra, 6. April 2012 erstellt.

  1. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Hallo,

    bei uns kann man Artikel völlig ohne Attribut in den Warenkorb legen. Wie das geht? Keine Ahnung, denn mindestens ein Attribut ist ja immer mit dem Radiobutton verknüpft. Kennt jemand das Problem, das nicht nur bei einem Artikel auftaucht?
     
  2. chris801255

    chris801255 Erfahrener Benutzer

    Registriert seit:
    26. Mai 2011
    Beiträge:
    273
    Danke erhalten:
    15
    Danke vergeben:
    116
  3. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Weil doch jetzt Ostern ist, mein Osterei für Alle....

    Und mal was Richtiges, jQuery/GX2 konformes....

    Und nicht so einen Kinderkram wie im "xtc-modified"-Beispiel, wo man an Zillionen Stellen was 'rumpfriemeln muss...

    Folgenden Code an das Ende von "templates\EyeCandy\module\product_info\standard.html" anfügen:

    PHP:
    {literal}
    <
    style type="text/css">
    .
    errorClass {
        
    color:red !important;
    }
    </
    style>

    <
    script type="text/javascript">
    $(function(){
      var 
    cancel_object=null;
      var 
    cart_quantity=$('#cart_quantity');
        var 
    selects=cart_quantity.find('.attributes select');

        
    selects.change(function(){
            $(
    this).removeClass('errorClass');
        });

      
    cart_quantity.submit(function(event){
      
    selects.find('option:selected').each(function(index){
          if ($(
    this).text()=='Bitte wählen')
          {
            
    cancel_object=$(this);
            return 
    false;
          }
        });
        if (
    cancel_object)
        {
          
    event.stopPropagation();
          
    event.preventDefault();
          
    cancel_object.parent().addClass('errorClass');
          
    alert('Bitte wählen Sie eine Option aus!');
          
    cancel_object.focus();
          return 
    false;
        }
      });
    });
    </
    script>
    {/
    literal}
    Hier wird vorausgesetzt, dass der erste Eintrag "Bitte wählen" heißt...

    Das ist mal wieder ein schönes Beispiel, um wie vieles besser Gambio GX2 ist, als xtc-modified.

    Nix Refactoring auf PHP-Klassen, nix Klassenüberladung, nix jQuery....

    Das schlechte alte xtCommerce, etwas aufgepimpt...

    Schade, dass die "xtc-modified"-Jungs ihr Know-How in so ein totes Pferd investieren, und nicht hier mitarbeiten...

    Wir haben auch ab und an mal Anfragen bezüglich xtc-modified Templates....

    Aber in maximal 2 Minuten haben wir die Anfrager dann von Gambio überzeugt....

    Das sind einfach verschiedene Universen....
     
  4. chris801255

    chris801255 Erfahrener Benutzer

    Registriert seit:
    26. Mai 2011
    Beiträge:
    273
    Danke erhalten:
    15
    Danke vergeben:
    116
    Das hört sich sehr gut an und ich habe mal versucht es einzubauen aber es zeigt leider keinerlei Wirkung.

    Ich habe auch versucht den Text 'Bitte ählen' auszutauschen, z.B. mit einem Attributwert. Aber es kommt keine Meldung und die Artikel können weiterhin ohne Auswahl eines Attributs in den Warenkorb gelegt werden. Caches habe ich auch immer fleißig geleert.
     
  5. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Hast Du eine Seite, wo ich mir das mal ansehen kann?
     
  6. chris801255

    chris801255 Erfahrener Benutzer

    Registriert seit:
    26. Mai 2011
    Beiträge:
    273
    Danke erhalten:
    15
    Danke vergeben:
    116
  7. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.172
    Danke erhalten:
    6.199
    Danke vergeben:
    1.104
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Anmerkung am Rande:
    Du solltest mal die neusten SP einspielen.
     
  8. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ich vergesse immer wieder, dass ich jQuery bei mir früher lade, als Gambio das tut, um solche Dinge machen zu können..

    PHP:
    <script type="text/css" src="gm/javascript/jquery/jquery.js"></script>
    Füge mal die Zeile vor den Rest dessen ein, was im 1. Post stand…
     
  9. chris801255

    chris801255 Erfahrener Benutzer

    Registriert seit:
    26. Mai 2011
    Beiträge:
    273
    Danke erhalten:
    15
    Danke vergeben:
    116
    Korrigiert mich wenn ich falsch liege aber der Shop sollte die aktuellste Version haben: v2.0.8 SP1.2 r5611

    Ich habe den Code davorgesetzt aber es tut sich immer noch nichts.
     
  10. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.172
    Danke erhalten:
    6.199
    Danke vergeben:
    1.104
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Anhand deines Artikelzooms hab ich darauf geschlossen. da das noch nicht der aktuelle ist.

    Schau doch mal unter credits nach. oder hast evtl. nicht alles aktualisiert?
     
  11. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das ist natürlich Blödsinn :(

    PHP:
    <script type="text/javascript" src="gm/javascript/jquery/jquery.js"></script>
    Nimm das mal…
     
  12. chris801255

    chris801255 Erfahrener Benutzer

    Registriert seit:
    26. Mai 2011
    Beiträge:
    273
    Danke erhalten:
    15
    Danke vergeben:
    116
    @ Print-weilburg: doch sollte alles aktuell sein. Zoom ist der gleiche wie bei dir?!

    @ Avenger: Es tut sich leider immer noch nichts.
     
  13. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.172
    Danke erhalten:
    6.199
    Danke vergeben:
    1.104
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Nein ist nicht der selbe. Oder es fehlt dir ein Fix. Jedenfalls hängt der auf deiner Seite bei mir in Chrome. Ist also nicht funktionsfähig. Das sollte seit dem SP 1.2 nicht mehr der Fall sein.
     
  14. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.172
    Danke erhalten:
    6.199
    Danke vergeben:
    1.104
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Schau mal da
    (Link nur für registrierte Nutzer sichtbar.)
     
  15. chris801255

    chris801255 Erfahrener Benutzer

    Registriert seit:
    26. Mai 2011
    Beiträge:
    273
    Danke erhalten:
    15
    Danke vergeben:
    116
    Vielen Dank. Habe die Datei eingebaut. (Diese ist in den aktuellen Service-Packs in der Version ja noch nicht enthalten)
     
  16. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.172
    Danke erhalten:
    6.199
    Danke vergeben:
    1.104
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Dachte sie wäre es. Da diese schon vor dem aktuellem Update bereitgestellt wurde im Forum....
    Sollten die jedenfalls mal einfügen.

    Jedenfalls geht der Zoom nun auch bei dir.
     
  17. chris801255

    chris801255 Erfahrener Benutzer

    Registriert seit:
    26. Mai 2011
    Beiträge:
    273
    Danke erhalten:
    15
    Danke vergeben:
    116
  18. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.693
    Danke vergeben:
    903
    Hallo und frohe Ostern!

    Die updatesichere Lösung wäre:

    templates/EyeCandy/usermod/javascript/ProductInfo/avengers_attribute_mod.js :
    Code:
    $(document).ready(function(){
      $(function(){
        var cancel_object=null;
        var cart_quantity=$('#cart_quantity');
          var selects=cart_quantity.find('.attributes select');
      
          selects.change(function(){
              $(this).removeClass('errorClass');
          });
      
        cart_quantity.submit(function(event){
          selects.find('option:selected').each(function(index){
            if ($(this).text()=='Bitte wählen')
            {
              cancel_object=$(this);
              return false;
            }
          });
          if (cancel_object)
          {
            event.stopPropagation();
            event.preventDefault();
            cancel_object.parent().addClass('errorClass');
            alert('Bitte wählen Sie eine Option aus!');
            cancel_object.focus();
            return false;
          }
        });
      });
    });
    templates/EyeCandy/usermod/css/avengers_attribute_mod.css :
    Code:
    .errorClass {
        color:red !important;
    }
    So ist sichergestellt, dass jQuery bereits geladen ist.

    btw: Die Funktionalität an sich habe ich nicht getestet.
     
  19. chris801255

    chris801255 Erfahrener Benutzer

    Registriert seit:
    26. Mai 2011
    Beiträge:
    273
    Danke erhalten:
    15
    Danke vergeben:
    116
    Ich habe das Script updatesicher eingefügt. Allerdings die avengers_attribute_mod.js nicht im Ordner "product_info" sondern im bereits existierenden Ordner "ProductInfo" angelegt. Das Script wird auch auf der Artikelseite eingefügt aber das Problem scheint bislang die Funktionalität zu sein, denn es zeigt immernoch keinerlei Wirkung.
     
  20. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ich halte das Verfahren für sehr umständlich...

    Wo man alles sehr schön in einer Datei ("standard.html"), muss man jetzt mehrere anlegen.

    Und geladen wird das Skript anscheinend auch nicht.

    Warum aktiviert Ihr nicht einfach jQuery so, wie es sonst jeder macht: direkt im Header, dann kann man sich da beliebig austoben.