. * * $Id$ * */ /** * based upon semmelstatz * Copyright (c) 2005-2009 Andreas 'Redunzl' Mueller (redunzl@gmx.de) * * @license http://www.gnu.org/licenses/gpl-2.0.html * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (version 2) as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ ### Zeigt die letzten $num_posts-Posts an: Titel und absolutes Datum - CSS-id: #lastposts function sem_showLastPosts($num_posts = 10) { global $wpdb; $lastposts = $wpdb->get_results("SELECT ID, post_title FROM ".$wpdb->posts." WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_date DESC LIMIT 0, ".$num_posts); print "
"; if (empty($lastposts)) { print "... noch keine Beiträge"; } else { print "Die letzten ".$num_posts." Beiträge
"; foreach ($lastposts as $lastpost) { $posttitle = $lastpost->post_title; $permalink = get_permalink($lastpost->ID); $postdate = $lastpost->post_date; print "".$posttitle."
\n"; } } print "
"; } ### Zeigt die letzten $num_comments-Kommentare an: Autor und Post mit relativem Datum - CSS-id: #lastcomments function sem_showLastComments($num_comments = 10) { global $wpdb; $comments = $wpdb->get_results("SELECT comment_author, comment_ID, comment_post_ID, comment_date FROM ".$wpdb->comments." WHERE comment_approved = '1' ORDER BY comment_date DESC LIMIT 0, $num_comments"); print "
"; if (empty($comments)) { print "Keine Kommentare"; } else { print "Die letzten ".$num_comments." Kommentare
"; foreach ($comments as $comment) { $commentday = strtotime(substr($comment->comment_date,1,10)); $today = time(); $difference = ceil(($today - $commentday) / (60*60*24))-1; if($difference == 0) { $commentdate = "Heute um " . mysql2date("G:i", $comment->comment_date); } elseif($difference == 1) { $commentdate = "Gestern um " . mysql2date("G:i", $comment->comment_date); } elseif($difference == 2) { $commentdate = "Vorgestern um " . mysql2date("G:i", $comment->comment_date); } else { $commentdate = mysql2date("j. F G:i", $comment->comment_date); } print "$comment->comment_author@". get_the_title($comment->comment_post_ID) .", $commentdate
\n"; } } print "
"; } ### Zeigt die $num_reads meist gelesenen Posts an - CSS-id: #mostreads function sem_showMostReads($num_reads = 10) { global $wpdb; $mostreads = $wpdb->get_results("SELECT post_title AS posttitle, guid AS postid, hits AS hits FROM ".$wpdb->posts." WHERE hits != '0' GROUP BY postid ORDER BY hits DESC LIMIT 0, $num_reads"); print "
"; if (empty($mostreads)) { print "... noch keine Einträge"; } else { print "Die ".$num_reads." meist gelesenen Beiträge
"; foreach ($mostreads as $mostread) { $posttitle = $mostread->posttitle; $postid = $mostread->postid; //$permalink = get_permalink($mostread->postid); $hits = $mostread->hits; print "".$posttitle." (".$hits.")
\n"; } } print "
"; } ### Zeigt die $num_reads meist gelesenen Posts an - CSS-id: #mostreads - ACHTUNG: Das Ergebnis der Funktion basiert auf der statz-Tabelle function sem_showMostReadsOld($num_reads = 10) { global $wpdb; $mostreads = $wpdb->get_results("SELECT post_title AS posttitle, ".$wpdb->posts.".guid AS postid, COUNT(".$wpdb->statz.".page) AS count FROM ".$wpdb->posts.", ".$wpdb->statz." WHERE ".$wpdb->statz.".page = ".$wpdb->posts.".ID GROUP BY postid ORDER BY count DESC LIMIT 0, $num_reads"); print "
"; if (empty($mostreads)) { print "... noch keine Einträge"; } else { print "Die ".$num_reads." meist gelesenen Beiträge
"; foreach ($mostreads as $mostread) { $posttitle = $mostread->posttitle; $postid = $mostread->postid; //$permalink = get_permalink($mostread->postid); $count = $mostread->count; print "".$posttitle." (".$count.")
\n"; } } print "
"; } ### Zeigt die $num_commented meist kommentierten Posts an - CSS-id: #mostcommented function sem_showMostCommented($num_commented = 10) { global $wpdb; $mostcommented = $wpdb->get_results("SELECT guid, id, post_title, COUNT(*) AS count FROM ".$wpdb->comments.",". $wpdb->posts." WHERE comment_approved = '1' AND comment_post_id = id GROUP BY id, post_title ORDER BY count DESC LIMIT 0, $num_commented"); print "
"; if (empty($mostcommented)) { print "... noch keine Einträge"; } else { print "Die ".$num_commented." meist kommentierten Beiträge
"; foreach ($mostcommented as $key => $mostcommented) { $posttitle = $mostcommented->post_title; $count = $mostcommented->count; $postid = $mostcommented->guid; print "".$posttitle." (".$count.")
\n"; } } print "
"; } ### Zeigt einen Z�hler der Hits im jeweiligen Post. ACHTUNG: FUNKTIONIERT NUR IM LOOP (index.php, single.php) function sem_showPostHitsInLoop($postid) { global $wpdb; $hits = $wpdb->get_var("SELECT hits FROM $wpdb->posts WHERE ID = $postid LIMIT 0,1"); return $hits; } ### Anzahl aller Posts/Pages function sem_showTotalPosts() { global $wpdb; $totalposts = $wpdb->get_var("SELECT COUNT(ID) AS num FROM ".$wpdb->posts." WHERE post_status = 'publish' LIMIT 0,1"); return $totalposts; // Ganzzahl } ### Anzahl aller Kommentare function sem_showTotalComments() { global $wpdb; $totalcomments = $wpdb->get_var("SELECT COUNT(comment_ID) AS num FROM ".$wpdb->comments." WHERE comment_approved = '1' LIMIT 0,1"); return $totalcomments; // Ganzzahl } ### Anzahl aller User seit Beginn der Statzaufzeichnung function sem_showTotalUsers() { global $wpdb; $totalusers = $wpdb->get_var("SELECT SUM(visitors) FROM ".$wpdb->statzhist." LIMIT 0,1"); if(!$totalusers) $totalusers = 0; return $totalusers; // Ganzzahl } ### Anzahl User pro Tag im Durchschnitt function sem_showAverageUserPerDay() { $averageuser = ceil(sem_showTotalUsers() / sem_showStatzDays()); return $averageuser; } ### Datum des 1. Posts = Blogstart function sem_showFirstPostDate() { global $wpdb; $firstpostdate = $wpdb->get_var("SELECT MIN(post_date) FROM ".$wpdb->posts." WHERE post_status = 'publish' AND post_date != '0000-00-00 00:00:00' LIMIT 0,1"); $firstpostdate = mysql2date("j.n.Y", $firstpostdate); return $firstpostdate; // String T.M.JJJJ } ### Datum des 1. Kommentars function sem_showFirstCommentDate() { global $wpdb; $firstcommentdate = $wpdb->get_var("SELECT MIN(comment_date) FROM ".$wpdb->comments." WHERE comment_approved = '1' AND comment_date != '0000-00-00 00:00:00' LIMIT 0,1"); $firstcommentdate = mysql2date("j.n.Y", $firstcommentdate); return $firstcommentdate; // String T.M.JJJJ } ### Anzahl der Kommentierer nach Nicknamen function sem_showNumCommenters() { global $wpdb; $totalcommenters = $wpdb->get_var("SELECT COUNT(DISTINCT comment_author) FROM ".$wpdb->comments." WHERE comment_approved = '1' LIMIT 0,1"); if(!$totalcommenters) $totalcommenters = 0; return $totalcommenters; // Ganzzahl } ### Blog besteht seit x Tagen function sem_showPostDays() { global $wpdb; $firstdate = $wpdb->get_var("SELECT MIN(post_date) AS date FROM ".$wpdb->posts." WHERE post_status = 'publish' AND post_date != '0000-00-00 00:00' LIMIT 0,1"); $firstdate = strtotime($firstdate); $now = time(); $blogdays = (int) (($now - $firstdate) / (60*60*24)); $blogdays = $blogdays + 1; return $blogdays; // Ganzzahl } ### Tage seit 1. Kommentar function sem_showCommentDays() { global $wpdb; $firstdate = $wpdb->get_var("SELECT MIN(comment_date) AS date FROM ".$wpdb->comments." LIMIT 0,1"); $firstdate = strtotime($firstdate); $now = time(); $commentdays = (int) (($now - $firstdate) / (60*60*24)); $commentdays = $commentdays + 1; return $commentdays; // Ganzzahl } ### durchschn. Posts pro Tag function sem_showPostsPerDay() { global $wpdb; $postsperday = (int) sem_showTotalPosts() / (int) sem_showPostDays(); return $postsperday; // Ganzzahl } ### durchschn. Kommentare pro Tag function sem_showCommentsPerDay() { global $wpdb; $commentsperday = (int) sem_showTotalComments() / (int) sem_showCommentDays(); return $commentsperday; // Ganzzahl } ### Startdatum der Gesamtstatistik (Basis: statzhist) function sem_showStatzStartDate() { global $wpdb; $statzhiststartdate = $wpdb->get_var("SELECT MIN(date) FROM ".$wpdb->statzhist." WHERE date != '0000-00-00 00:00' LIMIT 0,1"); $statzhiststartdate = mysql2date("j.n.Y", $statzhiststartdate); // if(!$statzhiststartdate) $statzhiststartdate= "xx.xx.xxxx"; return $statzhiststartdate; // String T.M.JJJJ } ### Dauer der Statistikaufzeichnung in Tagen (Basis: statzhist) function sem_showStatzDays() { global $wpdb; $firstdate = $wpdb->get_var("SELECT MIN(date) FROM ".$wpdb->statzhist." LIMIT 0,1"); if(!$firstdate) { return 1; } else { $firstdate = strtotime($firstdate); $now = time(); $statzdays = (int) (($now - $firstdate) / (60*60*24)); return $statzdays; // Ganzzahl } } ### Anzahl der Online-Besucher - Verweildauer in den Einstellungen function sem_showNumUsersOnline() { global $wpdb; $sem_options = get_option('semmelstatzR_options'); ### optionsarray auslesen $onlinetime = $sem_options["statz_online_time"]; $numonline = $wpdb->get_var("SELECT COUNT(DISTINCT ip) FROM ".$wpdb->statz." WHERE time > Now() - INTERVAL ".$onlinetime." SECOND"); return $numonline; // Ganzzahl } ### Anzahl der heutigen Besucher function sem_showUsersToday() { global $wpdb; $today = date("Y-m-d"); $todayusers = $wpdb->get_var("SELECT COUNT(DISTINCT ip) FROM ".$wpdb->statz." WHERE time >= '$today' LIMIT 0, 1"); return $todayusers; } ### Anzahl der gestrigen Besucher function sem_showUsersYesterday() { global $wpdb; $yesterdaysusers = $wpdb->get_var("SELECT visitors FROM ".$wpdb->statzhist." WHERE date = substr(DATE_SUB(NOW(), INTERVAL 1 DAY),1,10) LIMIT 0, 1"); return $yesterdaysusers; } ##################################################### Ende TEMPLATE-Funktionen ?>