Einbindung von Codeschnipseln

Aus Imperia Support Wiki

Hierbei handelt es sich um einen Mechanismus, um HTML-Code via HTTP in eine andere Seite einzubauen.

Je nach verwendeter Programmiersprache müssen Sie anderen Quelltext verwenden. Das generelle Procedere bleibt aber identisch.

  • Sie kriegen von BO URLs genannt, unter denen Codeschnipsel existieren.
  • Diese Codeschnipsel holen Sie regelmäßig ab, z.B. mittels Cronjob.
  • In dem Template Ihrer Applikation fügen Sie an entsprechender Stelle die von Ihnen abgeholten Codeschnipsel ein.

In PHP funktioniert folgendes Beispiel (hier auch ohne Cronjob):


/**
 * Get code snippet from external URL and store it in cache
 *
 * @param  string  $url  to fetch code from
 * @param  string  $tmpPath  where to store cached data. Optional, defaults to '/tmp'
 * @param  int     $ttl  how long the code is cached in minutes. Optional, defaults to 60 (minutes)
 * @return string  HTML with code snippet
 */
function getCodeSnippet ($url, $tmpPath = '/tmp', $ttl = 60)
{
    $tmpFileName = $tmpPath . '/' . md5($url) . '_' . basename($url);
    if (!file_exists($tmpFileName) || filemtime($tmpFileName) < (time() - ($ttl * 60)))
    {
        $content = file_get_contents($url);
        if (!empty($content))
        {
            file_put_contents($tmpFileName, $content);
            return $content;
        }
    }
    if (file_exists($tmpFileName))
    {
        return file_get_contents($tmpFileName);
    }
    else
    {
        throw new Exception ('No content found at ' . $url . ' and no cached version available.');
    }
}

echo(getCodeSnippet($url));