From 90e23af09d5701d0eb7c9537bfb9dd5e0cc7010c Mon Sep 17 00:00:00 2001 From: Dian Date: Fri, 17 Sep 2021 10:41:33 +0800 Subject: [PATCH 01/16] update readme.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3ec4908..da5c5d7 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@ tutorial Codeigniter di Petani Kode. # List Tutorial -1. [Pengenalan Codeigniter untuk Pemula](https://www.petanikode.com/codeigniter-pemula/) -2. [Persiapan dan Instalasi Codeigniter](https://www.petanikode.com/codeigniter-install/) +1. [Pengenalan Codeigniter untuk Pemula](https://www.petanikode.com/codeigniter-pemula/) (source code: n/a) +2. [Persiapan dan Instalasi Codeigniter](https://www.petanikode.com/codeigniter-install/) (Source code: [first commit](https://github.com/petanikode/tutorial-codeigniter/tree/60562e67a920d3ca5d358d9c98bfca8e84fa102d)) 3. [Memahami Konsep MVC di Codeigniter](https://www.petanikode.com/codeigniter-mvc/) (source code: [04-routing](https://github.com/petanikode/tutorial-codeigniter/tree/04-routing)) 4. [Memahami Controller](https://www.petanikode.com/codeigniter-controller/) (source code: [04-routing](https://github.com/petanikode/tutorial-codeigniter/tree/04-routing)) 5. [Memahami View dan Menggunakan CSS](https://www.petanikode.com/codeigniter-view/) (source code: [05-view-dan-css](https://github.com/petanikode/tutorial-codeigniter/tree/05-view-dan-css)) From bb08ce0db819b448c37acaa7251479a6b0f89d22 Mon Sep 17 00:00:00 2001 From: Dian Date: Fri, 17 Sep 2021 10:43:20 +0800 Subject: [PATCH 02/16] fix readme.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index da5c5d7..42087ce 100644 --- a/README.md +++ b/README.md @@ -6,14 +6,14 @@ tutorial Codeigniter di Petani Kode. # List Tutorial -1. [Pengenalan Codeigniter untuk Pemula](https://www.petanikode.com/codeigniter-pemula/) (source code: n/a) +1. [Pengenalan Codeigniter untuk Pemula](https://www.petanikode.com/codeigniter-pemula/) (Source code: n/a) 2. [Persiapan dan Instalasi Codeigniter](https://www.petanikode.com/codeigniter-install/) (Source code: [first commit](https://github.com/petanikode/tutorial-codeigniter/tree/60562e67a920d3ca5d358d9c98bfca8e84fa102d)) 3. [Memahami Konsep MVC di Codeigniter](https://www.petanikode.com/codeigniter-mvc/) (source code: [04-routing](https://github.com/petanikode/tutorial-codeigniter/tree/04-routing)) 4. [Memahami Controller](https://www.petanikode.com/codeigniter-controller/) (source code: [04-routing](https://github.com/petanikode/tutorial-codeigniter/tree/04-routing)) 5. [Memahami View dan Menggunakan CSS](https://www.petanikode.com/codeigniter-view/) (source code: [05-view-dan-css](https://github.com/petanikode/tutorial-codeigniter/tree/05-view-dan-css)) 6. [Menggunakan Model dan Database](https://www.petanikode.com/codeigniter-model/) (source code: [06-model](https://github.com/petanikode/tutorial-codeigniter/tree/06-model)) 7. [Membuat Halaman Admin](https://www.petanikode.com/codeigniter-admin/) (source code: [07-admin](https://github.com/petanikode/tutorial-codeigniter/tree/07-admin)) -8. [Validasi Data Form](https://www.petanikode.com/codeigniter-validation/) (source code: [08-login](https://github.com/petanikode/tutorial-codeigniter/tree/08-validation)) +8. [Validasi Data Form](https://www.petanikode.com/codeigniter-validation/) (source code: [08-validation](https://github.com/petanikode/tutorial-codeigniter/tree/08-validation)) 9. [Membuat FItur Login](https://www.petanikode.com/codeigniter-login/) (source code: [09-login](https://github.com/petanikode/tutorial-codeigniter/tree/09-login)) 10. [Membuat FItur Setting Profile](https://www.petanikode.com/codeigniter-setting/) (source code: [10-setting](https://github.com/petanikode/tutorial-codeigniter/tree/10-setting)) From 5fcac662d5449f5e61c766a112c6c36397a663b6 Mon Sep 17 00:00:00 2001 From: Dian Date: Thu, 23 Sep 2021 22:49:29 +0800 Subject: [PATCH 03/16] change class names --- application/views/admin/dashboard.php | 4 ++-- application/views/admin/feedback_list.php | 4 ++-- application/views/admin/post_list.php | 10 +++++----- application/views/admin/setting.php | 10 +++++----- public/assets/css/admin.css | 8 ++++---- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/application/views/admin/dashboard.php b/application/views/admin/dashboard.php index 0484157..2dd7f25 100644 --- a/application/views/admin/dashboard.php +++ b/application/views/admin/dashboard.php @@ -13,13 +13,13 @@

Overview

-
+ -
+

diff --git a/application/views/admin/feedback_list.php b/application/views/admin/feedback_list.php index 0f080c4..3d6c846 100644 --- a/application/views/admin/feedback_list.php +++ b/application/views/admin/feedback_list.php @@ -16,9 +16,9 @@
@@ -46,9 +46,9 @@ Edit Password
- Your Password: ****** + Your Password: ******
- Last Changed: password_updated_at ?> + Last Changed: password_updated_at ?>
diff --git a/public/assets/css/admin.css b/public/assets/css/admin.css index 2c06c93..0c954c0 100644 --- a/public/assets/css/admin.css +++ b/public/assets/css/admin.css @@ -171,17 +171,17 @@ input:focus, textarea:focus { } /* Text */ -.txt-green { +.text-green { color: #4caf50; } -.txt-red { +.text-red { color: #be1616; } -.txt-grey { +.text-gray { color: grey; } -.txt-center { +.text-center { text-align: center; } From 5263b753dd7b8e2501b29835dc35909fab32b9b3 Mon Sep 17 00:00:00 2001 From: Dian Date: Tue, 5 Oct 2021 12:31:36 +0800 Subject: [PATCH 04/16] create upload avatar - user can upload and change avatar - user can remove avatar --- application/controllers/admin/Setting.php | 67 ++++++++++++++++--- .../views/admin/setting_upload_avatar.php | 35 ++++++++++ public/upload/avatar/.gitkeep | 0 3 files changed, 93 insertions(+), 9 deletions(-) create mode 100644 application/views/admin/setting_upload_avatar.php create mode 100644 public/upload/avatar/.gitkeep diff --git a/application/controllers/admin/Setting.php b/application/controllers/admin/Setting.php index 2ec59f0..48f6b7c 100644 --- a/application/controllers/admin/Setting.php +++ b/application/controllers/admin/Setting.php @@ -19,12 +19,61 @@ public function index() public function upload_avatar() { - echo "comming soon!"; + $this->load->model('profile_model'); + $data['current_user'] = $this->auth_model->current_user(); + + if ($this->input->method() === 'post') { + // the user id contain dot, so we must remove it + $file_name = str_replace('.','',$data['current_user']->id); + $config['upload_path'] = FCPATH.'/upload/avatar/'; + $config['allowed_types'] = 'gif|jpg|jpeg|png'; + $config['file_name'] = $file_name; + $config['overwrite'] = true; + $config['max_size'] = 1024; // 1MB + $config['max_width'] = 1024; + $config['max_height'] = 1024; + + $this->load->library('upload', $config); + + if (!$this->upload->do_upload('avatar')) { + $data['error'] = $this->upload->display_errors(); + } else { + $uploaded_data = $this->upload->data(); + + $new_data = [ + 'id' => $data['current_user']->id, + 'avatar' => $uploaded_data['file_name'], + ]; + + if ($this->profile_model->update($new_data)) { + $this->session->set_flashdata('message', 'Avatar was updated'); + redirect(site_url('admin/setting')); + } + } + } + + $this->load->view('admin/setting_upload_avatar.php', $data); } public function remove_avatar() { - echo "comming soon!"; + $current_user = $this->auth_model->current_user(); + $this->load->model('profile_model'); + + // hapus file + $file_name = str_replace('.', '', $current_user->id); + array_map('unlink', glob(FCPATH."/upload/avatar/$file_name.*")); + + // set avatar menjadi null + $new_data = [ + 'id' => $current_user->id, + 'avatar' => null, + ]; + + if ($this->profile_model->update($new_data)) { + $this->session->set_flashdata('message', 'Avatar dihapus!'); + redirect(site_url('admin/setting')); + } } public function edit_profile() @@ -37,8 +86,8 @@ public function edit_profile() $rules = $this->profile_model->profile_rules(); $this->form_validation->set_rules($rules); - if($this->form_validation->run() === FALSE){ - return $this->load->view('admin/setting_edit_profile_form.php', $data ); + if ($this->form_validation->run() === FALSE) { + return $this->load->view('admin/setting_edit_profile_form.php', $data); } $new_data = [ @@ -47,12 +96,12 @@ public function edit_profile() 'email' => $this->input->post('email'), ]; - if($this->profile_model->update($new_data)){ + if ($this->profile_model->update($new_data)) { $this->session->set_flashdata('message', 'Profile was updated'); redirect(site_url('admin/setting')); } } - + $this->load->view('admin/setting_edit_profile_form.php', $data); } @@ -66,8 +115,8 @@ public function edit_password() $rules = $this->profile_model->password_rules(); $this->form_validation->set_rules($rules); - if($this->form_validation->run() === FALSE){ - return $this->load->view('admin/setting_edit_password_form.php', $data ); + if ($this->form_validation->run() === FALSE) { + return $this->load->view('admin/setting_edit_password_form.php', $data); } $new_password_data = [ @@ -76,7 +125,7 @@ public function edit_password() 'password_updated_at' => date("Y-m-d H:i:s"), ]; - if($this->profile_model->update($new_password_data)){ + if ($this->profile_model->update($new_password_data)) { $this->session->set_flashdata('message', 'Password was changed'); redirect(site_url('admin/setting')); } diff --git a/application/views/admin/setting_upload_avatar.php b/application/views/admin/setting_upload_avatar.php new file mode 100644 index 0000000..bd6d568 --- /dev/null +++ b/application/views/admin/setting_upload_avatar.php @@ -0,0 +1,35 @@ + + + + + load->view('admin/_partials/head.php') ?> + + + +
+ load->view('admin/_partials/side_nav.php') ?> + +
+

Upload Avatar

+ +
+
+ + +
+ + +
+ + +
+ +
+
+ + load->view('admin/_partials/footer.php') ?> +
+
+ + + diff --git a/public/upload/avatar/.gitkeep b/public/upload/avatar/.gitkeep new file mode 100644 index 0000000..e69de29 From d3df31cff26fcf3e7893768eb96e84d2f078d872 Mon Sep 17 00:00:00 2001 From: Dian Date: Tue, 5 Oct 2021 12:36:27 +0800 Subject: [PATCH 05/16] update readme.md --- README.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 42087ce..99fdf81 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,17 @@ tutorial Codeigniter di Petani Kode. # List Tutorial -1. [Pengenalan Codeigniter untuk Pemula](https://www.petanikode.com/codeigniter-pemula/) (Source code: n/a) -2. [Persiapan dan Instalasi Codeigniter](https://www.petanikode.com/codeigniter-install/) (Source code: [first commit](https://github.com/petanikode/tutorial-codeigniter/tree/60562e67a920d3ca5d358d9c98bfca8e84fa102d)) -3. [Memahami Konsep MVC di Codeigniter](https://www.petanikode.com/codeigniter-mvc/) (source code: [04-routing](https://github.com/petanikode/tutorial-codeigniter/tree/04-routing)) -4. [Memahami Controller](https://www.petanikode.com/codeigniter-controller/) (source code: [04-routing](https://github.com/petanikode/tutorial-codeigniter/tree/04-routing)) -5. [Memahami View dan Menggunakan CSS](https://www.petanikode.com/codeigniter-view/) (source code: [05-view-dan-css](https://github.com/petanikode/tutorial-codeigniter/tree/05-view-dan-css)) -6. [Menggunakan Model dan Database](https://www.petanikode.com/codeigniter-model/) (source code: [06-model](https://github.com/petanikode/tutorial-codeigniter/tree/06-model)) -7. [Membuat Halaman Admin](https://www.petanikode.com/codeigniter-admin/) (source code: [07-admin](https://github.com/petanikode/tutorial-codeigniter/tree/07-admin)) -8. [Validasi Data Form](https://www.petanikode.com/codeigniter-validation/) (source code: [08-validation](https://github.com/petanikode/tutorial-codeigniter/tree/08-validation)) -9. [Membuat FItur Login](https://www.petanikode.com/codeigniter-login/) (source code: [09-login](https://github.com/petanikode/tutorial-codeigniter/tree/09-login)) -10. [Membuat FItur Setting Profile](https://www.petanikode.com/codeigniter-setting/) (source code: [10-setting](https://github.com/petanikode/tutorial-codeigniter/tree/10-setting)) +1. [Pengenalan Codeigniter untuk Pemula](https://www.petanikode.com/codeigniter-pemula/) (Source Code: n/a) +2. [Persiapan dan Instalasi Codeigniter](https://www.petanikode.com/codeigniter-install/) (Source Code: [first commit](https://github.com/petanikode/tutorial-codeigniter/tree/60562e67a920d3ca5d358d9c98bfca8e84fa102d)) +3. [Memahami Konsep MVC di Codeigniter](https://www.petanikode.com/codeigniter-mvc/) (Source Code: [04-routing](https://github.com/petanikode/tutorial-codeigniter/tree/04-routing)) +4. [Memahami Controller](https://www.petanikode.com/codeigniter-controller/) (Source Code: [04-routing](https://github.com/petanikode/tutorial-codeigniter/tree/04-routing)) +5. [Memahami View dan Menggunakan CSS](https://www.petanikode.com/codeigniter-view/) (Source Code: [05-view-dan-css](https://github.com/petanikode/tutorial-codeigniter/tree/05-view-dan-css)) +6. [Menggunakan Model dan Database](https://www.petanikode.com/codeigniter-model/) (Source Code: [06-model](https://github.com/petanikode/tutorial-codeigniter/tree/06-model)) +7. [Membuat Halaman Admin](https://www.petanikode.com/codeigniter-admin/) (Source Code: [07-admin](https://github.com/petanikode/tutorial-codeigniter/tree/07-admin)) +8. [Validasi Data Form](https://www.petanikode.com/codeigniter-validation/) (Source Code: [08-validation](https://github.com/petanikode/tutorial-codeigniter/tree/08-validation)) +9. [Membuat FItur Login](https://www.petanikode.com/codeigniter-login/) (Source Code: [09-login](https://github.com/petanikode/tutorial-codeigniter/tree/09-login)) +10. [Membuat FItur Setting Profile](https://www.petanikode.com/codeigniter-setting/) (Source Code: [10-setting](https://github.com/petanikode/tutorial-codeigniter/tree/10-setting)) +11. [Membuat Fitur Upload Avatar](https://www.petanikode.com/codeigniter-upload/) (Source Code: [11-upload](https://github.com/petanikode/tutorial-codeigniter/tree/11-upload)) Tutorial lengkapnya dapat dibaca di: From ea25a132f791952005f6c4a55bfc94332c5de0c1 Mon Sep 17 00:00:00 2001 From: Dian Date: Tue, 5 Oct 2021 13:11:25 +0800 Subject: [PATCH 06/16] udpate readme.md --- README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/README.md b/README.md index 99fdf81..78962b6 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,40 @@ perintah berikut pada root direktori project. composer install ``` +Buat database di Phpmyadmin dan ubah konfigurasi database di `application/config/database.php`. + +```php +$active_group = 'default'; +$query_builder = TRUE; + +$db['default'] = array( + 'dsn' => '', + 'hostname' => 'localhost', + 'username' => 'root', // <- sesuaikan dengan username mysql-mu + 'password' => '', // <- jika user mysql-mu menggunakan password, silahkan isi ini + 'database' => 'beritacoding', //<- sesuaikan nama database dengan yang kamu buat + 'dbdriver' => 'mysqli', + 'dbprefix' => '', + 'pconnect' => FALSE, + 'db_debug' => (ENVIRONMENT !== 'production'), + 'cache_on' => FALSE, + 'cachedir' => '', + 'char_set' => 'utf8', + 'dbcollat' => 'utf8_general_ci', + 'swap_pre' => '', + 'encrypt' => FALSE, + 'compress' => FALSE, + 'stricton' => FALSE, + 'failover' => array(), + 'save_queries' => TRUE +); +``` + Kemudian lakukan migrasi database dengan perintah: ```bash composer migrate ``` + +Tidak perlu membuat tabel atau impor secara manual, karena semua sudah dilakukan +dengan migrasi database. From 5f310418606216502fe031e1e775d8df0f7e3eca Mon Sep 17 00:00:00 2001 From: Dian Date: Tue, 5 Oct 2021 18:18:07 +0800 Subject: [PATCH 07/16] add quilljs --- application/views/admin/post_edit_form.php | 25 +++++++++++++++++++++- application/views/admin/post_new_form.php | 24 ++++++++++++++++++++- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/application/views/admin/post_edit_form.php b/application/views/admin/post_edit_form.php index afb56d8..9794ea5 100644 --- a/application/views/admin/post_edit_form.php +++ b/application/views/admin/post_edit_form.php @@ -3,6 +3,7 @@ load->view('admin/_partials/head.php') ?> + @@ -25,7 +26,9 @@
- + content ?> + +
@@ -38,6 +41,26 @@ load->view('admin/_partials/footer.php') ?> + +
diff --git a/application/views/admin/post_new_form.php b/application/views/admin/post_new_form.php index 99bde1b..9b239ca 100644 --- a/application/views/admin/post_new_form.php +++ b/application/views/admin/post_new_form.php @@ -3,6 +3,7 @@ load->view('admin/_partials/head.php') ?> + @@ -23,7 +24,8 @@
- + +
@@ -36,6 +38,26 @@ load->view('admin/_partials/footer.php') ?> + +
From 62145c9c58f351ed09f50cab1f591d5fbbd7b033 Mon Sep 17 00:00:00 2001 From: Dian Date: Tue, 5 Oct 2021 18:19:35 +0800 Subject: [PATCH 08/16] update readme.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 78962b6..cf58100 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ tutorial Codeigniter di Petani Kode. 9. [Membuat FItur Login](https://www.petanikode.com/codeigniter-login/) (Source Code: [09-login](https://github.com/petanikode/tutorial-codeigniter/tree/09-login)) 10. [Membuat FItur Setting Profile](https://www.petanikode.com/codeigniter-setting/) (Source Code: [10-setting](https://github.com/petanikode/tutorial-codeigniter/tree/10-setting)) 11. [Membuat Fitur Upload Avatar](https://www.petanikode.com/codeigniter-upload/) (Source Code: [11-upload](https://github.com/petanikode/tutorial-codeigniter/tree/11-upload)) +12. [Menambahkan Editor Artikel](http://www.petanikode.com/codeigniter-quilljs/) (Source Code: [12-editor](https://github.com/petanikode/tutorial-codeigniter/tree/12-editor)) Tutorial lengkapnya dapat dibaca di: From dc2064b09a35882a34f5296f76a4c5b3ba2238a6 Mon Sep 17 00:00:00 2001 From: Dian Date: Tue, 5 Oct 2021 18:22:57 +0800 Subject: [PATCH 09/16] udpate readme.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cf58100..0dfdc68 100644 --- a/README.md +++ b/README.md @@ -41,8 +41,8 @@ $query_builder = TRUE; $db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', - 'username' => 'root', // <- sesuaikan dengan username mysql-mu - 'password' => '', // <- jika user mysql-mu menggunakan password, silahkan isi ini + 'username' => 'root', // <- sesuaikan dengan username mysql + 'password' => '', // <- isi dengan password user mysql 'database' => 'beritacoding', //<- sesuaikan nama database dengan yang kamu buat 'dbdriver' => 'mysqli', 'dbprefix' => '', From 440dfb4c9274a2776d6c7a43ae42ec9e3f765dc5 Mon Sep 17 00:00:00 2001 From: Dian Date: Wed, 16 Feb 2022 12:27:00 +0800 Subject: [PATCH 10/16] fitur pencarian untuk halaman public --- application/controllers/Search.php | 15 +++++++++ application/models/Article_model.php | 11 ++++++ application/views/_partials/navbar.php | 1 + application/views/search.php | 46 ++++++++++++++++++++++++++ 4 files changed, 73 insertions(+) create mode 100644 application/controllers/Search.php create mode 100644 application/views/search.php diff --git a/application/controllers/Search.php b/application/controllers/Search.php new file mode 100644 index 0000000..db10c37 --- /dev/null +++ b/application/controllers/Search.php @@ -0,0 +1,15 @@ +input->get('keyword'); + $this->load->model('article_model'); + + $data['search_result'] = $this->article_model->search($data['keyword']); + + $this->load->view('search.php', $data); + } +} diff --git a/application/models/Article_model.php b/application/models/Article_model.php index 79b56be..2e0be05 100644 --- a/application/models/Article_model.php +++ b/application/models/Article_model.php @@ -68,6 +68,17 @@ public function find($id) return $query->row(); } + public function search($keyword) + { + if(!$keyword){ + return null; + } + $this->db->like('title', $keyword); + $this->db->or_like('content', $keyword); + $query = $this->db->get($this->_table); + return $query->result(); + } + public function insert($article) { return $this->db->insert($this->_table, $article); diff --git a/application/views/_partials/navbar.php b/application/views/_partials/navbar.php index a521363..af6e282 100644 --- a/application/views/_partials/navbar.php +++ b/application/views/_partials/navbar.php @@ -1,6 +1,7 @@