chCounter in phpBb3 einbinden

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
FRvN
Mitglied
Beiträge: 604
Registriert: 16.07.2009 13:43
Wohnort: Wankum
Kontaktdaten:

Re: chCounter in phpBb3 einbinden

Beitrag von FRvN »

Und schon mal so probiert?

Code: Alles auswählen

//chCounter
ob_start();
$chCounter_force_new_db_connection = TRUE; // <-- Statt FALSE
//$chCounter_page_title = $page_title; <-- und dies deaktiviert
include( '/www/htdocs/xxxxxxx/forum/counter/counter.php' ); //Hier den absoluten Pfad angeben!
$chCounter = ob_get_contents();
ob_end_clean();
//------------------------
Allround-phpBB.de - jung, frech, dynamisch...
Kein Support per PN oder eMail
Bluefly
Mitglied
Beiträge: 59
Registriert: 05.08.2009 19:09
Kontaktdaten:

Re: chCounter in phpBb3 einbinden

Beitrag von Bluefly »

Nein noch nicht.
Ich hatte eine Kopie von demNochmal in der Functions bei Generate page header stehen.(Stand die ganze Zeit in meinen Error logs)
Aber was ist an deinem besonders?
Ich habe einfach dieses "$chCounter_force_new_db_connection = FALSE;" Rausgenommen
Benutzeravatar
FRvN
Mitglied
Beiträge: 604
Registriert: 16.07.2009 13:43
Wohnort: Wankum
Kontaktdaten:

Re: chCounter in phpBb3 einbinden

Beitrag von FRvN »

Habe nur dies drin und seitdem Ruhe :D

Code: Alles auswählen

ob_start();
include( '/www/htdocs/xxxxxxx/forum/counter/counter.php' );
$chCounter = ob_get_contents();
ob_end_clean();
.
Allround-phpBB.de - jung, frech, dynamisch...
Kein Support per PN oder eMail
Bluefly
Mitglied
Beiträge: 59
Registriert: 05.08.2009 19:09
Kontaktdaten:

Re: chCounter in phpBb3 einbinden

Beitrag von Bluefly »

Ich habe das:

Code: Alles auswählen

  //chCounter
   ob_start();
   $chCounter_page_title = $page_title;
   include( '/xxx/counter/counter.php' ); //Hier den absoluten Pfad angeben!
   $chCounter = ob_get_contents();
   ob_end_clean();
   //------------------------
Achja und habe bei der Query-String-Bereinigung noch sid; hinzugefügt.
(Stand im forum von chcounter)
nemesisx69x
Mitglied
Beiträge: 13
Registriert: 08.01.2008 19:33

Re: chCounter in phpBb3 einbinden

Beitrag von nemesisx69x »

bei mir wird bei

Durchschnittlich Besucher pro Tag:
Durchschnittlich Seitenaufrufe pro Tag:

leider die Zahl für die gesamten Besucher und die gesamten Seitenaufrufe angezeigt. :-?

Woran kann das liegen?
Besucher gesamt: 4 • Besucher heute: 3 • Besucher gestern: 1 • Durchschnittlich Besucher pro Tag: 4
Seitenaufrufe gesamt: 79 • Seitenaufrufe heute: 59 • Seitenaufrufe gestern: 20 • Durchschnittlich Seitenaufrufe pro Tag: 79

Code: Alles auswählen

<!-- IF S_USER_LOGGED_IN --> 
   <h3><a href="http://xxx/chCounter/stats/index.php">{L_COUNTER2}</a></h3>
   <p>
      {L_VISITOR_ALL}&nbsp;<strong>{VISITOR_ALL}</strong> &bull;
      {L_VISITOR_TODAY}<strong>{VISITOR_TODAY}</strong>&nbsp; &bull;     
      {L_VISITOR_YESTERDAY}<strong>{VISITOR_YESTERDAY}</strong> &bull;
      {L_VISITOR_USER_DAY}<strong>{VISITOR_USER_DAY}</strong><br />       
      {L_VISITOR_PAGES_ALL}<strong>{VISITOR_PAGES_ALL}</strong> &bull;     
      {L_VISITOR_PAGES_TODAY}<strong>{VISITOR_PAGES_TODAY}</strong> &bull;         
      {L_VISITOR_PAGES_YESTERDAY}<strong>{VISITOR_PAGES_YESTERDAY}</strong> &bull;                  
      {L_VISITOR_PAGES_DAY}<strong>{VISITOR_PAGES_DAY}</strong><br />       
   </p>
