507 Zeilen
		
	
	
		
			Kein EOL
		
	
	
		
			16 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			507 Zeilen
		
	
	
		
			Kein EOL
		
	
	
		
			16 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
############################################## SEMMELSTATZ-interne Funktionen
 | 
						|
 | 
						|
### Encodierung der IP-Adresse durch simple arithmetische Operation
 | 
						|
    function sem_encodeIP($ip) {
 | 
						|
        $ip_parts = split("[.]", $ip);
 | 
						|
        $new_ip = ($ip_parts[0]+700) . "." . ($ip_parts[1]*2) . "." . ($ip_parts[2]+600) . "." . ($ip_parts[3]*3);
 | 
						|
        return $new_ip;
 | 
						|
    }
 | 
						|
 | 
						|
### Decodierung der IP-Adresse durch simple arithmetische Operation
 | 
						|
    function sem_decodeIP($ip) {
 | 
						|
        $ip_parts = split("[.]", $ip);
 | 
						|
        $new_ip = ($ip_parts[0]-700) . "." . ($ip_parts[1] / 2) . "." . ($ip_parts[2]-600) . "." . ($ip_parts[3]/3);
 | 
						|
        return $new_ip;
 | 
						|
    }
 | 
						|
 | 
						|
### Ist IP-Adresse codiert?
 | 
						|
    function sem_checkIfIPisEncoded($ip) {
 | 
						|
        $ip_parts = split("[.]", $ip);
 | 
						|
        if($ip_parts[0]>700) {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
### Auslesen der höchsten Post-ID
 | 
						|
    function sem_getMaxPostID() {
 | 
						|
        global $wpdb;
 | 
						|
        $maxpostid = $wpdb->get_var("SELECT MAX(ID) FROM ".$wpdb->posts." LIMIT 0,1");
 | 
						|
        return $maxpostid; //Ganzzahl
 | 
						|
    }
 | 
						|
 | 
						|
### Auslesen des User- bzw. Kommentarautornamen
 | 
						|
	function sem_getUsername() {
 | 
						|
        global $user_ID, $user_login, $isAdmin;
 | 
						|
 | 
						|
		get_currentuserinfo();
 | 
						|
 | 
						|
		if($user_ID > 0) {
 | 
						|
		    $useronline = $user_login;
 | 
						|
 | 
						|
            if(current_user_can('manage_options')) {
 | 
						|
                $isAdmin = 1;
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                $isAdmin = 0;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        elseif(isset($_COOKIE["comment_author_".COOKIEHASH])) {
 | 
						|
            $useronline = trim($_COOKIE["comment_author_".COOKIEHASH]);
 | 
						|
            $isAdmin = -1;
 | 
						|
		}
 | 
						|
		else {
 | 
						|
			$useronline = "Gast";
 | 
						|
			$isAdmin = -1;
 | 
						|
		}
 | 
						|
        return $useronline;
 | 
						|
    }
 | 
						|
 | 
						|
### Prüfen, ob Besucher ein Bot ist
 | 
						|
    function sem_AreYouBot($user_agent) {
 | 
						|
        global $isBot;
 | 
						|
        $bots = array(
 | 
						|
            'aipbot',
 | 
						|
            'amfibibot',
 | 
						|
            'appie',
 | 
						|
            'ask jeeves/teoma',
 | 
						|
            'aspseek',
 | 
						|
            'axadine',
 | 
						|
            'baiduspider',
 | 
						|
            'becomebot',
 | 
						|
            'blogcorpuscrawler',
 | 
						|
            'blogpulse',
 | 
						|
            'blogsnowbot',
 | 
						|
            'boitho.com',
 | 
						|
            'bruinbot',
 | 
						|
            'cerberian',
 | 
						|
            'cfnetwork',
 | 
						|
            'check_http',
 | 
						|
            'cipinetbot',
 | 
						|
            'claymont',
 | 
						|
            'cometsearch@cometsystems.com',
 | 
						|
            'converacrawler',
 | 
						|
            'cydralspider',
 | 
						|
            'digger',
 | 
						|
            'es.net_crawler',
 | 
						|
            'eventax',
 | 
						|
            'everyfeed-spider',
 | 
						|
            'exabot@exava.com',
 | 
						|
            'faxobot',
 | 
						|
            'findlinks',
 | 
						|
            'fireball',
 | 
						|
            'francis',
 | 
						|
            'gaisbot',
 | 
						|
            'gamekitbot',
 | 
						|
            'gazz@nttr.co.jp',
 | 
						|
            'geonabot',
 | 
						|
            'getrax crawler',
 | 
						|
            'gigabot',
 | 
						|
            'girafa.com',
 | 
						|
            'goforitbot',
 | 
						|
            'googlebot',
 | 
						|
            'grub-client',
 | 
						|
            'holmes',
 | 
						|
            'houxoucrawler',
 | 
						|
            'http://www.almaden.ibm.com/cs/crawler',
 | 
						|
            'http://www.istarthere.com',
 | 
						|
            'http://www.relevantnoise.com',
 | 
						|
            'httrack ?',
 | 
						|
            'ia_archiver',
 | 
						|
            'ichiro',
 | 
						|
            'iltrovatore-setaccio',
 | 
						|
            'inelabot',
 | 
						|
            'infoseek',
 | 
						|
            'inktomi.com',
 | 
						|
            'irlbot',
 | 
						|
            'jetbot',
 | 
						|
            'jobspider_ba',
 | 
						|
            'kazoombot',
 | 
						|
            'larbin',
 | 
						|
            'libwww',
 | 
						|
            'linkwalker',
 | 
						|
            'lmspider',
 | 
						|
            'mackster',
 | 
						|
            'mediapartners-google',
 | 
						|
            'microsoft url control',
 | 
						|
            'mj12bot',
 | 
						|
            'moreoverbot',
 | 
						|
            'mozdex',
 | 
						|
            'msnbot',
 | 
						|
            'msrbot',
 | 
						|
            'naverbot',
 | 
						|
            'netresearchserver',
 | 
						|
            'ng/2.0',
 | 
						|
            'np(bot)',
 | 
						|
            'nutch',
 | 
						|
            'objectssearch',
 | 
						|
            'ocelli',
 | 
						|
            'omniexplorer_bot',
 | 
						|
            'openbot',
 | 
						|
            'overture',
 | 
						|
            'patwebbot',
 | 
						|
            'php',
 | 
						|
            'phpdig',
 | 
						|
            'pilgrim html-crawler',
 | 
						|
            'pipeliner',
 | 
						|
            'pompos',
 | 
						|
            'psbot',
 | 
						|
            'python-urllib',
 | 
						|
            'quepasacreep',
 | 
						|
            'robozilla',
 | 
						|
            'rpt-httpclient',
 | 
						|
            'savvybot',
 | 
						|
            'scooter',
 | 
						|
            'search.ch',
 | 
						|
            'seekbot',
 | 
						|
            'semager',
 | 
						|
            'seznambot',
 | 
						|
            'sherlock',
 | 
						|
            'shelob',
 | 
						|
            'sitesearch',
 | 
						|
            'snapbot',
 | 
						|
            'snappreviewbot',
 | 
						|
            'speedy spider',
 | 
						|
            'sphere scout',
 | 
						|
            'stackrambler',
 | 
						|
            'steeler',
 | 
						|
            'surveybot',
 | 
						|
            'szukacz',
 | 
						|
            'technoratibot',
 | 
						|
            'telnet',
 | 
						|
            'themiragorobot',
 | 
						|
            'thesubot',
 | 
						|
            'thumbshots-de-bot',
 | 
						|
            'topicblogs',
 | 
						|
            'turnitinbot',
 | 
						|
            'tutorgigbot',
 | 
						|
            'tutorial crawler',
 | 
						|
			'twiceler',
 | 
						|
            'vagabondo',
 | 
						|
            'versus',
 | 
						|
            'voilabot',
 | 
						|
            'w3c_css_validator',
 | 
						|
            'w3c_validator',
 | 
						|
            'w3c-checklink',
 | 
						|
            'web downloader',
 | 
						|
            'webcopier',
 | 
						|
            'webcrawler',
 | 
						|
            'webfilter robot',
 | 
						|
            'west wind internet protocols',
 | 
						|
            'wget',
 | 
						|
            'wwweasel robot',
 | 
						|
            'wwwster',
 | 
						|
            'xaldon webspider',
 | 
						|
            'xenu',
 | 
						|
            'yahoo! slurp',
 | 
						|
            'yahoofeedseeker',
 | 
						|
            'yahoo-mmcrawler',
 | 
						|
            'zao',
 | 
						|
            'zipppbot',
 | 
						|
            'zyborg',
 | 
						|
        );
 | 
						|
        foreach($bots as $bot) {
 | 
						|
            if(stristr($user_agent, $bot) !== false) {
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
 | 
						|
### Referer nach Suchmaschinen-Queries und interner Suche prüfen und Suchstring extrahieren
 | 
						|
	function sem_getKeyword($referer) {
 | 
						|
		$keyword = @parse_url($referer);
 | 
						|
 | 
						|
		if (preg_match("/google\./i", $keyword["host"])) {
 | 
						|
			if (preg_match("/imgurl/i", $keyword["query"])) {
 | 
						|
				parse_str($keyword["query"],$q);
 | 
						|
				$keyword = substr($q["prev"],10);
 | 
						|
			}
 | 
						|
			else if (preg_match("/translate\./i", $keyword["host"])) {
 | 
						|
				parse_str($keyword["query"],$q);
 | 
						|
				$keyword = $q["q"];
 | 
						|
			}
 | 
						|
			else {
 | 
						|
				parse_str($keyword["query"],$q);
 | 
						|
				$keyword = $q["q"];
 | 
						|
			}
 | 
						|
			if($keyword == "") return; return "Google: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/search\.live\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["q"];
 | 
						|
			if($keyword == "") return; return "LiveSearch: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/bing\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["q"];
 | 
						|
			if($keyword == "") return; return "Bing: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/yahoo\./i", $keyword["host"])) {
 | 
						|
			if (preg_match("/images/i", $keyword["query"])) {
 | 
						|
				parse_str($keyword["query"],$q);
 | 
						|
				$keyword = $q["p"];
 | 
						|
			}
 | 
						|
			else {
 | 
						|
				parse_str($keyword["query"],$q);
 | 
						|
				$keyword = $q["p"];
 | 
						|
			}
 | 
						|
			if($keyword == "") return; return "Yahoo: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/aol\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["q"];
 | 
						|
			if($keyword == "") return; return "AOL: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/aolsvc\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["q"];
 | 
						|
			if($keyword == "") return; return "AOL: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/search\.msn\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["q"];
 | 
						|
			if($keyword == "") return; return "MSN: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/gmx\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["su"];
 | 
						|
			if($keyword == "") return; return "GMX: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/\.bild\.t\-/i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["query"];
 | 
						|
			if($keyword == "") return; return "BILD: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/t\-online\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["q"];
 | 
						|
			if($keyword == "") return; return "T-Online: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/suche\.web\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["su"];
 | 
						|
			if($keyword == "") return; return "WEB.de: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/suche\.lycos\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["query"];
 | 
						|
			if($keyword == "") return; return "Lycos: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/altavista\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["q"];
 | 
						|
			if($keyword == "") return; return "Altavista: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/alltheweb\./i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["q"];
 | 
						|
			if($keyword == "") return; return "alltheweb: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/technorati\.com\/search\//", $referer)) {
 | 
						|
			$q = preg_split("/technorati\.com\/search\//", $referer,-1,PREG_SPLIT_NO_EMPTY);
 | 
						|
			$keyword = $q[1];
 | 
						|
			if($keyword == "") return; return "Technorati: ".$keyword;
 | 
						|
		}
 | 
						|
		elseif (preg_match("/".$homehost."/i", $keyword["host"])) {
 | 
						|
			parse_str($keyword["query"],$q);
 | 
						|
			$keyword = $q["s"];
 | 
						|
			if($keyword == "") return; return "Interne Suche: ".$keyword;
 | 
						|
		}
 | 
						|
		else {
 | 
						|
			return;
 | 
						|
		}
 | 
						|
    }
 | 
						|
 | 
						|
### Anzahl der Datensätze in der statz-Tabelle
 | 
						|
    function sem_showNumStatzEntries() {
 | 
						|
        global $wpdb;
 | 
						|
        $numstatzentries = $wpdb->get_var("SELECT COUNT(id) FROM ".$wpdb->statz);
 | 
						|
        return $numstatzentries; // Zahl
 | 
						|
    }
 | 
						|
 | 
						|
### Aufgezeichnete Tage in der statz-Tabelle
 | 
						|
	function sem_countDaysInStatzTable() {
 | 
						|
		global $wpdb;
 | 
						|
		$firstdate = $wpdb->get_var("SELECT MIN(time) FROM ".$wpdb->statz." LIMIT 0,1");
 | 
						|
        if(!$firstdate) {
 | 
						|
            return 1;
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            $firstdate = strtotime($firstdate); $now = time();
 | 
						|
            $days = (int) (($now - $firstdate) / (60*60*24)+1);
 | 
						|
            return $days; // KOMPLETTE! Tage
 | 
						|
        }
 | 
						|
	}
 | 
						|
 | 
						|
### Wenn Tage in statz-Tabelle kleiner als Tage in Daily-Statz, dann nimm Tage in Daily-Statz
 | 
						|
	function sem_compareLimitDays2DailyStatz () {
 | 
						|
		global $wpdb;
 | 
						|
		$sem_options = get_option('semmelstatzR_options'); ### optionsarray auslesen
 | 
						|
		if (sem_countDaysInStatzTable() << $sem_options["statz_days_limit"]) {
 | 
						|
			$sem_options["statz_days_limit"] = sem_countDaysInStatzTable();
 | 
						|
			update_option("semmelstatzR_options", $sem_options);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
### Zeigt Copyright-Notiz an
 | 
						|
    function sem_showCopyright() {
 | 
						|
        print "<p class='copyright'>semmelstatzR ". SEMMELSTATZR_VERSION . " happily coded by <a target='_blank' href='http://php-backoffice.de'>PHP-Backoffice<br />
 | 
						|
		<a target='_blank' style='border:none;' href='http://sourceforge.net/projects/semmelstatz/'>
 | 
						|
		<img src='".get_option('siteurl')."/wp-content/plugins/semmelstatzR/img/statzR.png' /></a></p>";
 | 
						|
    }
 | 
						|
 | 
						|
### statz-Tabelle leeren (NICHT LÖSCHEN!!!)
 | 
						|
    function sem_truncateStatzTable() {
 | 
						|
        global $wpdb, $userip;
 | 
						|
        $wpdb->query('TRUNCATE TABLE '.$wpdb->statz);
 | 
						|
        sem_optStatzTable();
 | 
						|
		$wpdb->query("INSERT INTO `$wpdb->statz`(ip, time, referer, page, username) VALUES('127.0.0.1', NOW(),NULL,0,'statz-Tabelle geleert')");
 | 
						|
    }
 | 
						|
 | 
						|
### Obsolet, bleibt aber aus Kompatibilitätsgründen zu SEMMELSTATZ_DELETE
 | 
						|
    function sem_delOldRecords($days) {
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
### simpleEncoding für die GoogleChartAPI
 | 
						|
	function sem_encodeChartData($values) {
 | 
						|
 | 
						|
		$maxValue = max($values);
 | 
						|
		$simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
 | 
						|
		$chartData = "s:";
 | 
						|
		  for ($i = 0; $i < count($values); $i++) {
 | 
						|
			$currentValue = $values[$i];
 | 
						|
 | 
						|
			if ($currentValue > -1 && $maxValue <> 0) {
 | 
						|
			$chartData.=substr($simpleEncoding,61*($currentValue/$maxValue),1);
 | 
						|
			}
 | 
						|
			  else {
 | 
						|
			  $chartData.='_';
 | 
						|
			  }
 | 
						|
		  }
 | 
						|
		return $chartData;
 | 
						|
	}
 | 
						|
 | 
						|
### Datensätze älter als statz_recdays_limit-Tage löschen
 | 
						|
    function sem_delOutOfLimit() {
 | 
						|
        global $wpdb;
 | 
						|
		$sem_options = get_option('semmelstatzR_options'); ### optionsarray auslesen
 | 
						|
        $today = time(); $days = $sem_options["statz_recdays_limit"];
 | 
						|
        $enddatum = $today - ($days * 86400);
 | 
						|
        $enddatum = date("Y-m-d", $enddatum) . " 23:59:59";
 | 
						|
        $wpdb->query("DELETE FROM ".$wpdb->statz." WHERE time <= '".$enddatum."'");
 | 
						|
        sem_optStatzTable();
 | 
						|
    }
 | 
						|
 | 
						|
### Wenn AUTOMATISCHES LIMIT aktiviert, dann LIMITIERE und erhöhe NEXT_CRON
 | 
						|
    function sem_doCronStatzLimit() {
 | 
						|
        sem_delOutOfLimit();
 | 
						|
		$sem_options = get_option('semmelstatzR_options'); ### optionsarray auslesen
 | 
						|
        $statz_next_cron = $sem_options["statz_next_cron"] + 86400;
 | 
						|
		$sem_options["statz_next_cron"] = $statz_next_cron;
 | 
						|
        update_option("semmelstatzR_options", $sem_options);
 | 
						|
    }
 | 
						|
 | 
						|
### Konvertiert Strings von utf-8 in ISO-8859
 | 
						|
    function sem_encodeToIso($string) {
 | 
						|
        return mb_convert_encoding($string, "ISO-8859-1", mb_detect_encoding($string, "UTF-8, ISO-8859-1, ISO-8859-15", true));
 | 
						|
    }
 | 
						|
 | 
						|
### statz-Tabelle optimieren
 | 
						|
    function sem_optStatzTable() {
 | 
						|
        global $wpdb;
 | 
						|
        $wpdb->query("OPTIMIZE TABLE ".$wpdb->statz);
 | 
						|
    }
 | 
						|
 | 
						|
### Unter bestimmten Voraussetzungen den Vortag in die statzhist-Tabelle schreiben
 | 
						|
    function sem_writeYesterdayToHist() {
 | 
						|
        global $wpdb;
 | 
						|
        if(!$wpdb->get_var("SELECT date FROM ".$wpdb->statzhist." WHERE substring(date,1,10) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)")) {
 | 
						|
 | 
						|
            if($wpdb->get_var("SELECT COUNT(ip) FROM ".$wpdb->statz." WHERE substring(time,1,10) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)")) {
 | 
						|
 | 
						|
                $yesterdays = $wpdb->get_results("SELECT COUNT(ip) AS hits, COUNT(DISTINCT ip) AS visitors, COUNT(DISTINCT referer)
 | 
						|
                AS referers, substring(time,1,10) AS date FROM ".$wpdb->statz." WHERE substring(time,1,10) = DATE_SUB(CURDATE(),
 | 
						|
				INTERVAL 1 DAY) GROUP BY date");
 | 
						|
 | 
						|
                foreach ($yesterdays as $yesterday) {
 | 
						|
                    $date = $yesterday->date;
 | 
						|
                    $visitors = $yesterday->visitors;
 | 
						|
                    $hits = $yesterday->hits;
 | 
						|
                    $referers = $yesterday->referers;
 | 
						|
                }
 | 
						|
 | 
						|
                $sql = $wpdb->query("INSERT INTO ".$wpdb->statzhist." (date, referers, visitors, hits)
 | 
						|
				VALUES('$date', $referers, $visitors, $hits)");
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                $date = $wpdb->get_var("SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY)");
 | 
						|
                $sql = $wpdb->query("INSERT INTO ".$wpdb->statzhist." (date, referers, visitors, hits) VALUES('$date', 0, 0, 0)");
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
### Summen der vergangenen Tage in die statzhist schreiben */
 | 
						|
    function sem_writeOldDaysToHist() {
 | 
						|
        global $wpdb;
 | 
						|
        if(!$wpdb->get_var("SELECT date FROM ".$wpdb->statzhist." WHERE substring(date,1,10) <= DATE_SUB(CURDATE(), INTERVAL 1 DAY)")) {
 | 
						|
 | 
						|
            $theolddays = $wpdb->get_results("SELECT COUNT(ip) AS hits, COUNT(DISTINCT ip) AS visitors,
 | 
						|
			COUNT(DISTINCT referer) AS referers, substring(time,1,10) AS date FROM ".$wpdb->statz." WHERE
 | 
						|
			substring(time,1,10) <= DATE_SUB(CURDATE(), INTERVAL 1 DAY) GROUP BY date ORDER BY time ASC");
 | 
						|
 | 
						|
            foreach ($theolddays as $theoldday) {
 | 
						|
                $date = $theoldday->date;
 | 
						|
                $visitors = $theoldday->visitors; if(!$visitors) $visitors = 0;
 | 
						|
                $hits = $theoldday->hits; if(!$hits) $hits = 0;
 | 
						|
                $referers = $theoldday->referers; if(!$referers) $referers = 0;
 | 
						|
                $sql = $wpdb->query("INSERT INTO ".$wpdb->statzhist." (date, referers, visitors, hits)
 | 
						|
				VALUES('$date', $referers, $visitors, $hits)");
 | 
						|
            }
 | 
						|
        }
 | 
						|
	}
 | 
						|
 | 
						|
/**
 | 
						|
 * translate and return a string
 | 
						|
 * @uses wp-function __() and prefilled plugin gettextdomain
 | 
						|
 * 
 | 
						|
 * @param string $sValue string to translate
 | 
						|
 * @param string $sDomain gettextdomain
 | 
						|
 * @return string translated string 
 | 
						|
 */ 
 | 
						|
function semr_i18n($sValue, $sDomain = "semmelstatzR") {
 | 
						|
    return __($sValue, $sDomain);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * translate and echo a string
 | 
						|
 * @uses wp-function _e() and prefilled plugin gettextdomain
 | 
						|
 * 
 | 
						|
 * @param string $sValue
 | 
						|
 * @param string $sDomain 
 | 
						|
 * @return void
 | 
						|
 */
 | 
						|
function semr_i18ne($sValue, $sDomain = "semmelstatzR") {
 | 
						|
    _e($sValue, $sDomain);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * translate and return a plural or singular string based on an amount
 | 
						|
 * @uses wp-function _n() and prefilled plugin gettextdomain
 | 
						|
 * 
 | 
						|
 * @param string $sSingular
 | 
						|
 * @param string $sPlural
 | 
						|
 * @param type $iNumber
 | 
						|
 * @param string $sDomain
 | 
						|
 * @return string 
 | 
						|
 */
 | 
						|
function semr_i18np($sSingular, $sPlural, $iNumber, $sDomain = "semmelstatzR") {
 | 
						|
    return _n($sSingular, $sPlural, $iNumber, $sDomain);
 | 
						|
}
 | 
						|
 | 
						|
############################################## Ende SEMMELSTATZ-interne Funktionen
 | 
						|
?>
 |