Tweet Button einfügen, lädt nicht nach Variantenauswahl

Hi,
…ich möchte neben dem integrierten FB-Like Button auch einen Tweet-Button einfügen. Das funktioniert auch soweit, nur nachdem ich eine Variante auswähle, lädt der Twitter-Button nicht neu bzw. erscheint nicht.

Ich arbeite an einem Azure-Child Theme, an der Ajax-Variantenwahl habe ich nichts verändert.

Den Twitter-Button lade ich so:

<a href="[{$oView->getCanonicalUrl()}]" class=“twitter-share-button” data-via=“twitterapi” data-lang=“de”></a>
[{oxscript include=“js/widgets/tweet.js”}]

In der tweet js steht der “Standard-Twitter-Code”.

…egal wo/wir ich den Twitter-Code einbinde, ob im Header, direkt nach dem Link, oder im Footer, das Problem bleibt bestehen.

Kann mir jemand sagen wie ich einen einfachen Twitter-Button richtig einbinde, damit auch das funktioniert?

…ich habe das hier gefunden:

http://www.blackfishweb.com/blog/asynchronously-loading-twitter-google-facebook-and-linkedin-buttons-and-widgets-ajax-bonus

Unter “Extending it for ajax request” steht doch fast die Lösung, oder nicht?! Ich weiß nur nicht ,wie ich das korrekt in dem Azure-Template einbauen muss…

Vielleicht ist ja einer so gnädig, oder benötigt das auch…bezüglich Javascript nach Variantenauswahl gibt es hier ja bereits Threads…

Hallo Beni,

ich habe de Twitter-Share Button folgendermaßen in unser Template eingefügt:


<div id="footerTwitter">
    <a href="https://twitter.com/share" class="twitter-share-button" data-via="instacased" data-lang="en">Tweet</a>

    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
    </script>
</div>

In der dritten Zeile beim Attribut data-via, kannst du deinen Twitter-Account rein schreiben. Im Feed wird das dann mit @username ausgegeben. Ist aber kein Muss.

Ich hoffe, das hilft dir!

Grüße

Jochen

Leider nein, ich brauche den Button in der productmain.tpl und da bleibt das Problem:
Beim ersten laden wird er angezeigt, nach Auswahl einer Variante nicht mehr.

Aber Danke!

Ok, dann würde ich es so versuchen:

Lade die twitter.js nochmals in der Datei page/details/ajax/productmain.tpl mit


[{oxscript include="js/widgets/tweet.js"}]
[{include file="page/details/inc/productmain.tpl"}]

Der Code muss vor dem Einbinden der productmail.tpl eingefügt werden.

Oder nach dem Einbinden der productmain.tpl in der Datei page/details/ajax/productmain.tpl mit:


[{include file="page/details/inc/productmain.tpl"}]
[{oxscript add="$(function(){twttr.widgets.load()});"}]

Ahhh! Das funktioniert!

Ich fasse zusammen:

Folgenden Code in die [B]producmain.tpl[/B] einfügen:

<a href="[{$oView->getCanonicalUrl()}]" class="twitter-share-button" data-via="twitterapi" data-lang="de"></a> 
[{oxscript include="js/widgets/tweet.js"}]

Die tweet.js beinhaltet den “Standard-Twitter-JS-Code” und muss selber erstellt werden.

In der page/details/ajax/productmain.tpl folgenden Code:

[{include file="page/details/inc/productmain.tpl"}] 

mit diesem ersetzen:

[{include file="page/details/inc/productmain.tpl"}]
[{oxscript add="$(function(){twttr.widgets.load()});"}]

Bei mir kommt zusätzlich hinzu:
In der page/details/ajax/ullproductinfo.tpl folgenden Code:

[{include file="page/details/inc/fullproductinfo.tpl"}]

mit diesem ersetzen:

[{include file="page/details/inc/fullproductinfo.tpl"}]
[{oxscript add="$(function(){twttr.widgets.load()});"}]

Danke Jochen!

Freut mich, dass ich dir helfen konnte!

Grüße

Jochen

Zu früh gefreut.

Geht doch nicht zuverlässig. In der Console erscheint auch ein Error…

TypeError {}
oxAjax.reportJSError
(anonymous function)

Wenn ich das hier:
[{oxscript add="$(function(){twttr.widgets.load()});"}]

noch in die details/inc/productmain.tpl hinzufüge funktioniert es, aber in der Console bekomme ich bereits beim ersten laden die Fehlermeldung:

Uncaught TypeError: Cannot call method ‘load’ of undefined

Kann ich das ignorieren?