117 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
require_once('include/global.php');
 | 
						|
 | 
						|
if(!$authenticated) {
 | 
						|
	$smarty->assign('recaptcha_html', recaptcha_get_html($config['recaptcha_publickey']));
 | 
						|
	$smarty->display('login.tpl');
 | 
						|
	exit;
 | 
						|
}
 | 
						|
 | 
						|
$action = isset($_GET['action']) ? $_GET['action'] : 'list';
 | 
						|
$subaction = isset($_GET['subaction']) ? $_GET['subaction'] : 'none';
 | 
						|
 | 
						|
switch($action) {
 | 
						|
	case 'list':
 | 
						|
		$program_list = array();
 | 
						|
		if( $result = $db->query("SELECT `id`, `name`, `description`, `major_version`, `minor_version`, `revision_version`, `last_updated` FROM `programs`;")) {
 | 
						|
			while($row = $result->fetch_assoc()) {
 | 
						|
				$program_list[] = $row;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		$smarty->assign('program_list', $program_list);
 | 
						|
		$smarty->display('programs.tpl');
 | 
						|
		break;
 | 
						|
 | 
						|
	case 'edit':
 | 
						|
		if(!isset($_GET['id'])) die('Error: Missing `id` variable.');
 | 
						|
		
 | 
						|
		$id = (int)$_GET['id'];
 | 
						|
		if($result = $db->query("SELECT `id`, `name`, `active`, `description`, `major_version`, `minor_version`, `revision_version`, `last_updated` FROM `programs` WHERE `id` = $id;")) {
 | 
						|
			if($row = $result->fetch_assoc()) {
 | 
						|
				$smarty->assign('program', $row);
 | 
						|
				$smarty->display('programs_edit.tpl');
 | 
						|
			}
 | 
						|
		}
 | 
						|
		break;
 | 
						|
 | 
						|
	case 'add':
 | 
						|
		$smarty->assign('program', array('name' => 'New Program Name', 'description' => '', 'major_version'=>1, 'minor_version'=>0, 'revision_version'=>0, 'active'=> 1));
 | 
						|
		$smarty->display('programs_add.tpl');
 | 
						|
		break;
 | 
						|
		
 | 
						|
	case 'submit':
 | 
						|
		$id = isset($_POST['id']) ? (int)$_POST['id'] : -1;
 | 
						|
		$name = isset($_POST['name']) ? $db->real_escape_string($_POST['name']) : '';
 | 
						|
		$description = isset($_POST['description']) ? $db->real_escape_string($_POST['description']) : '';
 | 
						|
		$major_version = isset($_POST['major_version']) ? (int)$_POST['major_version'] : 0;
 | 
						|
		$minor_version = isset($_POST['minor_version']) ? (int)$_POST['minor_version'] : 0;
 | 
						|
		$revision_version = isset($_POST['revision_version']) ? (int)$_POST['revision_version'] : 0;
 | 
						|
		$active = isset($_POST['active']) ? (int)($_POST['active'] == '1') : 0;
 | 
						|
		$last_updated = time();
 | 
						|
		
 | 
						|
		$error_list = array();
 | 
						|
		if(empty($name)) {
 | 
						|
			$error_list[] = 'Invalid name provided.';
 | 
						|
		}
 | 
						|
		if($major_version == -1 || $minor_version == -1) {
 | 
						|
			$error_list[] = 'Invalid version provided.';
 | 
						|
		}
 | 
						|
		
 | 
						|
		if(count($error_list) == 0) {
 | 
						|
			switch($subaction) {
 | 
						|
				case 'add':
 | 
						|
					$db->query(sprintf('INSERT INTO `programs` (`name`, `description`, `active`, `major_version`, `minor_version`, `revision_version`, `last_updated`) 
 | 
						|
						VALUES (\'%s\', \'%s\', %d, %d, %d, %d, %d);', 
 | 
						|
							$name, $description, $active, $major_version, $minor_version, $revision_version, $last_updated)); 
 | 
						|
					if($db->insert_id > 0) {
 | 
						|
						if($_FILES['exe']['error'] === UPLOAD_ERR_OK && $_FILES['exe']['size'] > 0) {
 | 
						|
							update_program($_FILES['exe']['tmp_name'], $db->insert_id);		
 | 
						|
						}
 | 
						|
					} else {
 | 
						|
						$error_list[] = 'Error adding program.';
 | 
						|
					}
 | 
						|
					break;
 | 
						|
				case 'edit':
 | 
						|
					$db->query(sprintf('UPDATE `programs` SET `name` = \'%s\', `description` = \'%s\', `active` = %d, 
 | 
						|
						`major_version` = %d, `minor_version` = %d, `revision_version` = %d, `last_updated` = %d WHERE id = %d;',
 | 
						|
						$name, $description, $active, $major_version, $minor_version, $revision_version, $last_updated, $id)); 
 | 
						|
					//if($db->affected_rows > 0) {
 | 
						|
						if($_FILES['exe']['error'] === UPLOAD_ERR_OK && $_FILES['exe']['size'] > 0) {
 | 
						|
							update_program($_FILES['exe']['tmp_name'], $id);		
 | 
						|
						}
 | 
						|
					//} else {
 | 
						|
					//	$error_list[] = 'Error updating program.';
 | 
						|
					//}
 | 
						|
					break;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		$error_message = '';
 | 
						|
		if(count($error_list) > 0) {
 | 
						|
			for($i = 0; $i < count($error_list); $i++) {
 | 
						|
				$error_message .= $error_list[$i]."<br />\r\n";
 | 
						|
			}
 | 
						|
			$smarty->assign('error_message', $error_message);
 | 
						|
			if($subaction == 'add') {
 | 
						|
				$smarty->assign('program', array('name' => $name, 'description' => $description, 'major_version'=>$major_version, 'minor_version'=>$minor_version, 'revision_version'=>$revision_version, 'active'=> $active));
 | 
						|
				$smarty->display('programs_add.tpl');
 | 
						|
			} else {
 | 
						|
				$smarty->assign('program', array('id'=> $id, 'name' => $name, 'description' => $description, 'major_version'=>$major_version, 'minor_version'=>$minor_version, 'revision_version'=>$revision_version, 'active'=> $active));
 | 
						|
				$smarty->display('programs_edit.tpl');
 | 
						|
			}
 | 
						|
		} else {
 | 
						|
			header('Location: programs.php');
 | 
						|
		}
 | 
						|
		break;
 | 
						|
 | 
						|
	case 'delete':
 | 
						|
		if(!isset($_GET['id'])) die('Error: Missing `id` variable.');
 | 
						|
		$id = (int)$_GET['id'];
 | 
						|
		if( $db->query(sprintf('DELETE FROM `programs` WHERE `id` = %d;', $id))) {
 | 
						|
			if($db->affected_rows > 0) {
 | 
						|
				echo 'DEL-OK';
 | 
						|
			}
 | 
						|
		}
 | 
						|
		break;
 | 
						|
}
 | 
						|
?>
 |