Script-solution.de » Community » Support-Board » Foren » Boardsolution » Boardsolution v1.4x » Sommerzeitfehler im Kalender?
  • Willkommen, Gast!
  • Freitag, 10. Februar 2012, 05:19:11
 
Thema: "Sommerzeitfehler im Kalender?" [ Seite 1 2 ]

Kein neuer Beitrag Dieter , 24.08.2010, 19:17
Beitrag #16   

IP: n/a
Rang: * * * O O O O
Registrierung: 15.03.2006, 11:22
 

Fortgeschritten mit 102 Punkte, 72 Beiträge
Nils hat folgendes geschrieben:
Hallo,

oben wurde auch nur genannt wie man das bei der Thema-Editierung (nicht im Kalender) macht. D.h. du
müsstest analoge Änderungen auch noch in der front/module/calendar/sub_editevent.php durchführen.

mfg Nils


Hallo Nils,

Ich verstehe das nicht so ganz. Die oben beschriebenen Änderungen in der sub_editevent. Die habe
ich mir angesehen und kann nirgends diese Zeilen finde wie z.B.

Code:
1
$event_end = FWS_Date::get_date($event_data['event_end']);


Ich weiß ehrlich gesagt im Moment nicht genau was gemeint ist. :cry:


Gruß

Dieter

 
Kein neuer Beitrag Nils , 24.08.2010, 19:51
Beitrag #17   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
Oh, sorry, ich hätte doch mal nachschauen sollen :ops:
Es gibt dort wirklich nichts in der Art, weil das im Template gemacht wird. Mach mal folgendes:
Füg ans Ende der Datei vor die letzte } das hier ein:
PHP:
1
2
3
4
  private function getOrgDate($timestamp)
  {
    return date('I',$timestamp) == 1 ? $timestamp - 3600 : $timestamp;
  }

Und füg dann vor Zeile 126:
PHP:
1
$tpl->add_variable_ref('default',$default);

folgendes ein:
PHP:
1
2
$default['event_begin'] = $this->getOrgDate($default['event_begin']);
$default['event_end'] = $this->getOrgDate($default['event_end']);

Damit werden die Werte, die ans Template übergeben werden, also bearbeitet, ähnlich wie in den
anderen Dateien.

mfg Nils

 
Kein neuer Beitrag Dieter , 25.08.2010, 07:53
Beitrag #18   

IP: n/a
Rang: * * * O O O O
Registrierung: 15.03.2006, 11:22
 

Fortgeschritten mit 102 Punkte, 72 Beiträge
Hallo Nils,

es schaut schon etwas besser aus. Es gibt da aber noch einen Zeitversatz.

Ich habe einen neuen Termin mit 18:00 angelegt. Er wird als 17:00 angezeigt. Wenn ich dann auf
editieren gehe steht im Vorgabefeld auch 17:00. Wenn ich das dann abspeichere ändert sich der
Termin auf 16:00.

Das bedeutet ich muss bei der Zeitangabe eine Stunde mehr angeben. Wenn ich 19:00 angebe zeigt er
den Termin mit 18:00 an. Mache ich das Editieren auf steht als Vorgabe da die 18:00 drin. Ich denke
diese Vorgabe holt er sich aus der Datenbank. Deshalb vermute ich er trägt eine Zeitversetzung von
Minus einer Stunde in die Datenbank ein.

Hier mal der komplette Quellcode der sub_editevent

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?php
/**
 * Contains the editevent-calendar-submodule
 * 
 * @version         $Id: sub_editevent.php 142 2009-01-09 13:20:28Z nasmussen $
 * @package         Boardsolution
 * @subpackage   front.module
 * @author         Nils Asmussen <nils@script-solution.de>
 * @copyright      2003-2008 Nils Asmussen
 * @link            http://www.script-solution.de
 */

/**
 * The editevent submodule for module calendar
 * 
 * @package         Boardsolution
 * @subpackage   front.module
 * @author         Nils Asmussen <nils@script-solution.de>
 */
