pragmaMx Support Forum

pragmaMx => integrierte Module => Thema gestartet von: gabin in 23 November 2006, 09:45:21

Titel: Stories_Archive Datum Format ändern
Beitrag von: gabin in 23 November 2006, 09:45:21
Hallo allesamt,


in dem Modul Stories_Archive/index.php wird in der Funktion:

Zitat
Zeile 78
function show_month($year, $month, $month_l)

Folgendes Datumsformat angezeigt:
Zitat
Zeile 94
$time = explode(" ", $time);

Das heisst so: 2006-11-22

Ich möchte das ändern.

Es soll so angezeigt werden: 22-11-2006 (Deutsches Format)

Wer kann mir einen Tipp geben, wie ich das ändern kann?

Danke im Voraus

gabin

Titel: Re: Stories_Archive Datum Format ändern
Beitrag von: gabin in 23 November 2006, 16:38:11
Ich habe eine Lösung meiner Frage gefunden.

Für diejenigen, die sie bräuchten können,
hier ist sie:
(Ohne gewähr)

Die Lösung besteht aus drei Schritten:

Schritt 1: Zugriff auf die Datei includes\mx_api.php
Schritt 2: Zugriff auf die Datei language\lang-german.php
Schritt 3: Zugriff auf die Datei modules\Stories_Archive\index.php

ERSTER SCHRITT:
Kopiere die Funktion aus der Zeile 1368 includes\mx_api.php
function mx_strftime($dateformat, $unixtimestamp = 0)

und erstelle eine neuen in der gleiche Datei die neue Funktion heisst jetzt:
function mx_strftime_02($dateformat, $unixtimestamp = 0)

Hier die neue Funktion:


function mx_strftime_02($dateformat, $unixtimestamp = 0)
{
if (empty($unixtimestamp)) $unixtimestamp = time(); 
 
$out = strftime($dateformat, $unixtimestamp);   

$search = array("January", "February", "March", "April", "May",
"June", "July", "August", "September", "October", "November",
"December", "Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday");
   
$replace = array(_JANUARY_01, _FEBRUARY_02, _MARCH_03, _APRIL_04, _MAY_05,
_JUNE_06, _JULY_07, _AUGUST_08, _SEPTEMBER_09, _OCTOBER_10, _NOVEMBER_11,
_DECEMBER_12, _WEEKFIRSTDAY, _WEEKSECONDDAY, _WEEKTHIRDDAY,
_WEEKFOURTHDAY, _WEEKFIFTHDAY, _WEEKSIXTHDAY, _WEEKSEVENTHDAY);
   
$out = str_replace($search, $replace, $out);   

return $out;
}




Das neue bei dieser Funktion ist nicht nur der neue Name der Funktion
function mx_strftime_02 sondern auch die neuen Sprachkonstanten:

$replace = array(_JANUARY_01, _FEBRUARY_02, _MARCH_03, _APRIL_04, _MAY_05, _JUNE_06,
_JULY_07, _AUGUST_08, _SEPTEMBER_09, _OCTOBER_10, _NOVEMBER_11, _DECEMBER_12,
_WEEKFIRSTDAY, _WEEKSECONDDAY, _WEEKTHIRDDAY, _WEEKFOURTHDAY, _WEEKFIFTHDAY,
_WEEKSIXTHDAY, _WEEKSEVENTHDAY);






ZWEITER SCHRITT:
Erstelle die oben genannten Sprachkonstanten in der foldende Datei:
language\lang-german.php ungefähr Zeile 144



define("_JANUARY_01","01");
define("_FEBRUARY_02","02");
define("_MARCH_03","03");
define("_APRIL_04","04");
define("_MAY_05","05");
define("_JUNE_06","06");
define("_JULY_07","07");
define("_AUGUST_08","08");
define("_SEPTEMBER_09","09");
define("_OCTOBER_10","10");
define("_NOVEMBER_11","11");
define("_DECEMBER_12","12");



In der gleichen Datei erstellst folgendes Datumsformat
für das Modul Stories_Archive ungefähr auf der Zeile 40

define("_STORIES_ARCHIV_DATUM", "%d.%B.%Y"); # Stories_Archive Datumsformat




DRITTER SCHRITT:

Ersetze in der Datei modules\Stories_Archive\index.php die Zeile 94

$time = explode(" ", $time);




durch

ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})",
$time, $datetime);

$datetime = mx_strftime_02(_STORIES_ARCHIV_DATUM, mktime($datetime[4],$datetime[5],
$datetime[6],$datetime[2],$datetime[3],$datetime[1]));
         


In der Zeile 122 ersetzt $time[0] durch $datetime und das war es.

Dateien hochladen, aktualisieren und fertig!


gabin
PS: Bei mir funktioniert. Muster (http://www.soneros.de/modules.php?name=Stories_Archive&sa=show_month&year=2006&month=11&month_l=November)