update auf TL 2.7.3 - Seite weg

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • leo
    Contao-Hauptentwickler
    AG Core-Entwicklung
    • 05.06.2009
    • 816

    #16
    Nein, es ging leider bisher nicht ohne bzw. war fehlerhaft. Deswegen wurde die Funktion ja überarbeitet.

    Kommentar

    • abackhaus
      Contao-Nutzer
      • 19.06.2009
      • 110

      #17
      Hallo,

      bei mir konnte ich calendar-Support als php5-Modul nachinstallieren - musste also nicht neu kompilieren.

      Gruss, Albrecht
      People demand freedom of speech as a compensation for the freedom of thought which they seldom use.
      Soren Kierkegaard (1813 - 1855)

      Kommentar

      • peter64
        Contao-Nutzer
        • 21.08.2009
        • 165

        #18
        Ich weiß nicht, ob es hilfreich, wenn ich mich noch einmal melde. Da ich nur einfacher Nutzer bin, kann ich so hoch nicht fliegen

        Mein System läuft auf einem von meinem Sohn gemieteten Rootserver mit Plesk.

        Die php-Version ist 5.2.6

        php-info gibt folgende Konfiguration aus:
        '../configure' '--prefix=/usr' '--datadir=/usr/share/php5' '--mandir=/usr/share/man' '--with-libdir=lib64' '--includedir=/usr/include' '--sysconfdir=/etc/php5/fastcgi' '--with-config-file-path=/etc/php5/fastcgi' '--with-config-file-scan-dir=/etc/php5/conf.d' '--enable-libxml' '--enable-session' '--with-mm' '--with-pcre-regex=/usr' '--enable-xml' '--enable-simplexml' '--enable-spl' '--enable-filter' '--disable-debug' '--enable-inline-optimization' '--disable-rpath' '--disable-static' '--enable-shared' '--program-suffix=5' '--with-pic' '--with-gnu-ld' '--with-system-tzdata=/usr/share/zoneinfo' '--enable-force-cgi-redirect' '--disable-discard-path' '--enable-fastcgi' '--bindir=/usr/bin' '--disable-cli' '--disable-all'

        Und folgende additional .ini files:
        /etc/php5/conf.d/ctype.ini, /etc/php5/conf.d/curl.ini, /etc/php5/conf.d/dom.ini, /etc/php5/conf.d/ftp.ini, /etc/php5/conf.d/gd.ini, /etc/php5/conf.d/gettext.ini, /etc/php5/conf.d/hash.ini, /etc/php5/conf.d/iconv.ini, /etc/php5/conf.d/imap.ini, /etc/php5/conf.d/ioncube-loader.ini, /etc/php5/conf.d/json.ini, /etc/php5/conf.d/mbstring.ini, /etc/php5/conf.d/mcrypt.ini, /etc/php5/conf.d/mysql.ini, /etc/php5/conf.d/mysqli.ini, /etc/php5/conf.d/openssl.ini, /etc/php5/conf.d/pdo.ini, /etc/php5/conf.d/pdo_mysql.ini, /etc/php5/conf.d/pdo_sqlite.ini, /etc/php5/conf.d/snmp.ini, /etc/php5/conf.d/sqlite.ini, /etc/php5/conf.d/tokenizer.ini, /etc/php5/conf.d/xmlreader.ini, /etc/php5/conf.d/xmlwriter.ini, /etc/php5/conf.d/xsl.ini, /etc/php5/conf.d/zlib.ini

        Gruß Peter

        Edit: Die Funktion Calendar enabled/disabled ist überhaupt nicht sichtbar. Müsste das im Core angezeigt werden?
        Zuletzt geändert von peter64; 10.09.2009, 18:31.

        Kommentar

        • xtra
          Maintainer
          • 02.07.2009
          • 2007

          #19
          Evtl. haut sowas hin, ist nicht getestet (Freiwillige vor), aber bitte mal ausprobieren, ich muss leider dringend auf einen Termin.
          PHP-Code:
          if(!function_exists('unixtojd') {
              function unixtojd($timestamp = false)
              {
                  if(!$timestamp)
                      $timestamp = time();
                  // 2440587.5 = 1.1.1970 00:00 UTC
                  return floor($timestamp / 86400 + 2440587.5);
              }
          } 
          
          ggf. sollten wir versuchen im core solche wrapper Funktionen fyr einige andere Funktionen auch noch bereitzustellen. Eine Liste waere daher sinnvoll.

          Gruss
          Chris
          Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

          Kommentar

          • leo
            Contao-Hauptentwickler
            AG Core-Entwicklung
            • 05.06.2009
            • 816

            #20
            @Chris: so einfach geht es glaube ich nicht, denn damit ermittelst Du ja nur, wie viele Sekunden zwischen dem ersten und dem zweiten Datum liegen. Sind es weniger als 24 Stunden, wird als Ergebnis immer 1 stehen, aber ein Termin, der abends um 20 Uhr beginnt und bis zum nächsten Mittag geht hat nur 16 Stunden, umfasst aber trotzdem 2 Tage!

            Genau aus diesem Grund habe ich ja die unixtojd-Funktion eingeführt.

            Kommentar

            • abackhaus
              Contao-Nutzer
              • 19.06.2009
              • 110

              #21
              Zitat von peter64 Beitrag anzeigen
              Mein System läuft auf einem von meinem Sohn gemieteten Rootserver mit Plesk.
              Die php-Version ist 5.2.6
              Hallo,

              ich habe bei meinem Server das php5-Extension-Modul "php5-calendar" nachinstalliert.
              Je nachdem was du für einen Server hast, kannst Du dies im Betriebssystem mittels entsprechdem Werkzeug tun.
              Bei Debian ist das zum Beispiel apt-get bei Suse geht es u.a. mit YAST etc.
              In phpinfo wird das dann wie im beigefügten Screenshot angezeigt.

              Gruss, Albrecht
              People demand freedom of speech as a compensation for the freedom of thought which they seldom use.
              Soren Kierkegaard (1813 - 1855)

              Kommentar

              • peter64
                Contao-Nutzer
                • 21.08.2009
                • 165

                #22
                Hallo Albrecht,

                vielen Dank für den Tipp. Ich werde es nächste Woche mal probieren. Bin jetzt erstmal weg über das Wochenende.

                Gruß Peter

                Kommentar

                • xtra
                  Maintainer
                  • 02.07.2009
                  • 2007

                  #23
                  Zitat von leo Beitrag anzeigen
                  @Chris: so einfach geht es glaube ich nicht, denn damit ermittelst Du ja nur, wie viele Sekunden zwischen dem ersten und dem zweiten Datum liegen. Sind es weniger als 24 Stunden, wird als Ergebnis immer 1 stehen, aber ein Termin, der abends um 20 Uhr beginnt und bis zum nächsten Mittag geht hat nur 16 Stunden, umfasst aber trotzdem 2 Tage!
                  Genau aus diesem Grund habe ich ja die unixtojd-Funktion eingeführt.
                  Du hast natyrlich recht.
                  Ich habe mich daher mal yber die PHP sourcen hergemacht und die C Funktion in PHP umgeschrieben.
                  PHP-Code:
                  if(!function_exists('unixtojd') {
                      define('GREG_SDN_OFFSET', 32045);
                      define('DAYS_PER_5_MONTHS', 153);
                      define('DAYS_PER_4_YEARS', 1461);
                      define('DAYS_PER_400_YEARS', 146097);
                      function unixtojd($timestamp = false)
                      {
                          if(!$timestamp)
                              $timestamp = time();
                          $tmpdate=explode(',', date('Y,m,d', $timestamp));
                          $inputyear=$tmpdate[0];
                          $inputmonth=$tmpdate[1];
                          $inputday=$tmpdate[2];
                          // Make year a positive number
                          $year = $inputyear+($inputyear < 0 ? 4801 : 4800);
                          // Adjust the start of the year
                          if ($inputmonth > 2)
                          {
                              $month = $inputmonth - 3;
                          } else {
                              $month = $inputmonth + 9;
                              $year--;
                          }
                          $sdn = floor((floor($year / 100) * DAYS_PER_400_YEARS) / 4);
                          $sdn += floor((($year % 100) * DAYS_PER_4_YEARS) / 4);
                          $sdn += floor(($month * DAYS_PER_5_MONTHS + 2) / 5);
                          $sdn += $inputday - GREG_SDN_OFFSET;
                          return $sdn;
                      }
                  } 
                  
                  Ich habe sie auf meinem Server als unixtojd2 eingebaut gehabt und mit folgendem code getestet.
                  PHP-Code:
                  for($i=0;$i<500;$i++)
                  {
                      $foo=rand(0,0xFFFFFFFF);
                      $unixtojd = unixtojd($foo);
                      $unixtojd2 = unixtojd2($foo);
                      echo "unixtojd2(".$foo.") = " . $unixtojd2 . " || " . "unixtojd(".$foo.") = " . $unixtojd . ($unixtojd==$unixtojd2 ? " pass" : "FAIL!") . "\n";
                  } 
                  
                  Solltest du den Weg andersherum auch noch benoetigen, sag einfach Bescheid.

                  Gruss
                  Chris
                  Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

                  Kommentar

                  • leo
                    Contao-Hauptentwickler
                    AG Core-Entwicklung
                    • 05.06.2009
                    • 816

                    #24
                    Sensationell, aber leider funktioniert es nur für Werte > 0. Negative Werte und 0 werden nicht korrekt berechnet

                    Kommentar

                    • leo
                      Contao-Hauptentwickler
                      AG Core-Entwicklung
                      • 05.06.2009
                      • 816

                      #25
                      Hm, das war wohl etwas voreilig. Es scheint so, als würde die originale Funktion bei Werten < 0 keinen Wert zurückgeben und nicht Deine Version. Aber sollte das nicht dieselbe sein?

                      Kommentar

                      • leo
                        Contao-Hauptentwickler
                        AG Core-Entwicklung
                        • 05.06.2009
                        • 816

                        #26
                        Also folgende Variante funktioniert (sogar besser als das Original):

                        PHP-Code:
                        function unixtojd2($tstamp=false)
                        {
                            if ($tstamp === false)
                            {
                                $tstamp = time();
                            }
                        
                            $tmpdate = explode(',', date('Y,m,d', $tstamp));
                        
                            // Make year a positive number
                            $year = $tmpdate[0] + ($tmpdate[0] < 0 ? 4801 : 4800);
                        
                            // Adjust the start of the year
                            if ($tmpdate[1] > 2)
                            {
                                $month = $tmpdate[1] - 3;
                            }
                            else
                            {
                                $month = $tmpdate[1] + 9;
                                --$year;
                            }
                        
                            $sdn  = floor((floor($year / 100) * 146097) / 4);
                            $sdn += floor((($year % 100) * 1461) / 4);
                            $sdn += floor(($month * 153 + 2) / 5);
                            $sdn += $tmpdate[2] - 32045;
                        
                            return $sdn;
                        } 
                        
                        Die Prüfung $tstamp === false ist wichtig, weil sonst bei 0 das aktuelle Jahr (2009) anstatt 1970 angenommen wird.

                        Kommentar

                        • peter64
                          Contao-Nutzer
                          • 21.08.2009
                          • 165

                          #27
                          So, nun läuft meine Website auch mit Vers. 2.7.3 wieder. Mein Sohn hat auf seinem Server php neu kompiliert.
                          Wenn ich die Diskussion mit Leo richtig verstanden habe, gibt es jetzt auch eine Lösung ohne Calendar support in der php-Konfiguration.
                          Danke nochmals für die Hilfe. Aber eine Bitte habe ich noch. Es wäre schön und sehr zeitsparend, wenn bei notwendiger Änderung bzw. Erweiterung der Systemanforderungen ein kurzer Hinweis in den Changelog aufgenommen würde.

                          Gruß Peter

                          Kommentar

                          • markusger
                            Contao-Nutzer
                            • 01.08.2009
                            • 33

                            #28
                            Wo müssten denn dieses Snippet eingefügt werden?
                            Stehe im Moment vor dem gleichen Probelm und habe leider nur Shared Webspace....und der Hoster ist leider in solchen Fragen nicht der schnellste.

                            Kommentar

                            • leo
                              Contao-Hauptentwickler
                              AG Core-Entwicklung
                              • 05.06.2009
                              • 816

                              #29
                              Zitat von peter64 Beitrag anzeigen
                              Es wäre schön und sehr zeitsparend, wenn bei notwendiger Änderung bzw. Erweiterung der Systemanforderungen ein kurzer Hinweis in den Changelog aufgenommen würde.
                              Hi Peter, das würden wir dann auch machen, aber Dank des Patches von xtra ist es dieses Mal nicht notwendig. Die 2.7.4 erscheint voraussichtlich noch diesen Monat.

                              Kommentar

                              • terrier2511
                                Contao-Nutzer
                                • 12.07.2009
                                • 26

                                #30
                                Zitat von markusger Beitrag anzeigen
                                Wo müssten denn dieses Snippet eingefügt werden?
                                Stehe im Moment vor dem gleichen Probelm und habe leider nur Shared Webspace....und der Hoster ist leider in solchen Fragen nicht der schnellste.
                                Hallo,

                                gleiche Frage: wo genau muss der Code eingefügt werden.? Calender.php? An welcher Stelle?

                                Vielen Dank

                                Gruß
                                Harry
                                Contao 4.4.20

                                Kommentar

                                Lädt...