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


Begrüßung der Benutzer nach der Tageszeit. - Kevin - 01.02.2021

Ich würde gerne Gast Benutzer und registrierte Benutzer nach Tageszeit Begrüßen einen PHP code Habe ich da für 

<?php
// Begrüßung der Besucher

if (date("G") >= 0 && date("G") < 4) $tach = "Gute Nacht!";
if (date("G") < 12 && date("G") >= 4) $tach = "Guten Morgen";
if (date("G") <= 18 && date("G") >= 12) $tach = "Guten Tag";
if (date("G") >= 19) $tach = "Guten Abend";
echo $tach;
?>


Wie Baut man das am besten ein das es auch funktioniert 

PS Ich habe die Punkt 4.3 unserer Verhaltensregeln. Gelesen und möchte darauf aufmerksam machen, dass ich ein Mensch mit geistiger Behinderung und mit Legasthenie bin und einfach nicht besser schreiben kann, dass es solche Menschen wie mich gibt hat man wohl nicht mit einbezogen, wo man die Verhaltensregeln erstellt hatte 


RE: Begrüßung der Benutzer nach der Tageszeit. - [ExiTuS] - 01.02.2021

Das ist möglich, aber etwas komplizierter als gedacht.
Hier gibt es zwei Möglichkeiten:

1) Programmierung eines Plugin, welches die Variablen "welcome_guest" und "welcome_back" den Tageszeiten neu definiert und im Header-Template einfügt.

2) Eine Änderung im PHP-Code inkl. neuer Variablen im Sprachpaket.
Man könnte in der ./global.php an Zeile 530 (v1.8.24) ansetzen und folgenden Code ersetzen:
Code:
$lang->welcome_back = $lang->sprintf($lang->welcome_back, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
(Hier wird der welcome-Text aus dem Sprachpaket generiert.)

An dieser Stelle kann man die Abfrage der Tageszeit einbinden und unterschiedliche Variablen (neue) definieren, z.B.
Code:
if (date("G") >= 0 && date("G") < 4) $lang->welcome_back = $lang->sprintf($lang->welcome_back_night, ...);
if (date("G") < 12 && date("G") >= 4) $lang->welcome_back = $lang->sprintf($lang->welcome_back_morning, ...);
if (date("G") <= 18 && date("G") >= 12) $lang->welcome_back = $lang->sprintf($lang->welcome_back_day, ...);
if (date("G") >= 19) $lang->welcome_back = $lang->sprintf($lang->welcome_back_evening, ...);
Die neuen Variablen welcome_back_night, *_morning, *_day und *_evening müssen dann als neue Sprachvariable erstellt werden.

Das wäre nur eine simple Möglichkeit. Sicher gibt es noch Verbesserungspotential, auch was die Abfragen angeht.
Solltest du das verwirklichen wollen, können wir gern hier ansetzen und weiter einsteigen Wink

[ExiTuS]


RE: Begrüßung der Benutzer nach der Tageszeit. - Kevin - 01.02.2021

Ich würde da wirklich gern einsteigen gibt es eine docu Programmierung eines Plugin ?


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

Habe mal die Idee (gefällt mir sehr) schnell umgesetzt mit verschiedenen Texten:
Text 1 = 00:00 bis 04:00 Uhr
Text 1 = 04:00 bis 08:00 Uhr
Text 1 = 08:00 bis 12:00 Uhr
Text 1 = 12:00 bis 14:00 Uhr
Text 1 = 14:00 bis 18:00 Uhr
Text 1 = 18:00 bis 22:00 Uhr
Text 1 = 22:00 bis 00:00 Uhr

Kannst mal zu unterschiedlichen Zeiten hier nachsehen. Textfeld nach dem Counter!

Wenn es dir so zusagt musst Du nur ein PlugIn für das PHP-Include (suche ich Dir noch raus) einbinden. Dann müsste
a) der Username über das Templete + PHP-Datei
> $username <?php include ("datei.php"); ?>
b) Username direkt in der PHP-Datei definieren (weisich jedoch nicht wie).

Für die Variable ($Username) nach a oder b hat sicherlich hier jemand eine Lösung!

Vorteil meines Vorschlages:
a) kein Eingriff in bestehende PHP-Dateien des Forums
b) nur eine Zeile im Header-Template einzupflegen
c) die Texte und Zeiten können schnell via FTP angepasst werden
d) die PHP-Datei kann gar Datumsgesteuert ausgeführt werden