<!-- ENDIF -->
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: chCounter in phpBb3 einbinden

Beitrag von Helmut »

Hallo nemesisx69x,

hm .... Ich kann dir da jetzt auch nichts genaues sagen, da mein Snippet ja nur die Einträge in der Datenbank ausliest und anzeigt. Hast du schon mal geschaut, ob es immer so ist dass "Besucher pro Tag" und "Besucher pro gesamt" der gleiche Wert angezeigt wird?

Wenn ja dann könnte das ggf. an den {VISITOR_*****} Einträgen liegen, da könnte vielleicht einer doppelt sein. Wenn nicht, dann beachte mal den Beitrag von mir http://www.phpbb.de/community/viewtopic ... 8#p1026568 und da besonders den Teil Wichtig. Sollter er dann trotzdem noch falsch anzeigen, dann ist es wohl ein Problem von chCounter selber.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
nemesisx69x
Mitglied
Beiträge: 13
Registriert: 08.01.2008 19:33

Re: chCounter in phpBb3 einbinden

Beitrag von nemesisx69x »

Besucher gesamt: 50 • Besucher heute: 22 • Besucher gestern: 13 • Durchschnittlich Besucher pro Tag: 50
Seitenaufrufe gesamt: 653 • Seitenaufrufe heute: 241 • Seitenaufrufe gestern: 188 • Durchschnittlich Seitenaufrufe pro Tag: 653
ich hab den code von bluefly in die function.php eingefügt, liegt es vielleicht daran? die query bereinigung ist drin :)

wenn ich auf die statistikseite von chCounter gehe wird bei Besucher pro Tag: 8,33 und bei den Seitenaufrufen pro Tag: 109,17 angezeigt, also der richtige Wert :-?
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: chCounter in phpBb3 einbinden

Beitrag von Helmut »

Hallo,

Da ich meinen Eingangspost nicht mehr bearbeiten kann, habe ich ihn noch einmal hierher kopiert und mit einigen Änderungen versehen !



Ich habe inzwischen eine Lösung für das Problem mit den Sprachvariablen gefunden, welche aber etwas Aufwendiger ist. Dazu gehe ich her und hole mir die Daten direkt aus der Datenbank und erzeuge selber die Anzeige, damit bin ich völlig Unabhängig vom chCounter. Um das zu bewerkstelligen sind einige Dateien zu erstellen und den Präfix der Tabellen vom chCounter zu ändern. Hier nun die Anleitung:

1. Den Präfix der Tabellen vom chCounter in der Datenbank ändern von chc_* nach phpbb3_chc_* (mit phpmyadmin). Dabei stellt phpbb3_ den Präfix des Forums dar. Dieser kann auch abweichend sein (z.B. phpbb_ , irgendwas_ , .....), das ist von den Angaben des Users bei der Installation des Forums abhängig.

2. Öffne die Datei config.inc.php im Verzeichnis includes/ vom chCounter und ersetze:

Code: Alles auswählen

	// Prefix of the chCounter database tables:
	// Präfix der chCounter Datenbanktabellen:
	// Préfixe des tableaux de la base de données du chCounter:
	'tables_prefix' => 'chc_'
mit folgendem Inhalt:

Code: Alles auswählen

	// Prefix of the chCounter database tables:
	// Präfix der chCounter Datenbanktabellen:
	// Préfixe des tableaux de la base de données du chCounter:
	'tables_prefix' => 'phpbb3_chc_'
3. In die constands.php folgendes am Ende vor ?> eintragen:

Code: Alles auswählen

//chCounter
define('CHC_DATA_TABLE',		$table_prefix . 'chc_data');
4. Öffne die prosilver/templates/index_body.html und finde:

Code: Alles auswählen

<!-- INCLUDE overall_footer.html -->
Füge davor ein:

Code: Alles auswählen

<!-- INCLUDE chcounter_body.html -->
5. Erstelle eine Datei im Verzeichnis prosilver/templates/ mit dem Namen chcounter_body.html und füge folgendes ein:

Code: Alles auswählen

