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]."
\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; } ?>