Managed Server
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: Trusted Shops Kundenbewertung - Problem mit Code

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.854
    • Geschlecht:
    Hallo,

    wir haben seit einiger Zeit das Trusted Shops Kundenbewertungswidget im Shop. Des weiteren soll es auch möglich sein, dieses mit einem Cache einzubinden, nur leider hab ich davon null Plan!?

    Jetzt steht irgendwas vom Cache als Beispiel in deren Anleitung (hab ich mal beigefügt, letzte Seite... und da steht dann folgendes:

    Zitat
    Beispiel Code PHP: Integration Widget mit Caching (bevorzugt)

    Code: PHP  [Auswählen]
    <?
    $tsId = "Setzen Sie hier bitte Ihre Trusted Shops ID ein";
    $shopname = "Setzen Sie hier bitte Ihren Shopnamen ein";
    // file_put_contents not available for PHP4
    if (!function_exists('file_put_contents')) {
    function file_put_contents($file, $contents = '', $method = 'w+') {
    $file_handle = fopen($file, $method);
    fwrite($file_handle, $contents);
    fclose($file_handle);
    return true;
    }
    }
    function cachecheck($filename_cache, $timeout = 10800) {
    if (file_exists($filename_cache)) {
    $timestamp = filemtime($filename_cache);
    // Seconds
    if (mktime() - $timestamp <$timeout) {
    return true;
    } else
    return false;
    } else
    return false;
    }
    if (!cachecheck($filename = $tsId.".gif", 10800)) {
    // Load fresh widget from trustedshops Website
    // and write in local file
    // Open the file to get existing content
    $current =
    file_get_contents("https://www.trustedshops.com/bewertung/widget/widgets/$tsId.gif");
    // Write the contents back to the file
    file_put_contents($filename, $current);
    error_log("neues widget gespeichert!");
    }else{
    error_log("altes widget geladen!");
    }
    ?>
    <a target="_blank" href="https://www.trustedshops.com/bewertung/info_<?=$tsId?>.html"
    title="Kundenbewertungen von <?=$shopname?> einsehen">
    <img class="bewertung" alt="Kundenbewertungen von <?=$shopname?>" border="0"
    src="<?=$filename?>"/>
    </a>

    Aber ich check jetzt überhaupt nicht, wie und wo ich das einbauen muss, vor allem ist der letzte Block doch eigentlich html?!

    Kann mir da vielleicht einer von euch weiterhelfen und 'nen großen Wink mit dem Zaunpfahl geben? :?

    Danke & Grüße
    Dominik

    Linkback: https://www.modified-shop.org/forum/index.php?topic=11537.0
    Werbung / Banner buchen

    Matt

    • Experte
    • Beiträge: 4.241
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #1 am: 09. März 2011, 19:40:48
    Bist du sicher, dass das die aktuelle Anleitung ist? Ich habe TS vor ~zwei Jahren schon mitgeteilt, dass es bereits eine Funktion cachecheck() in xt:Commerce gibt und sie doch ihre bitte anders benennen mögen und mir wurde bestätigt, dass das mittlerweile geschehen sei.

    Zur eigentlichen Frage: Wir haben den cachecheck in header.php, die eigentliche Ausgabe (das HTML) dann aber in der Box, wo wir es brauchen. Man muss ja die Infos zu Shopname, TS-ID etc. nicht aus den Variablen holen.

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.854
    • Geschlecht:
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #2 am: 09. März 2011, 20:13:59
    Sorry, sollte nicht heißen, dass das die neue Anleitung ist. Die haben mir diese Anleitung geschickt WEIL in der neuen Anleitung keinerlei Hinweis mehr auf die Caching Funktion enthalten ist...

    ...also sehe ich das richtig:

    Code: PHP  [Auswählen]
    <?
    $tsId = "Setzen Sie hier bitte Ihre Trusted Shops ID ein";
    $shopname = "Setzen Sie hier bitte Ihren Shopnamen ein";
    // file_put_contents not available for PHP4
    if (!function_exists('file_put_contents')) {
    function file_put_contents($file, $contents = '', $method = 'w+') {
    $file_handle = fopen($file, $method);
    fwrite($file_handle, $contents);
    fclose($file_handle);
    return true;
    }
    }
    function cachecheck($filename_cache, $timeout = 10800) {
    if (file_exists($filename_cache)) {
    $timestamp = filemtime($filename_cache);
    // Seconds
    if (mktime() - $timestamp <$timeout) {
    return true;
    } else
    return false;
    } else
    return false;
    }
    if (!cachecheck($filename = $tsId.".gif", 10800)) {
    // Load fresh widget from trustedshops Website
    // and write in local file
    // Open the file to get existing content
    $current =
    file_get_contents("https://www.trustedshops.com/bewertung/widget/widgets/$tsId.gif");
    // Write the contents back to the file
    file_put_contents($filename, $current);
    error_log("neues widget gespeichert!");
    }else{
    error_log("altes widget geladen!");
    }
    ?>

    habt ihr in die "/includes/header.php" eingebaut und

    Code: PHP  [Auswählen]
    <a target="_blank" href="https://www.trustedshops.com/bewertung/info_<?=$tsId?>.html"
    title="Kundenbewertungen von <?=$shopname?> einsehen">
    <img class="bewertung" alt="Kundenbewertungen von <?=$shopname?>" border="0"
    src="<?=$filename?>"/>
    </a>

     in eine box direkt im template?

    Okay, war mir einfach nicht sicher, wo genau hin mit dem php Code, ich hatte das immer irgendwie im Template versucht. Macht es Sinn, das in die "header.php" zu bauen? Und wenn ja, wo denn genau?

    Danke
    Dominik

    Matt

    • Experte
    • Beiträge: 4.241
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #3 am: 09. März 2011, 20:44:40
    Egal wo. Der Cache-Kram schaut nur, ob er die Datei neu laden muss. Du solltest alle Vorkommnisse von cachecheck in TS_cachecheck ändern, sonst knallt dir das. Und natürlich die php-Aufrufe im HTML-Teil durch die korrekten Werte ersetzen.

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.854
    • Geschlecht:
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #4 am: 09. März 2011, 20:50:23
    okay, jetzt versteh ich leider immer noch nicht welche PHP Aufrufe im html gemacht werden müssen und was genau ich dann in die header.php schreiben muss  :?

    Sorry PHP ist mal gar nicht mein Ding.

    Grüße
    Dominik

    Matt

    • Experte
    • Beiträge: 4.241
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #5 am: 09. März 2011, 20:58:05
    Code: XML  [Auswählen]
    <a target="_blank" href="https://www.trustedshops.com/bewertung/info_<?=$tsId?>.html"
    title="Kundenbewertungen von <?=$shopname?> einsehen">
    <img class="bewertung" alt="Kundenbewertungen von <?=$shopname?>" border="0"
    src="<?=$filename?>"/>
    </a>

    Da müssen die php-Aufrufe raus und durch normalen Text/normale Pfade ersetz werden. Den Rest schreibst du in die header.php und nennst die cachecheck-Funktion um.

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.854
    • Geschlecht:
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #6 am: 10. März 2011, 08:41:31
    Hi Matt,

    danke schon mal, dann komme ich meiner Umsetzung wieder ein Stück näher.

    hab jetzt in die "/includes/header.php"

    Code: PHP  [Auswählen]
    <?php
    $tsId = "MEINEID";
    $shopname = "MEINSHOP";
    // file_put_contents not available for PHP4
    if (!function_exists('file_put_contents')) {
    function file_put_contents($file, $contents = '', $method = 'w+') {
    $file_handle = fopen($file, $method);
    fwrite($file_handle, $contents);
    fclose($file_handle);
    return true;
    }
    }
    function TS_cachecheck($filename_cache, $timeout = 10800) {
    if (file_exists($filename_cache)) {
    $timestamp = filemtime($filename_cache);
    // Seconds
    if (mktime() - $timestamp <$timeout) {
    return true;
    } else
    return false;
    } else
    return false;
    }
    if (!TS_cachecheck($filename = $tsId.".gif", 10800)) {
    // Load fresh widget from trustedshops Website
    // and write in local file
    // Open the file to get existing content
    $current =
    file_get_contents("http://MEINEDOMAIN/MEINPFAD/$tsId.gif");
    // Write the contents back to the file
    file_put_contents($filename, $current);
    error_log("neues widget gespeichert!");
    }else{
    error_log("altes widget geladen!");
    }
    ?>

    eingefügt

    und dann hab ich noch eine Box (im template) mit folgendem Inhalt:

    Code: PHP  [Auswählen]
    <pre class="brush: html;">
    <div class="boxbody">
            <p class="center">
            <a target="_blank" href="https://www.trustedshops.com/bewertung/info_MEINEID.html"
            title="Kundenbewertungen von MEINSHOP einsehen">
            <img class="bewertung" height="142" width="180" alt="Kundenbewertungen von Spuersinn 24" border="0"
            src="http://MEINEDOMAIN/MEINPFAD/ts/MEINEID.gif"/>
            </a>
            </p>
    </div>

    MEINEID, MEINSHOP, MEINEDOMAIN & MEINPFAD natürlich mit meinen Daten befüllt.  ;)

    Dann hab ich noch einmalig mein GIF-Bild von Trustedshops runtergeladen und in den entsprechend angegebenen Order ts gestellt und dann noch jeweils dem GIF und dem Ordner die Rechte 777 (lesen, schreiben, ausführen) gegeben.

    Stimmt das jetzt so alles?

    Grüße
    Dominik

    Matt

    • Experte
    • Beiträge: 4.241
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #7 am: 10. März 2011, 09:04:10
    Ja, das sieht gut aus. Solltest du Zugriff auf dein "error_log" haben: Die Funktion loggt da rein, welches Bild sie ausliefert. Und außerdem hast du das Datum unten rechts im Bild stehen.

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.854
    • Geschlecht:
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #8 am: 10. März 2011, 09:19:06
    Danke, jetzt bin ich nur verunsichert, was die Aktualisierung des Widgets angeht. Hab das jetzt mal testweise auf 180 Sek. gestellt und laut "error_log" macht er das jetzt auch ca. alle 3 Min.

    ABER: müsste nicht das Bild auf dem Server dann aktualisiert werden? Also wenn ich in den Pfad mit FileZilla reingehe, dann steht da noch immer mein Bild mit "zuletzt aktualisiert 10.03.11 - 09:28:13"

    Was hat das jetzt zu bedeuten? Geht es oder nicht?  :/

    Grüße
    Dominik

    PS: Datum unten rechts im Bild? meinst du nicht eher links?  :D

    Matt

    • Experte
    • Beiträge: 4.241
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #9 am: 10. März 2011, 10:45:48
    Ich arbeite jetzt nicht mit FileZilla, aber die meisten mir bekannten FTP-Clients cachen das Verzeichnislisting. Du solltest das also manuell refreshen. Wenn dann da immer noch eine alte Zeit steht, lösche die Datei doch mal weg (oder benenn sie um) und schau ob eine neue generiert wird, ansonsten fehlen dem Webserverprozess da Rechte (obwohl 777 eigentlich alles erlauben sollte).

    Und ja, natürlich links. Man sollte vor dem ersten Kaffee nicht in Foren schreiben.

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.854
    • Geschlecht:
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #10 am: 10. März 2011, 16:56:04
    So, irgendwas funktioniert noch nicht mit der Aktualisierung des GIFs auf unserem Server... ist immer noch alt. Wenn ich es lösche, wird auch kein neues erstellt. Alles schon ein wenig getestet.

    Hier stimmt etwas nicht so wirklich:

    Code: PHP  [Auswählen]
    <?php
    $tsId = "MEINEID";
    $shopname = "MEINSHOP";
    // file_put_contents not available for PHP4
    if (!function_exists('file_put_contents')) {
    function file_put_contents($file, $contents = '', $method = 'w+') {
    $file_handle = fopen($file, $method);
    fwrite($file_handle, $contents);
    fclose($file_handle);
    return true;
    }
    }
    function TS_cachecheck($filename_cache, $timeout = 10800) {
    if (file_exists($filename_cache)) {
    $timestamp = filemtime($filename_cache);
    // Seconds
    if (mktime() - $timestamp <$timeout) {
    return true;
    } else
    return false;
    } else
    return false;
    }
    if (!TS_cachecheck($filename = $tsId.".gif", 10800)) {
    // Load fresh widget from trustedshops Website
    // and write in local file
    // Open the file to get existing content
    $current =
    file_get_contents("http://MEINEDOMAIN/MEINPFAD/$tsId.gif");
    // Write the contents back to the file
    file_put_contents($filename, $current);
    error_log("neues widget gespeichert!");
    }else{
    error_log("altes widget geladen!");
    }
    ?>
     

    Kannst du mir vielleicht mal deinen Teil mitteilen, was genau bei dir drin steht?

    Oder müssen auch alle Überorder dann Schreibrechte haben und nicht nur der Ordner, welcher das GIF enthält? :mhhh:

    Danke
    Dominik

    Matt

    • Experte
    • Beiträge: 4.241
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #11 am: 10. März 2011, 18:33:36
    Ich würde ja spontan sagen, der Fehler steckt da:

    Code: PHP  [Auswählen]
    $current = file_get_contents("http://MEINEDOMAIN/MEINPFAD/$tsId.gif")

    Das musst du natürlich von TS ziehen, also in der Form:

    https://www.trustedshops.com/bewertung/widget/widgets/$tsID.gif

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.854
    • Geschlecht:
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #12 am: 10. März 2011, 19:58:27
    Okay, das mag schon richtig sein, und von mir vorher falsch eingestellt gewesen sein, ABER woher weiß dieser Part dann

    Code: PHP  [Auswählen]
    // Load fresh widget from trustedshops Website
    // and write in local file
    // Open the file to get existing content
    $current =
    file_get_contents("https://www.trustedshops.com/bewertung/widget/widgets/$tsId.gif");
    // Write the contents back to the file
    file_put_contents($filename, $current);
    error_log("neues widget gespeichert!");
    }else{
    error_log("altes widget geladen!");
    }
    ?>

    dass er das widget dann unter

    Code: PHP  [Auswählen]
    <pre class="brush: html;">/images/service/ts/$tsId.gif

    speichern soll?

    Denn unter dieser Adresse will ich dann ja entsprechend das widget per html Datei aufrufen...

    Danke & Grüße
    Dominik

    Matt

    • Experte
    • Beiträge: 4.241
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #13 am: 10. März 2011, 20:53:33
    Bei mir steht da der ganze Pfad:

    Code: PHP  [Auswählen]
    if(!TS_cachecheck($filename = "img/ts/tsid.gif", 43200)) {
            // Load fresh widget from trustedshops Website
            // and write in local file
            // Open the file to get existing content
            $current = file_get_contents("https://www.trustedshops.com/bewertung/widget/widgets/tsid.gif");
            // Write the contents back to the file
            file_put_contents($filename, $current);
            #error_log("neues widget gespeichert!");
    } else {
            #error_log("altes widget geladen!");
    }

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.854
    • Geschlecht:
    Trusted Shops Kundenbewertung - Problem mit Code
    Antwort #14 am: 10. März 2011, 21:46:29
    Matt, du hast meinen Tag gerettet.

    Funktioniert nun endlich und auch das Widget wird zwischen gespeichert.  :thumbs:
    Bei deinem Beispiel hatte mir noch die 1. Zeile gefehlt, dass hier der Pfad zum Cache-Widget hin muss. Noch eingefügt und nun geht's.

    Danke, danke, danke. :D
    Dominik

    Trade Republic - Provisionsfrei Aktien handeln
    6 Antworten
    6422 Aufrufe
    06. Oktober 2012, 19:08:47 von Folienschrift-Shop
    6 Antworten
    6146 Aufrufe
    22. September 2011, 16:13:57 von MarcusS81
    9 Antworten
    5177 Aufrufe
    10. Januar 2013, 18:45:45 von peterpan19
               
    anything