<h3>{L_COUNTER2}</h3>
		<p>
		{L_VISITOR_ALL}&nbsp;<strong>{VISITOR_ALL}</strong>&nbsp;{COUNTER_START}<br />
		{L_VISITOR_TODAY}<strong>{VISITOR_TODAY}</strong>&nbsp; {L_VISITOR_TODAY_TIME}<strong>{VISITOR_TODAY_TIME}</strong> &bull;			
		{L_VISITOR_YESTERDAY}<strong>{VISITOR_YESTERDAY}</strong> &bull;			
		{L_VISITOR_MAX_ONLINE}<strong>{VISITOR_MAX_ONLINE}</strong>&nbsp; {L_VISITOR_MAX_ONLINE_TIME}<strong>{VISITOR_MAX_ONLINE_TIME}</strong> &bull;		
		{L_VISITOR_MAX_PER_DAY}<strong>{VISITOR_MAX_PER_DAY}</strong>&nbsp; {L_VISITOR_MAX_PER_DAY_TIME}<strong>{VISITOR_MAX_PER_DAY_TIME}</strong> &bull;
		{L_VISITOR_PAGES_ALL}<strong>{VISITOR_PAGES_ALL}</strong> &bull;			
		{L_VISITOR_PAGES_TODAY}<strong>{VISITOR_PAGES_TODAY}</strong> &bull;				
		{L_VISITOR_PAGES_YESTERDAY}<strong>{VISITOR_PAGES_YESTERDAY}</strong> &bull;			
		{L_VISITOR_PAGES_USER}<strong>{VISITOR_PAGES_USER}</strong> &bull;			
		{L_VISITOR_PAGES_USER_PAGE}<strong>{VISITOR_PAGES_USER_PAGE}</strong> &bull;				
		{L_VISITOR_TIME_DAY}<strong>{VISITOR_TIME_DAY}</strong> &bull;					
		{L_VISITOR_USER_DAY}<strong>{VISITOR_USER_DAY}</strong> &bull;		
		{L_VISITOR_PAGES_DAY}<strong>{VISITOR_PAGES_DAY}</strong> &bull;				
		{L_VISITOR_MAX_PAGES_DAY}<strong>{VISITOR_MAX_PAGES_DAY}</strong>&nbsp; {L_VISITOR_MAX_PAGES_DAY_TIME}<strong>{VISITOR_MAX_PAGES_DAY_TIME}</strong>		
		</p>
6. Erstelle eine Datei im Verzeichnis / mit dem Namen chcounter.php und füge folgendes ein:

Code: Alles auswählen

