Ankündigung

Einklappen
Keine Ankündigung bisher.

Kalender Event Darstellungsfehler bei Datum und Zeit

Einklappen
X
Einklappen
Momentan aktive Benutzer in diesem Thema: 1 (0 Benutzer und 1 Gäste)
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Kalender Event Darstellungsfehler bei Datum und Zeit

    Hallo Leute!

    Ich kämpfe schon länger mit einem Problem und hoffe dass jemand von euch mir helfen kann ...

    Meine Ausgangslage: vB 5.5.0, Default vB5 Style

    Ich habe erst vor kurzem das Update auf die Vers. 5.5.0 durchgeführt. Seit dem Update funktioniert die Anzeige von Datum und Uhrzeit für den Kalender nicht mehr. Alle anderen Zeitdarstellungen stimmen allerdings.

    Hier die Bilder worum es geht:

    Ein angemeldeter User:
    (Datum und Urzeit stimmt)

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Kalender_angemeldeter User.jpg
Ansichten: 48
Größe: 53,4 KB
ID: 2193

    Das gleiche bei dem Gast User:
    (Es wird das % Zeichen dargestellt - zB Beginnzeit %23.%02.%19 %09:%Feb)
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Kalender_Gast User.jpg
Ansichten: 41
Größe: 54,3 KB
ID: 2194

    Das gleiche bei einem Gast User, nach der Sprachumschaltung auf ENG:
    (hier stimmt es wieder)
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Kalender_Gast User_ENG.jpg
Ansichten: 39
Größe: 63,8 KB
ID: 2195

    Ich habe bereits einige Versuche mit Konfigurationsänderungen durchgeführt - diese endeten darin, dass
    A - Die komplette Anzeige ist auf englisch
    B - Der Kalender wird richtig angezeigt, aber bei den anderen Bereichen wird die Variable angezeigt. (z.B. Dabei seit d-m-y)
    C - Alle Anzeigen sind richtig, nur der Kalender wird mit % dargestellt.



    Wenn ich in der Style-Verwaltung auf "Aktualisierte Templates suchen" gehe bekomme ich die Meldung "Alle Templates sind aktuell"

    Im Bereich "Sprachen & Phrasen" habe ich schon versucht "Alle Sprachen neu erstellen" - auch erfolglos.

    Ich hoffe jemand von euch kann mir weiterhelfen. Da nur 5 Anhänge zulässig sind kommt meine Konfiguration im nächsten Beitrag.

    Danke!

    LG Yoshi

    Themenstarter
    #2
    Und hier nun noch meine Konfiguration:

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Konfig DATUM.jpg
Ansichten: 27
Größe: 90,4 KB
ID: 2197

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Konfig Sprache.jpg
Ansichten: 25
Größe: 85,8 KB
ID: 2199

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Konfig Sprache ENG.jpg
Ansichten: 24
Größe: 80,6 KB
ID: 2198

    Kommentar


      #3
      Hallo Yoshi,

      welche Standardsprache hast Du denn aktiviert (.../admincp/options.php?do=options&dogroup=stylelang)?
      Wenn ein Benutzer eine andere Anzeige als ein Gast angezeigt bekommt und sich die Anzeige bei Umstellung der Sprache auch ändert gehe ich von einem Problem in diese Richtung aus.
      Du solltest in der englischen Sprache auch alle Zeit- und Datums-Felder füllen, da dies immer die Rückfallsprache ist... auch wenn diese inaktiv ist.
      It`s nice to be important but it`s more important to be nice!

      Kommentar


        Themenstarter
        #4
        Hallo delicjous !

        Danke für Deine rasche Antwort!

        Als Standardsprache habe ich Deutsch (Du) konfiguriert.
        Als Standardstyle Default vB5 Style
        Benutzer dürfen Style ändern - nein

        Ich habe auch schon mal versucht die Variablen bei der englischen Spracheinstellung einzufügen - ohne Erfolg. Laut dem was ich gelesen habe sollte er aber wenn nix eingetragen ist englisch default nehmen. (Bei Lokale Sprache) - Falls das stimmt ?

        Was ich auch noch nicht ganz verstehe - was ist der Unterschied zwischen d-m-y und %d-%m-%y ?

        Was macht das % Zeichen anders ?

        Danke für die Hilfe, LG Yoshi

        Kommentar


          #5
          Der Unterschied ist, dass die Darstellung d-m-y nur ohne eine vorhandene local-Einstellung (z.B. de_DE) verwendet werden sollte und %d-%m-%y und von der local-Einstellung automatisch das Format übernimmt. Ich habe das gerade mal hier im Forum gegen geprüft und das scheint tatsächlich ein Fehler im code zu sein. Das Datum wird über die Event-API und die User-API beschafft und verwendet nicht die üblichen Template-Variablen für ein Datum. Ich prüfe das mal und melde es bei vB.

          Schneller Fix:
          Datei core/vb/api/content/event.php öffnen und nach getEventDateTimeStr suchen (rel. weit unten).
          Im folgenden PHP an genau der Stelle wie unten im code corehack Sart - corehack End einfügen.

          Hinter:

          PHP-Code:
           $dateformat $options['dateformat'];
                  } 
          das einfügen:

          PHP-Code:
          //corehack START- delicjous -- Fix Event-Dateformat for guests
                  
          if ($userinfo['userid'] == 0)
                  {
                      
          $dateformat 'd.m.Y';
                  }
          //corehack END- delicjous -- Fix Event-Dateformat for guests 
          PHP-Code:
              public function getEventDateTimeStr($timestamp$allday$ignoreDST)
              {
                  
          $userAPI vB_Api::instance("user");
                  
          // based on template runtime datetime() function & vB_Api_vB4_CMS
                  
          $userinfo $userAPI->fetchUserinfo();
          $testit['userinfo'] = $userinfo;
                  
          $options vB::getDatastore()->getValue('options');
                  if (
          $userinfo['lang_dateoverride'] != '')
                  {
                      
          $dateformat $userinfo['lang_dateoverride'];
                  }
                  else
                  {
                      
          $dateformat $options['dateformat'];
                  }
          //corehack START- delicjous -- Fix Event-Dateformat for guests
                  
          if ($userinfo['userid'] == 0)
                  {
                      
          $dateformat 'd.m.Y';
                  }
          //corehack END- delicjous -- Fix Event-Dateformat for guests

                  
          $timeformat "";
                  if (!
          $allday)
                  {
                      if (
          $userinfo['lang_timeoverride'] != '')
                      {
                          
          $timeformat $userinfo['lang_timeoverride'];
                      }
                      else
                      {
                          
          $timeformat $options['timeformat'];
                      }
                      
          $timeformat " " $timeformat;
          //corehack START- delicjous -- Fix Event-Dateformat for guests
                      
          if ($userinfo['userid'] == 0)
                      {
                          
          $timeformat ' H:i';
                      }
          //corehack END- delicjous -- Fix Event-Dateformat for guests 
                  
          }

                  return 
          $userAPI->unixtimestampToUserDateString($timestamp$userid$format$ignoreDST);
              } 
          It`s nice to be important but it`s more important to be nice!

          Kommentar


            Themenstarter
            #6
            Hallo delicjous !

            Danke für die Hilfe! Das hat funktioniert!

            Ich habe deine Info noch bei der Zeit erweitert.

            PHP-Code:
                public function getEventDateTimeStr($timestamp$allday$ignoreDST)
                {
                    
            $userAPI vB_Api::instance("user");
                    
            // based on template runtime datetime() function & vB_Api_vB4_CMS
                    
            $userinfo $userAPI->fetchUserinfo();
                    
            $options vB::getDatastore()->getValue('options');
                    if (
            $userinfo['lang_dateoverride'] != '')
                    {
                        
            $dateformat $userinfo['lang_dateoverride'];
                    }
                    else
                    {
                        
            $dateformat $options['dateformat'];
                    }
            //corehack START- delicjous -- Fix Event-Dateformat for guests
                    
            if ($userinfo['userid'] == 0)
                    {
                        
            $dateformat 'd.m.Y';
                    }
            //corehack END- delicjous -- Fix Event-Dateformat for guests  

                    
            $timeformat "";
                    if (!
            $allday)
                    {
                        if (
            $userinfo['lang_timeoverride'] != '')
                        {
                            
            $timeformat $userinfo['lang_timeoverride'];
                        }
                        else
                        {
                            
            $timeformat $options['timeformat'];
                        }
                        
            $timeformat " " $timeformat;
                    }
            //corehack START- delicjous -- Fix Event-Dateformat for guests
                    
            if ($userinfo['userid'] == 0)
                    {
                        
            $timeformat ' H:i';
                    }
            //corehack END- delicjous -- Fix Event-Dateformat for guests 

                    
            $format $dateformat $timeformat;
                    
            $userid = isset($userinfo['userid']) ? $userinfo['userid'] : false;

                    return 
            $userAPI->unixtimestampToUserDateString($timestamp$userid$format$ignoreDST);
                } 
            Ich bin schon gespannt, ob das nun in der nächsten Version behoben ist. Soweit ich dich verstanden habe, haben wir ja wirklich einen Bug gefunden.

            Vielen Dank nochmal!

            LG Yoshi

            Kommentar


            • delicjous
              delicjous kommentierte
              Kommentar bearbeiten
              Da ich noch nicht ganau weiß woran es liegt habe ich es bisher noch nicht gemeldet. Der Entwicklungszeitraum für die Version 5.5.1 ist auch bereits vorbei. Somit wird es in der nächsten Version auch noch nicht behoben sein.

            • delicjous
              delicjous kommentierte
              Kommentar bearbeiten
              Ich habe das Problem mal bei vBulletin bekannt gegeben: https://tracker.vbulletin.com/vbulle...sues/VBV-19220

            #7
            Ciao delicjous und Yoshi

            Danke für Eure "Fixes" - kann bestätigen, dass der Fehler in v5.5.1 noch enthalten ist und ich den Fix ebenfalls von Hand eingepflegt habe.

            Aes liebs Grüessli
            Roger

            Kommentar


              #8
              Sorry.... Habe noch einen Fehler in Yoshi's Fix entdeckt:

              Korrekterweise müsste wohl Yoshi's Fix in die
              PHP-Code:
              if (!$allday
              Bedingung rein:

              PHP-Code:
                  public function getEventDateTimeStr($timestamp$allday$ignoreDST)
                  {
                      
              $userAPI vB_Api::instance("user");
                      
              // based on template runtime datetime() function & vB_Api_vB4_CMS
                      
              $userinfo $userAPI->fetchUserinfo();
                      
              $options vB::getDatastore()->getValue('options');
                      if (
              $userinfo['lang_dateoverride'] != '')
                      {
                          
              $dateformat $userinfo['lang_dateoverride'];
                      }
                      else
                      {
                          
              $dateformat $options['dateformat'];
                      }
              //corehack START- delicjous -- Fix Event-Dateformat for guests
                      
              if ($userinfo['userid'] == 0)
                      {
                          
              $dateformat 'd.m.Y';
                      }
              //corehack END- delicjous -- Fix Event-Dateformat for guests  

                      
              $timeformat "";
                      if (!
              $allday)
                      {
                          if (
              $userinfo['lang_timeoverride'] != '')
                          {
                              
              $timeformat $userinfo['lang_timeoverride'];
                          }
                          else
                          {
                              
              $timeformat $options['timeformat'];
                          }
                          
              $timeformat " " $timeformat;
              //corehack START- delicjous -- Fix Event-Dateformat for guests
                          
              if ($userinfo['userid'] == 0)
                          {
                              
              $timeformat ' H:i';
                          }
              //corehack END- delicjous -- Fix Event-Dateformat for guests 
                      
              }

                      
              $format $dateformat $timeformat;
                      
              $userid = isset($userinfo['userid']) ? $userinfo['userid'] : false;

                      return 
              $userAPI->unixtimestampToUserDateString($timestamp$userid$format$ignoreDST);
                  } 
              Aes liebs Grüessli
              Roger

              PS: Konnte leider meinen vorhergehenden Eintrag nicht editieren obwohl die Option sichtbar ist?!?

              Kommentar


              • delicjous
                delicjous kommentierte
                Kommentar bearbeiten
                Korrekt, da sollte der Fix hin! Ich habe das in meinem Beitrag mal ergänzt.
            Lädt...
            X