Show_No_Hidden_Users + Count_Hidden_Users_@_Guests

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

4seven hat geschrieben:Noch Ansätze für die viewonline.php vorhanden? Hab schon einiges gecheckt. Bis jetzt ohne Erfolg
Ok dann hier noch paar Changes für die viewonline (weil schon nen Tick anders)

Code: Alles auswählen

if( $hidden_users == 0 )
{
	$l_h_user_s = $lang['Hidden_users_zero_online'];
}
else if( $hidden_users == 1 )
{
	$l_h_user_s = $lang['Hidden_user_online'];
}
else
{
	$l_h_user_s = $lang['Hidden_users_online'];
}
Kann weg (wie gehabt), nur dann sollte man auch diese Zeile ändern

1 x suchen / ersetzen

Code: Alles auswählen

	'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users) . sprintf($l_h_user_s, $hidden_users), 
durch

Code: Alles auswählen

	'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users),
und aus der Zeile

Code: Alles auswählen

if ( $registered_users + $hidden_users == 0 )
kann das + $hidden_users raus (muss aber nicht)

Ab hier gehts erst richtig los -->

1 x suchen / ersetzen

Code: Alles auswählen

			if ( !$row['user_allow_viewonline'] )
			{
				$view_online = ( $userdata['user_level'] == ADMIN ) ? true : false;
				$hidden_users++;

				$username = '<i>' . $username . '</i>';
			}
			else
			{
				$view_online = true;
				$registered_users++;
			}

			$which_counter = 'reg_counter';
			$which_row = 'reg_user_row';
durch

Code: Alles auswählen

			if ( !$row['user_allow_viewonline'] )
			{
				if($userdata['user_level'] == ADMIN)
				{
					$registered_users++;
					$username = '<i>' . $username . '</i>';

					$which_counter = 'reg_counter';
					$which_row = 'reg_user_row';
				}
				else
				{
					$guest_users++;
					$username = $lang['Guest'];

					$which_counter = 'guest_counter';
					$which_row = 'guest_user_row';
				}
			}
			else
			{
				$registered_users++;

				$which_counter = 'reg_counter';
				$which_row = 'reg_user_row';
			}
			$view_online = true;
Viel Spass beim Rausfinden, ob das auch wirklich so passt --> :P

Versteckte sind a) wie Gäste, werden aber b) den Admins als kursiv Registrierte gezeigt / easy
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Hallo easygo

Hab mir den halben Vormittag und die halbe Nacht :roll: um die Ohren geschlagen und hab jetzt die Lösung. Hab nochmal intensive mad_mannes Ansatz studiert und auf ein paar Boards hin und her probiert. Hier das Ergebnis in Pos 2. Es scheint alles tadellos zu funktionieren. Allerdings werde ich versuchen, nochmals deine Ansätze zu überprüfen , so das man vielleicht sogar 3 kleine Mods daraus basteln kann, die die Userwünsche variabler bedienen. Doch erstmal die ersten beiden. Testen und Kritik erwünscht. Getestet wurden beide Mods(!) von mir ausreichend auf mehreren Boards. Aber man weiß ja nie :D


1. Show_No_Hidden_Users

(Versteckte Benutzer werden niemals angezeigt, auch nicht als Gäste. Admins sehen versteckte Benutzer in der User-Anzeige auf der Hauptseite)

Siehe Datei:
Show_No_Hidden_Users.txt

2. Count_Hidden_Users_@_Guests
Inspiriert von mad_manne

(Versteckte Benutzer werden als Gäste gezählt /angezeigt, wobei sie auf der Indexseite verweilen, wenn man als Gast in der "Wer ist Online" - Anzeige nachschaut. Der Admin sieht dort in einem seperatem Row, wer sich tatsächlich wo befindet.)


Zu Pos 2.

Code: Alles auswählen

----------------------------------------------
Count_Hidden_Users_@_Guests  - 07/ die 1te
-----------------------------------------------------

--------------------------------------------
Öffne
--------------------------------------------

/includes/page_header.php

----------------------------------------------
Finde
----------------------------------------------

   if ( $total_online_users == 0 )
   {
      $l_t_user_s = $lang['Online_users_zero_total'];
   } 

--------------------------------------------
Davor füge ein
--------------------------------------------