<?php
/**
*
* @author Original Author webmaster@selbsthilfeverband-inkontinenz.org
* 
*
* @version $Id: chcounter.php,v 0.0.2 2010/05/01 Exp $
* @copyright (c) 2010 Helmut Schreiber
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	die('Hacking Attempt!'); 
}

define('IN_PHPBB', true); // we tell the page that it's going to be using phpBB, this is important.
$phpEx = substr(strrchr(__FILE__, '.'), 1); // Set the File extension for page-wide usage.

// Language file (see documentation related to language files)
$user->setup('ch_counter');

//Select data from database

$sql = "SELECT * 
	FROM ". CHC_DATA_TABLE .'
	ORDER BY besucher_gesamt ASC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
	$visitor_all 	= $row['besucher_gesamt'];
	$visitor_today = $row['besucher_heute'];
	$visitor_today_time = $row['heute_timestamp'];
	$visitor_yesterday = $row['besucher_gestern'];
	$visitor_max_online = $row['max_online:anzahl'];
	$visitor_max_online_time = $row['max_online:timestamp'];
	$visitor_max_per_day = $row['max_besucher_pro_tag:anzahl'];
	$visitor_max_per_day_time = $row['max_besucher_pro_tag:timestamp'];
	$visitor_pages_all = $row['seitenaufrufe_gesamt'];
	$visitor_pages_today = $row['seitenaufrufe_heute'];
	$visitor_pages_yesterday = $row['seitenaufrufe_gestern'];
	$visitor_pages_user = $row['seitenaufrufe_pro_besucher:besucher'];
	$visitor_pages_user_page = $row['seitenaufrufe_pro_besucher:seitenaufrufe'];
	$visitor_time_day = $row['durchschnittlich_pro_tag:timestamp'];
	$visitor_user_day = $row['durchschnittlich_pro_tag:besucher'];
	$visitor_pages_day = $row['durchschnittlich_pro_tag:seitenaufrufe'];
	$visitor_max_pages_day = $row['max_seitenaufrufe_pro_tag:anzahl'];
	$visitor_max_pages_day_time = $row['max_seitenaufrufe_pro_tag:timestamp'];
		
	$counter_durchschnitt = (time() - gmmktime(0, 0, 0, gmdate('n', $visitor_time_day), gmdate('j', $visitor_time_day), gmdate('y', $visitor_time_day))) / 86400;	
}

	$template->assign_vars(array(
		'VISITOR_ALL'				=> $visitor_all,
		'VISITOR_TODAY'				=> $visitor_today,
		'VISITOR_TODAY_TIME'			=> $user->format_date($visitor_today_time),
		'VISITOR_YESTERDAY'			=> $visitor_yesterday,
		'VISITOR_MAX_ONLINE'			=> $visitor_max_online,
		'VISITOR_MAX_ONLINE_TIME'		=> $user->format_date($visitor_max_online_time),
		'VISITOR_MAX_PER_DAY'		=> $visitor_max_per_day,
		'VISITOR_MAX_PER_DAY_TIME'	=> $user->format_date($visitor_max_per_day_time),
		'VISITOR_PAGES_ALL'			=> $visitor_pages_all,
		'VISITOR_PAGES_TODAY'		=> $visitor_pages_today,		
		'VISITOR_PAGES_YESTERDAY'	=> $visitor_pages_yesterday,		
		'VISITOR_PAGES_USER'			=> $visitor_pages_user,
		'VISITOR_PAGES_USER_PAGE'		=> number_format(@round($visitor_pages_user_page / $counter_durchschnitt, 2),	2),	
		'VISITOR_TIME_DAY'			=> $user->format_date($visitor_time_day),		
		'VISITOR_USER_DAY'			=> number_format(@round($visitor_user_day / $counter_durchschnitt, 2), 2),	
		'VISITOR_PAGES_DAY'			=> number_format(@round($visitor_pages_day / $counter_durchschnitt, 2), 2),		
		'VISITOR_MAX_PAGES_DAY'		=> $visitor_max_pages_day,		
		'VISITOR_MAX_PAGES_DAY_TIME'	=> $user->format_date($visitor_max_pages_day_time),		
		'COUNTER_START'			=> sprintf($user->lang['COUNTER_START'], $user->format_date($config['board_startdate'], false, true)),		
	));

$db->sql_freeresult($result);

$template->set_filenames(array(
	'body' => 'chcounter_body.html')
);

?>
7. Erstelle eine Datei im Verzeichnis language/de/ mit dem Namen ch_counter.php und füge folgendes ein:

Code: Alles auswählen

<?php
/**
* DO NOT CHANGE
*/
if (empty($lang) || !is_array($lang))
{
    $lang = array();
}

// DEVELOPERS PLEASE NOTE
//
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
// translators to re-order the output of data while ensuring it remains correct
//
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
// equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine

//chCounter
$lang = array_merge($lang, array(
		'VISITOR_ALL'				=> 'Besucher gesamt',
		'VISITOR_TODAY'				=> 'Besucher heute: ',
		'VISITOR_TODAY_TIME'			=> 'am ',
		'VISITOR_YESTERDAY'			=> 'Besucher gestern: ',
		'VISITOR_MAX_ONLINE'			=> 'Besucher gesamt gleichzeitig Online: ',
		'VISITOR_MAX_ONLINE_TIME'		=> 'am ',
		'VISITOR_MAX_PER_DAY'		=> 'Besucher gleichzeitig Online pro Tag: ',
		'VISITOR_MAX_PER_DAY_TIME'	=> 'am ',
		'VISITOR_PAGES_ALL'			=> 'Seitenaufrufe gesamt: ',
		'VISITOR_PAGES_TODAY'		=> 'Seitenaufrufe heute: ',		
		'VISITOR_PAGES_YESTERDAY'	=> 'Seitenaufrufe gestern: ',		
		'VISITOR_PAGES_USER'			=> 'Seitenaufrufe pro Besucher: ',
		'VISITOR_PAGES_USER_PAGE'		=> 'Seitenaufrufe gesamt: ',		
		'VISITOR_TIME_DAY'			=> 'am ',		
		'VISITOR_USER_DAY'			=> 'Durchschnittlich Besucher pro Tag: ',		
		'VISITOR_PAGES_DAY'			=> 'Durchschnittlich Seitenaufrufe pro Tag: ',		
		'VISITOR_MAX_PAGES_DAY'		=> 'Max. Seitenaufrufe pro Tag: ',		
		'VISITOR_MAX_PAGES_DAY_TIME'	=> 'am ',		
		'COUNTER_START'			=> 'seit dem %s',
		'COUNTER2' 				=> 'Besucherstatistik',

));