final class BS_Front_SubModule_calendar_editevent extends BS_Front_SubModule
{
   /**
    * @see FWS_Module::init($doc)
    *
    * @param BS_Front_Document $doc
    */
   public function init($doc)
   {
      parent::init($doc);
      
      $renderer = $doc->use_default_renderer();
      $renderer->add_action(BS_ACTION_CAL_ADD_EVENT,'addevent');
      $renderer->add_action(BS_ACTION_CAL_EDIT_EVENT,'editevent');
      
      $input = FWS_Props::get()->input();
      $locale = FWS_Props::get()->locale();
      
      $id = $input->get_var(BS_URL_ID,'get',FWS_Input::ID);
      $url = BS_URL::get_sub_url(0,'editevent');
      if($id !== null)
         $renderer->add_breadcrumb($locale->lang('edit_event'),$url->set(BS_URL_ID,$id)->to_url());
      else
         $renderer->add_breadcrumb($locale->lang('add_event'),$url->to_url());
   }
   
   public function run()
   {
      $cfg = FWS_Props::get()->cfg();
      $input = FWS_Props::get()->input();
      $user = FWS_Props::get()->user();
      $auth = FWS_Props::get()->auth();
      $locale = FWS_Props::get()->locale();
      $tpl = FWS_Props::get()->tpl();

      // calendar-events disabled?
      if($cfg['enable_calendar_events'] == 0)
      {
         $this->report_error(FWS_Document_Messages::NO_ACCESS);
         return;
      }
      
      $id = $input->get_var(BS_URL_ID,'get',FWS_Input::ID);
      $type = $id !== null ? 'edit' : 'add';
      
      if($type == 'edit')
      {
         $default = BS_DAO::get_events()->get_by_id($id);
         
         $url = BS_URL::get_sub_url(0,'eventdetails');
         $url->set(BS_URL_ID,$id);
         $back_url = $url->to_url();
         
         $target_url = BS_URL::get_sub_url(0,'editevent')->set(BS_URL_ID,$id)->to_url();
      }
      else
      {
         $day = $input->get_var(BS_URL_DAY,'get',FWS_Input::INTEGER);
         $default = array(
            'user_id' => 0,
            'max_announcements' => 0,
            'description_posted' => '',
            'event_location' => '',
            'event_begin' => $day !== null ? $day : 0,
            'event_end' => $day !== null ? $day : 0,
            'timeout' => 0,
            'event_title' => ''
         );
         
         $back_url = BS_URL::build_mod_url();
         $target_url = BS_URL::build_sub_url(0,'editevent');
      }
      
      // check permission
      if(!$user->is_admin())
      {
         if($type == 'edit')
         {
            if($default['user_id'] != $user->get_user_id() ||
                  !$auth->has_global_permission('edit_cal_event'))
            {
               $this->report_error(FWS_Document_Messages::NO_ACCESS);
               return;
            }
         }
         else
         {
            if(!$auth->has_global_permission('add_cal_event'))
            {
               $this->report_error(FWS_Document_Messages::NO_ACCESS);
               return;
            }
         }
      }

      if($input->isset_var('preview','post'))
         BS_PostingUtils::add_post_preview('desc',1,1);
      
      $form = $this->request_formular(false,true);

      $pform = new BS_PostingForm(
         $locale->lang('description').':',$default['description_posted'],'desc'
      );
      $pform->set_textarea_height('100px');
      $pform->add_form();
$default['event_begin'] = $this->getOrgDate($default['event_begin']);
$default['event_end'] = $this->getOrgDate($default['event_end']);      
      $tpl->add_variable_ref('default',$default);
      $tpl->add_variables(array(
         'title' => $locale->lang($type.'_event'),
         'target_url' => $target_url,
         'action_type' => $type == 'add' ? BS_ACTION_CAL_ADD_EVENT : BS_ACTION_CAL_EDIT_EVENT,
         'open_end' => $form->get_checkbox_value('event_end',$default['event_end'] == 0),
         'timeout_type_begin' => $form->get_radio_value('timeout_type','begin',$default['timeout'] == 0),
         'timeout_type_self' => $form->get_radio_value('timeout_type','custom',$default['timeout'] != 0),
         'enable_announcements' => $default['max_announcements'] >= 0,
         'max_announcements' => max(0,$default['max_announcements']),
         'back_url' => $back_url
      ));
   }
  private function getOrgDate($timestamp)
  {
    return date('I',$timestamp) == 1 ? $timestamp - 3600 : $timestamp;
  }}
