Es gibt ja einige schöne Add-Ons von Gambio (siehe (Link nur für registrierte Nutzer sichtbar.)), so auch das "Artikelbewertungen als Tab auf der Artikeldetailseite". Da öfter die Frage auftaucht, wie man das ganz ohne Box nutzen kann (normal werden die Tabs erst angezeigt, wenn eine Bewertung vorliegt), werde ich das hier mal zusammenfassen. Was ihr braucht sind zunächst das Add On (Link nur für registrierte Nutzer sichtbar.) Und eine weitere Datei von Gambio, damit die Tabs erstellt werden. (Link nur für registrierte Nutzer sichtbar.) Danach im Verzeichnis user_classes/ overloads den Ordner "ProductReviewsContentView" (ohne " ") anlegen und folgende Datei hineinladen: Den Anhang tab_ProductReviewsContentView.inc.php betrachten Nun noch die Datei templates/ EyeCandy/ module/ products_reviews.html Achtung: nicht verwechseln mit der product(ohne s)_reviews.html herunterladen und den unteren Bereich HTML: <div class="rating-comment"> {$module_data.TEXT|truncate:150:" ..."}<br /><a href="{$module_data.LINK}">{$txt.text_reviews_link}</a> </div> </div> {/foreach} <br /> <a href="{$BUTTON_LINK}" class="button_blue button_set"><span class="button-outer"><span class="button-inner">{$button.your_opinion}</span></span></a> <br /> </div> {/if} ändern in HTML: <div class="rating-comment"> {$module_data.TEXT|truncate:150:" ..."}<br /><a href="{$module_data.LINK}">{$txt.text_reviews_link}</a> </div> </div> {/foreach} </div> {/if} <br /> <a href="{$BUTTON_LINK}" class="button_blue button_set"><span class="button-outer"><span class="button-inner">{$button.your_opinion}</span></span></a> <br /> die Datei als products_reviews-USERMOD.html speichern und neben die originale Datei hochladen. Cache für Seitenausgabe und Module leeren.
Für die Version 2.1 ist die 'Änderung wie folgt: in der Datei templates/ EyeCandy/ module/ products_reviews.html suchen nach HTML: <div class="rating-comment"> <span{if isset($rich_snippet_content.$key)}{$rich_snippet_content.$key.review_itemprop_reviewBody}{/if}> {$module_data.TEXT|truncate:150:" ..."}</span><br /><a href="{$module_data.LINK}">{$txt.text_reviews_link}</a> </div> </div> {/foreach} <br /> <a href="{$BUTTON_LINK}" class="button_blue button_set"><span class="button-outer"><span class="button-inner">{$button.your_opinion}</span></span></a> <br /> </div> {/if} und ändern in: HTML: <div class="rating-comment"> <span{if isset($rich_snippet_content.$key)}{$rich_snippet_content.$key.review_itemprop_reviewBody}{/if}> {$module_data.TEXT|truncate:150:" ..."}</span><br /><a href="{$module_data.LINK}">{$txt.text_reviews_link}</a> </div> </div> {/foreach} </div> {/if} <br /> <a href="{$BUTTON_LINK}" class="button_blue button_set"><span class="button-outer"><span class="button-inner">{$button.your_opinion}</span></span></a> <br /> Die Zeilen HTML: <br /> <a href="{$BUTTON_LINK}" class="button_blue button_set"><span class="button-outer"><span class="button-inner">{$button.your_opinion}</span></span></a> <br /> werden also ans Ende geschoben.
Gibt es für die Module "Ebenfalls gekauft Artikel als Tab auf der Artikeldetailseite" und "Cross-Selling Artikel als Tab auf der Artikeldetailseite" auch schon eine Anleitung für die Integration in die Version 2.2.X.X?
In der Shopversion 2.3.x funktioniert das mit dem Anzeigen Des TABS "Bewertungen" nicht mehr, wenn noch keine Bewertung vorhanden ist. Bisher funktioniete das durch die DAtei user_classes/ overloads/ ProductReviewsContentView/ tab_ProductReviewsContentView.inc.php mit diesem Inhalt: PHP: <?php class tab_ProductReviewsContentView extends tab_ProductReviewsContentView_parent { function get_html($p_coo_product) { $t_html_output = ''; $this->set_content_data('BUTTON_WRITE', '<a href="'.xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, xtc_product_link($p_coo_product->data['products_id'],$p_coo_product->data['products_name'])).'">'.xtc_image_button('button_write_review.gif', IMAGE_BUTTON_WRITE_REVIEW).'</a>'); $this->set_content_data('BUTTON_LINK', xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, xtc_product_link($p_coo_product->data['products_id'],$p_coo_product->data['products_name']))); $this->set_content_data('module_content', $p_coo_product->getReviews(PRODUCT_REVIEWS_VIEW)); $t_html_output = $this->build_html(); return $t_html_output; } } ?> Hat jemand eine Idee, wie man das jetzt schreiben muss?
Hi barbara, wenn du folgenden Code einfügst, sollte das ganze für alle Shopversionen inkl. 2.3 funktionieren: PHP: <?phpclass tab_ProductReviewsContentView extends tab_ProductReviewsContentView_parent { function get_html($p_coo_product = NULL) { if(is_object($this->product)) $p_coo_product = $this->product; $t_html_output = ''; $this->set_content_data('BUTTON_WRITE', '<a href="'.xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, xtc_product_link($p_coo_product->data['products_id'],$p_coo_product->data['products_name'])).'">'.xtc_image_button('button_write_review.gif', IMAGE_BUTTON_WRITE_REVIEW).'</a>'); $this->set_content_data('BUTTON_LINK', xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, xtc_product_link($p_coo_product->data['products_id'],$p_coo_product->data['products_name']))); $this->set_content_data('module_content', $p_coo_product->getReviews(PRODUCT_REVIEWS_VIEW)); $t_html_output = $this->build_html(); return $t_html_output; } }?>
Danke Till, aber leider funktioniert das nicht. Es wird kein Tab angezeigt, wenn noch keine Bewertung da ist.
Ich verwende die Version 2.3.1.1 und bei mir funktioniert das einfwandfrei. Der Tab wird auch angezeigt wenn keine Bewertung vorhanden ist.
Moinmoin alle zusammen Ich habe gerade in meinen neu aufgesetzten Testshop dieses Add-On eingeb aut. Passt auch alles super soweit. Keine Fehlermeldung und der Tab wird auch angezeigt wenn noch keine Bewertung da ist. Der einzigste fehler > Wenn ich auf den Button drücken möchte leitet er mich auf die Startseite :-/ Wenn ich nur die Maus drauf halte wird auch der Link der Startseite angezeigt. Im Hauptshop kommt dann der Link zum Bewertungen schreiben. (dieser ist aber noch nicht auf der aktuellen Shopversion) Was habe ich falsch gemacht?
Hallo, diese Anpassung läuft auch unter 2.5.1 soweit. Jedoch ähnliches Problem wie der Vorposter: Wenn noch keine Bewertung vorhanden, dann führt der Link "ihre Meinung" auf die Startseite zurück. Die Verlinkung des Buttons funktioniert jedoch korrekt, wenn es bereits eine Bewertung gibt. Wäre sehr dankbar, wenn hier noch jemand aushelfen kann. Ich glaube aber fast nicht, dass der Fehler in der products_reviews-USERMOD.html liegt !? Der Fehler liegt vermutlich in den user_classes/overloads aber da bin ich überfragt... Die products_reviews sieht wie folgt aus: PHP: {load_language_text section="reviews"}{load_language_text section="buttons" name="button"}{if $module_content|@count > 0}<div class="rating"> <div class="headline">{$txt.heading_reviews}</div> {foreach name=aussen key=key item=module_data from=$module_content} <div class="rating-item clearfix"{if isset($rich_snippet_content.$key)}{$rich_snippet_content.$key.product_itemprop_reviews}{$rich_snippet_content.$key.review_itemscope}{/if}> <div class="rating-stars"{if isset($rich_snippet_content.$key)}{$rich_snippet_content.$key.review_itemprop_reviewRating}{$rich_snippet_content.$key.rating_itemscope}{/if}> {$module_data.RATING} {if isset($rich_snippet_content.$key)} {$rich_snippet_content.$key.rating_itemprop_worstRating} {$rich_snippet_content.$key.rating_itemprop_bestRating} {$rich_snippet_content.$key.rating_itemprop_ratingValue} {/if} </div> <div class="rating-caption"> {$txt.label_author}<br /> {$txt.label_date} </div> <div class="rating-meta"> <span{if isset($rich_snippet_content.$key)}{$rich_snippet_content.$key.review_itemprop_author}{$rich_snippet_content.$key.author_itemscope}{/if}> <span{if isset($rich_snippet_content.$key)}{$rich_snippet_content.$key.author_itemprop_name}{/if}>{$module_data.AUTHOR}</span> </span><br /> {if isset($rich_snippet_content.$key)}{$rich_snippet_content.$key.review_itemprop_datePublished}{/if}{$module_data.DATE} </div> <div class="rating-comment"> <span{if isset($rich_snippet_content.$key)}{$rich_snippet_content.$key.review_itemprop_reviewBody}{/if}> {$module_data.TEXT|truncate:150:" ..."}</span><br /><a href="{$module_data.LINK}">{$txt.text_reviews_link}</a> </div> </div> {/foreach}</div>{/if}<br /> <a href="{$BUTTON_LINK}" class="button_blue button_set"><span class="button-outer"><span class="button-inner">{$button.your_opinion}</span></span></a> <br /> Die GMTabTokenizer/reviewsTab_GMTabTokenizer.inc.php PHP: <?php class reviewsTab_GMTabTokenizer extends reviewsTab_GMTabTokenizer_parent { function reviewsTab_GMTabTokenizer($content) { global $product; $coo_product_reviews = MainFactory::create_object('ProductReviewsContentView'); if(method_exists($coo_product_reviews,'set_')){ $coo_product_reviews->set_('product',$product); $t_view_html = $coo_product_reviews->get_html(); } else { $t_view_html = $coo_product_reviews->get_html($product); } if(trim($t_view_html)!='') { $coo_languageTextmgr = MainFactory::create_object('LanguageTextManager', array('reviews',$_SESSION['languages_id'])); if(method_exists($coo_languageTextmgr,'get_text')){ $heading_reviews = $coo_languageTextmgr->get_text('heading_reviews'); } else { $heading_reviews = $coo_languageTextmgr->v_section_content_array['reviews']['heading_reviews']; } $t_reviewsTab = '[TAB: '.$heading_reviews.']'.$t_view_html; $content=$content.$t_reviewsTab; } parent::__construct($content); } } ?> Die ProductInfoContentView/reviewsTab_ProductInfoContentView.inc.php PHP: <?phpclass reviewsTab_ProductInfoContentView extends reviewsTab_ProductInfoContentView_parent { function build_html($p_content_data_array=false,$p_template_file=false) { $this->set_content_data('MODULE_products_reviews',''); return parent::build_html($p_content_data_array,$p_template_file); }}?>
Bei mir funktioniert das in der Version 2.5 auch. Werde nachher mal schauen wie meine Dateien aussehen.
ich habe noch eine user_classes/ overloads/ ProductReviewsContentView/ tab_productReviewsContentView.inc.php mit diesem Inhalt: PHP: <?phpclass tab_ProductReviewsContentView extends tab_ProductReviewsContentView_parent { function get_html($p_coo_product = NULL) { if(is_object($this->product)) $p_coo_product = $this->product; $t_html_output = ''; $this->set_content_data('BUTTON_WRITE', '<a href="'.xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, xtc_product_link($p_coo_product->data['products_id'],$p_coo_product->data['products_name'])).'">'.xtc_image_button('button_write_review.gif', IMAGE_BUTTON_WRITE_REVIEW).'</a>'); $this->set_content_data('BUTTON_LINK', xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, xtc_product_link($p_coo_product->data['products_id'],$p_coo_product->data['products_name']))); $this->set_content_data('module_content', $p_coo_product->getReviews(PRODUCT_REVIEWS_VIEW)); $t_html_output = $this->build_html(); return $t_html_output; } }?>
Danke. Das funktioniert. Hatte die Datei zwar auch schon mal drin aber leider falsch. Hatte Sie auch im Ordner ProductInfoContentView statt ProductReviewsContentView. Kleiner Flüchtigkeitsfehler.