diff --git a/.env b/.env index 60d18f216c2b0b39f67a6ae4f621c753e0030348..21e2f4c8c238de0dfef1ff0811064a7583501fe6 100644 --- a/.env +++ b/.env @@ -2,4 +2,5 @@ POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=labpro POSTGRES_HOST=db -SOAP_URL=http://host.docker.internal:8080/premium \ No newline at end of file +SOAP_URL=http://host.docker.internal:8080/premium +REST_URL=http://host.docker.internal:8000/api \ No newline at end of file diff --git a/api/course/premium.php b/api/course/premium.php new file mode 100644 index 0000000000000000000000000000000000000000..72cd0ab35ee387e29982486e686a2b33961bed67 --- /dev/null +++ b/api/course/premium.php @@ -0,0 +1,6 @@ +<?php + $raw = file_get_contents("http://host.docker.internal:8000/api/course"); + $data = json_decode($raw, true); + $course = $data["data"]; + var_dump($course); +?> \ No newline at end of file diff --git a/api/subscribe/subscribe.php b/api/subscribe/subscribe.php index 77e7b79144700d6a84144345c9ba4bcce9ae7500..acbdc141f4a3a203c9a9a8ee82e3045fe255f06f 100644 --- a/api/subscribe/subscribe.php +++ b/api/subscribe/subscribe.php @@ -18,6 +18,7 @@ </soap:Body> </soap:Envelope>'; $headers = array( + "X-API-KEY: PHPApp", "Content-Type: text/xml;charset=\"utf-8\"", ); $url = $_ENV["SOAP_URL"]; diff --git a/api/subscribe/update.php b/api/subscribe/update.php new file mode 100644 index 0000000000000000000000000000000000000000..3a8fb43baa45f387335e2d9c79e81d178a890483 --- /dev/null +++ b/api/subscribe/update.php @@ -0,0 +1,4 @@ +<?php + $data = file_get_contents("php://input"); + var_dump($data); +?> \ No newline at end of file diff --git a/app/controllers/PremiumController.php b/app/controllers/PremiumController.php new file mode 100644 index 0000000000000000000000000000000000000000..3179044f18c5809bbe08a5d038b8f46fdd292df8 --- /dev/null +++ b/app/controllers/PremiumController.php @@ -0,0 +1,28 @@ +<?php + class PremiumController extends Controller{ + public function index(){ + header("Location: /premium/lists/page=1"); + exit; + } + public function lists($params){ + + $components = explode("=",$params); + $page_number = $components[1]; + // Fetch data courses + $raw = file_get_contents("http://host.docker.internal:8000/api/course?page=".$page_number); + $data = json_decode($raw,true); + + // Fetch total seluruh data + $raw_total_data = file_get_contents("http://host.docker.internal:8000/api/course/total"); + $json_total_data = json_decode($raw_total_data,true); + + // Cleaning data + $total_data = $json_total_data["data"]; + $total_page = ceil($total_data/4); + $courses = $data["data"]; + + // Meneruskan data ke view + return $this->view('premium','index',["page_number"=>$page_number,"courses"=>$courses,"type"=>"lists","max_page"=>$total_page]); + } + } +?> \ No newline at end of file diff --git a/app/core/App.php b/app/core/App.php index b795779b65bdd778e778e06d50c70eb12ba28a2d..4b81b3b6a939569f74a3e34acd7b317087e02d3d 100644 --- a/app/core/App.php +++ b/app/core/App.php @@ -28,8 +28,13 @@ $this->params = array_values($url); }else{ if($this->methods == "lists"){ - header("Location: /course/lists/page=1"); - exit; + if($this->controllers === "course"){ + header("Location: /course/lists/page=1"); + exit; + }else if($this->controllers === "premimum"){ + header("Location: /premium/lists/page=1"); + } + }else if($this->methods == "enrolled"){ header("Location: /course/enrolled/page=1"); exit; diff --git a/app/views/premium/index.php b/app/views/premium/index.php new file mode 100644 index 0000000000000000000000000000000000000000..a7a84cbf3159d196eb9a3f134d58d40baf5f4008 --- /dev/null +++ b/app/views/premium/index.php @@ -0,0 +1,138 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../public/css/home/home.css" rel="stylesheet"> + <script src="../../public/js/home.js" defer></script> + <title>Document</title> +</head> +<body> + <?php + if(isset($_SESSION["user_id"])){ + $user = new User; + $enrolled_courses = $user->getAllCoursesEnrolled(); + } + if(isset($_SESSION["success"])){ + $message = $_SESSION["success"]; + $type = "success"; + include(__DIR__."/../components/alertBox.php"); + unset($_SESSION["success"]); + } + if(isset($_SESSION["error"])){ + $message = $_SESSION["error"]; + $type = "error"; + include(__DIR__."/../components/alertBox.php"); + unset($_SESSION["error"]); + } + ?> + <?php include __DIR__ . '/../navbar/navbar.php'?> + <section class="home-section"> + + <!-- HEADER SLIDESHOW --> + + <div class="header"> + <div class="slideshow-container"> + + <div class="mySlides fade"> + <img src="../../public/asset/banner1.png" style="width:100%"> + </div> + + <div class="mySlides fade"> + <img src="../../public/asset/banner2.png" style="width:100%"> + </div> + <a class="prev" onclick="plusSlides(-1)">❮</a> + <a class="next" onclick="plusSlides(1)">❯</a> + </div> + <br> + <div style="text-align:center"> + <span class="dot" onclick="currentSlide(1)"></span> + <span class="dot" onclick="currentSlide(2)"></span> + </div> + </div> + + <!-- COURSES CARDS --> + + <div class="card-container"> + <div class="cards grid-row"> + + <!-- Iterate through database the courses and put into this card --> + <?php + $model = new Course(); + $courses = $data["courses"]; + foreach ($courses as $course ) { + $joined = false; + if(isset($_SESSION["user_id"])){ + $rows = $model->search_participant($course["id"]); + if($rows){ + $joined = true; + } + } + $image_path = isset($course["image_path"]) ? $course["image_path"]:"../../public/asset/banner1.png"; + $formattedDate = date('d-m-y', strtotime($course['release_date'])); + echo" + <div class='card' onclick='openModal(\"$joined\",\"$course[id]\",\"$course[title]\",\"$course[description]\",\"$formattedDate\")' style='cursor: pointer;'> + <div class='card-top'> + <img src='$image_path' alt='Blog Name'> + </div> + <div class='card-info'> + <div class='course-name'> + <h2>$course[title]</h2> + </div> + <span class='lecturer'>$course[description]</span> + </div> + <div class='card-bottom flex-row'> + <p>$formattedDate</p> + </div> + </div> + "; + } + ?> + </div> + </div> + + <div id="overlay"> + <dialog id="dialog"> + <div class="modal-container"> + <div class="flex"> + <p id="upload-date"></p> + <button class="close-btn" onclick="closeDialog()"> + <i> + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> + <path d="M9.172 16.242 12 13.414l2.828 2.828 1.414-1.414L13.414 12l2.828-2.828-1.414-1.414L12 10.586 9.172 7.758 7.758 9.172 10.586 12l-2.828 2.828z"/> + <path d="M12 22c5.514 0 10-4.486 10-10S17.514 2 12 2 2 6.486 2 12s4.486 10 10 10zm0-18c4.411 0 8 3.589 8 8s-3.589 8-8 8-8-3.589-8-8 3.589-8 8-8z"/> + </svg> + </i> + </button> + </div> + <div class="title"><h3 id="course-title"></h3></div> + <div class="description"> + <p id="course-desc"> + </p> + <p style="display:none" id="course_id"></p> + </div> + <div class="buttons-enroll" id="button"> + <button id="course-detail" class="enroll-btn" style="visibiility:hidden;" onclick='visitCourse()'>Go to this course</button> + <!-- <div class="lecturer"><h4>Lecturer: Bapak saya, kakek, nenek, pak dosen</h4></div> --> + <div class="wrapper"> + <input placeholder="Enter course password" id="password-input" type="hidden" /> + <button class='enroll-btn' id="enroll-btn" onclick='enrolled()'>Enroll this Course</button> + </div> + + </div> + </div> + </dialog> + </div> + + <?php + if(isset($data["courses"]) && count($data["courses"]) !== 0){ + $parent = "premium"; + $href = $data["type"]; + include __DIR__ . '/../components/pagination.php'; + }else{ + echo "<div class='no-course'><p>There is no courses available...</p></div>"; + } + ?> + </section> +</body> +</html> \ No newline at end of file