MyBB.de Forum

Normale Version: Begrüßung der Benutzer nach der Tageszeit.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
PHP-Code:
//Begin Time welcome Tc4me
    
$uhrzeit gmdate($mybb->settings['timeformat'],TIME_NOW $mybb->user['timezone'] * 3600);
 if (
$uhrzeit >= && $uhrzeit 4

$lang->welcome_back $lang->sprintf($lang->welcome_back_nightbuild_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);

 elseif (
$uhrzeit 10 && $uhrzeit >= 4)

$lang->welcome_back $lang->sprintf($lang->welcome_back_morningbuild_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);

 elseif (
$uhrzeit <= 18 && $uhrzeit >= 10

$lang->welcome_back $lang->sprintf($lang->welcome_back_daybuild_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);

  else//if ($uhrzeit >= 19)

$lang->welcome_back $lang->sprintf($lang->welcome_back_eveningbuild_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
 }
 
//End Time welcome Tc4me 

So sollte die global.php danach ausssehen,  Wink
Top !
[attachment=12968]

Omega6 Wink
(05.02.2021, 06:10)tc4me schrieb: [ -> ]So sollte die global.php danach ausssehen,  Wink

Alles in allem eine echt saubere Sache. Kompliment.

Habe es mal umgesetzt und festgestellt, das wenn man anstelle
<18 und >10 = Text "Tag" = funktioniert
mal nimmt:
<12 und >10 = Text "Tag" = funktioniert
<14 und >12 = Text "Mahlzeit" = keine Funktion, es wird "Tag angezeigt.
Kann es sein dass da 0-12 = AM/PM ausgeführt wird anstelle von 0-24

[Edit:]
Fehler gefunden, es lag an meiner falsch eingestellten Zeitzone. Funktioniert nun perfekt. Danke
Ich möchte noch einmal darauf hinweisen, dass man diese "umfangreichen" if-Abfragen vereinfachen kann.
Wie hier bereits erwähnt wurde, braucht es absolut kein "if von und bis Stunde". Um alle Stunden abzufragen reicht entweder nur "< Stunde" oder "> Stunde" (je nach Reihenfolge).
Warum also macht ihr es euch komplizierter als nötig? Wink

Nebenbei. Wie man sieht, kommt man manches Mal nicht drum herum in den PHP-Dateien zu manipulieren. Also noch ein kleiner Tipp: Versucht besser die Zeilen so gut es geht bei zu behalten, so dass man sich auch weiterhin an Zeilenangaben innerhalb des Codes orientieren kann. Der gesamte Code ließe sich auch in ein/zwei Zeilen unterbringen und würde die Zeilen nicht verrutschen Smile

[ExiTuS]
Servus und Danke, jetzt hänge ich :-( , kannst du mir mal mit  "< Stunde" oder "> Stunde" (je nach Reihenfolge). einen kurzen Ansatz in meine Ausführung eingeben, damit ich es verstehe, leider reichen meine Kenntnisse jetzt Null aus . Danke Grüße Tc4me
PHP-Code:
//Begin Time welcome Tc4me
    $uhrzeit gmdate($mybb->settings['timeformat'],TIME_NOW $mybb->user['timezone'] * 3600);
 if (
$uhrzeit <= 10)

$lang->welcome_back $lang->sprintf($lang->welcome_back_morningbuild_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);

 elseif (
$uhrzeit <= 18

$lang->welcome_back $lang->sprintf($lang->welcome_back_daybuild_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);

  elseif ($uhrzeit <= 22

$lang->welcome_back $lang->sprintf($lang->welcome_back_eveningbuild_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
 }
 else
//if ($uhrzeit >= 22)

$lang->welcome_back $lang->sprintf($lang->welcome_back_nightbuild_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);

 
//End Time welcome Tc4me 

Dass mit der Stunde denke ich habe ich verstanden, :-)
Warum etwas ändern wenn es läuft?
Ich lass es so, Danke
1. Programmierrichtlinien / Konventionen
2. Weniger Code = bessere Performance (auch wenn es bei so wenig Code erst mal egal ist)
Habt ihr soetwas wie einen Geheimcode untereinander? Jetzt sprechen schon meherere von was geändert gehört, abe.
r keiner sagt wie. Wie Politiker, reden aber nichts sagen...😄
Auf der ersten Seite ist bereits erwähnt worden, wie man die if-Abfragen vereinfacht Smile
https://www.mybb.de/forum/thread-37646-p...#pid247383

Es ging nur darum, diesen Happen an Programmcode noch schlanker und effizienter zu machen.

[ExiTuS]
(08.02.2021, 11:24)[ExiTuS] schrieb: [ -> ]Auf der ersten Seite ist bereits erwähnt worden, wie man die if-Abfragen vereinfacht Smile
https://www.mybb.de/forum/thread-37646-p...#pid247383

Es ging nur darum, diesen Happen an Programmcode noch schlanker und effizienter zu machen.

[ExiTuS]

Rein vom optischen ist da durchaus switch-case schöner. 

Man könnte sowas machen wie (runtergeschrieben in 20 Sek, nicht getestet)
PHP-Code:
// aktuelle Stunde
$time 20;

switch (
$time) {
  case $time <= 5:
    echo "So früh schon wach?";
    break;
  case $time <= 10:
    echo "Guten Morgen";
    break;
  case $time >= 19:
    echo "Guten Abend";
    break;
  default:
    echo "Guten Tag!";

Seiten: 1 2 3 4 5