Today / Yesterday Mod

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Today / Yesterday Mod

Beitrag von drkmnn666 »

eine frage hätte ich dazu, wie stelle ich es an, dass in der functions.php die sommerzeit/winterzeit beachtet wird, weil der mod funktioniert ja prächtig, allerdings ohne sommer/winterzeit. also wenn ich jetzt um neun was poste, dann erscheint 10 uhr. ist nervig, aber habe leider keinen plan was ich da ändern muss. danke für die hilfe..

Code: Alles auswählen

#
#----[ FIND ]-------
#
function create_date($format, $gmepoch, $tz)
{
   global $board_config, $lang;
   static $translate;

   if ( empty($translate) && $board_config['default_lang'] != 'english' )
   {
      @reset($lang['datetime']);
      while ( list($match, $replace) = @each($lang['datetime']) )
      {
         $translate[$match] = $replace;
      }
   }

   return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * ($tz+date("I")))), $translate) : @gmdate($format, $gmepoch + (3600 * ($tz+date("I"))));
}


#
#----[ REPLACE WITH ]----
#
function create_date($format, $gmepoch, $tz, $calcDelta=true)
{
   global $board_config, $lang;
   static $translate;
   if ( !$gmepoch )
   {
      // The next line integrated with the 'Last Visit' MOD (my own thing, unpublished)
      return $lang['datetime']['Hidden_time'];
   }

   $time = $gmepoch + (7200 * $tz);
   if ( $calcDelta ) {
      $midnight = gmmktime(0, 0, 0);
      $delta = $time - $midnight;
      if ($delta >= 0 && $delta < 86400)
      {
         return $lang['datetime']['Today'] . gmdate('H:i', $time);
      }
      else
      if ($delta < 0 && $delta > - 86400)
      {
         return $lang['datetime']['Yesterday'] . gmdate('H:i', $time);
      }
   }
   $pre_format = @gmdate($format, $time);

   if ( empty($translate) && $board_config['default_lang'] != 'english' )
   {
      @reset($lang['datetime']);
      while ( list($match, $replace) = @each($lang['datetime']) )
      {
         $translate[$match] = $replace;
      }
   }

   return ( !empty($translate) ) ? strtr($pre_format, $translate) : $pre_format;
}
dies sind anscheinend die ausschlaggebenden zeilen...
Zuletzt geändert von drkmnn666 am Do 07.Feb, 2008 09:23, insgesamt 2-mal geändert.
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

guck am besten mal hier: http://www.phpbb.de/viewtopic.php?t=157704

Dort wurde das Problem für einen (nicht unbedingt der im Posting hier) Today/Yesterday-MOD gelöst.
Notfalls steigst Du einfach um ;-)
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Füge mal nach der Zeile

Code: Alles auswählen

$midnight = gmmktime(0, 0, 0);
dieses hier ein:

Code: Alles auswählen

$midnight += (date("I")) ? 3600 : 0;
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Beitrag von drkmnn666 »

hat leider nicht geholfen, hänge mal den mod an bzw. minimod oder snippet...

@mark

umsteigen will ich nicht, den du da vorschlägst den hab ich schon probiert, allerdings benutze ich noch den at a glance und dies hatte nicht so funktioniert wie ich mir dies vorgestellt hatte, genauso hab ich eine modifizierte index.php.... bei dem mod geht alles, bis halt auf die sommer/winterzeit...
Zuletzt geändert von drkmnn666 am Do 07.Feb, 2008 20:08, insgesamt 1-mal geändert.
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

Hallo,


Du hattest ja schon mal diese Änderung gemacht: http://www.phpbb.de/doku/kb/artikel.php ... light=zeit

Das ist nun natürlich verschwunden.


Wenn ich die Sache richtig gesehen habe, wurde immer $tz gegen ($tz+date("I", $gmepoch)) ausgetauscht.
Das kommt in dem MOD ja auch vor, halt nur anders platziert, daher kann ich da nichts versprechen, aber ich würde es probieren, einfach mal in dem MOD die Berechnungen, die in etwa so aussehen: (7200 * $tz) gegen (7200 * ($tz+date("I", $gmepoch)) ) auszutauschen.

Ein Versuch ist es wert.



Gruß Max
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Beitrag von drkmnn666 »

geht auch nicht, jetzt geht alles ne stunde vor.

meine einstellungen:

acp: gmt + 1 stunde

Code: Alles auswählen


function create_date($format, $gmepoch, $tz, $calcDelta=true)
{
   global $board_config, $lang;
   static $translate;
   if ( !$gmepoch )
   {
      // The next line integrated with the 'Last Visit' MOD (my own thing, unpublished)
      return $lang['datetime']['Hidden_time'];
   }

   $time = $gmepoch + (7200 * ($tz+date("I")) );
   if ( $calcDelta ) {
      $midnight = gmmktime(0, 0, 0);
      $midnight += (date("I")) ? 3600 : 0;
      $delta = $time - $midnight;
      if ($delta >= 0 && $delta < 86400)
      {
         return $lang['datetime']['Today'] . gmdate('H:i', $time);
      }
      else
      if ($delta < 0 && $delta > - 86400)
      {
         return $lang['datetime']['Yesterday'] . gmdate('H:i', $time);
      }
   }
   $pre_format = @gmdate($format, $time);

   if ( empty($translate) && $board_config['default_lang'] != 'english' )
   {
      @reset($lang['datetime']);
      while ( list($match, $replace) = @each($lang['datetime']) )
      {
         $translate[$match] = $replace;
      }
   }

   return ( !empty($translate) ) ? strtr($pre_format, $translate) : $pre_format;
}
und wenn so:

