| Server IP : 172.67.201.108 / Your IP : 216.73.216.11 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/tgnewdev/admin/mod/ |
Upload File : |
<?php require('_mod_security.php'); ?>
<?php
form_prep('', 'basic_info', 'frm_event');
if (($_POST['form_submitted'] ?? '') === '1') :
$_POST['html'] = purify_html($_POST['html']);
if (empty($_POST['slug']) && !empty($_POST['name'])) :
$_POST['slug'] = generate_unique_slug($_POST['name'], 'events', 'slug');
endif;
form_prep_submit();
form_validate_all();
if (!empty($_POST['custom_css'])) :
if (!validate_css($_POST['custom_css'])) :
$err_flag = 1;
$ar_err['custom_css'] = 'Invalid CSS! Please use a W3C CSS validator.';
$err_tab = 'basic_info';
endif;
endif;
if (!$err_flag) :
try {
$db->beginTransaction();
$set = sql_set_update() . form_generate_set(true);
if ($action == 'Edit') :
$sql = "UPDATE events set ".$set.
"WHERE id = ".nz(trim($_REQUEST['id']), '0')." ";
save_db_revision('events', $sql);
post_set_update();
elseif ($action == 'Add New') :
$sql = "INSERT INTO events SET ".
sql_set_create() .
$set;
$db->query($sql);
$_REQUEST['id'] = last_id();
$_POST['id'] = $_REQUEST['id'];
$_POST['id'] = $_REQUEST['id'];
post_set_create_update();
endif;
$sql = "DELETE FROM events_categories WHERE event_id = " . nz(trim($_REQUEST['id']), '0');
$db->query($sql);
foreach (($_POST['categories'] ?? []) as $category_id) :
$sql = "INSERT INTO events_categories SET
event_id = " . nz(trim($_REQUEST['id']), '0') . ",
category_id = " . nz(trim($category_id), '0') . "
";
$db->query($sql);
endforeach;
$db->commit();
} catch(Exception $e) {
db_err_rollback($e);
}
form_success();
else :
$active_tab = $err_tab;
$form_message = "Errors found!";
endif;
else:
if ($action == 'Edit') :
$sql = "SELECT * FROM events WHERE id = ".nz(trim($_REQUEST['id']), '0')." ";
if (!get_row_to_post($sql)) :
echo form_fatal_error('Invalid Operation!');
return;
endif;
$_POST['recurrence_by_day'] = explode(',',$row['recurrence_by_day']);
//$_POST['recurrence_master_event_id'] = $row->recurrence_master_event_id;
$sql_cat = "SELECT category_id FROM events_categories WHERE event_id = " . nz(trim($_REQUEST['id']), '0')." ";
$result_cat = $db->query($sql_cat);
$_POST['categories'] = $result_cat->fetchAll(PDO::FETCH_COLUMN);
elseif ($action == 'Add New') :
$_POST['event_timezone'] = 'America/New_York';
$_POST['location_id'] = $_GET['location_id'] ?? '';
$_POST['location_type'] = empty($_GET['location_id']) ? '' : 'physical';
endif;
endif;
?>
<script>
var active_page = '<?php echo $_REQUEST['IX']; ?>';
var active_tab = '';
function update_header() {
if ($("#name").val() > "" ) {
$("#header_repeater").text(" - " + $("#name").val());
}
}
function change_location_type() {
if ($('#location_type').val() === '') {
$('#location_id').val('').parent().hide();
$('#location_url').val('').parent().hide();
$('#location_url_text').val('').parent().hide();
} else if ($('#location_type').val() === 'physical') {
$('#location_id').parent().show();
$('#location_url').val('').parent().hide();
$('#location_url_text').val('').parent().hide();
} else if ($('#location_type').val() === 'url') {
$('#location_id').val('').parent().hide();
$('#location_url').parent().show();
$('#location_url_text').parent().show();
}
}
function toggle_all_day_event() {
if ($('#all_day_event').prop('checked')) {
var $picker = $('#start_time_local');
var currentDate = $picker.datetimepicker('getDate');
currentDate.setHours(0, 0, 0, 0);
$picker.datetimepicker('setDate', currentDate);
currentDate.setHours(23, 59, 59, 0);
$('#end_time_local').datetimepicker('setDate', currentDate);
} else {
}
}
function toggle_recurring_event() {
if ($('#recurrence').prop('checked')) {
} else {
}
}
function change_recurrence_type() {
if ($('#recurrence_freq').val() == 'daily') {
$('#recurrence_by_week_no').val('').parent().hide();
$('#recurrence_by_day input[type="checkbox"]').prop('checked', false);
$('#recurrence_by_day').parent().hide();
} else if ($('#recurrence_freq').val() == 'weekly') {
$('#recurrence_by_week_no').val('').parent().hide();
$('#recurrence_by_day').parent().show();
} else if ($('#recurrence_freq').val() == 'monthly') {
$('#recurrence_by_week_no').val('').parent().hide();
$('#recurrence_by_day input[type="checkbox"]').prop('checked', false);
$('#recurrence_by_day').parent().hide();
} else if ($('#recurrence_freq').val() == 'yearly') {
$('#recurrence_by_week_no').val('').parent().hide();
$('#recurrence_by_day input[type="checkbox"]').prop('checked', false);
$('#recurrence_by_day').parent().hide();
}
}
function check_if_saved(e) {
if (sheet_dirty) {
e.preventDefault();
alert('Please save your changes before previewing.');
}
}
$(document).ready(function() {
switch_tab('<?php echo $active_tab; ?>');
update_header();
init_html_editor('html');
change_location_type();
set_dirty_event();
$('.report_header').click(function() {
$('.report_criteria').not($(this).next('.report_criteria')).slideUp(300);
$(this).next('.report_criteria').slideToggle(300);
});
});
</script>
<h1>Event - <?php echo $action; ?><span id="header_repeater"></span></h1>
<?php echo form_message($form_message); ?>
<form name="frm_event" id="frm_event" method="post" action="">
<input name="form_submitted" type="hidden" value="1" />
<input name="id" type="hidden" value="<?php echo $_REQUEST['id']; ?>" />
<input name="active_tab" id="active_tab" type="hidden" value="basic_info" />
<?php
form_button_strip('top');
form_tab_strip_start();
form_tab_header('basic_info', 'Basic Info', '');
form_tab_header('recurrence', 'Recurrence', '');
form_tab_header('media', 'Media Library', '');
if (!empty($_REQUEST['id'])) :
form_tab_header('revisions', 'Revisions', 'admin,dataentry');
form_tab_header('ticket_tiers', 'Ticket Tiers', 'admin,dataentry');
form_tab_header('payments', 'Payments', 'admin,dataentry');
form_tab_header('reports', 'Reports', 'admin,dataentry');
endif;
form_tab_strip_end();
//******************************************************************************************
form_tab_start('basic_info', 'Event - Basic Info');
form_column_start();
form_field(['fname'=>'name', 'ftype'=>'textarea', 'fsize'=>250, 'frows'=>2, 'maxlength'=>'250', 'frequired'=>true, 'fdbname'=>'name', 'flabel'=>'Event Name', 'onblur'=>'update_header();']);
form_field(['fname'=>'slug', 'ftype'=>'textarea', 'fsize'=>250, 'frows'=>2, 'maxlength'=>'250', 'frequired'=>true, 'readonly'=>false, 'fdbname'=>'slug', 'flabel'=>'Slug']);
form_field(['fname'=>'status', 'ftype'=>'radiogroup', 'frequired'=>true, 'fdbname'=>'status', 'flabel'=>'Event Status','ar_group'=>APP_EVENT_STATUSES]);
form_field(['fname'=>'start_time_local', 'ftype'=>'datetime', 'fsize'=>20, 'frequired'=>true, 'readonly'=>true, 'fclass'=>'date-time-pick dp-applied required', 'fdbname'=>'start_time_local', 'flabel'=>'Start Date/Time']);
form_field(['fname'=>'end_time_local', 'ftype'=>'datetime', 'fsize'=>20, 'frequired'=>true, 'readonly'=>true, 'fclass'=>'date-time-pick dp-applied required', 'fdbname'=>'end_time_local', 'flabel'=>'End Date/Time']);
form_field(['fname'=>'all_day_event', 'ftype'=>'checkbox', 'fdbname'=>'all_day_event', 'flabel'=>'All Day Event', 'onchange'=>'toggle_all_day_event();']);
$ar_timezones = DateTimeZone::listIdentifiers();
form_field(['fname'=>'event_timezone', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>true, 'readonly'=>false, 'fdbname'=>'event_timezone', 'flabel'=>'Timezone', 'ar_group'=>$ar_timezones, 'onchange'=>'']);
form_field(['fname'=>'show_in_slider', 'ftype'=>'checkbox', 'fdbname'=>'show_in_slider', 'flabel'=>'Show In Slider']);
form_field(['fname'=>'show_in_top_slider', 'ftype'=>'checkbox', 'fdbname'=>'show_in_top_slider', 'flabel'=>'Show In Top Slider']);
form_field(['fname'=>'featured_image', 'ftype'=>'text', 'fsize'=>250, 'frequired'=>false, 'fdbname'=>'featured_image', 'flabel'=>'Featured Image - <a href="javascript:switch_tab(\'media\')">Pick from media...</a> - <a href="index.php?IX=media_form&cat=content&type=img">Add new...</a>']);
if (!empty($_POST['featured_image'])) :
echo '<img src="' . APP_BASE_USER_SITE_SECURE . image_cache('img/content/' . $_POST['featured_image'], 85, 200, 200) . '" />';
endif;
form_column_end();
form_column_start();
form_field(['fname'=>'price', 'ftype'=>'text', 'fsize'=>250, 'frequired'=>false, 'fdbname'=>'price', 'flabel'=>'Price']);
form_field(['fname'=>'internal_ticketing', 'ftype'=>'checkbox', 'fdbname'=>'internal_ticketing', 'flabel'=>'Internal Ticketing - Use Ticket Tiers Tab']);
form_field(['fname'=>'internal_ticketing_instruction', 'ftype'=>'textarea', 'fsize'=>250, 'frows'=>2, 'maxlength'=>'500', 'frequired'=>false, 'readonly'=>false, 'fdbname'=>'internal_ticketing_instruction', 'flabel'=>'Ticket Confirmation Instruction']);
$sql = "SELECT id, name FROM categories WHERE active = 1 ORDER by name";
$result_categories = $db->query($sql) or die('Database Error!');
$ar_categories = $result_categories->fetchAll(PDO::FETCH_KEY_PAIR);
form_field(['fname'=>'categories', 'ftype'=>'checkgroup', 'frequired'=>false, 'fdbname'=>'', 'flabel'=>'Categories','ar_group'=>$ar_categories]);
form_field(['fname'=>'curriculum', 'ftype'=>'checkbox', 'fdbname'=>'curriculum', 'flabel'=>'Curriculum']);
form_field(['fname'=>'resend', 'ftype'=>'checkbox', 'fdbname'=>'resend', 'flabel'=>'Resend']);
form_column_end();
form_column_start();
form_field(['fname'=>'location_type', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'readonly'=>false, 'fdbname'=>'location_type', 'flabel'=>'Location Type', 'ar_group'=>APP_LOCATION_TYPES, 'onchange'=>'change_location_type();']);
$sql = "SELECT id, name FROM locations WHERE status = 1 ORDER by name";
$result_locations = $db->query($sql) or die('Database Error!');
$ar_locations = $result_locations->fetchAll(PDO::FETCH_KEY_PAIR);
form_field(['fname'=>'location_id', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'readonly'=>false, 'fdbname'=>'location_id', 'flabel'=>'Location', 'ar_group'=>$ar_locations, 'onchange'=>'']);
form_field(['fname'=>'location_url', 'ftype'=>'text', 'fsize'=>250, 'frequired'=>false, 'fdbname'=>'location_url', 'flabel'=>'Location URL']);
form_field(['fname'=>'location_url_text', 'ftype'=>'text', 'fsize'=>250, 'frequired'=>false, 'fdbname'=>'location_url_text', 'flabel'=>'Location URL Text']);
form_field(['fname'=>'event_url', 'ftype'=>'text', 'fsize'=>250, 'frequired'=>false, 'fdbname'=>'event_url', 'flabel'=>'Submitted Event URL']);
form_field(['fname'=>'submitted_email', 'ftype'=>'text', 'fsize'=>250, 'frequired'=>false, 'fdbname'=>'submitted_email', 'flabel'=>'Submitted Email']);
form_field(['fname'=>'submitted_name', 'ftype'=>'text', 'fsize'=>250, 'frequired'=>false, 'fdbname'=>'submitted_name', 'flabel'=>'Submitted Name']);
form_field(['fname'=>'submitted_location', 'ftype'=>'text', 'fsize'=>250, 'frequired'=>false, 'fdbname'=>'submitted_location', 'flabel'=>'Submitted Location']);
form_field(['fname'=>'seo_enabled', 'ftype'=>'checkbox', 'fdbname'=>'seo_enabled', 'flabel'=>'SEO Enabled']);
form_field(['fname'=>'seo_sitemap_include', 'ftype'=>'checkbox', 'fdbname'=>'seo_sitemap_include', 'flabel'=>'SEO Sitemap Include']);
form_field(['fname'=>'seo_title', 'ftype'=>'textarea', 'fsize'=>70, 'frows'=>3, 'fdbname'=>'seo_title', 'flabel'=>'SEO Title', 'qtip'=>'Limit to 70 characters.']);
form_field(['fname'=>'seo_keywords', 'ftype'=>'textarea', 'fsize'=>70, 'frows'=>3, 'fdbname'=>'seo_keywords', 'flabel'=>'SEO Keywords', 'qtip'=>'Limit to 10 keyword phrases.']);
form_field(['fname'=>'seo_description', 'ftype'=>'textarea', 'fsize'=>70, 'frows'=>3, 'fdbname'=>'seo_description', 'flabel'=>'SEO Description', 'qtip'=>'Limit to 160 characters total, 100 characters per line, 2 lines maximum.']);
form_column_end();
form_column_start('max-width:1000px;');
form_field(['fname'=>'shortcode', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'fdbname'=>'', 'flabel'=>'Shortcode - select to insert into HTML below', 'ar_group'=>APP_SHORTCODES, 'onchange'=>'insert_text_into_html(\'[\' + $(this).val() + \']\'); $(this).val(\'\'); return false;']);
form_field(['fname'=>'html', 'ftype'=>'textarea', 'fsize'=>70, 'frows'=>8, 'fdbname'=>'html', 'flabel'=>'Text']);
form_field(['fname'=>'custom_css', 'ftype'=>'textarea', 'fsize'=>70, 'frows'=>12, 'fdbname'=>'custom_css', 'flabel'=>'Custom CSS']);
echo '<p><a target="_blank" href="../events/'.$_POST['slug'].'/?preview=true" onclick="check_if_saved(event);">Preview Event...</a></p>';
form_column_end();
form_tab_end();
//*****************************************************************
form_tab_start('recurrence', 'Recurrence');
echo '<div id="ajax_update_recurrence" style="width:1px; height:1px; display:none;">';
echo '</div>';
form_column_start();
form_field(['fname'=>'recurrence', 'ftype'=>'checkbox', 'fdbname'=>'recurrence', 'flabel'=>'Recurring Event', 'onchange'=>'toggle_recurring_event();']);
form_field(['fname'=>'recurrence_master_event_id', 'ftype'=>'text', 'fdbname'=>'recurrence_master_event_id', 'readonly'=>true, 'flabel'=>'Recurring Master Event ID', 'onchange'=>'toggle_recurring_event();']);
form_field(['fname'=>'recurrence_start_date', 'ftype'=>'date', 'fsize'=>20, 'frequired'=>false, 'readonly'=>true, 'fclass'=>'date-pick dp-applied ', 'fdbname'=>'recurrence_start_date', 'flabel'=>'Recurrence Span Start Date']);
form_field(['fname'=>'recurrence_end_date', 'ftype'=>'date', 'fsize'=>20, 'frequired'=>false, 'readonly'=>true, 'fclass'=>'date-pick dp-applied', 'fdbname'=>'recurrence_end_date', 'flabel'=>'Recurrence Span End Date']);
form_field(['fname'=>'recurrence_freq', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'readonly'=>false, 'fdbname'=>'recurrence_freq', 'flabel'=>'Recurrence Frequency', 'ar_group'=>APP_RECURRENCE_TYPES, 'onchange'=>'change_recurrence_type();']);
form_column_end();
form_column_start();
form_field(['fname'=>'recurrence_by_week_no', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'readonly'=>false, 'fdbname'=>'recurrence_by_week_no', 'flabel'=>'Week of Month', 'ar_group'=>APP_WEEKS_OF_MONTH]);
form_field(['fname'=>'recurrence_by_day', 'ftype'=>'checkgroup', 'fsize'=>25, 'frequired'=>false, 'readonly'=>false, 'fdbname'=>'recurrence_by_day', 'flabel'=>'Days of Week', 'ar_group'=>APP_WEEKDAYS]);
form_column_end();
echo '<h2>Other recurring events for this set</h2>';
$ix_form = 'event_form';
db_navigator_bar(['table_id' => 'db_grid_main', 'form' => $ix_form, 'btn_addnew'=>'false', 'print_section' => 'db_grid_main', 'call' => 'events_ajax', 'sort_col' => '3', 'sort_order' => '1', 'parm1' => " AND e.recurrence = 1 AND e.recurrence_master_event_id IS NOT NULL AND e.recurrence_master_event_id = " . nz($_POST['recurrence_master_event_id'], '0') . " AND e.id <> " . nz($_REQUEST['id'], '0') , 'parm2' => '', 'func' => 'grid', 'filter_cols'=>'0,0,1,0,0,0,0,0,0']);
form_tab_end();
//*****************************************************************
form_tab_start('media', 'Media Library');
echo '<div id="ajax_update_media" style="width:1px; height:1px; display:none;">';
echo '</div>';
$ix_form = 'media_form&type=img&cat=content';
db_navigator_bar(['table_id'=>'db_grid_media', 'form'=>$ix_form, 'print_section'=>'db_grid_media', 'call'=>'media_ajax', 'sort_col'=>'1', 'sort_order'=>'1', 'subtab'=>'true', 'parm1'=>" AND media_cat = 'content' ", 'parm2'=>'insert_js,insert_featured', 'func'=>'grid' ]);
form_tab_end();
//*****************************************************************
form_tab_start('ticket_tiers', 'Ticket Tiers');
echo '<div id="ajax_update_ticket_tiers" style="width:1px; height:1px; display:none;">';
echo '</div>';
$ix_form = 'ticket_tier_form&reference_type=event&reference_id=' . nz($_REQUEST['id'], '0');
db_navigator_bar(['table_id'=>'db_grid_ticket_tiers', 'form'=>$ix_form, 'print_section'=>'db_grid_ticket_tiers', 'call'=>'ticket_tiers_ajax', 'sort_col'=>'1', 'sort_order'=>'0', 'subtab'=>'true', 'parm1'=>" AND tt.reference_type = 'event' AND tt.reference_id = " . nz($_REQUEST['id'], '0'), 'parm2'=>'', 'func'=>'grid', 'filter_cols'=>'0,0,0,0,0,0,1,0']);
form_tab_end();
//*****************************************************************
form_tab_start('payments', 'Payments');
echo '<div id="ajax_update_payments" style="width:1px; height:1px; display:none;">';
echo '</div>';
$ix_form = 'payment_form';
db_navigator_bar(['table_id'=>'db_grid_payments', 'form'=>$ix_form, 'btn_addnew'=>'false', 'print_section'=>'db_grid_payments', 'call'=>'payments_ajax', 'sort_col'=>'1', 'sort_order'=>'0', 'subtab'=>'true', 'parm1'=>" AND p.reference_type = 'event' AND p.reference_id = " . nz($_REQUEST['id'], '0'), 'parm2'=>'', 'func'=>'grid', 'filter_cols'=>'0,0,0,0,1,0,0'] );
form_tab_end();
//*****************************************************************
form_tab_start('reports', 'Reports');
?>
<div class="report_section">
<div class="report_header">
Ticketed Event Attendees
</div>
<div class="report_criteria oo_report">
<div class="input_column">
<?php
$ar_report_sort = ['First Name', 'Last Name', 'Ticket Tier'];
form_field(['fname'=>'tea_sort_1', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'fclass'=>'no_dirty', 'fdbname'=>'', 'flabel'=>'Primary Sort', 'ar_group'=>$ar_report_sort, 'form_id'=>'frm_report_tea']);
form_field(['fname'=>'tea_sort_2', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'fclass'=>'no_dirty', 'fdbname'=>'', 'flabel'=>'Secondary Sort', 'ar_group'=>$ar_report_sort, 'form_id'=>'frm_report_tea']);
form_field(['fname'=>'tea_sort_3', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'fclass'=>'no_dirty', 'fdbname'=>'', 'flabel'=>'Tertiary Sort', 'ar_group'=>$ar_report_sort, 'form_id'=>'frm_report_tea']);
?>
</div>
<?php report_output_format('frm_report_tea'); ?>
</div>
</div>
<div class="report_section">
<div class="report_header">
Event Waitlist
</div>
<div class="report_criteria oo_report">
<div class="input_column">
<?php
$ar_report_sort = ['First Name', 'Last Name'];
form_field(['fname'=>'ew_sort_1', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'fclass'=>'no_dirty', 'fdbname'=>'', 'flabel'=>'Primary Sort', 'ar_group'=>$ar_report_sort, 'form_id'=>'frm_report_ew']);
form_field(['fname'=>'ew_sort_2', 'ftype'=>'select', 'fsize'=>25, 'frequired'=>false, 'fclass'=>'no_dirty', 'fdbname'=>'', 'flabel'=>'Secondary Sort', 'ar_group'=>$ar_report_sort, 'form_id'=>'frm_report_ew']);
?>
</div>
<?php report_output_format('frm_report_ew'); ?>
</div>
</div>
<?php
form_tab_end();
//*****************************************************************
form_tab_revisions('events', $_REQUEST['id']);
form_button_strip('bottom');
?>
</form>
<form name="frm_report_tea" id="frm_report_tea" method="post" action="report.php?rpt=ticketed_event_attendees&type=oo_report&event_id=<?php echo nz($_REQUEST['id'], '0'); ?>" target="_blank">
</form>
<form name="frm_report_ew" id="frm_report_ew" method="post" action="report.php?rpt=event_waitlist&type=oo_report&event_id=<?php echo nz($_REQUEST['id'], '0'); ?>" target="_blank">
</form>
<div id="refund_dialog" title="Enter Refund Details" style="display:none;">
<p><b><i>Refunds can only be issued after the transaction has settled (1-2 business days)</i></b></p>
<p>Refund reason: <input type="text" class="no_dirty" id="refund_reason"></p>
<!--<p>Credit Card Number (optional for settled transactions): <input type="text" class="no_dirty" id="refund_cc_num"></p>-->
</div>
<?php require_once('_html_editor.php'); ?>