Für die Variable ($Username) nach a oder b hat sicherlich hier jemand eine Lösung!

Vorteil meines Vorschlages:
a) kein Eingriff in bestehende PHP-Dateien des Forums
b) nur eine Zeile im Header-Template einzupflegen
c) die Texte und Zeiten können schnell via FTP angepasst werden
d) die PHP-Datei kann gar Datumsgesteuert ausgeführt werden

Wenn gewünscht richte ich Dir dies gerne ein bzw. schreibe ein detailierte Anleitung dazu. Aber sehe es Dir jetzt erst mal ein/zwei Tage an.


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

Guten Morgen , ich möchte mich dem Thema anschließen, hört sich super an, ich hab mal das versucht was du hier gepostet hast, nur leider wird der Username nicht mehr angezeigt 

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";

gobal.php
ersetze zeile 530

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

ersetzt mit:

if (date("G") >= 0 && date("G") < 4) $lang->welcome_back = $lang->sprintf($lang->welcome_back_night, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
if (date("G") < 12 && date("G") >= 4) $lang->welcome_back = $lang->sprintf($lang->welcome_back_morning, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
if (date("G") <= 18 && date("G") >= 12) $lang->welcome_back = $lang->sprintf($lang->welcome_back_day, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);
if (date("G") >= 19) $lang->welcome_back = $lang->sprintf($lang->welcome_back_evening, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $lastvisit);

   

Woran kann dass liegen ? 
lg Tc4me
Arghhhh sorry ich Idi .... Sprachvariablen fehlt ja alles , so gehts 

Code:
goblale sprachdatei englisch und deutsch sie und du



$l['welcome_back_night'] = "<strong>Gute Nacht {1}</strong> - Letzter Besuch: {2}";
$l['welcome_back_morning'] = "<strong>Guten Morgen {1}</strong> - Letzter Besuch: {2}";
$l['welcome_back_day'] = "<strong>Guten tag {1}</strong> - Letzter Besuch: {2}";
$l['welcome_back_evening'] = "<strong>Guten Abend {1}</strong> - Letzter Besuch: {2}";


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

Danke


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

Bedenkt, dass sich date() auf die Serverzeit und nicht auf die im Forum eingestellte Zeitzone bezieht.


RE: Begrüßung der Benutzer nach der Tageszeit. - Kevin - 02.02.2021

Sony dass ich das jetzt fragen muss, wo finde ich die globale Sprachdatei englisch und deutsch sie und du Kann man mir da ein Tipp geben danke


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

Servus, vom Hauptverzeichnis 
inc/languages/englisch   da die global.lang.php

inc/languages/deutsch_sie   da die global.lang.php

inc/languages/deutsch_du  da die global.lang.php


ich habe es gleich unter (ca Zeile 38 mehr oder weniger sein)
$l['welcome_current_time'] = "<strong>Current time:</strong> {1}";

und in den deutschen  unter Zeile
$l['welcome_current_time'] = "<strong>Es ist:</strong> {1}";

eingefügt

lg


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

Habe es zum Test auch mal hier inkl. Includen einer PHP-Datei (wie in  meinem oben stehenden Beitrag geschrieben) umgesetzt.

Als Gast wird angezeigt "Hallo Gast: ....."
als registrierter User wird angezeigt "Willkommen (Username): ...."

Wenn nur die "angemeldeten" User angesprochen werden sollen, dann kann die IF-Bedingung entfallen. Die Formatierung des gesamten Textes kann nanch belieben durchgeführt werden.

Da es ein reines Testforum ist, darf sich beliebig registriert werden.


RE: Begrüßung der Benutzer nach der Tageszeit. - [ExiTuS] - 02.02.2021

Es freut mich, dass meine ungesteten Code-Schnipsel auf Anhieb funktionieren.

Wie von Stefan bereits erwähnt, wird die Zeitzone sowie Sommerzeit nicht berücksichtig.
Hier könnte man sich evtl. der my_date()-Funktion oder dessen Code-Zeilen bedienen, wo das Datum anhand benutzerdefinierter Offsets und DST berechnet wird - zu finden in ./inc/functions.php (Zeile 333ff / v1.8.24)

Die if-Abfrage der aktuellen Stunde kann ebenfalls etwas optimiert werden (hier Pseudocode):
Code:
if     (... <  4) { /* night */ }
elseif (... < 12) { /* morning */ }
elseif (... < 19) { /* day */ }
else { /* evening */ }

[ETS]