Code: Alles auswählen


...
$time = $gmepoch + ($tz+date("I", $gmepoch));
   if ( $calcDelta ) {
      $midnight = gmmktime(0, 0, 0);
      $midnight += (date("I")) ? 3600 : 0;
      $delta = $time - $midnight;
      if ($delta >= 0 && $delta < 86400)
...
dann eine stunde früher
Zuletzt geändert von drkmnn666 am Do 07.Feb, 2008 11:14, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Mit dieser Anpassung musst Du auch die Zeile

Code: Alles auswählen

 $midnight += (date("I")) ? 3600 : 0;
wieder löschen. Wäre sonst doppelt!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Beitrag von drkmnn666 »

folgender code brachte die lösung, warum auch immer. falls jemand ne erklärung hat, dann her damit, hab dies nur aus logischen gesichtspunkten so gemacht.

Code: Alles auswählen

$time = $gmepoch + (3600 * $tz);
    if ( $calcDelta ) {
       $midnight = gmmktime(0, 0, 0);
       $delta = $time - $midnight;
       if ($delta >= 0 && $delta < 86400)
      {
         return $lang['datetime']['Today'] . gmdate('H:i', $time);
      }
      else
      if ($delta < 0 && $delta > - 86400)
      {
         return $lang['datetime']['Yesterday'] . gmdate('H:i', $time);
      }
   }

   if ( empty($translate) && $board_config['default_lang'] != 'english' )
   {
      @reset($lang['datetime']);
      while ( list($match, $replace) = @each($lang['datetime']) )
      {
         $translate[$match] = $replace;
      }
   }

   return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));

habe hier die zahl geändert:

Code: Alles auswählen

$time = $gmepoch + (7200 * $tz);
kann mir jemand den effekt erklären. nicht das jetzt der tag falsch berechnet wird.
Zuletzt geändert von drkmnn666 am Do 07.Feb, 2008 14:16, insgesamt 5-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Solange wir Winterzeit haben, mag das korrekt sein. Während der Sommerzeit ist das dann vermutlich wieder falsch ;)

Daher sollte diese Zeile, wenn überhaupt, so geschrieben werden:

Code: Alles auswählen

$time = $gmepoch + (3600 * ($tz+date("I")));
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Heute /gestern

Beitrag von drkmnn666 »

alles klar, danke... im anhang die funktionierende modifizierte endfassung von dem snippet/mod
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von drkmnn666 am Do 07.Feb, 2008 20:07, insgesamt 2-mal geändert.
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Heute /gestern

Beitrag von drkmnn666 »

mußte leider nen neues thema eröffnen, da ich ja schlecht auf mich selber antworten kann. mir ist aufgefallen, dass bei dem snippet alles ok ist, nur nachts erfolgt die umstellung erst um 1 anstatt null uhr... komisch oder?

original: klick
Zuletzt geändert von drkmnn666 am Do 14.Feb, 2008 13:40, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Genau daher würde ich auch die Variante verwenden, die ich z. B. hier installiert habe, denn die funktioniert und ist bequem eingebaut, bzw. kann mit einer kleinen Änderung am MOD selber pauschal gelten, ohne irgendwo am Board noch die Funktion für die Zeitformatierung ändern zu müssen.

So habe ich jetzt keine wirkliche Idee mehr, wie das bei Dir behoben werden sollte...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Beitrag von drkmnn666 »

und welche variante ist dies, weil montag - sonntag gefällt mir schon, wenn ich des mal so sagen kann etc.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Diese hier: http://rpgnet.clanmckeen.com/demo/viewtopic.php?t=722
Wobei ich die 2. Version genommen habe, ohne Catagories Hierachy selbige aber auch prima läuft (man muss dann nur den Part für die CH Files auf die phpBB-Files ummünzen).
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Beitrag von drkmnn666 »

und wie münzt man die um, mal dumm gefragt? und wäre das hier angehängt das richtige oder falsche?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von drkmnn666 am Do 14.Feb, 2008 18:19, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Na, der CH MOD ersetzt doch Teile der index.php und viewforum.php durch andere Scripte. Und genau hier muss man diese anpassen.

Zeit habe ich allerdings kaum, Dir zu helfen, sofern es um die Installation und Anpassung geht...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Beitrag von drkmnn666 »

klar, sollst ja schließlich nicht mein forum machen^^. außerdem haste bestimmt besseres zu tun. allerdings würde mir schon dir aussage reichen, dass das angehängte von mir es auch tut.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Bis auf den Wechsel um Mitternacht tut es ja schon, oder?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Beitrag von drkmnn666 »

funktioniert alles, hatte einen fehler bzw. in der page_header noch etwas, was ich wohl beim ausbau eines anderen mods übersehen hatte. oh man.
Zuletzt geändert von drkmnn666 am Fr 15.Feb, 2008 10:49, insgesamt 4-mal geändert.
Antworten