Es ist auch möglich, das ohne eine Änderung den Designs zu machen.
Dazu erstelle am besten eine Datei in includes/class/ z.b. binlayer.php und füge in der loader.php ein, dass diese geladen wird (so wie die anderen (Klassen) Dateien, am besten ganz unten in der loader.php).
In der index.php dann vor
require_once ('include/contents/'.$menu->get_url());
folgendes einfügen
new BinLayer();
<?php
/**
* Class BinLayer
* @author Mairu
*/
class BinLayer
{
const TODAY = 'today';
const LAST_24_HOURS = 'last-24-hours';
/**
* Prüft, ob die IP im Zeitraum schon angemeldet war, wenn nicht wird der BinLayer angezeigt
* @param string $period Zeitraum, siehe Klassenkonstanten
*/
public function __construct($period = self::TODAY)
{
if (!isset($_SESSION['binlayer']) || $_SESSION['binlayer'] < time()) {
switch ($period) {
default:
$period = self::TODAY;
case self::TODAY:
$dateTime = new DateTime();
$dateTime->setTime(0, 0, 0);
$days = 1;
break;
case self::LAST_24_HOURS:
$dateTime = DateTime::createFromFormat('-1 day', time());
$days = 2;
break;
}
$ip = getip();
if (false === $this->checkIp($ip, $period)) {
$GLOBALS['ILCH_BODYEND_ADDITIONS'] .= <<<HTML
<script type="text/javascript" src="http://view.binlayer.com/view-XXXX.js"></script>
HTML;
}
$_SESSION['binlayer'] = $dateTime->modify('+' . $days . ' days')->getTimestamp();
}
}
/**
* Prüft, ob die IP im angegebenen Zeitraum verwendet wurde
*
* @param string $period Zeitraum, siehe Klassenkonstanten
* @return bool
*/
protected function checkIp($ip, $period)
{
list($year, $month, $day) = explode('-', date('Y-n-j'));
$ip = escape($ip, 'string');
switch ($period) {
default:
case self::TODAY:
$sql = 'SELECT COUNT(*) FROM prefix_stats WHERE yar = %d AND mon = %d AND day = %d AND ip ="%s"';
$sql = sprintf($sql, $year, $month, $day, $ip);
break;
case self::LAST_24_HOURS:
list($year24, $month24, $day24, $hour24) = explode('-', date('Y-n-j-G', strtotime('-1 day')));
$sql = <<<SQL
SELECT COUNT(*) FROM prefix_stats WHERE
((yar = %d AND mon = %d AND day = %d) OR (yar = %d AND mon = %d AND day = %d AND stunde >= %d))
AND ip ="%s"
SQL;
$sql = sprintf($sql, $year, $month, $day, $year24, $month24, $day24, $hour24, $ip);
break;
}
return db_count_query($sql) > 0;
}
}
PS: Ich hoffe es geht, hatte keine Zeit es zu testen.