Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Begrüßung der Benutzer nach der Tageszeit.
#1
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 
Zitieren
#2
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]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
Zitieren
#3
Ich würde da wirklich gern einsteigen gibt es eine docu Programmierung eines Plugin ?
Zitieren
#4
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.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
Zitieren
#5
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
Zitieren
#6
Bedenkt, dass sich date() auf die Serverzeit und nicht auf die im Forum eingestellte Zeitzone bezieht.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
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
Zitieren
#8
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
Zitieren
#9
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.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
Zitieren
#10
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]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Pop Up mit Begrüßung oder Alternative... arzneimitteltalk.de 2 2.006 01.06.2009, 08:02
Letzter Beitrag: arzneimitteltalk.de