diff --git a/calls/call_document_merge_help.class.php b/calls/call_document_merge_help.class.php index 4402d713..cd09a584 100644 --- a/calls/call_document_merge_help.class.php +++ b/calls/call_document_merge_help.class.php @@ -20,25 +20,25 @@ function run() Simple list of people in a table - ODS   - XLSX   - ODT   - DOCX + ODS   + XLSX   + ODT   + DOCX Nametags, A4, 3x7 per page - DOCX - ODT + DOCX + ODT Attendance list, with birthdays highlighted
This also shows date of birth (a custom field) and whether they have had a birthday in the past week. The ODS version uses conditional formatting to omit dividing lines between members of the same family. - ODS   - XLSX + ODS   + XLSX @@ -47,15 +47,15 @@ function run() Mailing labels, A4, 3x7 per page - DOCX - ODT + DOCX + ODT Family attendance sheet - ODS   - XLSX + ODS   + XLSX @@ -145,8 +145,8 @@ function run()

Example Attendance-Specific Template 3 uses this concept: - ODS   - XLSX   + ODS   + XLSX  

Special considerations

@@ -176,14 +176,14 @@ function run()

Note: Columns with a total of zero are included.

Example Attendance-Specific Templates:
Example 1: - ODS   - XLSX
+ ODS   + XLSX
Example 2: - ODS   - XLSX
+ ODS   + XLSX
Example 3: - ODS   - XLSX   + ODS   + XLSX  

Extra Fields for Rosters Page

@@ -210,11 +210,11 @@ function run()

Example Roster-specific Templates:
Sign-in sheets: - ODS   - XLSX
+ ODS   + XLSX
Roster: - ODS   - XLSX   + ODS   + XLSX  

