/home/edulekha/crm.edulekha.com/application/views/admin/emails/template.php
<?php defined('BASEPATH') or exit('No direct script access allowed'); ?>
<?php init_head(); ?>
<div id="wrapper">
<div class="content">
<div class="row">
<div class="col-md-6">
<h4 class="tw-mt-0 tw-font-bold tw-text-lg tw-text-neutral-700">
<?= e($title); ?>
</h4>
<div class="panel_s">
<div class="panel-body">
<?= form_open($this->uri->uri_string()); ?>
<div class="row">
<div class="col-md-12">
<?= render_input('name', 'template_name', $template->name, 'text', ['disabled' => true]); ?>
<?= render_input('subject[' . $template->emailtemplateid . ']', 'template_subject', $template->subject); ?>
<?= render_input('fromname', 'template_fromname', $template->fromname); ?>
<div style="<?= hooks()->apply_filters('show_deprecated_from_email_header_template_field', false) === false
? 'display:none;'
: ''; ?>">
<?php if ($template->slug != 'two-factor-authentication') { ?>
<i class="fa-regular fa-circle-question" data-toggle="tooltip"
data-title="<?= _l('email_template_only_domain_email'); ?>"></i>
<?= render_input('fromemail', 'template_fromemail', $template->fromemail, 'email'); ?>
<?php } ?>
</div>
<div class="checkbox checkbox-primary">
<input type="checkbox" name="plaintext" id="plaintext"
<?= $template->plaintext == 1 ? 'checked' : ''; ?>>
<label for="plaintext">
<?= _l('send_as_plain_text'); ?>
</label>
</div>
<?php if ($template->slug != 'two-factor-authentication') { ?>
<div class="checkbox checkbox-primary">
<input type="checkbox" name="disabled" id="disabled"
<?= $template->active == 0 ? 'checked' : ''; ?>>
<label data-toggle="tooltip"
title="<?= _l('disable_email_from_being_sent'); ?>"
for="disabled">
<?= _l('email_template_disabled'); ?>
</label>
</div>
<?php } ?>
<hr />
<?php
$editors = [];
array_push($editors, 'message[' . $template->emailtemplateid . ']');
?>
<h4 class="tw-font-bold tw-text-base">English</h4>
<?php if (get_option('disable_ticket_public_url') == '1'
&& strpos($template->message ?: '', 'ticket_public_url') !== false) {
echo '<div class="alert alert-warning">This template contains the <strong/>{ticket_public_url}</strong> merge field, but the public ticket URL is disabled in the settings. Consider updating the merge field to <strong>{ticket_url}</strong> or enable the ticket public URL feature.</div>';
} ?>
<?= render_textarea('message[' . $template->emailtemplateid . ']', '', $template->message, ['data-url-converter-callback' => 'myCustomURLConverter'], [], '', 'tinymce tinymce-manual'); ?>
<?php foreach ($available_languages as $availableLanguage) {
$lang_template = $this->emails_model->get([
'slug' => $template->slug,
'language' => $availableLanguage,
]);
if (count($lang_template) > 0) {
$lang_used = false;
if (get_option('active_language') == $availableLanguage
|| total_rows(db_prefix() . 'staff', ['default_language' => $availableLanguage]) > 0
|| total_rows(db_prefix() . 'clients', ['default_language' => $availableLanguage]) > 0
) {
$lang_used = true;
}
$hide_template_class = '';
if ($lang_used == false) {
$hide_template_class = 'hide';
} ?>
<hr />
<h4 class="pointer tw-font-bold tw-text-base"
onclick='slideToggle("#temp_<?= e($availableLanguage); ?>");'>
<?= e(ucfirst($availableLanguage)); ?>
</h4>
<?php
$lang_template = $lang_template[0];
array_push($editors, 'message[' . $lang_template['emailtemplateid'] . ']');
echo '<div id="temp_' . $availableLanguage . '" class="tw-mt-3 ' . $hide_template_class . '">';
if (get_option('disable_ticket_public_url') == '1'
&& strpos($lang_template['message'] ?: '', 'ticket_public_url') !== false) {
echo '<div class="alert alert-warning">This template contains the <strong>{ticket_public_url}</strong> merge field, but the public ticket URL is disabled in the settings. Consider updating the merge field to <strong> or enable the ticket public URL feature.</div>';
}
echo render_input('subject[' . $lang_template['emailtemplateid'] . ']', 'template_subject', $lang_template['subject']);
echo '<p class="bold">' . _l('email_template_email_message') . '</p>';
echo render_textarea('message[' . $lang_template['emailtemplateid'] . ']', '', $lang_template['message'], ['data-url-converter-callback' => 'myCustomURLConverter'], [], '', 'tinymce tinymce-manual');
echo '</div>';
}
} ?>
<div class="btn-bottom-toolbar text-right">
<button type="submit"
class="btn btn-primary"><?= _l('submit'); ?></button>
</div>
</div>
<?= form_close(); ?>
</div>
</div>
</div>
</div>
<div class="col-md-6 lg:tw-sticky lg:tw-top-2">
<h4 class="tw-mt-0 tw-font-bold tw-text-lg tw-text-neutral-700">
<?= _l('available_merge_fields'); ?>
</h4>
<div class="panel_s">
<div class="panel-body">
<div class="row">
<?php if ($template->type == 'ticket' || $template->type == 'project') { ?>
<div class=" col-md-12">
<?php if ($template->type != 'project') { ?>
<div class="alert alert-warning">
<?php if ($template->type == 'ticket') {
echo _l('email_template_ticket_warning');
} else {
echo _l('email_template_contact_warning');
} ?>
</div>
<?php } else {
if ($template->slug == 'new-project-discussion-comment-to-staff' || $template->slug == 'new-project-discussion-comment-to-customer') {
?>
<div class="alert alert-info">
<?= _l('email_template_discussion_info'); ?>
</div>
<?php
}
}
?>
</div>
<?php } ?>
<div class="col-md-12">
<div class="row available_merge_fields_container">
<?php
$mergeLooped = [];
foreach ($available_merge_fields as $field) {
foreach ($field as $key => $val) {
echo '<div class="col-md-6 merge_fields_col">';
echo '<h5 class="bold tw-text-base tw-rounded-lg tw-bg-neutral-50 tw-py-2 tw-px-3">' . ucwords(str_replace(['-', '_'], ' ', $key)) . '</h5>';
foreach ($val as $_field) {
if (count($_field['available']) == 0
&& isset($_field['templates']) && in_array($template->slug, $_field['templates'])) {
// Fake data to simulate foreach loop and check the templates key for the available slugs
$_field['available'][] = '1';
}
foreach ($_field['available'] as $_available) {
if (
(
$_available == $template->type
|| isset($_field['templates'])
&& in_array($template->slug, $_field['templates'])
) && ! in_array($template->slug, $_field['exclude'] ?? [])
&& ! in_array($_field['name'], $mergeLooped)) {
$mergeLooped[] = $_field['name'];
echo '<p>' . $_field['name'];
echo '<span class="pull-right"><a href="#" class="add_merge_field">';
echo $_field['key'];
echo '</a>';
echo '</span>';
echo '</p>';
}
}
}
echo '</div>';
}
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="btn-bottom-pusher"></div>
</div>
</div>
<?php init_tail(); ?>
<script>
$(function() {
<?php foreach ($editors as $id) { ?>
init_editor('textarea[name="<?= e($id); ?>"]', {
urlconverter_callback: merge_field_format_url,
});
<?php } ?>
var merge_fields_col = $('.merge_fields_col');
// If not fields available
$.each(merge_fields_col, function() {
var total_available_fields = $(this).find('p');
if (total_available_fields.length == 0) {
$(this).remove();
}
});
// Add merge field to tinymce
$('.add_merge_field').on('click', function(e) {
e.preventDefault();
tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).text());
});
appValidateForm($('form'), {
name: 'required',
fromname: 'required',
});
});
</script>
</body>
</html>