From fc49de8b546bde5b0242683cc17b3f55d0abe187 Mon Sep 17 00:00:00 2001 From: Ditra Amadia <13521019@std.stei.itb.ac.id> Date: Sun, 1 Oct 2023 15:58:29 +0000 Subject: [PATCH] fix: fix controller's model method --- api/auth/register.php | 1 - app/controllers/Admin.php | 15 ++++++++------- app/init.php | 3 ++- app/models/LanguageModel.php | 5 ++--- app/models/ModuleModel.php | 19 +++++++++++++++++++ app/models/UserModel.php | 7 ++++--- app/views/admin/dashboard/index.php | 8 ++++---- index.php | 1 + public/css/register.css | 1 + 9 files changed, 41 insertions(+), 19 deletions(-) create mode 100644 app/models/ModuleModel.php diff --git a/api/auth/register.php b/api/auth/register.php index 494523f..66a0106 100644 --- a/api/auth/register.php +++ b/api/auth/register.php @@ -43,7 +43,6 @@ if (isset($_POST['username']) && isset($_POST['password']) && isset($_POST['emai $email = $_POST['email']; $rows = $user_model->register(array('username' => $username, 'password' => $password, 'email' => $email)); $language_rows = $language_model->getLanguageCount(); - $language_rows = intval($language_rows['count']); for ($i = 1; $i <= $language_rows; $i++) { $progress_rows = $progress_model->initialize(array('user_id' => $rows, 'language_id' => $i)); } diff --git a/app/controllers/Admin.php b/app/controllers/Admin.php index 04fb5de..717464e 100644 --- a/app/controllers/Admin.php +++ b/app/controllers/Admin.php @@ -7,19 +7,19 @@ class Admin extends Controller { } public function dashboard() { - if (!(isset($_SESSION['username']) && !empty($_SESSION['username']))) { + if (!(isset($_SESSION['username']) && !empty($_SESSION['username'])) || $_SESSION['is_admin']==false) { header('Location: /login'); + exit(); } $data["pageTitle"] = "Admin dashboard"; $data["username"] = $_SESSION['username']; + $data["languageCount"] = $this->model("LanguageModel")->getLanguageCount(); + $data["moduleCount"] = $this->model("ModuleModel")->getModuleCount(); // ini masih hardcode - // $data["numOfLanguage"] = $this->model('LanguageModel')->getLanguageCount(); - $data["numOfLanguage"] = 4; - $data["numOfModules"] = 12; - $data["numOfVideos"] = 60; - $data["numOfUsers"] = 3; + $data["videoCount"] = 60; // + $data["userCount"] = $this->model("UserModel")->getUserCount();; $this->view('header/index', $data); $this->view('navbar/index'); @@ -28,8 +28,9 @@ class Admin extends Controller { } public function manage($languageName = null, $moduleName = null) { - if (!(isset($_SESSION['username']) && !empty($_SESSION['username']))) { + if (!(isset($_SESSION['username']) && !empty($_SESSION['username'])) || $_SESSION['is_admin']=false) { header('Location: /login'); + exit(); } if (isset($languageName) && !empty($languageName) && isset($moduleName) && !empty($moduleName)) { diff --git a/app/init.php b/app/init.php index 3fd79f7..96dfb13 100644 --- a/app/init.php +++ b/app/init.php @@ -1,4 +1,5 @@ <?php require_once 'core/App.php'; -require_once 'core/Controller.php'; \ No newline at end of file +require_once 'core/Controller.php'; +require_once 'core/Database.php'; \ No newline at end of file diff --git a/app/models/LanguageModel.php b/app/models/LanguageModel.php index 9fba1b3..a7d4649 100644 --- a/app/models/LanguageModel.php +++ b/app/models/LanguageModel.php @@ -1,7 +1,5 @@ <?php -// require_once "../core/Database.php"; - class LanguageModel { private $table = 'languages'; @@ -15,6 +13,7 @@ class LanguageModel public function getLanguageCount() { $this->db->query('SELECT COUNT(*) FROM ' . $this->table); - return $this->db->single(); + $temp = $this->db->single(); + return intval($temp["count"]); } } \ No newline at end of file diff --git a/app/models/ModuleModel.php b/app/models/ModuleModel.php new file mode 100644 index 0000000..eb80743 --- /dev/null +++ b/app/models/ModuleModel.php @@ -0,0 +1,19 @@ +<?php + +class ModuleModel +{ + private $table = 'modules'; + private $db; + + public function __construct() + { + $this->db = new Database(); + } + + public function getModuleCount() + { + $this->db->query('SELECT COUNT(*) FROM ' . $this->table); + $temp = $this->db->single(); + return intval($temp["count"]); + } +} \ No newline at end of file diff --git a/app/models/UserModel.php b/app/models/UserModel.php index 2f7ad36..caed363 100644 --- a/app/models/UserModel.php +++ b/app/models/UserModel.php @@ -53,9 +53,10 @@ class UserModel return $this->db->rowCount(); } - public function getNumOfUsers() + public function getUserCount() { - $this->db->query('SELECT * FROM users'); - return $this->db->rowCount(); + $this->db->query('SELECT COUNT(*) FROM users'); + $temp = $this->db->single(); + return intval($temp["count"]); } } \ No newline at end of file diff --git a/app/views/admin/dashboard/index.php b/app/views/admin/dashboard/index.php index ceb08e9..bee0015 100644 --- a/app/views/admin/dashboard/index.php +++ b/app/views/admin/dashboard/index.php @@ -16,19 +16,19 @@ <div class="entity-card"> <span class="font-bold text-md">Language</span> - <span class="font-reg text-sm"><?= $data["numOfLanguage"] ?> Entities</span> + <span class="font-reg text-sm"><?= $data["languageCount"] ?> Records</span> </div> <div class="entity-card"> <span class="font-bold text-md">Modules</span> - <span class="font-reg text-sm"><?= $data["numOfModules"] ?> Entities</span> + <span class="font-reg text-sm"><?= $data["moduleCount"] ?> Records</span> </div> <div class="entity-card"> <span class="font-bold text-md">Videos</span> - <span class="font-reg text-sm"><?= $data["numOfVideos"] ?> Entities</span> + <span class="font-reg text-sm"><?= $data["videoCount"] ?> Records</span> </div> <div class="entity-card"> <span class="font-bold text-md">Users</span> - <span class="font-reg text-sm"><?= $data["numOfUsers"] ?> Entities</span> + <span class="font-reg text-sm"><?= $data["userCount"] ?> Records</span> </div> </div> diff --git a/index.php b/index.php index e4b441a..45e65ab 100644 --- a/index.php +++ b/index.php @@ -1,5 +1,6 @@ <?php if(!session_id()) session_start(); +require_once 'config/config.php'; require_once 'app/init.php'; $app = new App; \ No newline at end of file diff --git a/public/css/register.css b/public/css/register.css index 102d462..7274400 100644 --- a/public/css/register.css +++ b/public/css/register.css @@ -218,6 +218,7 @@ #username-error, #email-error, #password-error, #confirm-password-error { color: red; font-size: 14px; + position: absolute; } @media (max-width: 1000px) { -- GitLab