Handy hint:
diff --git a/conf.php.sample b/conf.php.sample index fbf7b016..d37b83f5 100644 --- a/conf.php.sample +++ b/conf.php.sample @@ -21,12 +21,14 @@ define('DB_DATABASE', ''); define('DB_USERNAME', ''); define('DB_PASSWORD', ''); -// The URL jethro will be running at. NB The final slash is important!! -define('BASE_URL', 'http://example.com/jethro/'); +// The URL jethro will be running at. Only needs to be set if Jethro is running behind a proxy without +// X-Forwarded-Proto + X-Forwarded-Host, or running scripts/task_reminder.php, where the base URL cannot be inferred +// define('BASE_URL', 'https://example.com/jethro/'); // Whether the system must be accessed by HTTPS. // If this is true, the BASE_URL above must begin with https:// -define('REQUIRE_HTTPS', FALSE); +// No longer used - Jethro will run wherever it finds itself. +// define('REQUIRE_HTTPS', FALSE); /////////////////////////////////////////////////////////////////////////// // OPTIONAL DATABASE SETTINGS - diff --git a/db_objects/person_group.class.php b/db_objects/person_group.class.php index dcc86077..e9f07dbb 100644 --- a/db_objects/person_group.class.php +++ b/db_objects/person_group.class.php @@ -50,7 +50,7 @@ protected static function _getFields() 'type' => 'select', 'options' => Array('No', 'Yes'), 'default' => 0, - 'note' => 'Should members of this group be able to see each other\'s details in member portal?', + 'note' => 'Should members of this group be able to see each other\'s details in member portal?', 'label' => 'Share member details?', ), ); diff --git a/db_objects/roster_view.class.php b/db_objects/roster_view.class.php index 430f83e6..a035730f 100644 --- a/db_objects/roster_view.class.php +++ b/db_objects/roster_view.class.php @@ -106,7 +106,7 @@ protected static function _getFields() 'type' => 'select', 'options' => Array('' => 'Private', 'members' => 'Show in members area', 'public' => 'Show in public area'), 'default' => 0, - 'note' => 'Whether this roster view is visible in the public area and/or to church members via the members area', + 'note' => 'Whether this roster view is visible in the public area and/or to church members via the members area', ), 'show_on_run_sheet' => Array( 'type' => 'select', @@ -122,7 +122,7 @@ function printForm($prefix='', $fields=NULL) { $this->fields['members'] = Array(); // fake field for interface purposes if ($this->id) { - $url = BASE_URL.'public/?view=display_roster&roster_view='.$this->id; + $url = BASE_URL.'/public/?view=display_roster&roster_view='.$this->id; if (defined('PUBLIC_ROSTER_SECRET') && strlen(PUBLIC_ROSTER_SECRET)) { $url .= '&secret='.PUBLIC_ROSTER_SECRET; } @@ -575,7 +575,7 @@ private function _printOutputLabel($member, $service) if (ifdef('PUBLIC_AREA_ENABLED', 1)) { echo ''; } else { - echo ''; + echo ''; } echo ents($member['role_title']); echo ''; @@ -597,9 +597,9 @@ private function _printOutputValue($member, $service, $asn, $withLinks=TRUE) if ($asn['absenceid']) { echo ' !'; } - if (('' === $asn['email'])) echo ' '; + if (('' === $asn['email'])) echo ' '; if (('' === $asn['mobile']) && SMS_Sender::canSend()) { - echo ' '; + echo ' '; } echo ''; @@ -841,9 +841,9 @@ function printView($start_date=NULL, $end_date=NULL, $editing=FALSE, $public=FAL if (strlen(strval($vs['absenceid']))) { $n .= ' !'; } - if (('' === $vs['email'])) $n .= ' '; + if (('' === $vs['email'])) $n .= ' '; if (('' === $vs['mobile']) && SMS_Sender::canSend()) { - $n .= ' '; + $n .= ' '; } $n .= ''; $names[] = $n; @@ -946,7 +946,7 @@ function _printRoleHeaders($editing, $public) if ($public) { echo ''; } else { - echo ''; + echo ''; } echo ents($details['role_title']); echo ''; diff --git a/db_objects/service.class.php b/db_objects/service.class.php index 48d8caec..b11b6dec 100644 --- a/db_objects/service.class.php +++ b/db_objects/service.class.php @@ -402,7 +402,7 @@ function printFieldValue($fieldname, $value=NULL, $printableMode=FALSE) $line .= ''; $line .= ''; $line .= '
CCLI #:'.$ccli_code.''; if ($this->checkPerm(PERM_SERVICECOMPS)) { - $line .= ''; + $line .= ''; } $line .= '
Comments:'.linkUrlsInTrustedHtml(nl2br($item['comments'] ?? '')).'
'; diff --git a/db_objects/service_component.class.php b/db_objects/service_component.class.php index 9aa049ea..177dbbef 100644 --- a/db_objects/service_component.class.php +++ b/db_objects/service_component.class.php @@ -382,7 +382,7 @@ public function printFieldInterface($name, $prefix='') ?> - + - +

Manage tag library

