Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
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: In den Warenkorb bei Listenansicht ausblenden wenn Attribute vorhanden

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Hallo,

    bin trotz intensiver Suche nicht fündig geworden, obwohl ich der Meinung bin schon einmal eine passende Lösung hier gesehen zu haben.

    Wie kann man in der Listenansicht den "in den Warenkorb" Button ausblenden, wenn der entsprechende Artikel Attribute hat?

    Es soll dann nur der Detail Button angezeigt werden. bei den Artikeln ohne Attribute soll der "in den Warenkorb" Button weiterhin angezeigt werden.

    Vielleicht hat ja jemand den passenden Link bzw. die Lösung parat.

    Danke

    Gerd

    Linkback: https://www.modified-shop.org/forum/index.php?topic=22192.0

    Andre Kern

    • Fördermitglied
    • Beiträge: 426
    Huhu,

    bin gerad nicht 100% sicher, aber ist's nicht eh jetzt Pflicht den kaufen-Button im Listing auszublenden?

    Liebe Grüße

    hendrik

    • Experte
    • Beiträge: 2.038
    Was du beschreibst ist eine Standardfunktion des Shops.
    Listenansicht, Button "In den Warenkorb":
    Ohne Attribute -> ein Stück wandert in den Warenkorb
    Mit Attributen -> du landest auf der Artikeldetailseite

    Bei Attributartikeln ist "In den WK"=="Details"

    Gruß
    Hen

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Danke, daß die Funktionsweise Standard im Shop ist wusste ich. Habe jetzt gerade noch einmal im Demo Shop nachgeschaut und dort geht das, auf das ich hin will, auch nicht.

    In der Testkategorie 4 sind 4 Artikel. 2 haben Attribute und 2 keine.

    Nimm z.B. Testprodukt4_2 das hat Attribute. In der Listenanzeige erscheint es mit "in den Warenkorb" und "Details"

    Ich halte bei Produkten mit Attributen das "in den Warenkorb" für überflüssig und verwirrend - hier sollte, so würde ich das gerne haben, der Button "in den Warenkorb" ausgeblendet werden.

    Bei Produkten ohne Attribute sollte der Button natürlich vorhanden sein.

    Nun die Frage, wie kann ich das lösen?

    Danke

    Gerd

    hendrik

    • Experte
    • Beiträge: 2.038
    Datei includes/modules/product_listing.php, Zeile 67 ca.

    Finde:
    Code: PHP  [Auswählen]
    $module_content[] =  $product->buildDataArray($listing);

    Füge an:
    Code: PHP  [Auswählen]
    if( xtc_has_product_attributes($listing['products_id']) ) {
      $module_content[sizeof($module_content)-1]['has_attributes']=true;
    }              

    templates/..dein template../module/product_listing/product_listing_v1.html

    Finde:
    Zitat
    {$module_data.PRODUCTS_BUTTON_BUY_NOW}

    schließe in folgenden Ausdruck ein:
    Zitat
           
    {if $module_data.has_attributes==false}
      {$module_data.PRODUCTS_BUTTON_BUY_NOW}
    {/if}

    Gruß
    Hen

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Danke Hen!

    Das funktioniert super!

    Gerd

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Hallo Hen,

    in der Listenansicht (Kategorie) funktioniert es super.jetzt ist mir aufgefallen, daß bei den Listen der neuen Artikel und der Sonderangebote das Ändern von

    Code: PHP  [Auswählen]
    {$module_data.PRODUCTS_BUTTON_BUY_NOW}

    in
    Code: PHP  [Auswählen]
    {if $module_data.has_attributes==false}
      {$module_data.PRODUCTS_BUTTON_BUY_NOW}
    {/if}

    nichts bringt. In welchen php Datein muss da noch was geändert werden? habe schon versucht das
    Code: PHP  [Auswählen]
    if( xtc_has_product_attributes($listing['products_id']) ) {
      $module_content[sizeof($module_content)-1]['has_attributes']=true;
    }  
    in die products_new.php und specials.php einzubauen. Leider erfolglos.

    Kannst Du mir da weiterhelfen?

    Danke.

    Gerd

    hendrik

    • Experte
    • Beiträge: 2.038
    Du kannst auch an einer anderen Stelle ansetzen.

    includes/classes/product.php
    Methode builddataarray()
    Zeile 423 ca.

    Finde:
    Code: PHP  [Auswählen]
    'PRODUCTS_SHIPPING_NAME'=>$shipping_status_name,
    'PRODUCTS_SHIPPING_IMAGE'=>$shipping_status_image,

    Füge an:       
    Code: PHP  [Auswählen]
    'has_attributes' => xtc_has_product_attributes($array['products_id']),

    Den ursprünglichen Patch in products_listing.php kannst du anschl. wieder entfernen. Jetzt sollte die Templatevariable {$xxxx.has_attributes} in allen Listings einsetzbar sein.

    (Patch nicht getestet, aus der freien Hand.)

    Gruß
    Hen

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Danke Hen!

    Die freie Hand war zielsicher. Ich bin entzückt, jetzt funktioniert es in allen Listenansichten.

    Gerd
    1 Antworten
    2858 Aufrufe
    21. März 2011, 12:39:44 von Tomcraft
    3 Antworten
    3071 Aufrufe
    24. März 2015, 12:51:38 von TF101
    0 Antworten
    1995 Aufrufe
    22. September 2015, 13:56:45 von chaploo