?>



Ich hoffe es ist jetzt nur noch eine Kleinigkeit. :-/

Gruß

Dieter

 
Kein neuer Beitrag Nils , 25.08.2010, 09:51
Beitrag #19   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
Änder die hinzugefügte Funktion in der sub_editevent.php mal in:
PHP:
1
2
3
4
5
6
  private function getOrgDate($timestamp)
  {
    if(!date('I') && date('I',$timestamp))
      return $timestamp - 3600;
    return $timestamp;
  }

Und füg in die fws/html/formular.php unter Zeile 584 folgendes ein:
PHP:
1
2
3
4
5
6
7
8
  private function getOrgDate($timestamp)
  {
    if(date('I') && !date('I',$timestamp))
      return $timestamp + 3600;
    if(!date('I') && date('I',$timestamp))
      return $timestamp - 3600;
    return $timestamp;
  }

Und änder Zeile 583:
PHP:
1
return FWS_Date::get_timestamp(array($hour,$min,0,$month,$day,$year));

in:
PHP:
1
return $this->getOrgDate(FWS_Date::get_timestamp(array($hour,$min,0,$month,$day,$year)));

Damit funktionierte es zumindest bei meinen Tests.

Aber wie schon mal gesagt, nun muss Schluss sein. Dieses rumgefrickel bis es irgendwie halbwegs
geht, bringt einfach nichts. Wenn ich mich demnächst dran setze und die Fehler in 1.41 fixe, werde
ich mir da nochmal in Ruhe Gedanken machen und das Problem vernünftig lösen.

mfg Nils
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte mal 25.08.2010, 09:51 von Nils.

 
Kein neuer Beitrag Dieter , 25.08.2010, 10:18
Beitrag #20   

IP: n/a
Rang: * * * O O O O
Registrierung: 15.03.2006, 11:22
 

Fortgeschritten mit 102 Punkte, 72 Beiträge
Hallo Nils,

danke für die Mühe. Leider funktioniert es bei mir nicht. Da keine Fehlermeldungen kommen sage ich
im Forum jedem er soll bitte eine Stunde mehr eingeben.

Du hast recht. Ich warte auf das nächste Update. Das hat Vorrang.


Gruß

Dieter

Erste Seite Zurück 1 2     ( Anzeige: 16 - 20 , Gesamt: 20 ) n/a n/a
User in diesem Thema: 0 Registrierte, 0 Versteckte, 1 Gast, 0 Bots
Keine
Thema-Aktionen:

Toggle Ähnliche Themen zu "Sommerzeitfehler im Kalender?"
  Antworten Aufrufe Themeneröffnung Letzter Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Mobile-Template Kalender 2 1097 04.08.2011, 14:27
Von: himself
05.08.2011, 09:13
Von: himself Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Kalenderbreite ändern? 1 3124 15.11.2010, 09:29
Von: windows-club
15.11.2010, 11:34
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Fehler mit Kalender 8 6415 14.07.2010, 13:10
Von: Kompi
04.08.2010, 11:50
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Benachrichtigung bei Kalenderanmeldung 6 7635 17.07.2010, 21:25
Von: Nico
24.07.2010, 13:19
Von: Nico Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Geburtstage im Kalender sperren. 8 6901 02.07.2010, 13:54
Von: loschle
03.07.2010, 11:49
Von: Nils Zum letzten Beitrag
  • 0.127442 Sek., 10 DB-Zugriffe, 6.297 MiB
  • Boardsolution v1.43 | © Nils Asmussen 2003-2009
Valid XHTML and CSS © 2003 - 2009 script-solution.de, Powered by Joomla!