Skip to content

Commit e3fde42

Browse files
committed
Bug fix: starttimes in additional lists in different languages
1 parent a1b650c commit e3fde42

File tree

4 files changed

+56
-52
lines changed

4 files changed

+56
-52
lines changed

bmlt-meeting-list.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* Plugin Name: Bread
1212
* Plugin URI: https://bmlt.app
1313
* Description: Maintains and generates PDF Meeting Lists from BMLT.
14-
* Version: 2.9.0
14+
* Version: 2.9.1
1515
* Author: bmlt-enabled
1616
* Author URI: https://bmlt.app/
1717
* License: GPL-2.0+

public/class-bread-content-generator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ function write_additional_meetinglist()
572572
}
573573
if ($additional_list_query || $this->options['weekday_language'] != $this->options['additional_list_language']) {
574574
foreach ($additional_meetinglist_result as &$value) {
575-
$value = $this->meetingEnhancer->enhance_meeting($value, $this->options['additional_list_language'], $this->formatsManager);
575+
$value = $this->meetingEnhancer->enhance_meeting($value, $this->options['additional_list_language'], $this->formatsManager, false);
576576
}
577577
}
578578
$meetingslistStructure = new Bread_Meetingslist_Structure($this->bread, $additional_meetinglist_result, $this->options['additional_list_language'], 1);

public/class-bread-meeting-enhancer.php

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -17,61 +17,62 @@ function __construct($bread, $areas)
1717
* @param string $lang The language used when generating format descriptions, etc.
1818
* @return void
1919
*/
20-
public function enhance_meeting(&$meeting_value, $lang, $formatsManager)
20+
public function enhance_meeting(&$meeting_value, $lang, $formatsManager, $formatStartTime=true)
2121
{
22-
$duration = explode(':', $meeting_value['duration_time']);
23-
$minutes = intval($duration[0]) * 60 + intval($duration[1]) + intval($duration[2]);
24-
$meeting_value['duration_m'] = $minutes;
25-
$meeting_value['duration_h'] = rtrim(rtrim(number_format($minutes / 60, 2), 0), '.');
26-
$space = ' ';
27-
if ($this->options['remove_space'] == 1) {
28-
$space = '';
29-
}
30-
if ($this->options['time_clock'] == null || $this->options['time_clock'] == '12' || $this->options['time_option'] == '') {
31-
$time_format = "g:i" . $space . "A";
32-
} elseif ($this->options['time_clock'] == '24fr') {
33-
$time_format = "H\hi";
34-
} else {
35-
$time_format = "H:i";
36-
}
37-
if ($this->options['time_option'] == 1 || $this->options['time_option'] == '') {
38-
$meeting_value['start_time'] = gmdate($time_format, strtotime($meeting_value['start_time']));
39-
if ($meeting_value['start_time'] == '12:00PM' || $meeting_value['start_time'] == '12:00 PM') {
40-
$meeting_value['start_time'] = 'NOON';
41-
}
42-
} elseif ($this->options['time_option'] == '2') {
43-
$addtime = '+ ' . $minutes . ' minutes';
44-
$end_time = gmdate($time_format, strtotime($meeting_value['start_time'] . ' ' . $addtime));
45-
$meeting_value['start_time'] = gmdate($time_format, strtotime($meeting_value['start_time']));
46-
if ($lang == 'fa') {
47-
$meeting_value['start_time'] = $this->toPersianNum($end_time) . $space . '-' . $space . $this->toPersianNum($meeting_value['start_time']);
48-
} else {
49-
$meeting_value['start_time'] = $meeting_value['start_time'] . $space . '-' . $space . $end_time;
22+
if ($formatStartTime) {
23+
$duration = explode(':', $meeting_value['duration_time']);
24+
$minutes = intval($duration[0]) * 60 + intval($duration[1]) + intval($duration[2]);
25+
$meeting_value['duration_m'] = $minutes;
26+
$meeting_value['duration_h'] = rtrim(rtrim(number_format($minutes / 60, 2), 0), '.');
27+
$space = ' ';
28+
if ($this->options['remove_space'] == 1) {
29+
$space = '';
5030
}
51-
} elseif ($this->options['time_option'] == '3') {
52-
$time_array = array("1:00", "2:00", "3:00", "4:00", "5:00", "6:00", "7:00", "8:00", "9:00", "10:00", "11:00", "12:00");
53-
$temp_start_time = gmdate("g:i", strtotime($meeting_value['start_time']));
54-
$temp_start_time_2 = gmdate("g:iA", strtotime($meeting_value['start_time']));
55-
if ($temp_start_time_2 == '12:00PM') {
56-
$start_time = 'NOON';
57-
} elseif (in_array($temp_start_time, $time_array)) {
58-
$start_time = gmdate("g", strtotime($meeting_value['start_time']));
31+
if ($this->options['time_clock'] == null || $this->options['time_clock'] == '12' || $this->options['time_option'] == '') {
32+
$time_format = "g:i" . $space . "A";
33+
} elseif ($this->options['time_clock'] == '24fr') {
34+
$time_format = "H\hi";
5935
} else {
60-
$start_time = gmdate("g:i", strtotime($meeting_value['start_time']));
36+
$time_format = "H:i";
6137
}
62-
$addtime = '+ ' . $minutes . ' minutes';
63-
$temp_end_time = gmdate("g:iA", strtotime($meeting_value['start_time'] . ' ' . $addtime));
64-
$temp_end_time_2 = gmdate("g:i", strtotime($meeting_value['start_time'] . ' ' . $addtime));
65-
if ($temp_end_time == '12:00PM') {
66-
$end_time = 'NOON';
67-
} elseif (in_array($temp_end_time_2, $time_array)) {
68-
$end_time = gmdate("g" . $space . "A", strtotime($temp_end_time));
69-
} else {
70-
$end_time = gmdate("g:i" . $space . "A", strtotime($temp_end_time));
38+
if ($this->options['time_option'] == 1 || $this->options['time_option'] == '') {
39+
$meeting_value['start_time'] = gmdate($time_format, strtotime($meeting_value['start_time']));
40+
if ($meeting_value['start_time'] == '12:00PM' || $meeting_value['start_time'] == '12:00 PM') {
41+
$meeting_value['start_time'] = 'NOON';
42+
}
43+
} elseif ($this->options['time_option'] == '2') {
44+
$addtime = '+ ' . $minutes . ' minutes';
45+
$end_time = gmdate($time_format, strtotime($meeting_value['start_time'] . ' ' . $addtime));
46+
$meeting_value['start_time'] = gmdate($time_format, strtotime($meeting_value['start_time']));
47+
if ($lang == 'fa') {
48+
$meeting_value['start_time'] = $this->toPersianNum($end_time) . $space . '-' . $space . $this->toPersianNum($meeting_value['start_time']);
49+
} else {
50+
$meeting_value['start_time'] = $meeting_value['start_time'] . $space . '-' . $space . $end_time;
51+
}
52+
} elseif ($this->options['time_option'] == '3') {
53+
$time_array = array("1:00", "2:00", "3:00", "4:00", "5:00", "6:00", "7:00", "8:00", "9:00", "10:00", "11:00", "12:00");
54+
$temp_start_time = gmdate("g:i", strtotime($meeting_value['start_time']));
55+
$temp_start_time_2 = gmdate("g:iA", strtotime($meeting_value['start_time']));
56+
if ($temp_start_time_2 == '12:00PM') {
57+
$start_time = 'NOON';
58+
} elseif (in_array($temp_start_time, $time_array)) {
59+
$start_time = gmdate("g", strtotime($meeting_value['start_time']));
60+
} else {
61+
$start_time = gmdate("g:i", strtotime($meeting_value['start_time']));
62+
}
63+
$addtime = '+ ' . $minutes . ' minutes';
64+
$temp_end_time = gmdate("g:iA", strtotime($meeting_value['start_time'] . ' ' . $addtime));
65+
$temp_end_time_2 = gmdate("g:i", strtotime($meeting_value['start_time'] . ' ' . $addtime));
66+
if ($temp_end_time == '12:00PM') {
67+
$end_time = 'NOON';
68+
} elseif (in_array($temp_end_time_2, $time_array)) {
69+
$end_time = gmdate("g" . $space . "A", strtotime($temp_end_time));
70+
} else {
71+
$end_time = gmdate("g:i" . $space . "A", strtotime($temp_end_time));
72+
}
73+
$meeting_value['start_time'] = $start_time . $space . '-' . $space . $end_time;
7174
}
72-
$meeting_value['start_time'] = $start_time . $space . '-' . $space . $end_time;
7375
}
74-
7576
$meeting_value['day_abbr'] = $this->bread->getday($meeting_value['weekday_tinyint'], true, $lang);
7677
$meeting_value['day'] = $this->bread->getday($meeting_value['weekday_tinyint'], false, $lang);
7778
$area_name = $this->get_area_name($meeting_value);

readme.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Tags: meeting list, bmlt, narcotics anonymous, na
55
Requires PHP: 8.1
66
Requires at least: 6.2
77
Tested up to: 6.8
8-
Stable tag: 2.9.0
8+
Stable tag: 2.9.1
99

1010
License: GPLv2 or later
1111
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -55,6 +55,9 @@ Follow all these steps, keep in mind that once you start using bread, it's not g
5555

5656
== Changelog ==
5757

58+
= 2.9.1 =
59+
* Bug fix when additional lists are in a different language, time could be computed wrong.
60+
5861
= 2.9.0 =
5962
* Added output to download mPDF debug log.
6063
* Added option to set mPDF optimization settings.

0 commit comments

Comments
 (0)