Sunlog: Statistik
Da ich mehrfach darum gebeten wurde:
Das unten erwähnte Skript kann einfach als PHP-Datei im Root von Sunlog abgespeichert und in die Templates bzw. in die Datei "entry.php" mittels PHP-include()-Befehl eingebaut werden.
Zum Anpassen des Skriptes muß nur zu Beginn der Pfad zum Document-Root eingetragen werden.
Es ist zwar kein "schönes" Skript, aber es funktioniert...
<?php
/*
======================================================================
Titel : sunlog-statistik
Lizenz : GPL
Homepage : http://www.pepilog.de/
Autor : Pepino
Beschreibung : Anzeige von Sunlog-Statistik-Daten
======================================================================
*/
$pfad = "/pfad/zum/eigenen/root";
include_once($pfad."/cfg/config.inc.php");
// Anzahl Einträge
$pepi_query=mysql_query("SELECT count(*) AS anz_eintraege FROM $tb_entries") or die(mysql_error());
while($pepi_row = mysql_fetch_array($pepi_query))
{
$pepi_j = mysql_num_fields($pepi_query);
for($pepi_i=0;$pepi_i<$pepi_j;$pepi_i++)
{
$pepi_k = mysql_field_name($pepi_query,$pepi_i);
$$pepi_k = $pepi_row[$pepi_k];
}
}
// Anzahl Kommentare
$pepi_query=mysql_query("SELECT count(*) AS anz_kommentare FROM $tb_comments") or die(mysql_error());
while($pepi_row = mysql_fetch_array($pepi_query))
{
$pepi_j = mysql_num_fields($pepi_query);
for($pepi_i=0;$pepi_i<$pepi_j;$pepi_i++)
{
$pepi_k = mysql_field_name($pepi_query,$pepi_i);
$$pepi_k = $pepi_row[$pepi_k];
}
}
// Start-Datum
$pepi_query=mysql_query("SELECT date AS datum FROM $tb_entries ORDER BY id ASC LIMIT 1") or die(mysql_error());
while($pepi_row = mysql_fetch_array($pepi_query))
{
$pepi_j = mysql_num_fields($pepi_query);
for($pepi_i=0;$pepi_i<$pepi_j;$pepi_i++)
{
$pepi_k = mysql_field_name($pepi_query,$pepi_i);
$$pepi_k = $pepi_row[$pepi_k];
}
}
function pepilogGetTimeStamp($MySqlDate)
{
$date_array = explode(".",$MySqlDate);
$var_day = $date_array[0];
$var_month = $date_array[1];
$var_year = $date_array[2];
$var_timestamp = mktime(0,0,0,$var_month,$var_day,$var_year);
return($var_timestamp);
}
function pepilogGetDayDiff($ts_1, $ts_2)
{
if ($ts_1 > $ts_2) {
$var_days = ($ts_1 - $ts_2) / 86400; // 24 * 60 *60
} elseif ($ts_1 < $ts_2) {
$var_days = ($ts_2 - $ts_1) / 86400; // 24 * 60 *60
} else {
$var_days = 0;
}
return($var_days);
}
$diffdat1=pepilogGetTimeStamp($datum);
$diffdat2=time();
$differenz=floor(pepilogGetDayDiff($diffdat1,$diffdat2)) + 1; // plus 1 da auch der aktuelle Tag mitgezählt werden soll
if ($differenz == 1) $ant_tage = "$differenz Tag";
else $ant_tage = "$differenz Tage";
// =========== Ausgabe aller Daten ===========
print("$anz_eintraege Einträge: (".number_format(($anz_eintraege/$ant_tage), 2)." / Tag)<br>");
print("$anz_kommentare Kommentare: (".number_format(($anz_kommentare/$ant_tage), 2)." / Tag)<br>");
print("... seit $datum<br />");
print("($ant_tage)<br />");
// =========== Ausgabe aller Daten ===========
// Datum der letzten Änderung
$pepi_query=mysql_query("SELECT date AS last_entrie FROM $tb_entries ORDER BY id DESC LIMIT 1") or die(mysql_error());
while($pepi_row = mysql_fetch_array($pepi_query))
{
$pepi_j = mysql_num_fields($pepi_query);
for($pepi_i=0;$pepi_i<$pepi_j;$pepi_i++)
{
$pepi_k = mysql_field_name($pepi_query,$pepi_i);
$$pepi_k = $pepi_row[$pepi_k];
}
print("Letzter Eintrag: $last_entrie<br />");
}
?>
Sunlog: Prev-Next
Diese Sunlog-Erweiterung ermöglicht das Blättern zwischen den einzelnen Beiträgen.
Das unten erwähnte Skript kann einfach als PHP-Datei im Root von Sunlog abgespeichert und in die Templates bzw. in die Datei "entry.php" mittels PHP-include()-Befehl eingebaut werden.
Das Aussehen kann oben im Skript ($link_template, $prevnext_template) mit einigen HTML-Kentnissen an die eigenen Bedürfnisse angepasst werden.
<?php
require("cfg/config.inc.php");
$link_template = "<a href=\"/entry.php?id=<id>\" title=\"<title>\"><title></a>";
$prevnext_template = "<p class=\"center\"><< {prev} | <a href=\"/\" title=\"Aktuell\">Aktuell</a> | {next} >></p>";
$id = $_GET["id"];
// in Artikel
if (isset($id) && $id>0)
{
$prevnext_statement="SELECT id, title FROM $tb_entries WHERE id < '$id' ORDER BY id DESC LIMIT 1";
$prevnext_query=mysql_query($prevnext_statement) or die(mysql_error());
if ($prevnext_array= mysql_fetch_array($prevnext_query))
{
$id_prev = $prevnext_array["id"];
$title_prev = stripslashes($prevnext_array["title"]);
$prev_html = str_replace("<id>", $id_prev, $link_template);
$prev_html = str_replace("<title>", $title_prev, $prev_html);
}
else
{
$prevnext_statement="SELECT id, title FROM $tb_entries WHERE id > '$id' ORDER BY id DESC LIMIT 1";
$prevnext_query=mysql_query($prevnext_statement) or die(mysql_error());
if ($prevnext_array= mysql_fetch_array($prevnext_query))
{
$id_prev = $prevnext_array["id"];
$title_prev = stripslashes($prevnext_array["title"]);
$prev_html = str_replace("<id>", $id_prev, $link_template);
$prev_html = str_replace("<title>", $title_prev, $prev_html);
}
}
mysql_free_result($prevnext_query);
$prevnext_statement="SELECT id, title FROM $tb_entries WHERE id > '$id' ORDER BY id ASC LIMIT 1";
$prevnext_query=mysql_query($prevnext_statement) or die(mysql_error());
if ($prevnext_array= mysql_fetch_array($prevnext_query))
{
$id_next = $prevnext_array["id"];
$title_next = $prevnext_array["title"];
$next_html = str_replace("<id>", $id_next, $link_template);
$next_html = str_replace("<title>", $title_next, $next_html);
}
else
{
$prevnext_statement="SELECT id, title FROM $tb_entries WHERE id < '$id' ORDER BY id ASC LIMIT 1";
$prevnext_query=mysql_query($prevnext_statement) or die(mysql_error());
if ($prevnext_array= mysql_fetch_array($prevnext_query))
{
$id_next = $prevnext_array["id"];
$title_next = $prevnext_array["title"];
$next_html = str_replace("<id>", $id_next, $link_template);
$next_html = str_replace("<title>", $title_next, $next_html);
}
}
mysql_free_result($prevnext_query);
$prevnext = str_replace("{prev}", $prev_html, $prevnext_template);
$prevnext = str_replace("{next}", $next_html, $prevnext);
echo $prevnext;
}
?>