Anleitung Das Gambio Add-On "Produkt-Bewertung" immer als Tab anzeigen

Thema wurde von barbara, 20. September 2014 erstellt.

  1. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.452
    Danke erhalten:
    11.255
    Danke vergeben:
    1.606
    #1 barbara, 20. September 2014
    Zuletzt bearbeitet: 19. Juni 2015
    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.
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.452
    Danke erhalten:
    11.255
    Danke vergeben:
    1.606
    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.
     
  3. Gianluca Lombardi

    Gianluca Lombardi Erfahrener Benutzer

    Registriert seit:
    23. September 2012
    Beiträge:
    123
    Danke erhalten:
    2
    Danke vergeben:
    29
    Hi

    Ist das auch mit der Version 2.2 kompatibel?

    Liebe Grüsse
    Gianluca
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.452
    Danke erhalten:
    11.255
    Danke vergeben:
    1.606
    Ja, das passt auch für die 2.2 noch.
     
  5. soprao

    soprao Erfahrener Benutzer

    Registriert seit:
    26. Februar 2015
    Beiträge:
    160
    Danke erhalten:
    18
    Danke vergeben:
    28
    Läuft bei uns mit Shopversion 2.2.0.0 einwandfrei.
     
  6. Gianluca Lombardi

    Gianluca Lombardi Erfahrener Benutzer

    Registriert seit:
    23. September 2012
    Beiträge:
    123
    Danke erhalten:
    2
    Danke vergeben:
    29
    Jetzt funktioniert das auch bei mir. :)
     
  7. Gianluca Lombardi

    Gianluca Lombardi Erfahrener Benutzer

    Registriert seit:
    23. September 2012
    Beiträge:
    123
    Danke erhalten:
    2
    Danke vergeben:
    29
    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?
     
  8. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.452
    Danke erhalten:
    11.255
    Danke vergeben:
    1.606
    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_WRITExtc_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_WRITExtc_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?
     
  9. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.723
    Danke erhalten:
    1.312
    Danke vergeben:
    305
    Hi barbara,

    wenn du folgenden Code einfügst, sollte das ganze für alle Shopversionen inkl. 2.3 funktionieren:

    PHP:
     <?php

    class 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_WRITExtc_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_WRITExtc_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;
        }    
    }

    ?>
     
  10. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.452
    Danke erhalten:
    11.255
    Danke vergeben:
    1.606
    Danke Till,
    aber leider funktioniert das nicht.
    Es wird kein Tab angezeigt, wenn noch keine Bewertung da ist.
     
  11. Gianluca Lombardi

    Gianluca Lombardi Erfahrener Benutzer

    Registriert seit:
    23. September 2012
    Beiträge:
    123
    Danke erhalten:
    2
    Danke vergeben:
    29
    Ich verwende die Version 2.3.1.1 und bei mir funktioniert das einfwandfrei. Der Tab wird auch angezeigt wenn keine Bewertung vorhanden ist.
     
  12. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.452
    Danke erhalten:
    11.255
    Danke vergeben:
    1.606
    Gut zu wissen.
    Dann liegt es an einer Anderen Anpassung bei mir :D
     
  13. Michelle

    Michelle Aktives Mitglied

    Registriert seit:
    31. Dezember 2014
    Beiträge:
    27
    Danke erhalten:
    1
    Danke vergeben:
    18
    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?
     
  14. soprao

    soprao Erfahrener Benutzer

    Registriert seit:
    26. Februar 2015
    Beiträge:
    160
    Danke erhalten:
    18
    Danke vergeben:
    28
    Hi Michelle,

    was steht denn bei dir in der products_reviews.html?

    Grüße
     
  15. oletana

    oletana Mitglied

    Registriert seit:
    7. August 2015
    Beiträge:
    5
    Danke erhalten:
    0
    #15 oletana, 6. November 2015
    Zuletzt bearbeitet: 6. November 2015
    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:
    <?php
    class 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);
        }
    }

    ?>
     
  16. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.452
    Danke erhalten:
    11.255
    Danke vergeben:
    1.606
    Bei mir funktioniert das in der Version 2.5 auch.
    Werde nachher mal schauen wie meine Dateien aussehen.
     
  17. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.452
    Danke erhalten:
    11.255
    Danke vergeben:
    1.606
    ich habe noch eine 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 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_WRITExtc_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_WRITExtc_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;
        }    
    }

    ?>
     
  18. oletana

    oletana Mitglied

    Registriert seit:
    7. August 2015
    Beiträge:
    5
    Danke erhalten:
    0
    #18 oletana, 6. November 2015
    Zuletzt bearbeitet: 6. November 2015
    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.
     
  19. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.452
    Danke erhalten:
    11.255
    Danke vergeben:
    1.606
    Hast Du auch diese Datei:
    (Link nur für registrierte Nutzer sichtbar.)
     
  20. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Funktioniert das auch noch bei der 2.7?