We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 21893
    • 113 Posts
    Hallo,

    ich weiß gar nicht ob ich hier richtig poste aber ich versuchs mal.

    Nachdem ich es irgendwo gesehen habe, möchte ich meine Besucher auch gerne tageszeitabhängig begrüßen. Ich finde das hat etwas persönliches.

    Wie kann man das mit Modx umsetzen, z.B. in der Titelzeile eines Dokumentes?
    Ich habe noch keine Ahnung von PHP ( mache aber demnächst endlich einen Kursus smiley, aber ich denke das man so etwas wie Bedingungen braucht:
    "wenn Uhrzeit so: dann Guten Morgen"

    Hilft mir jemand von Euch?

    Schönes Wochenende

    Nudibranch

      Smile, it confuses people!
      • 29181
      • 480 Posts
      Hi,
      als erstes muss du ein Snippet erzeugen. Lass uns es Begruessung nennen. In der Code Feld kopierst du:

      <?php
      $pdate = strtotime('now');
      $hour=date('H',$pdate);
         switch($hour)
      		{
      		case 0:
      		case 1:
      		case 2:
      		case 3:
      		case 4:
      		case 5:
      		case 6:
      		case 7:
      		case 8:
      		case 9:
      		case 10:
      		case 11:
      		case 12:
      $tod ="Guten Morgen";
      break;
      		case 13:
      		case 14:
      		case 15:
      		case 16:			
      $tod = 'Guten Tag';
      			break;
      		case 17:
      		case 18:
      
      		case 19:
      		case 20:
      		case 21:
      			$tod = 'Guten Abend';
      			break;
      		case 22:
      		case 23:
      			$tod = 'Guten Nacht';
      			break;
      		default:
      			$tod = 'Hallo';
      			break;
      		}
      	return $tod;
      ?>


      und fügst es dort ein. Speichern. Dann in die Vorlage wo du es brauchst (oder der Inhalt) platzierst du [!Begruessung!] genau dort wo du es brauchst. Es gibt wahrscheinlich bessere Methoden, aber der hier ist ziemlich übersichtlich und auch ohne PHP Kenntnisse überschaubar.

      Falls du den gleichen Begrüssung mehrmals brauchst schaue nach Platzhaltern(placeholder) und ergänze die Code.

      Viel Spaß
      Taff
        Adrian Lawley: www.adrianlawley.com
        • 21893
        • 113 Posts
        Hallo Taff,

        erstmal vielen Dank für die schnelle Antwort.

        Ich hab alles eingefügt wie beschrieben und es klappt auch super, allerdings sagt meine Webseite "Guten Morgen". (Und es sind ja nicht alle meine Zuschauer Studenten smiley )

        Ich habe unter Konfiguration geschaut und festgestellt, dass der Server 2 Uhr hat. Also habe ich eine Zeitverscheibung angegeben, aber das ändert es leider nicht.
        Meine MODx Oberfläche gibt übrigens ganz korrekte Uhrzeiten aus für die Bearbeitung der Dokumente. (Auch schon vor der Zeitverschiebung)

        Muss ich jetzt meinen Serverbetreiber (ein Freund) nerven oder liegt es an etwas anderem?

        Vielen Dank schon mal

        Nudibranch
          Smile, it confuses people!
          • 29181
          • 480 Posts
          Wenn du die Zeitverschiebung bereits angegeben hast müssen wir das in die Code integrieren. Versuch mal:
          <?php
          $server_offset_time=intval($modx->config['server_offset_time']);
          $hour = strftime('%H', time()+$server_offset_time);
             switch($hour)
          		{
          		case 0:
          		case 1:
          		case 2:
          		case 3:
          		case 4:
          		case 5:
          		case 6:
          		case 7:
          		case 8:
          		case 9:
          		case 10:
          		case 11:
          		case 12:
          $tod ="Guten Morgen";
          break;
          		case 13:
          		case 14:
          		case 15:
          		case 16:			
          $tod = 'Guten Tag';
          			break;
          		case 17:
          		case 18:
          
          		case 19:
          		case 20:
          		case 21:
          			$tod = 'Guten Abend';
          			break;
          		case 22:
          		case 23:
          			$tod = 'Guten Nacht';
          			break;
          		default:
          			$tod = 'Hallo';
          			break;
          		}
          	return $tod;
          ?>
          

          Ich habe es ausprobiert und bei mir scheint es zu funktionieren.

          Deine Aufgabe ist es jetzt den Code zu erweitern das falls es der 21 November ist, der Skript sagt "Happy Birthday Taff", aber das kann bis nach deine Kurs warten.

          Viel Glück noch
          Taff
            Adrian Lawley: www.adrianlawley.com
            • 21893
            • 113 Posts
            mmmhhhh, leider noch immer nicht.

            Aber vielleicht bin ich zu müde, ich versuchs morgen nochmal. Am besten nerve ich erstmal den Serverbetreiber ;-)

            Die Erweiterung des Code für Deinen Geburtstag ist ne prima Idee. Ich lerne ja immer am besten an konkreten Aufgaben. Mal sehen, ob ich das am Ende des Kurses hinkriege.

            So long

            Gute Nacht (von Hand geschrieben)

            Nudibranch laugh
              Smile, it confuses people!
              • 29181
              • 480 Posts
              Nudibranch-
              Es tut mir leid, ich habe die Code durch

              $server_offset_time=intval($modx->config['server_offset_time']);


              ergänzt. Irgendwie ist er abhanden gekommen...Jetzt kannst du (hoffentlich) der Code aus meinen letzten Beitrag kopieren und einfügen.

              Zusätzlich hoffe ich das du mein Deutsch verstehen kannst wink

              All the best,
              Taff
                Adrian Lawley: www.adrianlawley.com
                • 21893
                • 113 Posts
                Hallo Taff,

                vielen Dank, jetzt funktioniert es super.

                PS: Dein Deutsch ist vermutlich besser als mein Englisch grin

                Beste Grüße von Nudibranch
                  Smile, it confuses people!