Diakon Posted January 25, 2010 Report Share Posted January 25, 2010 Hallo, das ist für Alle, die selbst etwas an ihrem Shop basteln möchen. Soll/Ziel: legt der Kunde ein Slave-Produkt in den Warenkorb und klickt dieses aus dem Warenkorb heraus an führt dies auf die Produktseite des Slave-Produkts. Ziel ist es nun auf der Seite des Slaveprodukts einen Link zum Master zu setzen. Im Templates "products" steht einem nur das master_model zu Verfügung um nun die products_id des Masters heraus zu finden fügt man in: Installierte Plugins -> Master / Slave -> Hookpoints -> class.product.php:BuildData_bottom folgenden Code ein: global $db; if ($this->data['products_master_flag']=='1') { $this->data['allow_add_cart'] = 'false'; } if ($this->data['products_master_model']!='') { $custom_master = $db->Execute("SELECT products_id FROM ".TABLE_PRODUCTS." WHERE products_model='".$this->data['products_master_model']."' LIMIT 0,1"); $this->data['custom_product_master_id'] = $custom_master->fields[products_id]; }[/PHP] Nun kann man in templates/siau_sass/xtCore/pages/product/product.html die Variable {$custom_master} benutzen. Link to comment Share on other sites More sharing options...
o_kiki_o Posted February 20, 2010 Report Share Posted February 20, 2010 Dann sollte man aber auch: {$custom_product_master_id} benutzen, statt {$custom_master} Ich habe das ganze sinnvollerweise {$products_master_id} genannt. Nun kann man hier noch ein bisschen weiter tricksen und eine Abfrage in das Template bauen, wodurch die Seite direkt zum Master Artikel springt um die Slaves gar nicht anzeigen zu müssen. Hat da schon jemand was fertiges? Link to comment Share on other sites More sharing options...
o_kiki_o Posted February 20, 2010 Report Share Posted February 20, 2010 Für alle die es interessiert: Link zum Masterartikel statt zum Slave: in obigen Code eine neue Variable definieren und diese mit der Methode _xtLink und der Master ID befüllen lassen. Im Template dann eine Abfrage ob die neue Var befüllt ist, dann diese ausgeben, anosnten den vorhandenen Link. Wer mehr wissen will, kann mich ruhig anschreiben. Link to comment Share on other sites More sharing options...
Diakon Posted February 20, 2010 Author Report Share Posted February 20, 2010 Dann sollte man aber auch: {$custom_product_master_id} benutzen, statt {$custom_master} Ich habe das ganze sinnvollerweise {$products_master_id} genannt. Nun kann man hier noch ein bisschen weiter tricksen und eine Abfrage in das Template bauen, wodurch die Seite direkt zum Master Artikel springt um die Slaves gar nicht anzeigen zu müssen. Hat da schon jemand was fertiges? Naja man sollte, "eigene" Variablen immer speziell kennzeichnen sonst hast du immer das potentielle Problem das eventuell xt-Programmierer auch eine solche Variable ein arbeiten und dann weißt du nicht mehr woher etwaige seiteneffekte kommen. Daher ist das schon sinnig diese durch "custom" oder was anderes zu kennzeichnen. Zu deiner Frage: Na klar habe ich da was fertiges, das ist ja der Sinn dieser Variable solche Verhaltensweisen steuern zu können. Nur das Wäre, wenn man schon nach Sinn und Unsinn fragt ja nun zu einfach das direkt zu posten. Aber als Tip: Mit Smarty Funktionen einfach abfragen, ob das Produkt eine (in deinem Fall) "{$products_master_id}" hat. Denn das haben nur Slaves ;-). //edit hast es dir ja parallel schon selbst beantwortet. //edit2 man brauch dazu keine neue Variable, diese da "oben" ist ja schon die neue Variable Link to comment Share on other sites More sharing options...
MiStahmann Posted April 1, 2010 Report Share Posted April 1, 2010 Hallo zusammen, um den Link im WK auf die Masterartikel zu verbiegen könnte man folgenden Trick anwenden: in class.product.php if ($this->data['products_master_model']!='') { // ID abfragen $custom_master = $db->Execute("SELECT products_id FROM ".TABLE_PRODUCTS." WHERE products_model='".$this->data['products_master_model']."' LIMIT 0,1"); $this->data['custom_product_master_id'] = $custom_master->fields[products_id]; // Link gleich auf den Master verbiegen $link_array = array('page'=> 'product', 'type'=>'product', 'name'=>$this->data['products_name'], 'id'=>$this->data['custom_product_master_id'],'seo_url'=>FALSE); } // Ansonsten den normalen Liunk generieren else { $link_array = array('page'=> 'product', 'type'=>'product', 'name'=>$this->data['products_name'], 'id'=>$this->data['products_id'],'seo_url'=>$this->data['url_text']); } [/PHP] Diese Veränderung würde dann Systemweit nur noch Masterartikel anzeigen. Allerdings nicht mehr mit SEO-URLs sondern mit ID's, was aber aus dem WK auch unerheblich ist. Link to comment Share on other sites More sharing options...
objekt Posted April 1, 2010 Report Share Posted April 1, 2010 Oh ich seh hier gibt es M/S Spezialisten. Kurze Frage ich ändere gerade das Plugin bestseller_products dahingehend ab, dass mir artikel angezeigt werden die bestand(products_quantity) größer null haben, leider werden mir nur die Masterartikel angezeigt. Weiss jemand, wie ich die lieferbaren Slaves anzeigen lassen kann? LG Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.