MyBB.de Forum
Begrüßung der Benutzer nach der Tageszeit. - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Begrüßung der Benutzer nach der Tageszeit. (/thread-37646.html)

Seiten: Seiten: 1 2 3 4 5


RE: Begrüßung der Benutzer nach der Tageszeit. - Gerti - 03.02.2021

Schnelle, einfache und effiziente Lösung für das von Kevin angeregte Vorhaben (ohne Eingriff in die PHP-Dateien von MyBB):

1. Voraussetzung
a) Dieses PlugIn in das Forum einbinden
a)
2. Anzeige des Zeitentexte
a) Füge an gewünschter Stelle z.B. in Templates & Styles > Templates > Dein Template > Header Templates >> Header
(Alternativ in dem von Dir gewünschten Template) diesen Code ein:
Code:
<if $mybb->user['usergroup'] != 1 then>
<b>{$lang->welcome_back}: <?php include ("./pfad/zeitentexte.php"); ?></b>
<else>
<b>{$lang->welcome_guest}: <?php include ("./pfad/zeitentexte.php"); ?></b>
</if>
b) Der erste Zweig ist für registrierte User, der zweite Zweig (else] für Gäste.

3. PHP-Datei mit uhrzeitdefinierten Texten
a) Speicher die PHP-Datei (siehe gepostetes Beispiel) im Ordner ./pfad/ als z.B. zeitentexte.php ab.
PHP-Code:
<?php
if (date('G') >= && date('G') <= 4$tach '"Es ist eigentlich zu früh zum Arbeiten ...Schlafstörungen?"';
if (
date('G') >= && date('G') <= 8$tach '"So früh am PC? ...herzlich willkommen!"';
if (
date('G') >= && date('G') <= 9$tach '"Es ist zwischen acht und neun Uhr!"';
if (
date('G') >= && date('G') <= 10$tach '"Es ist zwischen neun und zehn Uhr!"';
if (
date('G') >= 10 && date('G') <= 11$tach '"Es ist zwischen zehn und elf Uhr!"';
if (
date('G') >= 10 && date('G') <= 12$tach '"Es ist zwischen elf und zwölf Uhr!"';
if (
date('G') >= 12 && date('G') <= 13$tach '"Es ist zwischen zwölf und dreizehn Uhr!"';
if (
date('G') >= 13 && date('G') <= 14$tach '"Es ist zwischen dreizehn und vierzehn Uhr!"';
if (
date('G') >= 14 && date('G') <= 15$tach '"Es ist zwischen vierzehn und fünfzehn Uhr!"';
if (
date('G') >= 15 && date('G') <= 16$tach '"Es ist zwischen fünfzehn und sechzehn Uhr!"';
if (
date('G') >= 16 && date('G') <= 17$tach '"Es ist zwischen sechzehn und siebzehn Uhr!"';
if (
date('G') >= 17 && date('G') <= 18$tach '"Es ist zwischen siebzehn und achtzehn Uhr!"';
if (
date('G') >= 18 && date('G') <= 22$tach '"Es ist nach 18 Uhr ..mach mal Feierabend!"';
if (
date('G') >= 22$tach '"Nachtschicht?  ..geh doch endlich schlafen!"';
echo 
$tach;
?>
Vorteil:
b) Die PHP-Datei kannst Du schnell und einfach via FTP anpassen, ändern, individualisieren etc. ohne immer in das ACP zu gehen und die Templates aufrufen zu müssen.

Hinweise:
1. Bei MyBB-Updates ist lediglich der Punkt 2 zu beachten!
2. Du kannst z.B. für Gäste eine andere PHP-Datei (mit anderen Texten) definieren
3. Du kannst in der/den PHP-Dateien zusätzlich noch definieren:
> von Datum bis Datum zeige Texte a
> von Datum bis Datum zeige Texte b
> von Datum bis Datum zeige Texte c
> ist kein Datumsbereich erfüllt, wird nichts angezeigt
usw.

Demos (zeitlich begrenzt = nicht auf Dauer):
hier (URL ohne Benutzer = nur Anzeige)
oder
hier (ohne Registrierung = Gast, es kann sich nach belieben registriert werden um es mit Usernamen angezeigt zu bekommen. Ist ein reines Testforum)


RE: Begrüßung der Benutzer nach der Tageszeit. - tc4me - 03.02.2021

Hallo Gerti, ich dachte oder in den ersten Beiträgen steht ja bei Verwendung (date()  wird die Serverzeit und nicht die vom User verwendete zeitzone die er/sie im Forum verwendet, in Betracht gezogen, wie was wo wird da jetzt in dieser Version Sommer/Winterzeit bzw vom User eingestellte Zeitzone berücksichtigt? Und zweite Frage , ständig if ? ich bin echt ein Leie und was ist jetzt besser ? Elseif ... oder immer mit if ?

Danke im Vorraus

Grüsse Tc4me


RE: Begrüßung der Benutzer nach der Tageszeit. - StefanT - 03.02.2021

(03.02.2021, 10:26)tc4me schrieb: Hallo Gerti, ich dachte oder in den ersten Beiträgen steht ja bei Verwendung (date()  wird die Serverzeit und nicht die vom User verwendete zeitzone in Betracht gezogen, wie was wo wird da jetzt in deiner Version Sommer/Winterzeit bzw vom User eingestellte Zeitzone berücksichtigt?
Das hast du richtig erkennt, Gerti verlässt sich hier auf die serverseitig eingestellte Zeitzone.
(03.02.2021, 10:26)tc4me schrieb: Und zweite Frage , ständig if ? ich bin echt ein Leie und was ist jetzt besser ? Elseif ... oder immer mit if ?
elseif ist performanter und spart Abfragen. Sobald eine Abfrage wahr ist, werden alle weiteren nicht mehr ausgeführt. Du siehst in Beitrag 10, dass sich der Code vereinfacht. Es verhindert auch den Fehler, dass zur vollen Stunde 2 verschiedene Abfragen wahr sein können.


RE: Begrüßung der Benutzer nach der Tageszeit. - tc4me - 03.02.2021

Ok Super danke StefanT!!, dann hab ich es doch richtig verstanden, und im Grundsatz nicht anders ausser dass die global.php nicht verändert wird aber die header.tpl , für mich wäre das Ganze interessant, wenn die vom User verwendete Zeitzone berücksichtig wird, aber so ?, im Prinzip ist es für Mich dann schon egal was ich nehme, ich notiere mir alle Veränderungen die ich durchführe genauestens , und bezüglich Updates vom Mybb , naja so viel kommt ja nicht , und wenn oder sollte mal eine 1.9 oder 2.0 kommen, kannste das meiste sowieso in den Kübel schmeissen.

Kleiner Erfolg glaube ich , Also ich habe vieles probiert und bin auf dass gekommen: 

Bitte an StefanT , Schnapsnase , Gerti usw die sich auskennen .. schaut euch bitte dass mal an, es funktioniert bei mir super, habe egal welche Zeitzone ich im usercp einstelle, die richtige Begrüssung nach Tageszeit !!
Ich weiss aber nicht ob ich da was noch ändern muss /soll

ich habe dass jetzt in meiner global.php gändert und klar meine sprachdatein erzeugt
Code:
Zeile 530 global.php

Statt:
$lang->welcome_back = $lang->sprintf($lang->welcome_back, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);

dieses eingeben:

//Begin Time welcome Tc4me
$uhrzeit = gmdate($mybb->settings['timeformat'],TIME_NOW + $mybb->user['timezone'] * 3600);

if ($uhrzeit >= 0 && $uhrzeit < 4)
{
$lang->welcome_back = $lang->sprintf($lang->welcome_back_night, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
}
elseif ($uhrzeit < 10 && $uhrzeit >= 4)
{
$lang->welcome_back = $lang->sprintf($lang->welcome_back_morning, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
}
elseif ($uhrzeit <= 18 && $uhrzeit >= 10)
{
$lang->welcome_back = $lang->sprintf($lang->welcome_back_day, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
}
  else//if ($uhrzeit >= 19)
{
$lang->welcome_back = $lang->sprintf($lang->welcome_back_evening, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
}
//End Time welcome  Tc4me

               

Danke lg Tc4me
Code:
goblale sprachdatei englisch und deutsch sie und du

$l['welcome_back_night'] = "Gute Nacht";
$l['welcome_back_morning'] = "Guten Morgen";
$l['welcome_back_day'] = "Guten Tag";
$l['welcome_back_evening'] = "Guten Abend";


$l['welcome_back_night'] = "Good Night";
$l['welcome_back_morning'] = "Good Morning";
$l['welcome_back_day'] = "Good Day";
$l['welcome_back_evening'] = "Good Evening";

und die Sprachdateien


RE: Begrüßung der Benutzer nach der Tageszeit. - Omega6 - 04.02.2021

Hy, funktioniert tadelos! FRAGE: das danach - letzter Besuch : 16:20 .... kannst du das auch auf die aktuelle Zeit abändern?
Greets omega6


RE: Begrüßung der Benutzer nach der Tageszeit. - tc4me - 04.02.2021

Hallo, ja das sollte auch gehen, schaue mir dass später an, lg Tc4me


RE: Begrüßung der Benutzer nach der Tageszeit. - Gerti - 04.02.2021

Der Wunschgedanke ist für mich nicht nachvollziehbar.
Begründung:
Das wäre dann nicht mehr der "Dein letzter Besuch" sondern "Dein aktueller Besuch". Die aktuelle Uhrzeit (fortlaufend ...siehe meine Foren) wird jedoch dem Aussageattribut "letzter" nicht gerecht.


RE: Begrüßung der Benutzer nach der Tageszeit. - Omega6 - 04.02.2021

Hallo Gerti. Ist ja kein Wunsch eher eine Verbesserung und nachvollziehbar: letzter Besuch steht doch schon in der User-Cp Box vom Proportal, wozu brauche ich es nochmal in der oberen Leiste?
Wäre doch besser , wenn in der Leiste der Begrüssung statt letzter Besuch, ... es ist die oder die Uhrzeit

Omega6


RE: Begrüßung der Benutzer nach der Tageszeit. - tc4me - 04.02.2021

Ich habe es jetzt mal bei mir am Testforum versucht und es funktioniert :

Hier mein Weg : 
Code:
es kann statt , letzter Besuch = $lastvisit auf $timenow (jetzige Zeit ) geändert werden
################
Variablen ändern Deutsch Du und Sie :

$l['welcome_back_night'] = "<strong>Schöne Nacht {1}</strong>, es ist {2}";
$l['welcome_back_morning'] = "<strong>Guten Morgen {1}</strong>, es ist {2}";
$l['welcome_back_day'] = "<strong>Guten Tag {1}</strong>, es ist {2}";
$l['welcome_back_evening'] = "<strong>Guten Abend {1}</strong>, es ist {2}";

und Englische:

$l['welcome_back_night'] = "<strong>Good Night {1}</strong>. current time {2}";
$l['welcome_back_morning'] = "<strong>Good Morning {1}</strong>. current time {2}";
$l['welcome_back_day'] = "<strong>Good Day {1}</strong>. current time {2}";
$l['welcome_back_evening'] = "<strong>Good Evening {1}</strong>. current time {2}";

und in der globel.php kann statt , letzter Besuch = $lastvisit auf $timenow (jetzige Zeit ) geändert werden
################ sieht dann so aus

//Begin Time welcome Tc4me
    $uhrzeit = gmdate($mybb->settings['timeformat'],TIME_NOW + $mybb->user['timezone'] * 3600);
if ($uhrzeit >= 0 && $uhrzeit < 4)
{
$lang->welcome_back = $lang->sprintf($lang->welcome_back_night, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
}
elseif ($uhrzeit < 10 && $uhrzeit >= 4)
{
$lang->welcome_back = $lang->sprintf($lang->welcome_back_morning, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
}
elseif ($uhrzeit <= 18 && $uhrzeit >= 10)
{
$lang->welcome_back = $lang->sprintf($lang->welcome_back_day, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
}
  else//if ($uhrzeit >= 19)
{
$lang->welcome_back = $lang->sprintf($lang->welcome_back_evening, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
}
//End Time welcome Tc4me

#######
hoffe es klappt auch bei dir 
lg Tc4me


RE: Begrüßung der Benutzer nach der Tageszeit. - Omega6 - 04.02.2021

Smile Thx,  so wollte ich es haben Cool