Plugin aktuelles_datum (ohne setlocal)

Hilfe zu Modulen und Tags
Post Reply
piratos

Plugin aktuelles_datum (ohne setlocal)

Post by piratos »

Wer Probleme auf einem Server hat um ein deutsches Datum in eine Seite zu bringen der sollte sich nachfolgenden Code kopieren , in einem Editor aufnehmen und in den Ordner plugins  als function.aktuelles_datum speichern.

Dieses Plugin verwendet keine setlocal - Einstellung und kann zudem leicht auf andere Sprachen geändert werden.

Eigentlich ist es ein Abfallprodukt aus dem Kalender - Modul.

Code: Select all

<?php

function smarty_cms_function_aktuelles_datum($params, &$smarty) {
$kls['m1'] ='Januar';
$kls['m2'] ='Februar';
$kls['m3'] ='März';
$kls['m4'] ='April';
$kls['m5'] ='Mai';
$kls['m6'] ='Juni';
$kls['m7'] ='Juli';
$kls['m8'] ='August';
$kls['m9'] ='September';
$kls['m10'] ='Oktober';
$kls['m11'] ='November';
$kls['m12'] ='Dezember';
$kls['ms1'] ='Jan';
$kls['ms2'] ='Feb';
$kls['ms3'] ='Mär';
$kls['ms4'] ='Apr';
$kls['ms5'] ='Mai';
$kls['ms6'] ='Jun';
$kls['ms7'] ='Jul';
$kls['ms8'] ='Aug';
$kls['ms9'] ='Sep';
$kls['ms10'] ='Okt';
$kls['ms11'] ='Nov';
$kls['ms12'] ='Dez';
$kls['d0'] ='Sonntag';
$kls['d1'] ='Montag';
$kls['d2'] ='Dienstag';
$kls['d3'] ='Mittwoch';
$kls['d4'] ='Donnerstag';
$kls['d5'] ='Freitag';
$kls['d6'] ='Samstag';
$kls['ds0'] ='So';
$kls['ds1'] ='Mo';
$kls['ds2'] ='Di';
$kls['ds3'] ='Mi';
$kls['ds4'] ='Do';
$kls['ds5'] ='Fr';
$kls['ds6'] ='Sa';
$kls['datumsformat'] ='%l , der %j.%F %Y %G:%i';

	if(empty($params['format']))
		$f = $kls['datumsformat'];
	else
		$f = $params['format'];
        // Zugelassene Parameter im Formatstring aus der Sprachdatei
         // % D	Tag der Woche als Wort mit zwei Buchstaben	Mo bis So
         // %l (kleines 'L')	Ausgeschriebener Tag der Woche	Sonntag bis Sonnabend
         // % F	Monat als ganzes Wort, wie Januar oder März	Januar bis Dezember
         // %M	Monatsname in Kurzform
         // %n	Monatszahl, ohne führende Nullen	1 bis 12
         // %j	Tag des Monats ohne führende Nullen	1 bis 31
         // %Y	Vierstellige Jahreszahl	Beispiel: 1999 oder 2003
         // %G  Die Stunde der Uhrzeit  (24 Std . Format)
         // %i  Die Minute der Uhrzeit
          $d=time();
          $day = date('j', $d);
          $month = date('n', $d);
          $year = date('Y', $d);
          $daynumber= date ('w', $d);
          $hour= date('G', $d);
          $minute= date('i', $d);
          $Prozent_D= $kls['ds'.$daynumber];
          $Prozent_l=$kls['d'.$daynumber];
          $Prozent_F=$kls['m'.$month];
          $Prozent_M=$kls['ms'.$month];
          $f=str_replace('%D',$Prozent_D,$f);
          $f=str_replace('%l',$Prozent_l,$f);
          $f=str_replace('%F',$Prozent_F,$f);
          $f=str_replace('%M',$Prozent_M,$f);
          $f=str_replace('%n',$month,$f);
          $f=str_replace('%j',$day,$f);
          $f=str_replace('%Y',$year,$f);
          $f=str_replace('%G',$hour,$f);
          $f=str_replace('%i',$minute,$f);


	return $f;
}

function smarty_cms_help_function_aktuelles_datum() {
	?>
	<h3>Was macht dieses Plugin?</h3>
	<p>Es gibt das aktuelle Datum und die Zeit in deutsch aus. Wird keine Format angegeben, dann erfolgt die Ausgabe nach diesem Muster :Samstag , der 28.Mai 2005 15:33 </p>
	<p>Das besondere ist, das die Setlocal-Einstellung des Webservers keine Rolle spielt und die Werte auf jeden Fall in deutsch ausgegeben werden.</p>
	<h3>Wie wird es eingesetzt?</h3>
	<p>Den Tag in eine Seite oder in das Template einsetzen, wie hier: <code>{aktuelles_datum format='%l , der %j.%F %Y %G:%i'}</code></p>
	<h3>Welche Parameter gibt es?</h3>
	<p> format='%l , der %j.%F %Y %G:%i'</p>
	<p>Es können folgende Werte eingesetzt werden:</p>
         <ul><li> %D	Tag der Woche als Wort mit zwei Buchstaben	Mo bis So</li>
         <li> %l (kleines 'L')	Ausgeschriebener Tag der Woche	Sonntag bis Sonnabend</li>
         <li> %F	Monat als ganzes Wort, wie Januar oder März	Januar bis Dezember</li>
         <li> %M	Monatsname in Kurzform</li>
         <li> %n	Monatszahl, ohne führende Nullen	1 bis 12</li>
         <li> %j	Tag des Monats ohne führende Nullen	1 bis 31</li>
         <li> %Y	Vierstellige Jahreszahl	Beispiel: 1999 oder 2003</li>
         <li> %G  Die Stunde der Uhrzeit  (24 Std . Format)</li>
         <li> %i  Die Minute der Uhrzeit</li></ul>
         <p>Die Texte zwischen den Platzhaltern %Platzhalter spielen keine Rolle.</p>
         <p>Wer die Ausgabe in einer anderen Sprache haben möchte, der muss die Werte der Variablen $kls im Script ändern.</p>


	<?php
}

function smarty_cms_about_function_aktuelles_datum() {
	?>
	<p>Autor: Jan Czarnowski<piratos@coftware.de></p>
	<p>Version: 1.0</p>
	<p>
	Change History:<br/>
	Nichts vorhanden
	</p>
	<?php
}
?>
nils73
Power Poster
Power Poster
Posts: 520
Joined: Wed Sep 08, 2004 3:32 pm

Re: Plugin aktuelles_datum (ohne setlocal)

Post by nils73 »

Das aktuelle Datum erhält man mit Smarty aber auch einfacher ... also mit {$smarty.now|date_format:"%d.%m.%Y"} was also für heute ergeben würde 29.05.2005 --- alternativ kann man aber mit allen Formatierungs-Anweisungen arbeiten, die PHP für die Funktion strftime() bereitstellt. Allerdings setzt das die korrekte setlocal-Einstellung in der config-Datei voraus. Insofern ist die Version von piratos sicherlich eine Variante für all jene, bei denen sich kein benutzerdefiniertes Modul oder eine Template-Anweisung mit Smarty erstellen lassen.

Gruß
Nils
piratos

Re: Plugin aktuelles_datum (ohne setlocal)

Post by piratos »

Wenn setlocal funktioniert ist es noch einfacher das mitgelieferte plugin zu verwenden.
Post Reply

Return to “Module und Tags”