$guests_online = $guests_online + $logged_hidden_online; 

----------------------------------------------
Öffne ----------------------------------------
----------------------------------------------

/language/lang_german/lang_main.php

---------------------------------------------------
Finde und kommentiere markierte $lang - Zeilen aus
---------------------------------------------------

//
// Global Header strings
//
$lang['Registered_users'] = 'Registrierte Benutzer:';
$lang['Browsing_forum'] = 'Benutzer in diesem Forum:';
$lang['Online_users_zero_total'] = 'Insgesamt sind <b>0</b> Benutzer online: ';
$lang['Online_users_total'] = 'Insgesamt sind <b>%d</b> Benutzer online: ';
$lang['Online_user_total'] = 'Insgesamt ist <b>ein</b> Benutzer online: ';
$lang['Reg_users_zero_total'] = 'Kein registrierter, ';
$lang['Reg_users_total'] = '%d registrierte, ';
$lang['Reg_user_total'] = 'Ein registrierter, ';
// $lang['Hidden_users_zero_total'] = 'kein versteckter und ';
// $lang['Hidden_users_total'] = '%d versteckte und ';
// $lang['Hidden_user_total'] = 'ein versteckter und ';
$lang['Guest_users_zero_total'] = 'kein Gast.';
$lang['Guest_users_total'] = '%d Gste.';
$lang['Guest_user_total'] = 'ein Gast.';
$lang['Record_online_users'] = 'Der Rekord liegt bei <b>%s</b> Benutzern am %s.'; // first %s = number of users, second %s is the date.


..weiter unten dasselbe:


//
// Viewonline
//
$lang['Reg_users_zero_online'] = 'Es sind kein registrierter und '; // There are 5 Registered and
$lang['Reg_users_online'] = 'Es sind %d registrierte und ';
$lang['Reg_user_online'] = 'Es ist ein registrierter und '; // There are 5 Registered and
// $lang['Hidden_users_zero_online'] = 'kein versteckter Benutzer online.'; // 6 Hidden users online 
// $lang['Hidden_users_online'] = '%d versteckte Benutzer online.'; // 6 Hidden users online
// $lang['Hidden_user_online'] = 'ein versteckter Benutzer online.'; // 6 Hidden users online
$lang['Guest_users_online'] = 'Es sind %d Gste online.';
$lang['Guest_users_zero_online'] = 'Es sind keine Gste online.'; // There are 10 Guest users online
$lang['Guest_user_online'] = 'Es ist ein Gast online.';
$lang['No_users_browsing'] = 'Im Moment sind keine Benutzer im Forum.';

--------------------------------------------
(Bei Bedarf - thx an easygo) Suche
--------------------------------------------

$lang['Reg_users_zero_total'] = 'Kein registrierter, ';
$lang['Reg_users_total'] = '%d registrierte, ';
$lang['Reg_user_total'] = 'Ein registrierter, ';

--------------------------------------------
Ersetze mit
--------------------------------------------

$lang['Reg_users_zero_total'] = 'Kein Registrierter und ';
$lang['Reg_users_total'] = '%d Registrierte und ';
$lang['Reg_user_total'] = 'Ein Registrierter und ';

---------------------------------------------
Finde
----------------------------------------------

//
// That's all Folks!
// -------------------------------------------------

----------------------------------------------
Davor Füge ein
----------------------------------------------

//
// Show_no_Hidden_Users - Anfang
//
$lang['VISIBLE_FOR_ADMINS_ONLY'] = 'Nur für Admins sichtbar'; 

----------------------------------------------
Öffne ----------------------------------------
----------------------------------------------

/viewonline.php

----------------------------------------------
Finde
----------------------------------------------