?>
Achtung! Diese Datei unter UTF-8 ohne BOM abspeichern!


8. Öffne die Datei index.php aus dem Root Verzeichnis und finde darin

Code: Alles auswählen

include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Füge darunter ein

Code: Alles auswählen

include($phpbb_root_path . 'chcounter.' . $phpEx);
Damit sollte die einfache Besucherstatistik unterhalb den normalen Statistik zu sehen sein. Was alles Angezeigt wird, das kann nun frei bestimmt werden, auch das Style lässt sich nun ohne Probleme anpassen. 4seven, du kannst ja nochmal prüfen ob ich keinen Fehler bei den Sprachvariablen drinnen habe und der Text dazu passt.



@nemesisx69x
Ich habe den Fehler gefunden, in der Tabelle _chc_data in der Spalte "seitenaufrufe_gesamt" und der Spalte "durchschnittlich_pro_tag:seitenaufrufe" der gleiche Wert eingetragen wird. Ich habe mir das im chCounter angeschaut, da wird der Durchschnittswert aus den timestamp der Spalte "durchschnittlich_pro_tag:timestamp" erst kurz vor der Ausgabe berechnet.

Mir ist das noch gar nicht aufgefallen dass das nicht passt, da meine neue Homepage noch nicht online ist und sich bis jetzt auch keiner zu diesem Fehler gemeldet hatte. Ich habe oben die Änderungen eingebaut, du musst nur noch die chcounter.php mit dem neuen Code versehen. In der Sprachdatei war übrigens auch noch ein kleiner Fehler drinnen. Damit sollte es jetzt aber bei dir gehen.


Gruß Helmut
Zuletzt geändert von Helmut am 05.01.2010 15:31, insgesamt 1-mal geändert.
Ich bin nicht ganz dicht.... na und.
nemesisx69x
Mitglied
Beiträge: 13
Registriert: 08.01.2008 19:33

Re: chCounter in phpBb3 einbinden

Beitrag von nemesisx69x »

jetzt zeigt er mir zwar einen durchschnittswert an, der stimmt aber nicht mit dem von der chCounter seite überein.

phpBB3 Forum:
Durchschnittlich Besucher pro Tag: 7.04
Durchschnittlich Seitenaufrufe pro Tag: 93.63

chCounter Statistik Seite:
Besucher pro Tag: 7,57
Seitenaufrufe pro Tag: 100,86

ich habe die chcounter.php geändert und auch die Sprachdatei :)
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: chCounter in phpBb3 einbinden

Beitrag von Helmut »

Hallo nemesisx69x,

hm ... das sind ja schon nennenswerte Abweichungen bei dir.

Ich habe den Code von der chcounter.php noch einmal etwas angepasst, müsste nun stimmen. Bei mir zeigt er nur an der zweiten Stelle hinter dem Komma eine kleine Abweichung an. Mögliche Ursache ist vielleicht der Befehl @round welcher die Rundungen vornimmt. Da könnte die Version vom php und andere Faktoren eine Rolle spielen.

Hier mal der Original Code von der counter.php des Zählers:

Code: Alles auswählen

[...]

    $chC_laufzeit = ( CHC_TIMESTAMP - gmmktime(
                0,
                0,
                0,
                gmdate( 'n', $_CHC_VALUES['durchschnittlich_pro_tag:timestamp'] ),
                gmdate( 'j', $_CHC_VALUES['durchschnittlich_pro_tag:timestamp'] ),
                gmdate( 'y', $_CHC_VALUES['durchschnittlich_pro_tag:timestamp'] )
            )
        ) / 86400;

[...]

            'V_VISITORS_PER_DAY' => number_format( @round( $_CHC_VALUES['durchschnittlich_pro_tag:besucher'] / $chC_laufzeit, 2 ), 2, $_CHC_LANG['CONFIG']['decimal_separator'], $_CHC_LANG['CONFIG']['thousands_separator'] ),

[...] 
Mein Code ist mit dem praktisch identisch, somit müsste eigentlich schon das richtige Ergebniss rauskommen.

Wenn nicht, dann bin ich momentan auch überfragt, ich habe sonst nichts im Code gefunden wo es noch anders berechnet wird.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“