403Webshell
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/rpt/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/tgnewdev/admin/rpt/analytics_by_event.php
<?php include('mod/_mod_security.php'); ?>
<?php
	$criteria = '';
	$filter = '';
	if (($_POST['eae_predefined_range'] ?? '') === 'Last Month') :
		$_POST['eae_event_date_start'] = date('Y-m-d', strtotime('first day of last month'));
		//$_POST['eae_event_date_end'] = date('Y-m-d', strtotime('last day of last month'));
		$_POST['eae_date_start'] = date('Y-m-d', strtotime('first day of last month'));
		$_POST['eae_date_end'] = date('Y-m-d', strtotime('last day of last month'));
	elseif (($_POST['eae_predefined_range'] ?? '') === 'Last Week') :
		$_POST['eae_event_date_start'] = date('Y-m-d', strtotime('monday last week'));
		//$_POST['eae_event_date_end'] = date('Y-m-d', strtotime('sunday last week'));
		$_POST['eae_date_start'] = date('Y-m-d', strtotime('monday last week'));
		$_POST['eae_date_end'] = date('Y-m-d', strtotime('sunday last week'));
	else :
		if (empty($_POST['eae_event_date_start'])) :
			$_POST['eae_event_date_start'] = date('Y-m-d', strtotime('monday last week'));
		endif;
		if (empty($_POST['eae_date_start'])) :
			$_POST['eae_date_start'] = date('Y-m-d', strtotime('monday last week'));
		endif;
		if (empty($_POST['eae_date_end'])) :
			$_POST['eae_date_end'] = date('Y-m-d', strtotime('sunday last week'));
		endif;
	endif;
	switch ($_POST['eae_sort_rank'] ?? '') :
		case 'Event':
			$sort_rank = 'e.name ASC';
			$filter .= '<br> Primary Sort/Rank: ' . 'Event';
			break;
		case 'Location':
			$sort_rank = 'derived_location_name ASC';
			$filter .= '<br> Primary Sort/Rank: ' . 'Location';
			break;
		case 'Event Date':
			$sort_rank = 'DATE(e.start_time_local) ASC';
			$filter .= '<br> Primary Sort/Rank: ' . 'Event Date';
			break;
		case 'Views - Rank':
			$sort_rank = 'view_count DESC';
			$filter .= '<br> Primary Sort/Rank: ' . 'Views - Rank';
			break;
		case 'Clicks - Rank':
			$sort_rank = 'click_count DESC';
			$filter .= '<br> Primary Sort/Rank: ' . 'Clicks - Rank';
			break;
		default:
			$sort_rank = 'view_count DESC';
			$filter .= '<br> Primary Sort/Rank: ' . 'Views - Rank';
	endswitch;
	switch ($_POST['eae_sort_rank2'] ?? '') :
		case 'Event':
			$sort_rank .= ', e.name ASC';
			$filter .= '<br> Seondary Sort/Rank: ' . 'Event';
			break;
		case 'Location':
			$sort_rank .= ', derived_location_name ASC';
			$filter .= '<br> Seondary Sort/Rank: ' . 'Location';
			break;
		case 'Event Date':
			$sort_rank .= ', DATE(e.start_time_local) ASC';
			$filter .= '<br> Seondary Sort/Rank: ' . 'Event Date';
			break;
		case 'Views - Rank':
			$sort_rank .= ', view_count DESC';
			$filter .= '<br> Seondary Sort/Rank: ' . 'Views - Rank';
			break;
		case 'Clicks - Rank':
			$sort_rank .= ', click_count DESC';
			$filter .= '<br> Seondary Sort/Rank: ' . 'Clicks - Rank';
			break;
		default:
			$sort_rank .= ' ';
			$filter .= '<br> Seondary Sort/Rank: ' . 'None';
	endswitch;

	if (!empty($_POST['eae_event_date_start']) && is_date($_POST['eae_event_date_start'])) :
		$criteria .= " AND e.start_time_local >= " . nzdate($_POST['eae_event_date_start']) . " ";
		$filter .= '<br> Event start date (on or after): ' . nzdate_display($_POST['eae_event_date_start']);
	endif;
	if (!empty($_POST['eae_event_date_end']) && is_date($_POST['eae_event_date_end'])) :
		$criteria .= " AND e.start_time_local <= " . nzdatetime($_POST['eae_event_date_end'] . ' 23:59:59') . " ";
		$filter .= '<br> Event end date: ' . nzdate_display($_POST['eae_event_date_end']);
	endif;
	if (!empty($_POST['eae_date_start']) && is_date($_POST['eae_date_start'])) :
		$criteria .= " AND a.create_date >= " . nzdate($_POST['eae_date_start']) . " ";
		$filter .= '<br> Analytics start date: ' . nzdate_display($_POST['eae_date_start']);
	endif;
	if (!empty($_POST['eae_date_end']) && is_date($_POST['eae_date_end'])) :
		$criteria .= " AND a.create_date <= " . nzdatetime($_POST['eae_date_end'] . ' 23:59:59') . " ";
		$filter .= '<br> Analytics end date: ' . nzdate_display($_POST['eae_date_end']);
	endif;
	if (!empty($_POST['eae_category_id'])) :
		$criteria .= " AND c.id = " . nz($_POST['eae_category_id'], '0') . " ";
		$filter .= '<br> Event category: ' . lookup_db_field('categories', 'id', $_POST['eae_category_id'], 'name');
	endif;
	if (!empty($_POST['eae_location_id'])) :
		$criteria .= " AND l.id = " . nz($_POST['eae_location_id'], '0') . " ";
		$filter .= '<br> Location: ' . lookup_db_field('locations', 'id', $_POST['eae_location_id'], 'name');
	endif;
	$slug_start_position = strlen(APP_BASE_USER_SITE_SECURE . 'events/') + 1;
	$sql = "SELECT
		e.id,
		e.name,
		e.slug,
		e.start_time_local,
		e.create_date,
		e.location_id,
		e.curriculum,
		e.resend,
		l.name AS location_name,
		l.slug AS location_slug,
		e.submitted_location,
		IF(l.name = '' OR l.name IS NULL, e.submitted_location, l.name) AS derived_location_name,
		GROUP_CONCAT(DISTINCT c.name ORDER BY c.name SEPARATOR ', ') as categories,
		COUNT(DISTINCT CASE WHEN a.category = 'page_view' AND a.action = 'view' THEN a.id ELSE NULL END) AS view_count,
		COUNT(DISTINCT CASE WHEN a.category = 'outbound_ticket_link' AND a.action = 'click' THEN a.id ELSE NULL END) AS click_count
		FROM events e
		LEFT JOIN events_categories ec ON (ec.event_id = e.id)
		LEFT JOIN categories c ON (ec.category_id = c.id AND c.active = 1)
		LEFT JOIN locations l ON (e.location_id = l.id)
		LEFT JOIN analytics a ON (a.reference_type = 'event' AND a.reference_id = e.id)
		WHERE e.status = 1
		$criteria
		GROUP BY e.id, e.name
		ORDER BY $sort_rank
	";
	//error_log($sql);
	$result = $db->query($sql) or die('Database Error!');
	$row_count = $result->rowCount();
	if ($row_count <= 0) :
		echo 'No data for report!';
		exit();
	endif;
	
	$rpt = get_report_class($_POST['output_format']);
	$rpt->set_report_title('Event Analytics by Event');
	$rpt->report_start();
	
	$rpt->header_start();
	if (!empty($filter)) :
		$rpt->header_row_start();
		$rpt->header_cell_add('Filters: '.$filter, ['colspan'=>'10', 'class'=>'large']);
		$rpt->header_row_end();
	endif;
	$rpt->header_row_start();
	$rpt->header_cell_add('Event', ['width'=>'250']);
	$rpt->header_cell_add('Location', ['width'=>'250']);
	$rpt->header_cell_add('Posted Date', ['width'=>'120']);
	$rpt->header_cell_add('Event Date', ['width'=>'120']);
	$rpt->header_cell_add('Categories', ['width'=>'250']);
	$rpt->header_cell_add('Curric.', ['width'=>'100']);
	$rpt->header_cell_add('Resend', ['width'=>'100']);
	$rpt->header_cell_add('Views', ['width'=>'100']);
	$rpt->header_cell_add('Clicks', ['width'=>'100']);
	$rpt->header_cell_add('% Clicks', ['width'=>'110']);
	$rpt->header_row_end();
	$rpt->header_end();
	
	$rpt->data_start();
	$rows = $result->fetchAll(PDO::FETCH_OBJ);
	$total_events = array_sum(array_column($rows, 'event_count'));
	$total_views = array_sum(array_column($rows, 'view_count'));
	$total_clicks = array_sum(array_column($rows, 'click_count'));
	$total_curriculum = array_sum(array_column($rows, 'curriculum'));
	$total_resend = array_sum(array_column($rows, 'resend'));
	$rpt->data_row_start();
	$rpt->data_cell_add('Total events', ['style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add($row_count, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add('');
	$rpt->data_cell_add('');
	$rpt->data_cell_add('');
	$rpt->data_cell_add($total_curriculum, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add($total_resend, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add($total_views, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add($total_clicks, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add(number_format($total_views > 0 ? (($total_clicks / $total_views) * 100) : 0, 2), ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_row_end();
	foreach ($rows as $row) :
		$rpt->data_row_start();
		$rpt->data_cell_add('<a href="' . APP_BASE_USER_SITE_SECURE . 'events/' . $row->slug . '" target="_blank">' . $row->name . '</a>');
		$rpt->data_cell_add(!empty($row->location_name) ? '<a href="' . APP_BASE_USER_SITE_SECURE . 'locations/' . $row->location_slug . '" target="_blank">' . $row->location_name . '</a>' : $row->submitted_location);
		$rpt->data_cell_add(nzdate_display($row->create_date));
		$rpt->data_cell_add(nzdate_display($row->start_time_local));
		$rpt->data_cell_add($row->categories);
		$rpt->data_cell_add($row->curriculum ? 'X' : '', ['align'=>'center']);
		$rpt->data_cell_add($row->resend ? 'X' : '', ['align'=>'center']);
		$rpt->data_cell_add($row->view_count, ['align'=>'right']);
		$rpt->data_cell_add($row->click_count, ['align'=>'right']);
		$rpt->data_cell_add(number_format($row->view_count > 0 ? (($row->click_count / $row->view_count) * 100) : 0, 2), ['align'=>'right']);
		$rpt->data_row_end();
	endforeach;
	$rpt->data_row_start();
	$rpt->data_cell_add('Total events', ['style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add($row_count, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add('');
	$rpt->data_cell_add('');
	$rpt->data_cell_add('');
	$rpt->data_cell_add($total_curriculum, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add($total_resend, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add($total_views, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add($total_clicks, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_cell_add(number_format($total_views > 0 ? (($total_clicks / $total_views) * 100) : 0, 2), ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
	$rpt->data_row_end();
	$rpt->data_end();
	
	$rpt->report_end();
	$rpt->output_report();

Youez - 2016 - github.com/yon3zu
LinuXploit