lwrite('Slides.html: validating input parameters'); if(!isset($_GET["t_command"]) || !isset($_GET["t_lectureid"])) { $gv_log->lwrite('Slides.html: parameters are missing: command or lectureid'); http_response_code(400); } $gv_command = $_GET["t_command"]; $gv_lId = $_GET["t_lectureid"]; $gv_log->lwrite('Slides.html: command-'.$gv_command.'; lecture id-'.$gv_lId); switch($gv_command){ case "get": GetSlides($gv_link,$gv_lId); break; case "getcontent": if(!isset($_GET["t_slideid"])) { http_response_code(400); } GetSlideContent($gv_lId,$_GET["t_slideid"], $gv_link); break; case "getlecturenotes": if(!isset($_GET["t_slideid"])) { http_response_code(400); } GetLectureNotes($gv_lId,$_GET["t_slideid"], $gv_link); break; case "getstudentnotes": if(!isset($_GET["t_slideid"])) { http_response_code(400); } GetStudentNotes($gv_lId,$_GET["t_slideid"], $gv_link); break; case "save": $post = json_decode(stripslashes($_POST["t_slide"]),true); $slide = new Slide(); $slide->Id = $post['Id']; $slide->Number = $post['Number']; $slide->Title = $post['Title']; $slide->Time = isset($post['Time'])?$post['Time']:0; SaveSlide($gv_lId,$slide,$gv_link,$gv_log); break; case "savecontent": $slideContent = stripslashes($_POST["t_slidecontent"]); SaveSlideContent($gv_link,$gv_lId,$_GET["t_slideid"],$slideContent); break; case "savelecturenotes": $notes = $_POST["t_notes"]; SaveLectureNotes($gv_link,$gv_lId,$_GET["t_slideid"],$notes); break; case "savestudentnotes": $notes = $_POST["t_notes"]; SaveStudentNotes($gv_link,$gv_lId,$_GET["t_slideid"],$notes); break; case "delete": DeleteSlide($gv_lId,$_GET["t_slideid"],$gv_link); break; case "order": $order = json_decode(stripslashes($_POST["t_order"]),true); $withTime = isset($_GET["t_withTime"]); OrderSlides($gv_lId,$order,$gv_link,$withTime); break; case "savevideolength": $videolength = $_GET["t_length"]; SaveVideoLength($gv_link,$gv_lId,$videolength); break; case "addcomments": $comment = $_POST["t_comment"]; $slideid = $_GET["t_slideid"]; $userid = $_GET["t_userid"]; AddComments($gv_link,$slideid, $userid, $comment); break; default: http_response_code(400); return; } }catch(Exception $e) { $log->lwrite($e->getMessage().'
'.$e->getTraceAsString().'
'); while($e = $e->getPrevious()) $log->lwrite('Caused by: '.$e->getMessage().'
'.$e->getTraceAsString().'
'); } function GetSlides($pv_link, $pv_lId){ if ($fv_stmt = mysqli_prepare($pv_link, "SELECT slideid,lectureid,slidenum,slide_seconds,slidetitle,slidebody,lecture_notes,student_notes FROM vullo_slides WHERE lectureid=? order by slidenum asc")) { /* bind parameters for markers */ mysqli_stmt_bind_param($fv_stmt, "i", $pv_lId); /* execute query */ mysqli_stmt_execute($fv_stmt); /* bind result variables */ mysqli_stmt_bind_result($fv_stmt, $slideid,$lectureid,$slidenumber,$slide_seconds,$slidetitle,$slidebody,$lecture_notes,$student_notes); /* fetch value */ $fv_result = array(); while(mysqli_stmt_fetch($fv_stmt)){ $fv_slide = new Slide(); $fv_slide->Id = $slideid; $fv_slide->Number = $slidenumber; $fv_slide->Time = $slide_seconds; $fv_slide->Title = $slidetitle; $fv_result[] = $fv_slide; } echo json_encode($fv_result); mysqli_stmt_close($fv_stmt); } } function GetSlideContent($pv_lectureId,$pv_slideId, $pv_link){ if ($fv_stmt = mysqli_prepare($pv_link, "SELECT slidebody FROM vullo_slides WHERE lectureid=? and slideid=?")) { mysqli_stmt_bind_param($fv_stmt, "ii", $pv_lectureId, $pv_slideId); mysqli_stmt_execute($fv_stmt); mysqli_stmt_bind_result($fv_stmt, $slidebody); mysqli_stmt_fetch($fv_stmt); if($slidebody){ echo $slidebody; } mysqli_stmt_close($fv_stmt); } } function GetLectureNotes($pv_lectureId,$pv_slideId, $pv_link){ if ($fv_stmt = mysqli_prepare($pv_link, "SELECT lecture_notes FROM vullo_slides WHERE lectureid=? and slideid=?")) { mysqli_stmt_bind_param($fv_stmt, "ii", $pv_lectureId, $pv_slideId); mysqli_stmt_execute($fv_stmt); mysqli_stmt_bind_result($fv_stmt, $lecture_notes); mysqli_stmt_fetch($fv_stmt); if($lecture_notes){ echo $lecture_notes; } mysqli_stmt_close($fv_stmt); } } function GetStudentNotes($pv_lectureId,$pv_slideId, $pv_link){ if ($fv_stmt = mysqli_prepare($pv_link, "SELECT student_notes FROM vullo_slides WHERE lectureid=? and slideid=?")) { mysqli_stmt_bind_param($fv_stmt, "ii", $pv_lectureId, $pv_slideId); mysqli_stmt_execute($fv_stmt); mysqli_stmt_bind_result($fv_stmt, $student_notes); mysqli_stmt_fetch($fv_stmt); if($student_notes){ echo $student_notes; } mysqli_stmt_close($fv_stmt); } } function DeleteSlide($lectureId, $slideId, $link) { if ($stmt = mysqli_prepare($link, "DELETE FROM vullo_slides WHERE lectureid=? and slideid=?")) { mysqli_stmt_bind_param($stmt, "ii", $lectureId, $slideId); mysqli_stmt_execute($stmt); $count = mysqli_stmt_affected_rows($stmt); if($count==1) { echo '{"deletedId":'.$slideId.'}'; } mysqli_stmt_close($stmt); } } function SaveSlide($lectureId, $slide, $link) { if($slide->Number == 0){ if ($stmt = mysqli_prepare($link, "SELECT max(slidenum) FROM vullo_slides WHERE lectureid = ?")){ mysqli_stmt_bind_param($stmt, "i", $lectureId); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $number); mysqli_stmt_fetch($stmt); $slide->Number = $number + 1; mysqli_stmt_close($stmt); } } /*the result*/ $slideRet = new Slide(); $slideRet->Id = $slide->Id; $slideRet->Number = $slide->Number; $slideRet->Time = $slide->Time; $slideRet->Title = $slide->Title; /* add new slide*/ if($slide->Id==0) { if ($stmt = mysqli_prepare($link, "INSERT INTO vullo_slides (`lectureid`,`slideid`, `slidenum`,`slide_seconds`,`slidetitle`) VALUES (?,?,?,?,?)")) { mysqli_stmt_bind_param($stmt, "iiiis", $lectureId, $slide->Id, $slide->Number, $slide->Time, $slide->Title); mysqli_stmt_execute($stmt); $slideRet->Id = mysqli_insert_id($link); mysqli_stmt_close($stmt); } }else{ if ($stmt = mysqli_prepare($link, "UPDATE vullo_slides SET `slidenum`=?,`slide_seconds`=?,`slidetitle`=? WHERE lectureid=? and slideid=?")) { mysqli_stmt_bind_param($stmt, "iisii", $slide->Number, $slide->Time, $slide->Title, $lectureId,$slide->Id); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); } } echo json_encode($slideRet); } function SaveSlideContent($link, $lectureId, $slideId, $slideContent) { $stmt = mysqli_prepare($link, "UPDATE vullo_slides SET `slidebody`=? WHERE lectureid=? and slideid=?"); mysqli_stmt_bind_param($stmt, "sii", $slideContent, $lectureId, $slideId); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); } function SaveLectureNotes($link, $lectureId, $slideId, $notes) { $stmt = mysqli_prepare($link, "UPDATE vullo_slides SET `lecture_notes`=? WHERE lectureid=? and slideid=?"); mysqli_stmt_bind_param($stmt, "sii", $notes, $lectureId, $slideId); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); } function SaveStudentNotes($link, $lectureId, $slideId, $notes) { $stmt = mysqli_prepare($link, "UPDATE vullo_slides SET `student_notes`=? WHERE lectureid=? and slideid=?"); mysqli_stmt_bind_param($stmt, "sii", $notes, $lectureId, $slideId); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); } function SaveVideoLength($link, $lectureId, $length) { $stmt = mysqli_prepare($link, "UPDATE vullo_lecture_videos SET `video_length`=? WHERE lecture_id=?"); mysqli_stmt_bind_param($stmt, "di", $length, $lectureId); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); } function AddComments($link, $slideId, $userId,$comment) { if($stmt = mysqli_prepare($link, "INSERT INTO `slide_comments` ( `slide_id`, `user_id`, `comments`, `createddate`) VALUES ( ?, ?, ?,?)")) { date_default_timezone_set('America/New_York'); mysqli_stmt_bind_param($stmt, "iiss", $slideId, $userId, $comment, date("Y-m-d H:i:s",$_SERVER['REQUEST_TIME'])); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); } } function OrderSlides($lectureId, $order, $link, $withTime) { $query = $withTime?"UPDATE vullo_slides SET `slidenum`=?,`slide_seconds`=? WHERE lectureid=? and slideid=?":"UPDATE vullo_slides SET `slidenum`=? WHERE lectureid=? and slideid=?"; if ($stmt = mysqli_prepare($link, $query)) { foreach($order as $slideOrder){ if(isset($slideOrder['Time'])) { mysqli_stmt_bind_param($stmt, "idii", $slideOrder['Number'],$slideOrder['Time'], $lectureId, $slideOrder['Id']); }else{ mysqli_stmt_bind_param($stmt, "iii", $slideOrder['Number'], $lectureId, $slideOrder['Id']); } mysqli_stmt_execute($stmt); } mysqli_stmt_close($stmt); } } include "databaseclose.php"; ?>