$template->assign_vars(array(
	'L_WHOSONLINE' => $lang['Who_is_Online'],
	'L_ONLINE_EXPLAIN' => $lang['Online_explain'],

----------------------------------------------
Danach Füge ein
----------------------------------------------

'L_VISIBLE_FOR_ADMINS_ONLY' => $lang['VISIBLE_FOR_ADMINS_ONLY'],

---------------------------------------------
Finde
----------------------------------------------

//
// Get auth data
//
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);

----------------------------------------------
Danach Füge ein
----------------------------------------------


$hidden_as_guest = FALSE;

----------------------------------------------
Finde
----------------------------------------------

				$view_online = ( $userdata['user_level'] == ADMIN ) ? true : false;
				$hidden_users++;

				$username = '<i>' . $username . '</i>';
			}
			else
			{
				$view_online = true;
				$registered_users++;
			}

			$which_counter = 'reg_counter';
			$which_row = 'reg_user_row';
			$prev_user = $user_id;
		}
	}
	else
	{
		if ( $row['session_ip'] != $prev_ip )
		{
			$username = $lang['Guest'];
			$view_online = true;
			$guest_users++;

			$which_counter = 'guest_counter';
			$which_row = 'guest_user_row';
		}
	}

	$prev_ip = $row['session_ip'];

----------------------------------------------
Ersetze mit
----------------------------------------------

				if ( $userdata['user_level'] == ADMIN )
				{
					$username = '<i>' . $username . '</i>';
					$hidden_as_guest = FALSE;

					$which_counter = 'hidden_counter';
					$which_row = 'hidden_user_row';
					
					$hidden_users++;
				}
				else
				{
					$username =  $lang['Guest'];
					$hidden_as_guest = TRUE;

					$which_counter = 'guest_counter';
					$which_row = 'guest_user_row';
					
					$guest_users++;
				}

				$view_online = true;
				$prev_user = $user_id;
			}
			else
			{
				$view_online = true;
				$registered_users++;

				$which_counter = 'reg_counter';
				$which_row = 'reg_user_row';
				$prev_user = $user_id;
			}

		}
	}
	else
	{
		if ( $row['session_ip'] != $prev_ip )
		{
			$username = $lang['Guest'];
			$view_online = true;
			$guest_users++;
	
			$which_counter = 'guest_counter';
			$which_row = 'guest_user_row';
		}
	}

	$prev_ip = $row['session_ip'];	

----------------------------------------------
Finde
----------------------------------------------

		else
		{
			$location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']);
			$location = $forum_data[$row['session_page']];
		}

----------------------------------------------
Danach Füge ein
----------------------------------------------

		if ( $hidden_as_guest )
		{
			$location = $lang['Forum_index'];
			$location_url = "index.$phpEx";
		}	

----------------------------------------------
Finde
----------------------------------------------

$template->assign_vars(array(
	'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users) . sprintf($l_h_user_s, $hidden_users),
	'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guest_users))
);

---------------------------------------------
Danach Füge ein
----------------------------------------------

if ( $userdata['user_level'] == ADMIN )
{
	$template->assign_block_vars('switch_admin_viewing', array());
}

----------------------------------------------
Öffne ----------------------------------------
----------------------------------------------

/templates/Euer_Template/viewonline_body.tpl

----------------------------------------------
Finde
----------------------------------------------

<!-- END reg_user_row -->

----------------------------------------------
Danach Füge ein
----------------------------------------------

  <!-- Count_Hidden_Users_@_Guests - Anfang -->

  <!-- BEGIN switch_admin_viewing -->
  <tr>
  <td class="catSides" colspan="3" height="28"><span class="cattitle"><b>{TOTAL_HIDDEN_USERS_ONLINE}</b></span><span class="gensmall"><b>{L_VISIBLE_FOR_ADMINS_ONLY}</b></span></td>
  </tr>
  <!-- END switch_admin_viewing -->
  <!-- BEGIN hidden_user_row -->
  <tr>
  <td width="35%" class="{hidden_user_row.ROW_CLASS}">&nbsp;<span class="gen"><a href="{hidden_user_row.U_USER_PROFILE}" class="gen">{hidden_user_row.USERNAME}</a></span>&nbsp;</td>
  <td width="25%" align="center" nowrap="nowrap" class="{hidden_user_row.ROW_CLASS}">&nbsp;<span class="gen">{hidden_user_row.LASTUPDATE}</span>&nbsp;</td>
  <td width="40%" class="{hidden_user_row.ROW_CLASS}">&nbsp;<span class="gen"><a href="{hidden_user_row.U_FORUM_LOCATION}" class="gen">{hidden_user_row.FORUM_LOCATION}</a></span>&nbsp;</td>
  </tr>
  <!-- END hidden_user_row -->

  <!-- Count_Hidden_Users_@_Guests - Ende -->

----------------------------------------------
..to be continued ? ...
----------------------------------------------
Zuletzt geändert von 4seven am 24.04.2007 01:45, insgesamt 10-mal geändert.
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

4seven hat geschrieben:Hab mir den halben Vormittag und die halbe Nacht :roll: um die Ohren geschlagen und hab jetzt die Lösung. Hab nochmal intensive mad_mannes Ansatz studiert und auf ein paar Boards hin und her probiert. Hier das Ergebnis in Pos 2. Es scheint alles tadellos zu funktionieren. Allerdings werde ich versuchen, nochmals deine Ansätze zu überprüfen
Hä? Was wird das denn jetzt für ne abgefahrne Billigteilnummer ??

Wollte einfach nur wissen, ob es so passt (!) von 10 Bildschirmseiten :o Zusammenfassung war nicht die Rede.

Und wie ich sehe, hast du das Wesentliche erst übernommen und dann 2 Stunden
dran rumgespielt, aber gut! Was solls.. ich mein, so bist du ja auch zu dem Namen gekommen. :D

Shit happens! Dann muss ichs halt bei Gelegenheit selber mal austesten.
Aber komm mir nicht nochmal mit solchen Hilferufen daher..
4seven hat geschrieben:Noch Ansätze für die viewonline.php vorhanden? Hab schon einiges gecheckt. Bis jetzt ohne Erfolg
Please! Sonst überrollen mich noch die Tränen vor Lachen :/ easy
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Huch, warum Billigteilnummer *g

Es fehlte mir der nötige Input plus richtiger Ansatz und nix da mit 2 Stunden. Die Nacht war lang, meen Jung :D

Außerdem hab ich Listings studiert. Den entscheidenden Ansatz hast Du mir geliefert (jawohl). Oops, jetzt hab ich grad n Fehler entdeckt und oben gleich korrigiert, (das ist die Strafe *g) > es sollte natürlich Ersetze mit und nicht Danach Füge ein heißen 8)

