Make sure that component view files are reusable by only using the local variables instead of the global ones.

This commit is contained in:
Alex Tselegidis 2022-01-18 11:04:08 +01:00
parent 626d8b86a1
commit a7077ef642
27 changed files with 305 additions and 117 deletions

View file

@ -1,3 +1,18 @@
<?php
/**
* Local variables.
*
* @var array $available_services
* @var array $timezones
* @var array $require_first_name
* @var array $require_last_name
* @var array $require_email
* @var array $require_phone_number
* @var array $require_address
* @var array $require_city
* @var array $require_zip_code
*/
?>
<div id="appointments-modal" class="modal fade">
<div class="modal-dialog modal-lg">
<div class="modal-content">
@ -27,7 +42,7 @@
// Group services by category, only if there is at least one service
// with a parent category.
$has_category = FALSE;
foreach (vars('available_services') as $service)
foreach ($available_services as $service)
{
if ( ! empty($service['category_id']))
{
@ -40,7 +55,7 @@
{
$grouped_services = [];
foreach (vars('available_services') as $service)
foreach ($available_services as $service)
{
if ( ! empty($service['category_id']))
{
@ -56,7 +71,7 @@
// We need the uncategorized services at the end of the list so we will use
// another iteration only for the uncategorized services.
$grouped_services['uncategorized'] = [];
foreach (vars('available_services') as $service)
foreach ($available_services as $service)
{
if ($service['category_id'] == NULL)
{
@ -86,7 +101,7 @@
}
else
{
foreach (vars('available_services') as $service)
foreach ($available_services as $service)
{
echo '<option value="' . $service['id'] . '">'
. $service['name'] . '</option>';
@ -142,7 +157,7 @@
<li>
<?= lang('current_user') ?>:
<span>
<?= vars('timezones')[session('timezone', 'UTC')] ?>
<?= $timezones[session('timezone', 'UTC')] ?>
</span>
</li>
</ul>
@ -181,96 +196,96 @@
<div class="mb-3">
<label for="first-name" class="form-label">
<?= lang('first_name') ?>
<?php if (vars('require_first_name')): ?>
<?php if ($require_first_name): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="first-name"
class="<?= vars('require_first_name') ? 'required' : '' ?> form-control"
class="<?= $require_first_name ? 'required' : '' ?> form-control"
maxlength="100"/>
</div>
<div class="mb-3">
<label for="last-name" class="form-label">
<?= lang('last_name') ?>
<?php if (vars('require_last_name')): ?>
<?php if ($require_last_name): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="last-name"
class="<?= vars('require_last_name') ? 'required' : '' ?> form-control"
class="<?= $require_last_name ? 'required' : '' ?> form-control"
maxlength="120"/>
</div>
<div class="mb-3">
<label for="email" class="form-label">
<?= lang('email') ?>
<?php if (vars('require_email')): ?>
<?php if ($require_email): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="email"
class="<?= vars('require_email') ? 'required' : '' ?> form-control"
class="<?= $require_email ? 'required' : '' ?> form-control"
maxlength="120"/>
</div>
<div class="mb-3">
<label for="phone-number" class="form-label">
<?= lang('phone_number') ?>
<?php if (vars('require_phone_number')): ?>
<?php if ($require_phone_number): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="phone-number" maxlength="60"
class="<?= vars('require_phone_number') ? 'required' : '' ?> form-control"/>
class="<?= $require_phone_number ? 'required' : '' ?> form-control"/>
</div>
</div>
<div class="col-12 col-sm-6">
<div class="mb-3">
<label for="address" class="form-label">
<?= lang('address') ?>
<?php if (vars('require_address')): ?>
<?php if ($require_address): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="address"
class="<?= vars('require_address') ? 'required' : '' ?> form-control"
class="<?= $require_address ? 'required' : '' ?> form-control"
maxlength="120"/>
</div>
<div class="mb-3">
<label for="city" class="form-label">
<?= lang('city') ?>
<?php if (vars('require_city')): ?>
<?php if ($require_city): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="city"
class="<?= vars('require_city') ? 'required' : '' ?> form-control"
class="<?= $require_city ? 'required' : '' ?> form-control"
maxlength="120"/>
</div>
<div class="mb-3">
<label for="zip-code" class="form-label">
<?= lang('zip_code') ?>
<?php if (vars('require_zip_cod')): ?>
<?php if ($require_zip_code): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="zip-code"
class="<?= vars('require_zip_code') ? 'required' : '' ?> form-control"
class="<?= $require_zip_code ? 'required' : '' ?> form-control"
maxlength="120"/>
</div>
<div class="mb-3">
<label for="customer-notes" class="form-label">
<?= lang('notes') ?>
<?php if (vars('require_zip_code')): ?>
<?php if ($require_zip_code): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<textarea id="customer-notes" rows="2"
class="<?= vars('require_zip_code') ? 'required' : '' ?> form-control"></textarea>
class="<?= $require_zip_code ? 'required' : '' ?> form-control"></textarea>
</div>
</div>
</div>

View file

@ -1,3 +1,10 @@
<?php
/**
* Local variables.
*
* @var string $user_display_name
*/
?>
<div id="footer" class="d-lg-flex justify-content-lg-start align-items-lg-center p-2 text-center text-lg-left">
<div class="mb-3 me-lg-5 mb-lg-0">
<img class="me-1" src="<?= base_url('assets/img/logo-16x16.png') ?>" alt="Easy!Appointments Logo">
@ -37,7 +44,7 @@
<div class="ms-lg-auto">
<strong id="footer-user-display-name">
<?= lang('hello') . ', ' . vars('user_display_name') ?>!
<?= lang('hello') . ', ' . $user_display_name ?>!
</strong>
</div>
</div>

View file

@ -1,3 +1,11 @@
<?php
/**
* Local variables.
*
* @var string $active_menu
*/
?>
<nav id="header" class="navbar navbar-expand-md navbar-dark">
<div id="header-logo" class="navbar-brand">
<img src="<?= base_url('assets/img/logo.png') ?>" alt="logo">
@ -13,7 +21,7 @@
<div id="header-menu" class="collapse navbar-collapse flex-row-reverse px-2">
<ul class="navbar-nav">
<?php $hidden = can('view', PRIV_APPOINTMENTS) ? '' : 'd-none' ?>
<?php $active = vars('active_menu') == PRIV_APPOINTMENTS ? 'active' : '' ?>
<?php $active = $active_menu == PRIV_APPOINTMENTS ? 'active' : '' ?>
<li class="nav-item <?= $active . $hidden ?>">
<a href="<?= site_url('calendar') ?>" class="nav-link"
data-tippy-content="<?= lang('manage_appointment_record_hint') ?>">
@ -23,7 +31,7 @@
</li>
<?php $hidden = can('view', PRIV_CUSTOMERS) ? '' : 'd-none' ?>
<?php $active = vars('active_menu') == PRIV_CUSTOMERS ? 'active' : '' ?>
<?php $active = $active_menu == PRIV_CUSTOMERS ? 'active' : '' ?>
<li class="nav-item <?= $active . $hidden ?>">
<a href="<?= site_url('customers') ?>" class="nav-link"
data-tippy-content="<?= lang('manage_customers_hint') ?>">
@ -33,7 +41,7 @@
</li>
<?php $hidden = can('view', PRIV_SERVICES) ? '' : 'd-none' ?>
<?php $active = vars('active_menu') == PRIV_SERVICES ? 'active' : '' ?>
<?php $active = $active_menu == PRIV_SERVICES ? 'active' : '' ?>
<li class="nav-item dropdown <?= $active . $hidden ?>">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown"
data-tippy-content="<?= lang('manage_services_hint') ?>">
@ -51,7 +59,7 @@
</li>
<?php $hidden = can('view', PRIV_USERS) ? '' : 'd-none' ?>
<?php $active = vars('active_menu') == PRIV_USERS ? 'active' : '' ?>
<?php $active = $active_menu == PRIV_USERS ? 'active' : '' ?>
<li class="nav-item dropdown <?= $active . $hidden ?>">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown"
data-tippy-content="<?= lang('manage_users_hint') ?>">
@ -72,7 +80,7 @@
</li>
<?php $hidden = can('view', PRIV_SYSTEM_SETTINGS) || can('view', PRIV_USER_SETTINGS) ? '' : 'd-none' ?>
<?php $active = vars('active_menu') == PRIV_SYSTEM_SETTINGS ? 'active' : '' ?>
<?php $active = $active_menu == PRIV_SYSTEM_SETTINGS ? 'active' : '' ?>
<li class="nav-item dropdown <?= $active . $hidden ?>">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown"
data-tippy-content="<?= lang('settings_hint') ?>">

View file

@ -1,11 +1,20 @@
<?php if (vars('manage_mode')): ?>
<?php
/**
* Local variables.
*
* @var bool $manage_mode
* @var array $appointment_data
*/
?>
<?php if ($manage_mode): ?>
<div id="cancel-appointment-frame" class="row booking-header-bar">
<div class="col-12 col-md-10">
<small><?= lang('cancel_appointment_hint') ?></small>
</div>
<div class="col-12 col-md-2">
<form id="cancel-appointment-form" method="post"
action="<?= site_url('booking_cancellation/of/' . vars('appointment_data')['hash']) ?>">
action="<?= site_url('booking_cancellation/of/' . $appointment_data['hash']) ?>">
<input type="hidden" name="csrfToken" value="<?= $this->security->get_csrf_hash() ?>"/>

View file

@ -1,3 +1,11 @@
<?php
/**
* Local variables.
*
* @var bool $manage_mode
*/
?>
<div id="wizard-frame-4" class="wizard-frame" style="display:none;">
<div class="frame-container">
<h2 class="frame-title"><?= lang('appointment_confirmation') ?></h2>
@ -31,7 +39,7 @@
<form id="book-appointment-form" style="display:inline-block" method="post">
<button id="book-appointment-submit" type="button" class="btn btn-success">
<i class="fas fa-check-square me-2"></i>
<?= ! vars('manage_mode') ? lang('confirm') : lang('update') ?>
<?= $manage_mode ? lang('update') : lang('confirm') ?>
</button>
<input type="hidden" name="csrfToken"/>
<input type="hidden" name="post_data"/>

View file

@ -2,7 +2,6 @@
<small>
<span class="footer-powered-by">
Powered By
<a href="https://easyappointments.org" target="_blank">Easy!Appointments</a>
</span>

View file

@ -1,5 +1,13 @@
<?php
/**
* Local variables.
*
* @var string $company_name
*/
?>
<div id="header">
<span id="company-name"><?= vars('company_name') ?></span>
<span id="company-name"><?= $company_name ?></span>
<div id="steps">
<div id="step-1" class="book-step active-step"

View file

@ -1,3 +1,28 @@
<?php
/**
* Local variables.
*
* @var string $display_first_name
* @var string $require_first_name
* @var string $display_last_name
* @var string $require_last_name
* @var string $display_email
* @var string $require_email
* @var string $display_phone_number
* @var string $require_phone_number
* @var string $display_address
* @var string $require_address
* @var string $display_city
* @var string $require_city
* @var string $display_zip_code
* @var string $require_zip_code
* @var string $display_notes
* @var string $require_notes
* @var string $display_terms_and_conditions
* @var string $display_privacy_policy
*/
?>
<div id="wizard-frame-3" class="wizard-frame" style="display:none;">
<div class="frame-container">
@ -5,109 +30,109 @@
<div class="row frame-content">
<div class="col-12 col-md-6">
<?php if (vars('display_first_name')): ?>
<?php if ($display_first_name): ?>
<div class="mb-3">
<label for="first-name" class="form-label">
<?= lang('first_name') ?>
<?php if (vars('require_first_name')): ?>
<?php if ($require_first_name): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="first-name"
class="<?= vars('require_first_name') ? 'required' : '' ?> form-control" maxlength="100"/>
class="<?= $require_first_name ? 'required' : '' ?> form-control" maxlength="100"/>
</div>
<?php endif ?>
<?php if (vars('display_last_name')): ?>
<?php if ($display_last_name): ?>
<div class="mb-3">
<label for="last-name" class="form-label">
<?= lang('last_name') ?>
<?php if (vars('require_last_name')): ?>
<?php if ($require_last_name): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="last-name"
class="<?= vars('require_last_name') ? 'required' : '' ?> form-control" maxlength="120"/>
class="<?= $require_last_name ? 'required' : '' ?> form-control" maxlength="120"/>
</div>
<?php endif ?>
<?php if (vars('display_email')): ?>
<?php if ($display_email): ?>
<div class="mb-3">
<label for="email" class="form-label">
<?= lang('email') ?>
<?php if (vars('require_email')): ?>
<?php if ($require_email): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="email"
class="<?= vars('require_email') ? 'required' : '' ?> form-control" maxlength="120"/>
class="<?= $require_email ? 'required' : '' ?> form-control" maxlength="120"/>
</div>
<?php endif ?>
<?php if (vars('display_phone_number')): ?>
<?php if ($display_phone_number): ?>
<div class="mb-3">
<label for="phone-number" class="form-label">
<?= lang('phone_number') ?>
<?php if (vars('require_phone_number')): ?>
<?php if ($require_phone_number): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="phone-number" maxlength="60"
class="<?= vars('require_phone_number') ? 'required' : '' ?> form-control"/>
class="<?= $require_phone_number ? 'required' : '' ?> form-control"/>
</div>
<?php endif ?>
</div>
<div class="col-12 col-md-6">
<?php if (vars('display_address')) : ?>
<?php if ($display_address) : ?>
<div class="mb-3">
<label for="address" class="form-label">
<?= lang('address') ?>
<?php if (vars('require_address')): ?>
<?php if ($require_address): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="address" class="<?= vars('require_address') ? 'required' : '' ?> form-control" maxlength="120"/>
<input type="text" id="address" class="<?= $require_address ? 'required' : '' ?> form-control" maxlength="120"/>
</div>
<?php endif ?>
<?php if (vars('display_city')): ?>
<?php if ($display_city): ?>
<div class="mb-3">
<label for="city" class="form-label">
<?= lang('city') ?>
<?php if (vars('require_city')): ?>
<?php if ($require_city): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="city" class="<?= vars('require_city') ? 'required' : '' ?> form-control" maxlength="120"/>
<input type="text" id="city" class="<?= $require_city ? 'required' : '' ?> form-control" maxlength="120"/>
</div>
<?php endif ?>
<?php if (vars('display_zip_code')): ?>
<?php if ($display_zip_code): ?>
<div class="mb-3">
<label for="zip-code" class="form-label">
<?= lang('zip_code') ?>
<?php if (vars('require_zip_code')): ?>
<?php if ($require_zip_code): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<input type="text" id="zip-code" class="<?= vars('require_zip_code') ? 'required' : '' ?> form-control" maxlength="120"/>
<input type="text" id="zip-code" class="<?= $require_zip_code ? 'required' : '' ?> form-control" maxlength="120"/>
</div>
<?php endif ?>
<?php if (vars('display_notes')): ?>
<?php if ($display_notes): ?>
<div class="mb-3">
<label for="notes" class="form-label">
<?= lang('notes') ?>
<?php if (vars('require_notes')): ?>
<?php if ($require_notes): ?>
<span class="text-danger">*</span>
<?php endif ?>
</label>
<textarea id="notes" maxlength="500" class="<?= vars('require_notes') ? 'required' : '' ?> form-control" rows="1"></textarea>
<textarea id="notes" maxlength="500" class="<?= $require_notes ? 'required' : '' ?> form-control" rows="1"></textarea>
</div>
<?php endif ?>
</div>
</div>
</div>
<?php if (vars('display_terms_and_conditions')): ?>
<?php if ($display_terms_and_conditions): ?>
<div class="form-check mb-3">
<input type="checkbox" class="required form-check-input" id="accept-to-terms-and-conditions">
<label class="form-check-label" for="accept-to-terms-and-conditions">
@ -121,7 +146,7 @@
</div>
<?php endif ?>
<?php if (vars('display_privacy_policy')): ?>
<?php if ($display_privacy_policy): ?>
<div class="form-check mb-3">
<input type="checkbox" class="required form-check-input" id="accept-to-privacy-policy">
<label class="form-check-label" for="accept-to-privacy-policy">

View file

@ -1,3 +1,11 @@
<?php
/**
* Local variables.
*
* @var array $grouped_timezones
*/
?>
<div id="wizard-frame-2" class="wizard-frame" style="display:none;">
<div class="frame-container">
@ -12,7 +20,10 @@
<div id="select-time">
<div class="mb-3">
<label for="select-timezone"><?= lang('timezone') ?></label>
<?php component('timezone_dropdown','id="select-timezone" class="form-control" value="UTC"', ['timezones' => vars('grouped_timezones')]) ?>
<?php component('timezone_dropdown', [
'attributes' => 'id="select-timezone" class="form-control" value="UTC"',
'timezones' => $grouped_timezones
]) ?>
</div>
<div id="available-hours"></div>

View file

@ -1,3 +1,11 @@
<?php
/**
* Local variables.
*
* @var array $available_services
*/
?>
<div id="wizard-frame-1" class="wizard-frame">
<div class="frame-container">
<h2 class="frame-title"><?= lang('service_and_provider') ?></h2>
@ -13,7 +21,7 @@
<?php
// Group services by category, only if there is at least one service with a parent category.
$has_category = FALSE;
foreach (vars('available_services') as $service)
foreach ($available_services as $service)
{
if ( ! empty($service['category_id']))
{
@ -26,7 +34,7 @@
{
$grouped_services = [];
foreach (vars('available_services') as $service)
foreach ($available_services as $service)
{
if ( ! empty($service['category_id']))
{
@ -42,7 +50,7 @@
// We need the uncategorized services at the end of the list, so we will use another
// iteration only for the uncategorized services.
$grouped_services['uncategorized'] = [];
foreach (vars('available_services') as $service)
foreach ($available_services as $service)
{
if ($service['category_id'] == NULL)
{
@ -70,7 +78,7 @@
}
else
{
foreach (vars('available_services') as $service)
foreach ($available_services as $service)
{
echo '<option value="' . $service['id'] . '">' . $service['name'] . '</option>';
}

View file

@ -1,3 +1,10 @@
<?php
/**
* Local variables.
*
* @var string $cookie_notice_content
*/
?>
<div id="cookie-notice-modal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
@ -6,7 +13,7 @@
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<p><?= vars('cookie_notice_content') ?></p>
<p><?= $cookie_notice_content ?></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">

View file

@ -1,3 +1,11 @@
<?php
/**
* Local variables.
*
* @var string $privacy_policy_content
*/
?>
<div id="privacy-policy-modal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
@ -7,7 +15,7 @@
</button>
</div>
<div class="modal-body">
<p><?= vars('privacy_policy_content') ?></p>
<p><?= $privacy_policy_content ?></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">

View file

@ -1,3 +1,11 @@
<?php
/**
* Local variables.
*
* @var string $terms_and_conditions_content
*/
?>
<div id="terms-and-conditions-modal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
@ -6,7 +14,7 @@
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<p><?= vars('terms_and_conditions_content') ?></p>
<p><?= $terms_and_conditions_content ?></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">

View file

@ -1,9 +1,12 @@
<?php
/**
* Local variables.
*
* @var string $attributes
* @var array $timezones
*/
?>
<select <?= $attributes ?>>
<?php foreach ($timezones as $continent => $entries): ?>
<optgroup label="<?= $continent ?>">

View file

@ -1,3 +1,12 @@
<?php
/**
* Local variables.
*
* @var array $timezones
* @var string $timezone
*/
?>
<div id="unavailabilities-modal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
@ -48,7 +57,7 @@
<li>
<?= lang('current_user') ?>:
<span>
<?= vars('timezones')[vars('timezone')] ?>
<?= $timezones[$timezone] ?>
</span>
</li>
</ul>

View file

@ -1,3 +1,13 @@
<?php
/**
* Local variables.
*
* @var string $company_name
* @var string $email_title
* @var string $email_message
* @var string $company_link
*/
?>
<html lang="en">
<head>
<title>New Password | Easy!Appointments</title>
@ -6,13 +16,13 @@
<div class="email-container" style="width: 650px; border: 1px solid #eee;">
<div id="header" style="background-color: #429a82; height: 45px; padding: 10px 15px;">
<strong id="logo" style="color: white; font-size: 20px; margin-top: 10px; display: inline-block">
<?= vars('company_name') ?>
<?= $company_name ?>
</strong>
</div>
<div id="content" style="padding: 10px 15px;">
<h2><?= vars('email_title') ?></h2>
<p><?= vars('email_message') ?></p>
<h2><?= $email_title ?></h2>
<p><?= $email_message ?></p>
</div>
<div id="footer" style="padding: 10px; text-align: center; margin-top: 10px;
@ -20,7 +30,7 @@
Powered by
<a href="https://easyappointments.org" style="text-decoration: none;">Easy!Appointments</a>
|
<a href="<?= vars('company_link') ?>" style="text-decoration: none;"><?= vars('company_name') ?></a>
<a href="<?= $company_link ?>" style="text-decoration: none;"><?= $company_name ?></a>
</div>
</div>
</body>

View file

@ -1,3 +1,21 @@
<?php
/**
* Local variables.
*
* @var string $company_name
* @var string $appointment_service
* @var string $appointment_provider
* @var string $appointment_duration
* @var string $appointment_timezone
* @var string $customer_name
* @var string $customer_email
* @var string $customer_phone
* @var string $customer_address
* @var string $reason
* @var string $company_link
*/
?>
<html lang="en">
<head>
<title><?= lang('appointment_cancelled_title') ?> | Easy!Appointments</title>
@ -6,7 +24,7 @@
<div class="email-container" style="width: 650px; border: 1px solid #eee;">
<div id="header" style="background-color: #429a82; height: 45px; padding: 10px 15px;">
<strong id="logo" style="color: white; font-size: 20px; margin-top: 10px; display: inline-block">
<?= vars('company_name') ?>
<?= $company_name ?>
</strong>
</div>
@ -18,23 +36,23 @@
<table id="appointment-details">
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('service') ?></td>
<td style="padding: 3px;"><?= vars('appointment_service') ?></td>
<td style="padding: 3px;"><?= $appointment_service ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('provider') ?></td>
<td style="padding: 3px;"><?= vars('appointment_provider') ?></td>
<td style="padding: 3px;"><?= $appointment_provider ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('start') ?></td>
<td style="padding: 3px;"><?= vars('appointment_date') ?></td>
<td style="padding: 3px;"><?= $appointment_date ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('duration') ?></td>
<td style="padding: 3px;"><?= vars('appointment_duration') ?></td>
<td style="padding: 3px;"><?= $appointment_duration ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('timezone') ?></td>
<td style="padding: 3px;"><?= vars('appointment_timezone') ?></td>
<td style="padding: 3px;"><?= $appointment_timezone ?></td>
</tr>
</table>
@ -42,24 +60,24 @@
<table id="customer-details">
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('name') ?></td>
<td style="padding: 3px;"><?= vars('customer_name') ?></td>
<td style="padding: 3px;"><?= $customer_name ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('email') ?></td>
<td style="padding: 3px;"><?= vars('customer_email') ?></td>
<td style="padding: 3px;"><?= $customer_email ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('phone_number') ?></td>
<td style="padding: 3px;"><?= vars('customer_phone') ?></td>
<td style="padding: 3px;"><?= $customer_phone ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('address') ?></td>
<td style="padding: 3px;"><?= vars('customer_address') ?></td>
<td style="padding: 3px;"><?= $customer_address ?></td>
</tr>
</table>
<h2><?= lang('reason') ?></h2>
<p><?= vars('reason') ?></p>
<p><?= $reason ?></p>
</div>
<div id="footer" style="padding: 10px; text-align: center; margin-top: 10px;
@ -67,7 +85,7 @@
Powered by
<a href="https://easyappointments.org" style="text-decoration: none;">Easy!Appointments</a>
|
<a href="<?= vars('company_link') ?>" style="text-decoration: none;"><?= vars('company_name') ?></a>
<a href="<?= $company_link ?>" style="text-decoration: none;"><?= $company_name ?></a>
</div>
</div>
</body>

View file

@ -1,5 +1,7 @@
<?php
/**
* Local variables.
*
* @var string $company_name
* @var string $email_title
* @var string $email_message
@ -25,35 +27,35 @@
<div class="email-container" style="width: 650px; border: 1px solid #eee;">
<div id="header" style="background-color: #429a82; height: 45px; padding: 10px 15px;">
<strong id="logo" style="color: white; font-size: 20px; margin-top: 10px; display: inline-block">
<?= vars('company_name') ?>
<?= $company_name ?>
</strong>
</div>
<div id="content" style="padding: 10px 15px;">
<h2><?= vars('email_title') ?></h2>
<p><?= vars('email_message') ?></p>
<h2><?= $email_title ?></h2>
<p><?= $email_message ?></p>
<h2><?= lang('appointment_details_title') ?></h2>
<table id="appointment-details">
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('service') ?></td>
<td style="padding: 3px;"><?= vars('appointment_service') ?></td>
<td style="padding: 3px;"><?= $appointment_service ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('provider') ?></td>
<td style="padding: 3px;"><?= vars('appointment_provider') ?></td>
<td style="padding: 3px;"><?= $appointment_provider ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('start') ?></td>
<td style="padding: 3px;"><?= vars('appointment_start_date') ?></td>
<td style="padding: 3px;"><?= $appointment_start_date ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('end') ?></td>
<td style="padding: 3px;"><?= vars('appointment_end_date') ?></td>
<td style="padding: 3px;"><?= $appointment_end_date ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('timezone') ?></td>
<td style="padding: 3px;"><?= vars('appointment_timezone') ?></td>
<td style="padding: 3px;"><?= $appointment_timezone ?></td>
</tr>
</table>
@ -61,24 +63,24 @@
<table id="customer-details">
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('name') ?></td>
<td style="padding: 3px;"><?= vars('customer_name') ?></td>
<td style="padding: 3px;"><?= $customer_name ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('email') ?></td>
<td style="padding: 3px;"><?= vars('customer_email') ?></td>
<td style="padding: 3px;"><?= $customer_email ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('phone_number') ?></td>
<td style="padding: 3px;"><?= vars('customer_phone') ?></td>
<td style="padding: 3px;"><?= $customer_phone ?></td>
</tr>
<tr>
<td class="label" style="padding: 3px;font-weight: bold;"><?= lang('address') ?></td>
<td style="padding: 3px;"><?= vars('customer_address') ?></td>
<td style="padding: 3px;"><?= $customer_address ?></td>
</tr>
</table>
<h2><?= lang('appointment_link_title') ?></h2>
<a href="<?= vars('appointment_link') ?>" style="width: 600px;"><?= vars('appointment_link') ?></a>
<a href="<?= $appointment_link ?>" style="width: 600px;"><?= $appointment_link ?></a>
</div>
<div id="footer" style="padding: 10px; text-align: center; margin-top: 10px;
@ -86,7 +88,7 @@
Powered by
<a href="https://easyappointments.org" style="text-decoration: none;">Easy!Appointments</a>
|
<a href="<?= vars('company_link') ?>" style="text-decoration: none;"><?= vars('company_name') ?></a>
<a href="<?= $company_link ?>" style="text-decoration: none;"><?= $company_name ?></a>
</div>
</div>
</body>

View file

@ -5,14 +5,14 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#35A768">
<?php slot('meta') ?>
<title><?= $page_title ?? lang('backend_section') ?> | Easy!Appointments</title>
<link rel="icon" type="image/x-icon" href="<?= asset_url('assets/img/favicon.ico') ?>">
<link rel="icon" sizes="192x192" href="<?= asset_url('assets/img/logo.png') ?>">
<link rel="stylesheet" type="text/css" href="<?= asset_url('assets/vendor/jquery-ui-dist/jquery-ui.min.css') ?>">
<link rel="stylesheet" type="text/css" href="<?= asset_url('assets/vendor/trumbowyg/trumbowyg.min.css') ?>">
<link rel="stylesheet" type="text/css" href="<?= asset_url('assets/vendor/select2/select2.min.css') ?>">
@ -24,11 +24,11 @@
</head>
<body>
<?php component('backend_header') ?>
<?php component('backend_header', ['active_menu' => vars('active_menu')]) ?>
<?php slot('content') ?>
<?php component('backend_footer') ?>
<?php component('backend_footer', ['user_display_name' => vars('user_display_name')]) ?>
<script>
const availableLanguages = <?= json_encode(config('available_languages')) ?>;

View file

@ -25,7 +25,7 @@
<div class="row wrapper">
<div id="book-appointment-wizard" class="col-12 col-lg-10 col-xl-8">
<?php component('booking_header') ?>
<?php component('booking_header', ['company_name' => vars('company_name')]) ?>
<?php slot('content') ?>
@ -36,15 +36,15 @@
</div>
<?php if (vars('display_cookie_notice') === '1'): ?>
<?php component('cookie_notice_modal') ?>
<?php component('cookie_notice_modal', ['cookie_notice_content' => vars('cookie_notice_content')]) ?>
<?php endif ?>
<?php if (vars('display_terms_and_conditions') === '1'): ?>
<?php component('terms_and_conditions_modal') ?>
<?php component('terms_and_conditions_modal', ['terms_and_conditions_content' => vars('terms_and_conditions_content')]) ?>
<?php endif ?>
<?php if (vars('display_privacy_policy') === '1'): ?>
<?php component('privacy_policy_modal') ?>
<?php component('privacy_policy_modal', ['privacy_policy_content' => vars('privacy_policy_content')]) ?>
<?php endif ?>
<script src="<?= asset_url('assets/vendor/jquery/jquery.min.js') ?>"></script>

View file

@ -136,7 +136,8 @@
<label class="form-label" for="timezone">
<?= lang('timezone') ?>
</label>
<?php component('timezone_dropdown', 'id="timezone" class="form-control required"', [
<?php component('timezone_dropdown', [
'attributes' => 'id="timezone" class="form-control required"',
'timezones' => vars('timezones')
]) ?>
</div>

View file

@ -177,7 +177,8 @@
<?= lang('timezone') ?>
<span class="text-danger">*</span>
</label>
<?php component('timezone_dropdown', 'id="timezone" class="form-control required"', [
<?php component('timezone_dropdown', [
'attributes' => 'id="timezone" class="form-control required"',
'timezones' => vars('timezones')
]) ?>
</div>

View file

@ -4,23 +4,45 @@
<!-- Booking Cancellation Frame -->
<?php component('booking_cancellation_frame') ?>
<?php component('booking_cancellation_frame', [
'manage_mode' => vars('manage_mode'),
'appointment_data' => vars('manage_mode')
]) ?>
<!-- Select Service & Provider -->
<?php component('booking_type_step') ?>
<?php component('booking_type_step', ['available_services' => vars('available_services')]) ?>
<!-- Pick An Appointment Date -->
<?php component('booking_time_step') ?>
<?php component('booking_time_step', ['grouped_timezones' => vars('grouped_timezones')]) ?>
<!-- Enter Customer Information -->
<?php component('booking_info_step') ?>
<?php component('booking_info_step', [
'display_first_name' => vars('display_first_name'),
'require_first_name' => vars('require_first_name'),
'display_last_name' => vars('display_last_name'),
'require_last_name' => vars('require_last_name'),
'display_email' => vars('display_email'),
'require_email' => vars('require_email'),
'display_phone_number' => vars('display_phone_number'),
'require_phone_number' => vars('require_phone_number'),
'display_address' => vars('display_address'),
'require_address' => vars('require_address'),
'display_city' => vars('display_city'),
'require_city' => vars('require_city'),
'display_zip_code' => vars('display_zip_code'),
'require_zip_code' => vars('require_zip_code'),
'display_notes' => vars('display_notes'),
'require_notes' => vars('require_notes'),
'display_terms_and_conditions' => vars('display_terms_and_conditions'),
'display_privacy_policy' => vars('display_privacy_policy'),
]) ?>
<!-- Appointment Data Confirmation -->
<?php component('booking_final_step') ?>
<?php component('booking_final_step', ['manage_mode' => vars('manage_mode')]) ?>
<?php section('content') ?>

View file

@ -90,7 +90,6 @@
<?php component(
'appointments_modal',
'',
[
'available_services' => vars('available_services'),
'timezones' => vars('timezones'),
@ -106,7 +105,6 @@
<?php component(
'unavailabilities_modal',
'',
[
'timezones' => vars('timezones'),
'timezone' => vars('timezone')

View file

@ -161,7 +161,8 @@
<?= lang('timezone') ?>
<span class="text-danger">*</span>
</label>
<?php component('timezone_dropdown', 'id="timezone" class="form-control required"', [
<?php component('timezone_dropdown', [
'attributes' => 'id="timezone" class="form-control required"',
'timezones' => vars('timezones')
]) ?>
</div>

View file

@ -198,7 +198,8 @@
<?= lang('timezone') ?>
<span class="text-danger">*</span>
</label>
<?php component('timezone_dropdown', 'id="timezone" class="form-control required"', [
<?php component('timezone_dropdown', [
'attributes' => 'id="timezone" class="form-control required"',
'timezones' => vars('timezones')
]) ?>
</div>

View file

@ -176,7 +176,8 @@
<?= lang('timezone') ?>
<span class="text-danger">*</span>
</label>
<?php component('timezone_dropdown', 'id="timezone" class="form-control required"', [
<?php component('timezone_dropdown', [
'attributes' => 'id="timezone" class="form-control required"',
'timezones' => vars('timezones')
]) ?>
</div>