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/mod/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/tgnewdev/admin/mod/email_template_jobs_ajax.php
<?php

use classes\lib\BatchJob;

	require('_mod_security.php');

	$sql = '';
	switch ($_GET['func']):
		case 'grid' :
			require_once('classes/lcs_db_grid.php');
			$dbg = new lcs_db_grid;
			$dbg->start_header_section();
			$dbg->start_header();
			$dbg->add_column(['label' => 'Job Type', 'dbcol' => 'bj.job_type', 'width' => '100px']);
			$dbg->add_column(['label' => 'Status', 'dbcol' => 'bj.status', 'width' => '120px']);
			$dbg->add_column(['label' => 'Start Time', 'dbcol' => 'bj.start_time', 'width' => '130px']);
			$dbg->add_column(['label' => 'End Time', 'dbcol' => 'bj.end_time', 'width' => '130px']);
			$dbg->add_column(['label' => 'Total Items', 'dbcol' => 'bj.total_recs', 'width' => '100px', 'sortable'=> false, 'searchable'=>false, 'align'=>'right']);
			$dbg->add_column(['label' => 'Processed Items', 'dbcol' => 'bj.processed_recs', 'width' => '100px', 'sortable'=> false, 'searchable'=>false, 'align'=>'right']);
			$dbg->add_column(['label' => '% Complete', 'width' => '100px', 'sortable'=> false, 'searchable'=>false, 'align'=>'right']);
			$dbg->add_column(['label' => 'View Output', 'width' => '120px', 'sortable'=> false, 'searchable'=>false]);
			$dbg->add_column(['label' => 'Cancel', 'sortable' => false, 'searchable' => false, 'width' => '85px', 'align' => 'center']);
			$dbg->end_header();
			$dbg->end_header_section();
			$sql = "SELECT bj.*, IF(COALESCE(bj.total_recs, 0) = 0, 0, round(COALESCE(bj.processed_recs, 0) / bj.total_recs * 100)) AS percent_complete FROM batch_jobs bj ".
					"WHERE ".$dbg->search_spec()." ".$_GET['parm1']." ".$_GET['parm2']." ".$_GET['parm3']." ".
					"ORDER BY ".$dbg->sort_spec();
			//echo ' === '.$sql.' === ';
			$xls_sql = $sql;
			$xls_sql_encoded = xls_sql_encrypt($xls_sql);
			$result = $db->query($sql) or die('Database Error!');
			$dbg->start_data_section();
			if ($result->rowCount() > 0) :
				while ($row = $result->fetch(PDO::FETCH_OBJ)) :
					$dbg->start_row($row->id);
					$dbg->add_cell($row->job_type);
					$dbg->add_cell($row->status, 'status_' . $row->id);
					$dbg->add_cell($row->start_time);
					$dbg->add_cell($row->end_time, 'end_time_' . $row->id);
					$dbg->add_cell($row->total_recs, 'total_recs_' . $row->id);
					$dbg->add_cell($row->processed_recs, 'processed_recs_' . $row->id);
					//$dbg->add_cell(empty($row->total_recs) ? 0 : (int)($row->processed_recs / $row->total_recs * 100), 'precent_' . $row->id);
					$dbg->add_cell($row->percent_complete, 'percent_' . $row->id);
					$dbg->add_cell('<a href="javascript:show_job_output('.$row->id.');" >'.substr(strip_tags($row->output), 0, 50).'</a>', 'output_' . $row->id);
					if ($row->status == 'running') :
						$dbg->add_cell('<a href="javascript:confirm_cancel('.$row->id.');"><img src="img/delete_icon.gif" style="border:none;" /></a>', 'cancel_' . $row->id);
					else :
						$dbg->add_cell('');
					endif;
					$dbg->end_row();
				endwhile;
			else :
				$dbg->start_row();
				$dbg->add_cell('No records found');
				$dbg->end_row();
			endif;
			$dbg->end_data_section();
			echo json_encode(['row_count' => $result->rowCount(), 'html' => $dbg->get_html(), 'xls_sql' => $xls_sql_encoded, 'extra_data'=> '']);
			return;
			break;
		case 'get_job_status' :
			$sql = "SELECT *, IF(COALESCE(bj.total_recs, 0) = 0, 0, round(COALESCE(bj.processed_recs, 0) / bj.total_recs * 100)) AS percent_complete FROM batch_jobs bj WHERE bj.job_type = 'batch_email' AND 
				(
					status IN ('not_started', 'running') OR
					status IN ('completed', 'cancelled') AND end_time > DATE_SUB(NOW(), INTERVAL 2 MINUTE)
				)
				AND bj.reference_id = ".nz(trim($_GET['id']), '0');
			$result = $db->query($sql);
			$data = [];
			if ($result->rowCount() > 0) :
				while ($row = $result->fetch(PDO::FETCH_ASSOC)) :
					$row['output'] = substr(strip_tags($row['output']), 0, 50);
					foreach($row as $index => $value) :
						if ($value === NULL) :
							$row[$index] = '';
						endif;
					endforeach;
					$data[] = $row;
				endwhile;
			endif;
			$msg = 'Success';
			echo json_encode(['result' => $msg, 'data' => $data]);
			return;
			break;
		case 'cancel_job' :
			$batch_job = new BatchJob((int)nz(trim($_GET['id']), '0'));
			$batch_job->request_cancellation();
			$msg = 'Success';
			echo json_encode(['result' => $msg]);
			return;
			break;
		case 'get_output' :
			$batch_job = new BatchJob((int)nz(trim($_GET['id']), '0'));
			$html = $batch_job->get_output();
			$msg = 'Success';
			echo json_encode(['result' => $msg, 'html' => $html]);
			return;
			break;
		case 'load_email_contacts' :
			require_once('classes/lcs_db_grid.php');
			$dbg = new lcs_db_grid;
			$dbg->start_header_section();
			$dbg->start_header();
			$dbg->add_column(['label' => 'Select', 'sortable' => false, 'searchable' => false, 'width' => '50px', 'align' => 'center']);
			$dbg->add_column(['label' => 'First Name', 'dbcol' => 'c.first_name', 'width' => '80px']);
			$dbg->add_column(['label' => 'Last Name', 'dbcol' => 'c.last_name', 'width' => '80px']);
			$dbg->add_column(['label' => 'Venue', 'dbcol' => 'v.name', 'width' => '120px']);
			$dbg->end_header();
			$dbg->end_header_section();
			$sql = "SELECT c.id, c.first_name, c.last_name, v.name FROM contacts c INNER JOIN venues v ON (v.id = c.venue_id) ".
					"WHERE ".$dbg->search_spec()." ".$_GET['parm1']." ".$_GET['parm2']." ".$_GET['parm3']." ".
					"ORDER BY ".$dbg->sort_spec();
			//echo ' === '.$sql.' === ';
			$xls_sql = $sql;
			$xls_sql_encoded = xls_sql_encrypt($xls_sql);
			$result = $db->query($sql) or die('Database Error!');
			$dbg->start_data_section();
			if ($result->rowCount() > 0) :
				while ($row = $result->fetch(PDO::FETCH_OBJ)) :
					$dbg->start_row();
					$dbg->add_cell('<input id="contact_selected_'.$row->id.'" name="contact_selected['.$row->id.']" class="no_dirty contact_selected" type="checkbox" value="1" onclick="click_email_selection(this, ' . $row->id . ')" />');
					$dbg->add_cell($row->first_name);
					$dbg->add_cell($row->last_name);
					$dbg->add_cell($row->name);
					$dbg->end_row();
				endwhile;
			else :
				$dbg->start_row();
				$dbg->add_cell('No records found');
				$dbg->end_row();
			endif;
			$dbg->end_data_section();
			echo json_encode(['row_count' => $result->rowCount(), 'html' => $dbg->get_html(), 'xls_sql' => $xls_sql_encoded, 'extra_data'=> '']);
			return;
			break;
	endswitch;

Youez - 2016 - github.com/yon3zu
LinuXploit