ProvenExpert - Einfügen des PHP Codes - HILFE

Thema wurde von eik_niemann, 17. Januar 2017 erstellt.

  1. eik_niemann

    eik_niemann Mitglied

    Registriert seit:
    7. Dezember 2016
    Beiträge:
    16
    Danke erhalten:
    1
    Danke vergeben:
    4
    Hallöchen,

    ich habe mal eine Frage. Wir haben uns bei ProvenExpert angemeldet und würden sehr gern das GoogleSnippet verwenden, nun soll es laut ProvenExpert auf alle Kategorie PHP Seiten eingefügt werden damit wir bei Google auch die netten Sternchen erhalten.
    Leider wissen wir nicht wo genau wir die Dateien finden wo dieser Code rein soll...


    Folgenden Code soll in die Kategorien PHP Dateien eingetragen werden:

    Code:
    <?php
    /**
    * ProvenExpert (https://www.provenexpert.com)
    *
    * for PHP 5.3 and newer versions
    *
    * Contact : support@provenexpert.com
    */
    
    // API authentication
    $yourApiId = 'xxxxxxx';
    $yourAPIKey = 'xxxxxxx';
    
    $apiUrl = 'https://www.provenexpert.com/api_rating_v2.json';
    
    // cache options
    $errorFile = '/provenexpert_error.txt';
    $cacheFile = '/provenexpert_xxxxx.json';
    $cachePath = dirname($_SERVER['SCRIPT_FILENAME']) . $cacheFile;
    $cachingTime = 3600; // in seconds
    $scriptVersion = '1.7';
    
    
    if (! file_exists($cachePath)) {
        @touch($cachePath, $cachingTime);
        @chmod($cachePath, 0666);
    }
    
    // check if user ca write the cache file, otherwise use the system temp directory
    if (! is_writable($cachePath)) {
        $cachePath = sys_get_temp_dir() . $cacheFile;
    
        if (! file_exists($cachePath)) {
            @touch($cachePath, $cachingTime);
            @chmod($cachePath, 0666);
        }
    }
    
    if (function_exists('curl_init')) {
        try {
            // check if a cache file exists and its age inside the caching time range
            if (! file_exists($cachePath) || time() - filemtime($cachePath) > $cachingTime) {
                // init curl handler
                $curlHandler = curl_init();
    
                // set curl options
                curl_setopt($curlHandler, CURLOPT_CONNECTTIMEOUT, 4);
                curl_setopt($curlHandler, CURLOPT_TIMEOUT, 4);
                curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($curlHandler, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($curlHandler, CURLOPT_URL, $apiUrl . '?v=' . $scriptVersion);
                curl_setopt($curlHandler, CURLOPT_USERPWD, $yourApiId . ':' . $yourAPIKey);
                if (defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4')) {
                    curl_setopt($curlHandler, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
                }
    
                // send call to api
                $json = curl_exec($curlHandler);
    
                if ($json === false) {
                    // curl error
                    $errorMessage = 'curl error (' . date('c') . ')';
                    if (file_exists($cachePath)) {
                        $errorMessage .= PHP_EOL . PHP_EOL . 'last call: ' . date('c', filemtime($cachePath));
                    }
                    $errorMessage .= PHP_EOL . PHP_EOL . curl_error($curlHandler);
                    $errorMessage .= PHP_EOL . PHP_EOL . print_r(curl_version(), true);
                    @file_put_contents(dirname($cachePath) . $errorFile, $errorMessage);
                    $json = json_encode(array('status' => 'error', 'errors' => array('curl error')));
                }
                curl_close($curlHandler);
    
                // convert json to array
                $data = json_decode($json, true);
    
                if (! is_array($data)) {
                    // json format is wrong
                    $errorMessage = 'json error (' . date('c') . ')' . PHP_EOL . PHP_EOL . $json;
                    if (file_exists($cachePath)) {
                        $errorMessage .= PHP_EOL . PHP_EOL . 'last call: ' . date('c', filemtime($cachePath));
                    }
                    @file_put_contents(dirname($cachePath) . $errorFile, $errorMessage);
                    $data = array('status' => 'error', 'errors' => array('json error'));
                    $json = json_encode($data);
                }
    
                if ($data['status'] == 'success') {
                    if (is_writable($cachePath)) {
                        // save data in cache file
                        @file_put_contents($cachePath, $json);
                    } else {
                        echo('<!-- file access error [v' . $scriptVersion . '] -->');
                    }
                } elseif(! in_array('wrongPlan', $data['errors'])) {
    
                    if (file_exists($cachePath)) {
                        // it used the old data
                        $tmp = json_decode(file_get_contents($cachePath), true);
    
                        if (is_array($tmp)) {
                            $data = $tmp;
                            touch($cachePath, time() - round($cachingTime / 10));
                            echo('<!-- from cache because errors [v' . $scriptVersion . '] -->');
                        }
                    } else {
                        echo('<!-- no caching -->');
                    }
                }
            } else {
                // get data from cache file
                $infoTime = $cachingTime;
                if (file_exists($cachePath)) {
                    $infoTime = ($cachingTime - (time() - filemtime($cachePath))) . '/' . $infoTime;
                }
                echo('<!-- from cache (' . $infoTime . ') -->');
                $data = json_decode(file_get_contents($cachePath), true);
            }
    
            // print aggregate rating html
            if ($data['status'] == 'success') {
                echo($data['aggregateRating']);
            } else {
                // sets the file as outdated
                @touch($cachePath, $cachingTime);
    
                $errorMessage = 'response error';
                if (isset($data['errors']) && is_array($data['errors'])) {
                    $errorMessage .= ' (' . implode(', ', $data['errors']) . ')';
                }
                $errorMessage .= ' [v' . $scriptVersion . ']';
    
                echo('<!-- ' . $errorMessage . ' -->');
            }
        } catch (Exception $e) {
            $errorMessage = 'exception' . PHP_EOL . PHP_EOL . $e->__toString();
            @file_put_contents(dirname($cachePath) . $errorFile, $errorMessage);
            echo('<!-- exception error [v' . $scriptVersion . '] -->');
        }
    } else {
        echo('<!-- no curl package installed [v' . $scriptVersion . '] -->');
    }
    
    ?>
     
  2. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.096
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Würde man mittels overload machen.
    Vermute bei GXUserComponents/overloads/categories

    Samples sind im Samples Ordner
     
  3. Kai Schoelzke

    Kai Schoelzke Beta-Held

    Registriert seit:
    30. März 2016
    Beiträge:
    3.804
    Danke erhalten:
    548
    Danke vergeben:
    248