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: ANLEITUNG: Attribut Dropdown Anzeige ergänzen mit "bitte wählen"

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Und nun ab in den Trunk damit. :thumbs:

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.307
    • Geschlecht:
    :contra:  wer es braucht, kann es sich ja einbauen. Anleitung steht ja nun hier.

    web28

    • modified Team
    • Beiträge: 9.404
    Das kann man nicht als Standard in den Shop einbauen, viele wollen/benötigen das überhaupt nicht.

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Nett, dann gibt es hier jetzt mal von mir als no-script Nutzer die PHP-Version.

    cart_actions.php
    suche:

    Code: PHP  [Auswählen]
                    case 'add_product' :
    füge danach ein:

    Code: PHP  [Auswählen]
                        if (is_array($_POST['id'])){
                            reset($_POST['id']);
                            while (list ($option, $value) = each($_POST['id'])) {
                                if($value == 4) {
                                    $_SESSION['noattribute'] = $_POST['products_id'];
                                    xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters)));
                                }
                            }
                        }
    product_info.php
    suche:

    Code: PHP  [Auswählen]
                    include (DIR_WS_MODULES.'product_reviews.php');
    füge danach ein:

    Code: PHP  [Auswählen]
            if (isset($_SESSION['noattribute'])) {
                if($_SESSION['noattribute'] == $product->data['products_id'])
                    $info_smarty->assign('noattribute', 1);
                unset($_SESSION['noattribute']);
            }
    product_info*.html
    suche:

    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="product_info"}
    füge danach ein:

    Code: PHP  [Auswählen]
    {if $noattribute}<div class="errormessage">{#noattribute#}</div>{/if}
    lang_german.conf
    suche:

    Code: PHP  [Auswählen]
    [product_info]
    füge danach ein:

    Code: PHP  [Auswählen]
    noattribute = 'Bitte wählen Sie eine Variation dieses Produktes'
    lang_english.conf
    suche:

    Code: PHP  [Auswählen]
    [product_info]
    füge danach ein:

    Code: PHP  [Auswählen]
    noattribute = 'Please choose a variation of this product'
    Für diese Version funktioniert immer, es sollten folgende zwei Sachen beachtet werden:
    1. Die erste ausgewählte Variation sollte Euer "bitte wählen" oder wie wie Ihr es wünscht sein
    2. Ihr müsst im Quelltext der Produktseite einmal schauen, wie Eure value-id ist und diese zuweisen.
    Hier in meinem Beispiel ist es die 4:

    Code: XML  [Auswählen]
       <option value="4">bitte wählen  </option>
    Viel Spaß

    h-h-h

    web28

    • modified Team
    • Beiträge: 9.404
    Zu den obigen Codeblöcken ein paar Anmerkungen:

    Falls man verschiedene Variationen hat, hat man zwangläufig auch verschiedene Value-IDs

    Deshalb mein Vorschlag, das mit dem Valuenamen zu testen, man muss sich nur eine eindeutige Identifiziermöglichkeit überlegen wie z.B 3 Minuszeichen ---.

    Code: PHP  [Auswählen]
    $value_name = xtc_oe_get_options_values_name($value,'');
                                                    if (strpos($value_name,'---') !== false) {
    Auch benötigt man kein redirect sondern nur ein break, damit kann man sich die Session Variable sparen.

    Ein weiteres Problem ist das wiederbefüllen aller bereits ausgewählten Optionen. Die obige Lösung funktioniert nur bei einer Variante. Falls es mehrere Varianten gibt, sind bei einem Fehler wieder alle zurückgesetzt.

    Also das alles ist leider mal nicht eben so gemacht.  ;)

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Wie soll das mit dem "break;" bitte funktionieren?
    Die Lösung funktioniert perfekt und lässt sich ganz einfach erweitern. ;)

    Gruß

    h-h-h

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.307
    • Geschlecht:
    @h-h-h

    Das geht einfacher. Ich poste mal meine Variante am Abend. Da ist es egal welche ID das Standard Attribut hat.

    Gruß Gerhard

    h-h-h

    • modified Team
    • Beiträge: 4.562
    product_options_dropdown.html
    suche:

    Code: PHP  [Auswählen]
            <select name="id[{$options_data.ID}]">
    füge danach ein:

    Code: PHP  [Auswählen]
            <option value="00"> bitte wählen  </option>
    multi_options_1.html
    suche:

    Code: PHP  [Auswählen]
            <select name="id[{$options_data.ID}]">
    füge danach ein:

    Code: PHP  [Auswählen]
            <option value="00"> bitte wählen  </option>
    und dann im oben genanntem Code

    Code: PHP  [Auswählen]
        if($value == 00) {
    So geht es auch es gibt noch 5 andere Methoden, wie es umgesetzt werden kann.
    Doch mit Redirect ist es allemal besser als nur mit Javascript. =)

    Gruß

    h-h-h

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.307
    • Geschlecht:
    Ich habe meinen Beitrag hier in diesem Thread geändert und die komplette Lösung inkl. Fallback hier veröffentlicht, da es dort besser platziert ist. Hier in diesem Thread ging es ursprünglich darum, das "Bitte wählen" hinzuzufügen. Nicht um die Pflichtauswahl der Attribute.

    Dafür geht es hier weiter: ANLEITUNG: Attribute Auswahl Pflicht

    Gruss Gerhard

    Caro

    • Mitglied
    • Beiträge: 114
    Hallo,
    die Datei "/includes/modules/attributes.php in der Version 1.05 SP1b gibt es nicht.

    Wo gehört das dann eingebaut ?

    Ich wollte die JS Version von GTB von Seite 2 einbauen.

    Gordon

    • Neu im Forum
    • Beiträge: 35
    Hallo Caro,

    die Datei heißt "product_attributes.php".

    Schau auch mal hier vorbei: ANLEITUNG: Attribute Auswahl Pflicht
    Da wird das Thema weiter behandelt. Habe mich da heute auch schon durch hangeln müssen. :)

    Viele Grüße
    Gordon

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.373
    • Geschlecht:
    [...]
    die Datei "/includes/modules/attributes.php in der Version 1.05 SP1b gibt es nicht.
    [...]

    Danke für den Hinweis, ich habe die Anleitung entsprechend korrigiert.

    Gemeint war die "/includes/modules/product_attributes.php".

    Grüße

    Torsten

    Schacko

    • Frisch an Board
    • Beiträge: 57
    • Geschlecht:
    Hallo h-h-h,

    danke für Deine Anleitung => Attribute wählen ohne Javescript.
    Die Anleitung funktioniert auch sehr gut mit der Option "table_listing, so wie ich diese verwende (siehe Screenshots). Vielleicht braucht noch jemand anderes diese Lösung.

    mfG Jörg

    japadi83

    • Mitglied
    • Beiträge: 123
    • Geschlecht:
    (...)
    Code: PHP  [Auswählen]
            <option value="00"> bitte wählen  </option>
    und dann im oben genanntem Code

    Code: PHP  [Auswählen]
        if($value == 00) {
    So geht es auch es gibt noch 5 andere Methoden, wie es umgesetzt werden kann.
    Doch mit Redirect ist es allemal besser als nur mit Javascript. =)

    Gruß

    h-h-h

    Hallo h-h-h, diese Lösung funktionierte bei mir im 1.05er Shop schon lange wunderbar und auch jetzt im v2.0.2.1!
    Durch eine Veränderung der Attribute im Shop frage ich mich, ob man die Funktion insofern erweitern könnte: Dass die Option "bitte wählen" nur angezeigt wenn mehr als ein Attribut auswählbar ist. Bei Attributen mit nur einer Auswahlmöglichkeit würde ich diese gerne direkt vorausgewählt anzeigen lassen. Gibt es hierfür eine Möglichkeit?

    Danke und Gruß
    japadi83
    14 Antworten
    5168 Aufrufe
    21. Juli 2010, 11:25:14 von peril
    1 Antworten
    3621 Aufrufe
    22. Mai 2012, 23:17:09 von jannemann
    15 Antworten
    13779 Aufrufe
    10. Dezember 2013, 21:27:31 von olli0578