Seite 1 von 1

Automatische Umstellung Sommer / Winter -Zeit

Verfasst: 31.03.2008 11:59
von YoshiOWL
das folgende Script sorgt für eine Automatische umstellung der Sommer / Winter Zeit.
Dabei werden zwei Punkte beachtet.
1.) Der User kommt aus einer Betroffenen Zeitzone (1.00)
2.) Das Board liegt in der Zeitzone (1)

Da das Script prüft, ob eine umstellung erfolgte, oder ob diese erwünscht ist, kann man es DIREKT in die index.php, portal.php, oder in dem man es zu einer function umschreibt, in die "/includes/function.php" einbauen.

Code: Alles auswählen

function auth_dst_switch()
{
	HIER HINN DER 2. CODE
	
	return true;
}

Code: Alles auswählen

<?php
/** 
*
* @package phpBB3
* @version $Id: magic_auth_dst_switch.php,v 1.0.0 2008/03/30 12:35:00 yoserv Exp $
* @copyright (c) 2008 phpbb3-magic.de
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @ignore
*/
if (date("m",strtotime("5 sunday", mktime(0,0,0,3,1,date("y")))) == 3)
{
	if (date("m") == date("n",strtotime("5 sunday", mktime(0,0,0,3,1,date("y"))))
	&& date("d") == date("j", strtotime("5 sunday", mktime(0,0,0,3,1,date("y"))))
	OR (date("m") == date("n",strtotime("4 sunday", mktime(0,0,0,3,1,date("y"))))
	&& date("d") == date("j", strtotime("4 sunday", mktime(0,0,0,3,1,date("y"))))))
	{
		if ($config['board_timezone'] == 1 && $config['board_dst'] == 0)
		{
			set_config('board_dst', '1');

			$sql = 'UPDATE ' . USERS_TABLE . "
				SET user_dst = '1'
				WHERE user_timezone = '1.00'";
			$db->sql_query($sql);

		}
	}
}
if (date("m",strtotime("5 sunday", mktime(0,0,0,10,1,date("y")))) == 3)
{
	if (date("m") == date("n",strtotime("5 sunday", mktime(0,0,0,10,1,date("y"))))
	&& date("d") == date("j", strtotime("5 sunday", mktime(0,0,0,10,1,date("y"))))
	OR (date("m") == date("n",strtotime("4 sunday", mktime(0,0,0,10,1,date("y"))))
	&& date("d") == date("j", strtotime("4 sunday", mktime(0,0,0,10,1,date("y"))))))
	{
		if ($config['board_timezone'] == 1 && $config['board_dst'] == 1)
		{
			set_config('board_dst', '0');

			$sql = 'UPDATE ' . USERS_TABLE . "
				SET user_dst = '0'
				WHERE user_timezone = '1.00'";
			$db->sql_query($sql);
		}
	}
}

?>

Re: Automatische Umstellung Sommer / Winter -Zeit

Verfasst: 09.04.2008 03:47
von YoshiOWL
Zusatzinfo:
Da das Script ja nur am Umstellungstag, bez. dem Tag danach arbeitet,
bleibt es bis zur nächsten Umstellung Passiv.

Wer aber sein Board noch nicht umgestellt hat, und es nachholen will, der kommt mit der folgenden verkürzten version zum Erfolg.

Code: Alles auswählen

<?php
/** 
*
* @package phpBB3
* @version $Id: magic_auth_dst_switch.php,v 1.0.0 2008/03/30 12:35:00 yoserv Exp $
* @copyright (c) 2008 phpbb3-magic.de
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @ignore
*/
		if ($config['board_timezone'] == 1 && $config['board_dst'] == 0)
		{
			set_config('board_dst', '1');

			$sql = 'UPDATE ' . USERS_TABLE . "
				SET user_dst = '1'
				WHERE user_timezone = '1.00'";
			$db->sql_query($sql);

		}

?>

Verfasst: 09.04.2008 04:04
von 4seven
Ein sehr wichtiger Mod :grin:

thx dafür :wink:

Verfasst: 09.04.2008 16:00
von BaerchenHH
finde ich auch...

aber sorry, wo genau soll jetzt der Code eigefügt werden?
Der DAU in mir hat heute etwas zur Begriffstutzigkeit beigetragen :oops:

Auch frage ich mich gerade, was mit "ob eine umstellung erfolgte, oder ob diese erwünscht ist" genau gemeint ist... Wird jeder User separat durch Frage & Antwort umgestellt?

Verfasst: 09.04.2008 21:31
von YoshiOWL
BaerchenHH hat geschrieben:finde ich auch...

aber sorry, wo genau soll jetzt der Code eigefügt werden?
Der DAU in mir hat heute etwas zur Begriffstutzigkeit beigetragen :oops:

Auch frage ich mich gerade, was mit "ob eine umstellung erfolgte, oder ob diese erwünscht ist" genau gemeint ist... Wird jeder User separat durch Frage & Antwort umgestellt?
Ich gehe mal vom Vollständigen Script aus (1.Posting)
Dieses Script (zweiter CODE-Block) fühgst du in die "index.php" ein
Dazu suche den Eintrag

Code: Alles auswählen

// Output page
Und davor fügst Du dann das Script ein.

Nun zur zweiten frage
Mit Erwünscht ist gemeind!

Wenn Du User hast, die z.B. aus England kommen, so möchte er ja nicht, das bei Umstellung der Sommer / Winter-Zeit sein Profil berücksichtigt wird. (In England gibt es ja keine Zeitumstellung)
Und genau das fragt der MOD ja ab.
Damit das MOD aber auch nicht JEDEN Tag erneut die Daten ändern soll, wird dazu noch Geprüft, ob das Board schon Umgestellt worden ist.
In diesem fall braucht es ja nicht noch einmal gemacht werden.
Na und dann wird auch noch geprüft, ob überhaupt der Letzte Sa im März (Sommerzeit) oder der Letzte Sa im Oktober (Winterzeit) erreicht ist.
Ist das nicht der fall, darf auf keinem fall umgestellt werden.

Ich hoffe einmal, das dir das nun Verständlich ist.

Verfasst: 09.04.2008 23:58
von BaerchenHH
Jo, denke schon, wenn nicht ... ich schlaf da nochmal drüber :D

Ich habs jedenfalls mal eben eingefügt und hoffe, daß ich in Bezug auf die Umsetzung des Scriptes richtig denke :wink:

Danke

Verfasst: 20.04.2008 13:06
von Saber_Rider
Was für eine Bedeutung hat

Code: Alles auswählen

/**
* @ignore
*/
Wird das von phpbb zu irgendwas ausgewertet oder was soll das?

Verfasst: 24.04.2008 23:32
von YoshiOWL
Da es nicht meine Erfindung ist, müsste man die Frage einmal an die phpBB-Group weiter reichen.

Ich kann mir aber vorstellen, das es ein ANKER ist.
So könnte z.B. ein php-script ein anderes öffnen, diesen Anker suchen um davor, oder dahinter, das script zu erweitern.

Verfasst: 25.04.2008 07:40
von Dr.Death
Der @ignore Block hat etwas mit dem phpDocumentor zu tun:

http://manual.phpdoc.org/HTMLSmartyConv ... e.pkg.html