Ich teste derweil weiter
:cookie:
'
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Du hast zuviel Code gepostet, was das Thema unnötig in die Länge zieht und unübersichtlich macht.
Es wäre besser die Datei bzw. den Code als .txt Datei abzuspeichern und dann hier einen Link zu posten - siehe auch KB:datei .

Bitte passe deinen Beitrag an, lies Dir den phpBB.de-Knigge und den Hinweis zur Fragestellung und Rechtschreibung durch und beachte diese zukünftig.
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Hallo Pyramide

Ich habe jetzt die Posts eingekürzt und 2 txt-Links statt Code gesetzt. Den letzten Code oben habe ich eingekürzt, was auch nötig war. Möchte ihn aber dennoch als weiteren Wegweiser stehen lassen, gewissermassen zum inspirieren, die zukünftigen kompletten Codes werde ich als txt posten.

lg
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Hallo nochmal an easygo

Wie Du siehst war ich nicht untätig. Den letzten Entwurf oben habe ich angepasst.

Die Auskommentierungen waren für das Count_Hidden_Users_@_Guests technisch komplett unnötig, also habe ich sie rausgenommen (Bei Pos. 1 werd ichs noch checken, ob man was raustreichen kann. Funktionieren tut es erst einmal)

Hatte mich bei Pos. 2 schon gefreut, aber dann schlug der Cache zu. Also, es sah nur Anfangs gut aus und dann gab es Ungereimtheiten. Dann kam mir eine kleine Eingebung. Seitdem läufts klasse. Also seit ca 3 Stunden, mit verschiedenen Browsern und IP's. Sieht gut aus :)

Ich bitte weiterhin um Kritik und Anregungen.

Die Kosmetik, wie die Anpassungen der Anzeigen...

Insgesamt sind xy Benutzer online: xy registrierte, xy versteckter und xy Gäste.

oder

Heute haben xy Benutzer diese Seite besucht :: xy registrierte, xy versteckte/r und xy Gäste. Davon xy innerhalb der letzten Stunde.

..sehe ich als kleinere Übung.

Mir geht es erstmal darum, das der Basiscode schlank und effektiv ist. :wink:
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Wer an einer alternativen Lösung interessiert ist, dem sei noch dieser Mod von easy wärmstens ans Herz gelegt :D
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“