403Webshell
Server IP : 210.245.233.93  /  Your IP : 216.73.216.226
Web Server : Apache/2.2.15 (CentOS)
System : Linux webserver2.onesolution.com.hk 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : exec, shell_exec, system, passthru, popen, proc_open, pcntl_exec
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/(Del)pathways.org.hk/MIS_bk/event_attendance/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/(Del)pathways.org.hk/MIS_bk/event_attendance/index.php
<?php
require_once(__DIR__ . '/../checkuser.php');
function index() {
	global $dbh;
	
	$typeOptions = array(
		1 => 'Staff',
		2 => 'Student',
	);
	
	$message = $_GET['message'] ?: null;
	$search = $_GET['search'] ?: array();
	$sort = $_GET['sort'] ?: array();
	
	$sort_by_columns = array(
		'event_code' => 'Event Code',
		'lesson_date' => 'Date',
		'time' => 'Time',
		'program_code' => 'Programme',
		'subject_code' => 'Subject',
		'name' => 'Name',
		'type' => 'Type',
		'attendance' => 'Attendance',
	);
	$sort_by_options = array(
		'asc' => 'A - Z',
		'desc' => 'Z - A',
	);
	
	$today = date('Y-m-d');
	if (empty($search['start_date']) && empty($search['end_date'])) {
		$search['start_date'] = $today;
		$search['end_date'] = $today;
	}
	
	if (isPost()) {
		// Save
		Db\Util::transaction($dbh, function() use ($dbh) {
			$lesson_staff_columns = Db\Util::columns($dbh, 'mis_lesson_staff');
			$lesson_student_columns = Db\Util::columns($dbh, 'mis_lesson_student');
			
			$save = function($table, &$attributes, &$columns) use ($dbh) {
				$sql = "SELECT * FROM `$table` WHERE `$table`.`id` = ? FOR UPDATE";
				$parameters = array($attributes['id']);
				$sth = Db\Util::execute($dbh, $sql, $parameters);
				$lesson_person = $sth->fetch(PDO::FETCH_ASSOC);
				
				$lesson_person = array_merge($lesson_person, $attributes);
				return Db\Util::update($dbh, $table, $lesson_person, $columns);
			};
			
			// update staff
			foreach ($_POST['attendance']['1'] as $id => $attributes) {
				$tmp_attributes = array_merge($attributes, array('id' => $id));
				$save('mis_lesson_staff', $tmp_attributes, $lesson_staff_columns);
			}
			// update student
			foreach ($_POST['attendance']['2'] as $id => $attributes) {
				$tmp_attributes = array_merge($attributes, array('id' => $id));
				$save('mis_lesson_student', $tmp_attributes, $lesson_student_columns);
			}
		});
		
		$data = array(
			'message' => 'Saved',
			'search' => $search,
			'sort' => $sort,
		);
		redirectAndExit(basename(__FILE__) . '?' . http_build_query($data));
	}
	
	//TODO: search query
	
	$lesson_staff_columns = Db\Util::columns($dbh, 'mis_lesson_staff');
	$lesson_student_columns = Db\Util::columns($dbh, 'mis_lesson_student');
	$union_column_names = array();
	$lesson_staff_column_names = array();
	foreach ($lesson_staff_columns as $column) {
		$lesson_staff_column_names[] = $column['column_name'];
		if (!in_array($column['column_name'], $union_column_names)) {
			$union_column_names[] = $column['column_name'];
		}
	}
	$lesson_student_column_names = array();
	foreach ($lesson_student_columns as $column) {
		$lesson_student_column_names[] = $column['column_name'];
		if (!in_array($column['column_name'], $union_column_names)) {
			$union_column_names[] = $column['column_name'];
		}
	}
	$get_column_names = function($alias, $column_names) use (&$union_column_names) {
		$ret_column_names = array();
		foreach ($union_column_names as $column_name) {
			if (in_array($column_name, $column_names)) {
				$ret_column_names[] = $alias . '.' . $column_name;
			} else {
				$ret_column_names[] = 'NULL AS ' . $column_name;
			}
		}
		return $ret_column_names;
	};
	
	$sql = "
SELECT DISTINCT *
FROM (
	/* Staffs */
	SELECT
		1 AS `type`,
		latest_staff.id AS person_id,
		latest_staff.root_id AS person_root_id,
		latest_staff.last_name,
		latest_staff.first_name,
		staff_position.title AS position_title,
		NULL AS registration_number,
		NULL AS grade_title,
		lesson.`date` AS lesson_date,
		lesson.start_time_hour AS lesson_start_time_hour,
		lesson.start_time_min AS lesson_start_time_min,
		lesson.end_time_hour AS lesson_end_time_hour,
		lesson.end_time_min AS lesson_end_time_min,
		attendance.attendance AS date_attendance,
		program.code AS program_code,
		subject.code AS subject_code,
		evt.code AS event_code,
		" . implode(', ', $get_column_names('lesson_staff', $lesson_staff_column_names)) . "
	FROM mis_event evt
	LEFT JOIN mis_program program ON program.id = evt.program_id
	LEFT JOIN mis_subject subject ON subject.id = evt.subject_id
	INNER JOIN mis_event_lesson lesson ON lesson.event_id = evt.id AND lesson.deleted = 0
	INNER JOIN mis_lesson_staff lesson_staff ON lesson_staff.lesson_id = lesson.id AND lesson_staff.deleted = 0
	INNER JOIN mis_staff staff ON staff.id = lesson_staff.staff_id
	INNER JOIN mis_staff latest_staff ON latest_staff.root_id = staff.root_id AND latest_staff.is_latest = 1
	LEFT JOIN mis_staff_position staff_position ON staff_position.id = latest_staff.position_id
	LEFT JOIN (
		SELECT attendance.*, staff.root_id AS staff_root_id
		FROM mis_attendance attendance
		INNER JOIN mis_staff staff ON staff.id = attendance.staff_id
	) attendance ON attendance.staff_root_id = latest_staff.root_id AND attendance.`date` = lesson.`date`
	WHERE evt.deleted = 0
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE lesson.`date` >= ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE lesson.`date` <= ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE evt.program_id = ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE evt.subject_id = ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE evt.code = ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE latest_staff.root_id = ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE 1 = 0 END
	
	UNION ALL
	
	/* Students */
	SELECT
		2 AS `type`,
		latest_student.id AS person_id,
		latest_student.root_id AS person_root_id,
		latest_student.last_name,
		latest_student.first_name,
		NULL AS position_title,
		latest_student.registration_number,
		student_grade.title AS grade_title,
		lesson.`date` AS lesson_date,
		lesson.start_time_hour AS lesson_start_time_hour,
		lesson.start_time_min AS lesson_start_time_min,
		lesson.end_time_hour AS lesson_end_time_hour,
		lesson.end_time_min AS lesson_end_time_min,
		attendance.attendance AS date_attendance,
		program.code AS program_code,
		subject.code AS subject_code,
		evt.code AS event_code,
		" . implode(', ', $get_column_names('lesson_student', $lesson_student_column_names)) . "
	FROM mis_event evt
	LEFT JOIN mis_program program ON program.id = evt.program_id
	LEFT JOIN mis_subject subject ON subject.id = evt.subject_id
	INNER JOIN mis_event_lesson lesson ON lesson.event_id = evt.id AND lesson.deleted = 0
	INNER JOIN mis_lesson_student lesson_student ON lesson_student.lesson_id = lesson.id AND lesson_student.deleted = 0
	INNER JOIN mis_student student ON student.id = lesson_student.student_id
	INNER JOIN mis_student latest_student ON latest_student.root_id = student.root_id AND latest_student.is_latest = 1
	LEFT JOIN mis_student_grade student_grade ON student_grade.id = latest_student.student_grade_id
	LEFT JOIN (
		SELECT attendance.*, student.root_id AS student_root_id
		FROM mis_attendance attendance
		INNER JOIN mis_student student ON student.id = attendance.student_id
	) attendance ON attendance.student_root_id = latest_student.root_id AND attendance.`date` = lesson.`date`
	WHERE evt.deleted = 0
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE lesson.`date` >= ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE lesson.`date` <= ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE evt.program_id = ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE evt.subject_id = ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE evt.code = ? END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE 1 = 0 END
		AND CASE WHEN COALESCE(LENGTH(?), 0) = 0 THEN 1 = 1 ELSE latest_student.root_id = ? END
) attendance
ORDER BY ";
	$order_by_sql = '';
	foreach ($sort as $index => $info) {
		if (!empty($info['column']) && !empty($info['option']) && in_array($info['column'], array_keys($sort_by_columns))) {
			if (!empty($order_by_sql)) {
				$order_by_sql .= ', ';
			}
			$direction = strtoupper($info['option']) != 'DESC' ? 'ASC' : 'DESC';
			switch ($info['column']) {
				case 'name': {
					$order_by_sql .= "CONCAT(last_name, ' ', first_name) $direction";
					break;
				}
				case 'time': {
					$order_by_sql .= "lesson_start_time_hour $direction, lesson_start_time_min $direction, lesson_end_time_hour $direction, lesson_end_time_min $direction";
					break;
				}
				default: {
					$column = $info['column'];
					$order_by_sql .= "`$column` $direction";
					break;
				}
			}
		}
	}
	if (empty($order_by_sql)) {
		$order_by_sql = "lesson_date, `type`, last_name, first_name";
	}
	$sql .= $order_by_sql . ", registration_number, person_root_id";
	$parameters = array(
		$search['start_date'], $search['start_date'],
		$search['end_date'], $search['end_date'],
		$search['program_id'], $search['program_id'],
		$search['subject_id'], $search['subject_id'],
		$search['event_code'], $search['event_code'],
		$search['staff_root_id'], $search['staff_root_id'],
		$search['student_root_id'],
		
		$search['start_date'], $search['start_date'],
		$search['end_date'], $search['end_date'],
		$search['program_id'], $search['program_id'],
		$search['subject_id'], $search['subject_id'],
		$search['event_code'], $search['event_code'],
		$search['staff_root_id'],
		$search['student_root_id'], $search['student_root_id'],
	);
	$sth = Db\Util::execute($dbh, $sql, $parameters);
	$attendances = $sth->fetchAll();
	
	$sql = "SELECT * FROM mis_campus WHERE deleted = ? ORDER BY sort";
	$parameters = array(0);
	$sth = Db\Util::execute($dbh, $sql, $parameters);
	$campuses = $sth->fetchAll();
	
	$sql = "SELECT * FROM mis_program WHERE deleted = ? ORDER BY sort";
	$parameters = array(0);
	$sth = Db\Util::execute($dbh, $sql, $parameters);
	$programs = $sth->fetchAll();
	
	$sql = "SELECT * FROM mis_subject WHERE deleted = ? ORDER BY sort";
	$parameters = array(0);
	$sth = Db\Util::execute($dbh, $sql, $parameters);
	$subjects = $sth->fetchAll();
	
	$sql = "
SELECT staff.*, staff_position.title AS position_title
FROM mis_staff staff
LEFT JOIN mis_staff_position staff_position ON staff_position.id = staff.position_id
WHERE staff.is_latest = 1 AND staff.deleted = 0
ORDER BY staff.last_name, staff.first_name, staff.root_id";
	$parameters = array();
	$sth = Db\Util::execute($dbh, $sql, $parameters);
	$all_staffs = $sth->fetchAll();
	
	return array(
		'message' => $message,
		'search' => $search,
		'sort' => $sort,
		'sort_by_columns' => $sort_by_columns,
		'sort_by_options' => $sort_by_options,
		
		'attendances' => $attendances,
		'campuses' => $campuses,
		'programs' => $programs,
		'subjects' => $subjects,
		'typeOptions' => $typeOptions,
		'all_staffs' => $all_staffs,
	);
}
extract(index());
?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	
	<?php require(__DIR__ . '/../inc/_head_meta.php'); ?>
	
	<?php require(__DIR__ . '/../inc/_head_css.php'); ?>
	
	<?php require(__DIR__ . '/../inc/_head_script.php'); ?>
	