diff --git a/include/general.php b/include/general.php index ca5729c0..3aa07849 100644 --- a/include/general.php +++ b/include/general.php @@ -292,7 +292,7 @@ class="" static $includedCK = false; if (!$includedCK) { ?> - + getCurrentUser() == NULL) { - System_Controller::checkConfigHealth(); // Nobody is logged in, so show login screen or installer if (!$GLOBALS['db']->hasTables()) { require_once JETHRO_ROOT.'/include/installer.class.php'; diff --git a/members/templates/account_request_received.template.php b/members/templates/account_request_received.template.php index ae4018c2..c68decda 100644 --- a/members/templates/account_request_received.template.php +++ b/members/templates/account_request_received.template.php @@ -24,7 +24,7 @@ ?>

- « Back to login form + « Back to login form diff --git a/members/templates/main.template.php b/members/templates/main.template.php index fb5bc91b..ece1a647 100644 --- a/members/templates/main.template.php +++ b/members/templates/main.template.php @@ -27,7 +27,7 @@ diff --git a/members/views/view_0_edit_ical.class.php b/members/views/view_0_edit_ical.class.php index dfa9e432..b137e1ce 100644 --- a/members/views/view_0_edit_ical.class.php +++ b/members/views/view_0_edit_ical.class.php @@ -46,7 +46,7 @@ function printView() { $uuid = $this->person->getValue('feed_uuid'); if ($uuid) { - $url = BASE_URL.'public/?call=roster_ical&uuid='.rawurlencode($uuid); + $url = BASE_URL.'/public/?call=roster_ical&uuid='.rawurlencode($uuid); ?>

Your personalised roster assignments iCal feed is available at
diff --git a/members/views/view_0_edit_me.class.php b/members/views/view_0_edit_me.class.php index f792e825..6a145615 100644 --- a/members/views/view_0_edit_me.class.php +++ b/members/views/view_0_edit_me.class.php @@ -122,7 +122,7 @@ function printView() $sm = new Staff_Member($person->id); if ($sm && $sm->requires2FA()) { - echo '

This person has a control centre account, so their details can only be edited via the control centre

'; + echo '

This person has a control centre account, so their details can only be edited via the control centre

'; } else if ($this->canEditFamily() || $this->isMe($person)) { $person->printForm('person_'.$person->id, $this->person_fields); } diff --git a/public/index.php b/public/index.php index 2a2afb63..d97baabe 100644 --- a/public/index.php +++ b/public/index.php @@ -50,7 +50,7 @@ if ((ifdef('PUBLIC_AREA_ENABLED', 0) == 0) && (array_get($_GET, 'call') != 'roster_ical')) { header("HTTP/1.0 403 Forbidden"); ?> -

The public area is not enabled for this Jethro System. You may like to view the members area +

The public area is not enabled for this Jethro System. You may like to view the members area _role) { ?> - Edit + Edit _role->getValue('details'); } else { diff --git a/scripts/task_reminder.php b/scripts/task_reminder.php index 7782c107..2ecd955b 100644 --- a/scripts/task_reminder.php +++ b/scripts/task_reminder.php @@ -22,6 +22,7 @@ require_once JETHRO_ROOT.'/conf.php'; define('DB_MODE', 'PRIVATE'); require_once JETHRO_ROOT.'/include/init.php'; +if (!BASE_URL) throw new \RuntimeException('Please define a non-blank BASE_URL in conf.php'); if (ifdef('TASK_NOTIFICATION_ENABLED', FALSE) == FALSE) { if ($VERBOSE) echo "Task notification is disabled in conf.php - exiting \n"; diff --git a/templates/bulk_actions.template.php b/templates/bulk_actions.template.php index 32f6a434..f671f3ca 100644 --- a/templates/bulk_actions.template.php +++ b/templates/bulk_actions.template.php @@ -63,7 +63,7 @@ if ($GLOBALS['user_system']->havePerm(PERM_EDITGROUP)) { ?> - + @@ -114,7 +114,7 @@ ?> - + - +

@@ -189,7 +189,7 @@ } ?> - + @@ -208,7 +208,7 @@ ?>
- +
@@ -220,7 +220,7 @@

- +
Download Person data: - - + +   Download Family data: - +
=') && !SizeDetector::isNarrow()) { @@ -299,18 +299,18 @@

- Help and examples + Help and examples   - +

- Help and examples + Help and examples   - +

- +
@@ -385,7 +385,7 @@ - +

'date'), NULL); ?>   -

+

- + - - + + - - - - - - - + + + + + + + + - + -

You can install Jethro on your mobile device!

Click the    icon below
and scroll down to "add to home screen"

+

You can install Jethro on your mobile device!

Click the    icon below
and scroll down to "add to home screen"

diff --git a/views/view_0_generate_service_documents.class.php b/views/view_0_generate_service_documents.class.php index cb4496f3..6be67444 100644 --- a/views/view_0_generate_service_documents.class.php +++ b/views/view_0_generate_service_documents.class.php @@ -160,7 +160,7 @@ public function printView() echo ''; $fn_bits = explode('.', basename($this->_filename)); $zipname = reset($fn_bits).'_'.$this->_service_date; - $allHref = BASE_URL.'?call=documents&zipname='.$zipname; + $allHref = '?call=documents&zipname='.$zipname; foreach ($this->_generated_files as $path => $label) { $allHref .= '&zipfile[]='.self::_cleanDirName($path); } diff --git a/views/view_0_import_service_components.class.php b/views/view_0_import_service_components.class.php index b15da105..2f5af6d0 100644 --- a/views/view_0_import_service_components.class.php +++ b/views/view_0_import_service_components.class.php @@ -130,7 +130,7 @@ public function printView()
- (Sample file) + (Sample file)
diff --git a/views/view_1_home.class.php b/views/view_1_home.class.php index 010fcd85..6ef00aa7 100644 --- a/views/view_1_home.class.php +++ b/views/view_1_home.class.php @@ -33,7 +33,7 @@ function printView()

Bookmark diff --git a/views/view_2_families__4_contact_list.class.php b/views/view_2_families__4_contact_list.class.php index c95ea856..9cfc2693 100644 --- a/views/view_2_families__4_contact_list.class.php +++ b/views/view_2_families__4_contact_list.class.php @@ -153,7 +153,7 @@ function printResults($dataURLs=FALSE) $src = '?call=photo&familyid='.$family['familyid']; } } else { - $src = BASE_URL.'resources/img/unknown_family.gif'; + $src = BASE_URL.'/resources/img/unknown_family.gif'; } ?> diff --git a/views/view_6_attendance__4_checkins.class.php b/views/view_6_attendance__4_checkins.class.php index 8f0279c4..8888067b 100644 --- a/views/view_6_attendance__4_checkins.class.php +++ b/views/view_6_attendance__4_checkins.class.php @@ -38,7 +38,7 @@ function printView() foreach ($venues as $venueID => $vData) { $venue->populate($venueID, $vData); $class = $venue->getValue('is_archived') ? 'class="archived"' : ''; - $publicURL = BASE_URL.'public/?view=check_in&venueid='.$venueID; + $publicURL = BASE_URL.'/public/?view=check_in&venueid='.$venueID; $QRURL = str_replace('__URL__', urlencode($publicURL), QR_CODE_GENERATOR_URL); ?> > diff --git a/views/view_7_rosters__1_display_roster_assignments.class.php b/views/view_7_rosters__1_display_roster_assignments.class.php index ec2e08ac..67474396 100644 --- a/views/view_7_rosters__1_display_roster_assignments.class.php +++ b/views/view_7_rosters__1_display_roster_assignments.class.php @@ -106,7 +106,7 @@ function _printParams() if ($viewid) { if (!$this->_editing) { echo '
'; - echo 'Show printable version   '; + echo 'Show printable version   '; echo '@Email all assignees   '; if (SMS_Sender::canSend()) { @@ -115,10 +115,10 @@ function _printParams() } if ($this->_view->getValue('visibility') != '') { - echo 'View in members area   '; + echo 'View in members area   '; } if ($this->_view->getValue('visibility') == 'public') { - $url = BASE_URL.'public/?view=display_roster&roster_view='.$this->_view->id; + $url = BASE_URL.'/public/?view=display_roster&roster_view='.$this->_view->id; if (PUBLIC_ROSTER_SECRET) $url .= '&secret='.PUBLIC_ROSTER_SECRET; echo 'View in public site   '; } @@ -154,7 +154,7 @@ function _printParams() print_hidden_field('end_date', $this->_end_date); ?> - Help and examples
+ Help and examples
- +