Nein, es ging leider bisher nicht ohne bzw. war fehlerhaft. Deswegen wurde die Funktion ja überarbeitet.
update auf TL 2.7.3 - Seite weg
Einklappen
X
-
Hallo,
bei mir konnte ich calendar-Support als php5-Modul nachinstallieren - musste also nicht neu kompilieren.
Gruss, AlbrechtPeople demand freedom of speech as a compensation for the freedom of thought which they seldom use.
Soren Kierkegaard (1813 - 1855)
Kommentar
-
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
-
Evtl. haut sowas hin, ist nicht getestet (Freiwillige vor), aber bitte mal ausprobieren, ich muss leider dringend auf einen Termin.
ggf. sollten wir versuchen im core solche wrapper Funktionen fyr einige andere Funktionen auch noch bereitzustellen. Eine Liste waere daher sinnvoll.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); } }
Gruss
ChrisBedenke 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
-
@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
-
Hallo,Zitat von peter64 Beitrag anzeigenMein System läuft auf einem von meinem Sohn gemieteten Rootserver mit Plesk.
Die php-Version ist 5.2.6
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, AlbrechtPeople demand freedom of speech as a compensation for the freedom of thought which they seldom use.
Soren Kierkegaard (1813 - 1855)
Kommentar
-
Du hast natyrlich recht.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.
Ich habe mich daher mal yber die PHP sourcen hergemacht und die C Funktion in PHP umgeschrieben.
Ich habe sie auf meinem Server als unixtojd2 eingebaut gehabt und mit folgendem code getestet.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; } }
Solltest du den Weg andersherum auch noch benoetigen, sag einfach Bescheid.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"; }
Gruss
ChrisBedenke 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
-
Also folgende Variante funktioniert (sogar besser als das Original):
Die Prüfung $tstamp === false ist wichtig, weil sonst bei 0 das aktuelle Jahr (2009) anstatt 1970 angenommen wird.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; }
Kommentar
-
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
-
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.Zitat von peter64 Beitrag anzeigenEs wäre schön und sehr zeitsparend, wenn bei notwendiger Änderung bzw. Erweiterung der Systemanforderungen ein kurzer Hinweis in den Changelog aufgenommen würde.
Kommentar
-
Hallo,Zitat von markusger Beitrag anzeigenWo 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.
gleiche Frage: wo genau muss der Code eingefügt werden.? Calender.php? An welcher Stelle?
Vielen Dank
Gruß
HarryContao 4.4.20
Kommentar
Kommentar