</head>
<body>
	
	<?php require( __DIR__ . '/../inc/_navbar.php'); ?>
	
	<div class="text-right">
		<ul class="breadcrumb">
			<li class="active"><a href="#">Event Attendance</a></li>
		</ul>
	</div>
	
	<div class="container-fluid pathways-container">
		
		<?php if (isset($message) && !empty($message)): ?>
		<div class="alert alert-info">
			<button type="button" class="close" data-dismiss="alert">&times;</button>
			<h5 class="alert-heading">Note:</h5>
			<p><?=$message?></p>
		</div>
		<?php endif; ?>
		
		<button type="button" class="btn pull-right" onclick="bootbox.alert('Coming soon...')">Print</button>
		<h3>Event Attendance</h3>
		
		<div class="pathways-search">
			<form id="search_form" class="form-inline" action="" method="get">
				<div class="pathways-inline-block">
					<?php $attribute = 'event_code'; $label = 'Event Code'; ?>
					<label class="" for="<?=$attribute?>"><?=$label?></label>
					<input type="text" id="<?=$attribute?>" name="search[<?=$attribute?>]" class="input-medium" value="<?=h($search[$attribute])?>" placeholder="<?=h($label)?>" maxlength="200" />
				</div>
				<script type="text/javascript">
					$(function() {
						$('#event_code').typeahead({
							source: function(query, process) {
								return $.getJSON('../event/codes.json.php', { q: query }, function(data) {
									return process(data.results);
								});
							}
						});
					});
				</script>
				
				<div class="pathways-inline-block">
					<?php $attribute = 'program_id'; $label = 'Programme'; ?>
					<label class="" for="<?=$attribute?>"><?=$label?></label>
					<select id="<?=$attribute?>" name="search[<?=$attribute?>]" class="input-medium" placeholder="<?=h($label)?>">
						<option value="">All</option>
						<?php foreach ($programs as $program): ?>
						<option value="<?=h($program['id'])?>"<?=$program['id'] == $search[$attribute] ? ' selected="selected"' : ''?>><?=h($program['code'])?></option>
						<?php endforeach; ?>
					</select>
				</div>
				
				<div class="pathways-inline-block">
					<?php $attribute = 'subject_id'; $label = 'Subject'; ?>
					<label class="" for="<?=$attribute?>"><?=$label?></label>
					<select id="<?=$attribute?>" name="search[<?=$attribute?>]" class="input-medium" placeholder="<?=h($label)?>">
						<option value="">All</option>
						<?php foreach ($subjects as $subject): ?>
						<option value="<?=h($subject['id'])?>"<?=$subject['id'] == $search[$attribute] ? ' selected="selected"' : ''?>><?=h($subject['code'])?></option>
						<?php endforeach; ?>
					</select>
				</div>
				
				<div class="pathways-inline-block">
					<?php $attribute = 'start_date'; $label = 'Date'; ?>
					<label class="" for="<?=$attribute?>"><?=$label?></label>
					<div class="input-append date-picker">
						<input type="text" id="<?=$attribute?>" name="search[<?=$attribute?>]" class="dateISO input-small" style="width:90px" value="<?=h(Util::value_to_date_string($search[$attribute]))?>" data-format="yyyy-MM-dd" placeholder="<?=h($label)?>" maxlength="200" />
						<span class="add-on"><i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span>
					</div>
					<?php $attribute = 'end_date'; $label = 'To'; ?>
					<label class="" for="<?=$attribute?>"><?=$label?></label>
					<div class="input-append date-picker">
						<input type="text" id="<?=$attribute?>" name="search[<?=$attribute?>]" class="dateISO input-small" style="width:90px" value="<?=h(Util::value_to_date_string($search[$attribute]))?>" data-format="yyyy-MM-dd" placeholder="<?=h($label)?>" maxlength="200" />
						<span class="add-on"><i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span>
					</div>
				</div>
				
				<div class="pathways-inline-block">
					<?php $attribute = 'staff_root_id'; $label = 'Staff'; ?>
					<label class="" for="<?=$attribute?>"><?=$label?></label>
					<!-- <input type="text" id="<?=$attribute?>" name="search[<?=$attribute?>]" class="input-medium" value="<?=h($search[$attribute])?>" placeholder="<?=h($label)?>" maxlength="200" /> -->
					<select id="<?=$attribute?>" name="search[<?=$attribute?>]" class="select2" placeholder="Select a <?=$label?>">
						<option value=""></option>
						<?php foreach ($all_staffs as $staff): ?>
						<option value="<?=h($staff['root_id'])?>"<?=$staff['root_id'] == $search[$attribute] ? ' selected="selected"' : ''?>>
							<?=h($staff['last_name'])?> <?=h($staff['first_name'])?>
						</option>
						<?php endforeach; ?>
					</select>
				</div>
				
				<div class="pathways-inline-block">
					<?php $attribute = 'student_root_id'; $label = 'Student'; ?>
					<label class="" for="<?=$attribute?>"><?=$label?></label>
					<!-- <input type="text" id="<?=$attribute?>" name="search[<?=$attribute?>]" class="input-medium" value="<?=h($search[$attribute])?>" placeholder="<?=h($label)?>" maxlength="200" /> -->
					<input type="hidden" id="<?=$attribute?>" name="search[<?=$attribute?>]" placeholder="Select a <?=$label?>" />
				</div>
				<script type="text/javascript">
					$(function() {
						$('#student_root_id').select2({
							minimumInputLength: 1,
							ajax: {
								url: '../student/students.json.php',
								dataType: 'json',
								data: function(term, page) {
									return { q: term };
								},
								results: function(data, page) {
									return { results: data.results };
								}
							}
						});
					});
				</script>
				
				<div class="pathways-inline-block">
					<?php $attribute = 'school'; $label = 'School (TBC)'; ?>
					<label class="" for="<?=$attribute?>"><?=$label?></label>
					<input type="text" id="<?=$attribute?>" name="search[<?=$attribute?>]" class="input-large" value="<?=h($search[$attribute])?>" placeholder="<?=h($label)?>" maxlength="200" />
				</div>
				
				<div class="pathways-inline-block">
					<?php foreach ($sort as $index => $info): ?>
					<?php if (!empty($info['column']) && !empty($info['option'])): ?>
					<?php $attribute = 'column'; ?>
					<input type="hidden" name="sort[<?=h($index)?>][<?=$attribute?>]" value="<?=h($info[$attribute])?>" />
					<?php $attribute = 'option'; ?>
					<input type="hidden" name="sort[<?=h($index)?>][<?=$attribute?>]" value="<?=h($info[$attribute])?>" />
					<?php endif; ?>
					<?php endforeach; ?>
					
					<?php $attribute = 'column'; $label = 'Sort by'; ?>
					<label class="" for="<?=$attribute?>"><?=$label?></label>
					<select id="<?=$attribute?>" name="sort[<?=max(array_keys($sort?:array(0)))+1?>][<?=$attribute?>]" class="input-medium" placeholder="<?=h($label)?>">
						<option value=""></option>
						<?php foreach ($sort_by_columns as $value => $label): ?>
						<option value="<?=$value?>"<?=$value == $search[$attribute] ? ' selected="selected"' : ''?>><?=h($label)?></option>
						<?php endforeach; ?>
					</select>
					<?php $attribute = 'option'; $label = 'Option'; ?>
					<!-- <label class="" for="<?=$attribute?>"><?=$label?></label> -->
					<select id="<?=$attribute?>" name="sort[<?=max(array_keys($sort?:array(0)))+1?>][<?=$attribute?>]" class="input-mini" placeholder="<?=h($label)?>">
						<option value=""></option>
						<?php foreach ($sort_by_options as $value => $label): ?>
						<option value="<?=$value?>"<?=$value == $search[$attribute] ? ' selected="selected"' : ''?>><?=h($label)?></option>
						<?php endforeach; ?>
					</select>
					<button type="button" id="clear_sorting_btn" class="btn"><i class="icon-remove"></i> Clear sorting</button>
					<script type="text/javascript">
						$(function() {
							$('#clear_sorting_btn').click(function() {
								var $search_form = $('#search_form');
								$('input[type="hidden"][name^="sort["]', $search_form).remove();
								$search_form.submit();
							});
						});
					</script>
					<button type="submit" class="btn" style="margin-left:30px">GO</button>
				</div>
			</form>
		</div>

		<?php if (empty($attendances)): ?>
		<p>There are no records.</p>
		<?php else: ?>
		<form id="form" action="" method="post">
			<table class="table table-striped table-bordered table-hover table-condensed">
				<thead>
					<tr>
						<th>Event Code <?=Util::getSortDirectionCaretHtml($sort, 'event_code')?></th>
						<th>Date <?=Util::getSortDirectionCaretHtml($sort, 'lesson_date')?></th>
						<th>Time <?=Util::getSortDirectionCaretHtml($sort, 'time')?></th>
						<th>Programme <?=Util::getSortDirectionCaretHtml($sort, 'program_code')?></th>
						<th>Subject <?=Util::getSortDirectionCaretHtml($sort, 'subject_code')?></th>
						<th>Name <?=Util::getSortDirectionCaretHtml($sort, 'name')?></th>
						<th>Type <?=Util::getSortDirectionCaretHtml($sort, 'type')?></th>
						<th>Attendance <?=Util::getSortDirectionCaretHtml($sort, 'attendance')?></th>
					</tr>
				</thead>
				<tbody>
					<?php foreach ($attendances as $attendance): ?>
					<tr>
						<td><?=h($attendance['event_code'])?></td>
						<td><?=h($attendance['lesson_date'])?></td>
						<td>
							<?=h(sprintf('%02d', $attendance['lesson_start_time_hour']))?>:<?=h(sprintf('%02d', $attendance['lesson_start_time_min']))?>
							-
							<?=h(sprintf('%02d', $attendance['lesson_end_time_hour']))?>:<?=h(sprintf('%02d', $attendance['lesson_end_time_min']))?>
						</td>
						<td><?=h($attendance['program_code'])?></td>
						<td><?=h($attendance['subject_code'])?></td>
						<td>
							<?=h($attendance['last_name'])?> <?=h($attendance['first_name'])?>
							<?php if (!empty($attendance['registration_number'])): ?>
							(<?=h($attendance['registration_number'])?>)
							<?php endif; ?>
							<?php if (!empty($attendance['grade_title'])): ?>
							<?=h($attendance['grade_title'])?>
							<?php endif; ?>
						</td>
						<td>
							<?php $attribute = 'type'; ?>
							<?=h($typeOptions[$attendance[$attribute]])?>
						</td>
						<td>
							<div class="pathways-inline-block" style="margin-right:0px">
								<?php $attribute = 'attendance'; $label = 'Present'; ?>
								<label class="radio inline">
									<input type="radio" name="attendance[<?=$attendance['type']?>][<?=$attendance['id']?>][<?=$attribute?>]" value="1"<?=strval($attendance[$attribute]) === strval(1) ? ' checked="checked"' : ''?> />
									Present
								</label>
								<label class="radio inline" style="margin-right:20px">
									<input type="radio" name="attendance[<?=$attendance['type']?>][<?=$attendance['id']?>][<?=$attribute?>]" value="0"<?=strval($attendance[$attribute]) === strval(0) ? ' checked="checked"' : ''?> />
									Absent
								</label>
								<?php $attribute = 'leave_reason'; $label = 'Leave Reason'; ?>
								<select id="<?=$attribute?>" name="attendance[<?=$attendance['type']?>][<?=$attendance['id']?>][<?=$attribute?>]" class="input-large" placeholder="<?=h($label)?>">
									<option value=""></option>
									<?php
									$options = array();
									switch ($attendance['type']) {
										case 1: { // Staff
											$options = Staff::attendanceLeaveOptions();
											break;
										}
										case 2: { // Student
											$options = Student::attendanceLeaveOptions();
											break;
										}
									}
									foreach ($options as $value => $label):
									?>
									<option value="<?=$value?>"<?=$value == $attendance[$attribute] ? ' selected="selected"' : ''?>><?=h($label)?></option>
									<?php endforeach; ?>
								</select>
							</div>
						</td>
					</tr>
					<?php endforeach; ?>
				</tbody>
			</table>
			
			<button type="submit" class="btn btn-danger">Save</button>
		</form>
		<script type="text/javascript">
			$(function() {
				$('.select2').select2();
				$('#form').validate();
			});
		</script>
		<?php endif; ?>
		
		<script type="text/javascript">
			$(function() {
				$('.date-picker').datetimepicker({ pickTime: false });
				$('#search_form').validate();
			});
		</script>
	
		<?php require( __DIR__ . '/../inc/_footer.php'); ?>

	</div> <!-- /container -->
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit