├── !TEMPLATE ├── startbootstrap-clean-blog-gh-pages (1) │ └── startbootstrap-clean-blog-gh-pages │ │ ├── about.html │ │ ├── assets │ │ ├── favicon.ico │ │ └── img │ │ │ ├── about-bg.jpg │ │ │ ├── contact-bg.jpg │ │ │ ├── home-bg.jpg │ │ │ ├── post-bg.jpg │ │ │ └── post-sample-image.jpg │ │ ├── contact.html │ │ ├── css │ │ └── styles.css │ │ ├── index.html │ │ ├── js │ │ └── scripts.js │ │ └── post.html └── startbootstrap-sb-admin-gh-pages (1) │ └── startbootstrap-sb-admin-gh-pages │ ├── 401.html │ ├── 404.html │ ├── 500.html │ ├── assets │ ├── demo │ │ ├── chart-area-demo.js │ │ ├── chart-bar-demo.js │ │ ├── chart-pie-demo.js │ │ └── datatables-demo.js │ └── img │ │ └── error-404-monochrome.svg │ ├── charts.html │ ├── css │ └── styles.css │ ├── index.html │ ├── js │ ├── datatables-simple-demo.js │ └── scripts.js │ ├── layout-sidenav-light.html │ ├── layout-static.html │ ├── login.html │ ├── password.html │ ├── register.html │ └── tables.html ├── LICENSE ├── README.md ├── app ├── .htaccess ├── Common.php ├── Config │ ├── App.php │ ├── Autoload.php │ ├── Boot │ │ ├── development.php │ │ ├── production.php │ │ └── testing.php │ ├── CURLRequest.php │ ├── Cache.php │ ├── Constants.php │ ├── ContentSecurityPolicy.php │ ├── Cookie.php │ ├── Database.php │ ├── DocTypes.php │ ├── Email.php │ ├── Encryption.php │ ├── Events.php │ ├── Exceptions.php │ ├── Feature.php │ ├── Filters.php │ ├── ForeignCharacters.php │ ├── Format.php │ ├── Generators.php │ ├── Honeypot.php │ ├── Images.php │ ├── Kint.php │ ├── Logger.php │ ├── Migrations.php │ ├── Mimes.php │ ├── Modules.php │ ├── Pager.php │ ├── Paths.php │ ├── Publisher.php │ ├── Routes.php │ ├── Security.php │ ├── Services.php │ ├── Toolbar.php │ ├── UserAgents.php │ ├── Validation.php │ └── View.php ├── Controllers │ ├── Admin │ │ ├── Admin.php │ │ ├── Akun.php │ │ ├── Article.php │ │ ├── Page.php │ │ └── Socials.php │ ├── Article.php │ ├── BaseController.php │ ├── Contact.php │ ├── Home.php │ └── Page.php ├── Database │ ├── Migrations │ │ ├── .gitkeep │ │ ├── 2022-03-06-025343_Admin.php │ │ ├── 2022-03-09-084945_ModifyColumnTokenAdmin.php │ │ ├── 2022-03-10-020932_Posts.php │ │ └── 2022-03-14-230650_Konfigurasi.php │ └── Seeds │ │ ├── .gitkeep │ │ └── Admin.php ├── Filters │ ├── .gitkeep │ ├── AuthFilter.php │ └── NoAuthFilter.php ├── Helpers │ ├── .gitkeep │ └── global_fungsi_helper.php ├── Language │ ├── .gitkeep │ └── en │ │ └── Validation.php ├── Libraries │ └── .gitkeep ├── Models │ ├── .gitkeep │ ├── AdminModel.php │ ├── KonfigurasiModel.php │ └── PostsModel.php ├── ThirdParty │ └── .gitkeep ├── Validations │ └── CustomRules.php ├── Views │ ├── admin │ │ ├── v_akun.php │ │ ├── v_article.php │ │ ├── v_article_tambah.php │ │ ├── v_login.php │ │ ├── v_lupapassword.php │ │ ├── v_page.php │ │ ├── v_page_tambah.php │ │ ├── v_resetpassword.php │ │ ├── v_socials.php │ │ ├── v_template_footer.php │ │ └── v_template_header.php │ ├── depan │ │ ├── v_article.php │ │ ├── v_contact.php │ │ ├── v_home.php │ │ ├── v_page.php │ │ ├── v_template_footer.php │ │ └── v_template_header.php │ ├── errors │ │ ├── cli │ │ │ ├── error_404.php │ │ │ ├── error_exception.php │ │ │ └── production.php │ │ └── html │ │ │ ├── debug.css │ │ │ ├── debug.js │ │ │ ├── error_404.php │ │ │ ├── error_exception.php │ │ │ └── production.php │ ├── pager │ │ ├── datatable.php │ │ └── depan.php │ └── welcome_message.php └── index.html ├── builds ├── ci-blog.sql ├── composer.json ├── composer.lock ├── env ├── phpunit.xml.dist ├── public ├── .htaccess ├── admin │ ├── assets │ │ ├── demo │ │ │ ├── chart-area-demo.js │ │ │ ├── chart-bar-demo.js │ │ │ ├── chart-pie-demo.js │ │ │ └── datatables-demo.js │ │ └── img │ │ │ └── error-404-monochrome.svg │ ├── css │ │ └── styles.css │ └── js │ │ ├── datatables-simple-demo.js │ │ └── scripts.js ├── depan │ ├── assets │ │ ├── favicon.ico │ │ └── img │ │ │ ├── about-bg.jpg │ │ │ ├── contact-bg.jpg │ │ │ ├── home-bg.jpg │ │ │ ├── post-bg.jpg │ │ │ └── post-sample-image.jpg │ ├── css │ │ └── styles.css │ └── js │ │ └── scripts.js ├── favicon.ico ├── index.php ├── robots.txt └── upload │ ├── 1645139063_3ced943093949cec417c.png │ ├── 1645174261_e82e3b061f86d54a74f3.png │ ├── 1645958853_bdbddfd75a9cd63dc43a.jpg │ ├── 1645958895_9d5a7e8dff39e728071a.jpg │ ├── 1645960470_6cedb616dbe5cf9f09a7.jpg │ ├── 1645970298_297715df389c82d33746.jpg │ ├── 1645970333_df7d334eaf60dff975e2.jpg │ ├── 1646010775_2797fecdd1527a6b204d.jpg │ ├── 1646142591_4a84bd8228241b838fa2.jpg │ ├── 1646142788_f559648ef88dcf0c5fad.jpg │ ├── 1646142889_2651d273d09e661d4a80.jpg │ ├── 1646142999_edfc4fa32b42bc626b0b.jpg │ ├── 1647017244_ca38badf5756983a1263.jpg │ ├── 1647305894_bd15275602a65ba531d6.jpg │ ├── 1647306450_4ee7eda4650836ae4795.jpg │ ├── 1647447310_22cac2fa1ce6122eec28.jpg │ └── index.html ├── spark ├── tests ├── README.md ├── _support │ ├── Database │ │ ├── Migrations │ │ │ └── 2020-02-22-222222_example_migration.php │ │ └── Seeds │ │ │ └── ExampleSeeder.php │ ├── Libraries │ │ └── ConfigReader.php │ └── Models │ │ └── ExampleModel.php ├── database │ └── ExampleDatabaseTest.php ├── session │ └── ExampleSessionTest.php └── unit │ └── HealthTest.php └── writable ├── .htaccess ├── cache └── index.html ├── logs └── index.html ├── session └── index.html └── uploads └── index.html /!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dirumahrafif/ci4-blog/76b4593232d39e7fec95936bb37a2fbece05bf32/!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/favicon.ico -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/about-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dirumahrafif/ci4-blog/76b4593232d39e7fec95936bb37a2fbece05bf32/!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/about-bg.jpg -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/contact-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dirumahrafif/ci4-blog/76b4593232d39e7fec95936bb37a2fbece05bf32/!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/contact-bg.jpg -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/home-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dirumahrafif/ci4-blog/76b4593232d39e7fec95936bb37a2fbece05bf32/!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/home-bg.jpg -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/post-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dirumahrafif/ci4-blog/76b4593232d39e7fec95936bb37a2fbece05bf32/!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/post-bg.jpg -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/post-sample-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dirumahrafif/ci4-blog/76b4593232d39e7fec95936bb37a2fbece05bf32/!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/assets/img/post-sample-image.jpg -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-clean-blog-gh-pages (1)/startbootstrap-clean-blog-gh-pages/js/scripts.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - Clean Blog v6.0.7 (https://startbootstrap.com/theme/clean-blog) 3 | * Copyright 2013-2021 Start Bootstrap 4 | * Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-clean-blog/blob/master/LICENSE) 5 | */ 6 | window.addEventListener('DOMContentLoaded', () => { 7 | let scrollPos = 0; 8 | const mainNav = document.getElementById('mainNav'); 9 | const headerHeight = mainNav.clientHeight; 10 | window.addEventListener('scroll', function() { 11 | const currentTop = document.body.getBoundingClientRect().top * -1; 12 | if ( currentTop < scrollPos) { 13 | // Scrolling Up 14 | if (currentTop > 0 && mainNav.classList.contains('is-fixed')) { 15 | mainNav.classList.add('is-visible'); 16 | } else { 17 | console.log(123); 18 | mainNav.classList.remove('is-visible', 'is-fixed'); 19 | } 20 | } else { 21 | // Scrolling Down 22 | mainNav.classList.remove(['is-visible']); 23 | if (currentTop > headerHeight && !mainNav.classList.contains('is-fixed')) { 24 | mainNav.classList.add('is-fixed'); 25 | } 26 | } 27 | scrollPos = currentTop; 28 | }); 29 | }) 30 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/401.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 404 Error - SB Admin 10 | 11 | 12 | 13 | 14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |

401

22 |

Unauthorized

23 |

Access to this resource is denied.

24 | 25 | 26 | Return to Dashboard 27 | 28 |
29 |
30 |
31 |
32 |
33 |
34 | 48 |
49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 404 Error - SB Admin 10 | 11 | 12 | 13 | 14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | 22 |

This requested URL was not found on this server.

23 | 24 | 25 | Return to Dashboard 26 | 27 |
28 |
29 |
30 |
31 |
32 |
33 | 47 |
48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 404 Error - SB Admin 10 | 11 | 12 | 13 | 14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |

500

22 |

Internal Server Error

23 | 24 | 25 | Return to Dashboard 26 | 27 |
28 |
29 |
30 |
31 |
32 |
33 | 47 |
48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/assets/demo/chart-area-demo.js: -------------------------------------------------------------------------------- 1 | // Set new default font family and font color to mimic Bootstrap's default styling 2 | Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif'; 3 | Chart.defaults.global.defaultFontColor = '#292b2c'; 4 | 5 | // Area Chart Example 6 | var ctx = document.getElementById("myAreaChart"); 7 | var myLineChart = new Chart(ctx, { 8 | type: 'line', 9 | data: { 10 | labels: ["Mar 1", "Mar 2", "Mar 3", "Mar 4", "Mar 5", "Mar 6", "Mar 7", "Mar 8", "Mar 9", "Mar 10", "Mar 11", "Mar 12", "Mar 13"], 11 | datasets: [{ 12 | label: "Sessions", 13 | lineTension: 0.3, 14 | backgroundColor: "rgba(2,117,216,0.2)", 15 | borderColor: "rgba(2,117,216,1)", 16 | pointRadius: 5, 17 | pointBackgroundColor: "rgba(2,117,216,1)", 18 | pointBorderColor: "rgba(255,255,255,0.8)", 19 | pointHoverRadius: 5, 20 | pointHoverBackgroundColor: "rgba(2,117,216,1)", 21 | pointHitRadius: 50, 22 | pointBorderWidth: 2, 23 | data: [10000, 30162, 26263, 18394, 18287, 28682, 31274, 33259, 25849, 24159, 32651, 31984, 38451], 24 | }], 25 | }, 26 | options: { 27 | scales: { 28 | xAxes: [{ 29 | time: { 30 | unit: 'date' 31 | }, 32 | gridLines: { 33 | display: false 34 | }, 35 | ticks: { 36 | maxTicksLimit: 7 37 | } 38 | }], 39 | yAxes: [{ 40 | ticks: { 41 | min: 0, 42 | max: 40000, 43 | maxTicksLimit: 5 44 | }, 45 | gridLines: { 46 | color: "rgba(0, 0, 0, .125)", 47 | } 48 | }], 49 | }, 50 | legend: { 51 | display: false 52 | } 53 | } 54 | }); 55 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/assets/demo/chart-bar-demo.js: -------------------------------------------------------------------------------- 1 | // Set new default font family and font color to mimic Bootstrap's default styling 2 | Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif'; 3 | Chart.defaults.global.defaultFontColor = '#292b2c'; 4 | 5 | // Bar Chart Example 6 | var ctx = document.getElementById("myBarChart"); 7 | var myLineChart = new Chart(ctx, { 8 | type: 'bar', 9 | data: { 10 | labels: ["January", "February", "March", "April", "May", "June"], 11 | datasets: [{ 12 | label: "Revenue", 13 | backgroundColor: "rgba(2,117,216,1)", 14 | borderColor: "rgba(2,117,216,1)", 15 | data: [4215, 5312, 6251, 7841, 9821, 14984], 16 | }], 17 | }, 18 | options: { 19 | scales: { 20 | xAxes: [{ 21 | time: { 22 | unit: 'month' 23 | }, 24 | gridLines: { 25 | display: false 26 | }, 27 | ticks: { 28 | maxTicksLimit: 6 29 | } 30 | }], 31 | yAxes: [{ 32 | ticks: { 33 | min: 0, 34 | max: 15000, 35 | maxTicksLimit: 5 36 | }, 37 | gridLines: { 38 | display: true 39 | } 40 | }], 41 | }, 42 | legend: { 43 | display: false 44 | } 45 | } 46 | }); 47 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/assets/demo/chart-pie-demo.js: -------------------------------------------------------------------------------- 1 | // Set new default font family and font color to mimic Bootstrap's default styling 2 | Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif'; 3 | Chart.defaults.global.defaultFontColor = '#292b2c'; 4 | 5 | // Pie Chart Example 6 | var ctx = document.getElementById("myPieChart"); 7 | var myPieChart = new Chart(ctx, { 8 | type: 'pie', 9 | data: { 10 | labels: ["Blue", "Red", "Yellow", "Green"], 11 | datasets: [{ 12 | data: [12.21, 15.58, 11.25, 8.32], 13 | backgroundColor: ['#007bff', '#dc3545', '#ffc107', '#28a745'], 14 | }], 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/assets/demo/datatables-demo.js: -------------------------------------------------------------------------------- 1 | // Call the dataTables jQuery plugin 2 | $(document).ready(function() { 3 | $('#dataTable').DataTable(); 4 | }); 5 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/js/datatables-simple-demo.js: -------------------------------------------------------------------------------- 1 | window.addEventListener('DOMContentLoaded', event => { 2 | // Simple-DataTables 3 | // https://github.com/fiduswriter/Simple-DataTables/wiki 4 | 5 | const datatablesSimple = document.getElementById('datatablesSimple'); 6 | if (datatablesSimple) { 7 | new simpleDatatables.DataTable(datatablesSimple); 8 | } 9 | }); 10 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/js/scripts.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - SB Admin v7.0.4 (https://startbootstrap.com/template/sb-admin) 3 | * Copyright 2013-2021 Start Bootstrap 4 | * Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-sb-admin/blob/master/LICENSE) 5 | */ 6 | // 7 | // Scripts 8 | // 9 | 10 | window.addEventListener('DOMContentLoaded', event => { 11 | 12 | // Toggle the side navigation 13 | const sidebarToggle = document.body.querySelector('#sidebarToggle'); 14 | if (sidebarToggle) { 15 | // Uncomment Below to persist sidebar toggle between refreshes 16 | // if (localStorage.getItem('sb|sidebar-toggle') === 'true') { 17 | // document.body.classList.toggle('sb-sidenav-toggled'); 18 | // } 19 | sidebarToggle.addEventListener('click', event => { 20 | event.preventDefault(); 21 | document.body.classList.toggle('sb-sidenav-toggled'); 22 | localStorage.setItem('sb|sidebar-toggle', document.body.classList.contains('sb-sidenav-toggled')); 23 | }); 24 | } 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | Login - SB Admin 13 | 14 | 18 | 19 | 20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |

Login

29 |
30 |
31 |
32 |
33 | 39 | 40 |
41 |
42 | 48 | 49 |
50 |
51 | 57 | 62 |
63 |
66 | Forgot Password? 69 | Login 70 |
71 |
72 |
73 | 78 |
79 |
80 |
81 |
82 |
83 |
84 | 100 |
101 | 105 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /!TEMPLATE/startbootstrap-sb-admin-gh-pages (1)/startbootstrap-sb-admin-gh-pages/password.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Password Reset - SB Admin 10 | 11 | 12 | 13 | 14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |

Password Recovery

22 |
23 |
Enter your email address and we will send you a link to reset your password.
24 |
25 |
26 | 27 | 28 |
29 | 33 |
34 |
35 | 38 |
39 |
40 |
41 |
42 |
43 |
44 | 58 |
59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2019 British Columbia Institute of Technology 4 | Copyright (c) 2019-2022 CodeIgniter Foundation 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CodeIgniter4 Blog 2 | 3 | file ci-blog.sql adalah file yang digunakan untuk memasukkan skema tabel, dan data. 4 | 5 | Yang akan kita buat di Project ini 6 | 7 | - Seting Koneksi untuk Konek ke Database 8 | - Membuat Route URL Admin 9 | - Membuat Fitur Remember Password dengan Cookie 10 | - Membuat Fitur Logout 11 | - Membuat Fitur Lupa Password 12 | - Membuat fungsi kirim email 13 | - Membuat Fitur Reset Password 14 | - Membuat Halaman Admin Article 15 | - Membuat Filter 16 | - Membuat Halaman Admin Tambah Article 17 | - Membuat Halaman Admin List Article 18 | - Membuat Fitur Clean XSS dengan HTMLPurifier 19 | - Membuat Form Pencarian dan Tombol Tambah Data 20 | - Membuat Halaman Admin Page 21 | - Membuat Halaman Untuk Mengisikan Data Konfigurasi 22 | - Membuat Halaman Admin Input Link Social Media 23 | - Membuat Halaman Admin Update Akun 24 | - Membuat Halaman Depan 25 | - Membuat Halaman Depan Article 26 | - Membuat Halaman Depan untuk Page 27 | - Membuat Halaman Depan untuk Kontak 28 | 29 | Link Youtube Penjelasan bisa dicek di: https://www.youtube.com/watch?v=8_8ard2IWrA&t=537s 30 | -------------------------------------------------------------------------------- /app/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Require all denied 3 | 4 | 5 | Deny from all 6 | 7 | -------------------------------------------------------------------------------- /app/Common.php: -------------------------------------------------------------------------------- 1 | SYSTEMPATH, 37 | * 'App' => APPPATH 38 | * ]; 39 | *``` 40 | * 41 | * @var array 42 | */ 43 | public $psr4 = [ 44 | APP_NAMESPACE => APPPATH, // For custom app namespace 45 | 'Config' => APPPATH . 'Config', 46 | ]; 47 | 48 | /** 49 | * ------------------------------------------------------------------- 50 | * Class Map 51 | * ------------------------------------------------------------------- 52 | * The class map provides a map of class names and their exact 53 | * location on the drive. Classes loaded in this manner will have 54 | * slightly faster performance because they will not have to be 55 | * searched for within one or more directories as they would if they 56 | * were being autoloaded through a namespace. 57 | * 58 | * Prototype: 59 | *``` 60 | * $classmap = [ 61 | * 'MyClass' => '/path/to/class/file.php' 62 | * ]; 63 | *``` 64 | * 65 | * @var array 66 | */ 67 | public $classmap = []; 68 | 69 | /** 70 | * ------------------------------------------------------------------- 71 | * Files 72 | * ------------------------------------------------------------------- 73 | * The files array provides a list of paths to __non-class__ files 74 | * that will be autoloaded. This can be useful for bootstrap operations 75 | * or for loading functions. 76 | * 77 | * Prototype: 78 | * ``` 79 | * $files = [ 80 | * '/path/to/my/file.php', 81 | * ]; 82 | * ``` 83 | * 84 | * @var array 85 | */ 86 | public $files = []; 87 | } 88 | -------------------------------------------------------------------------------- /app/Config/Boot/development.php: -------------------------------------------------------------------------------- 1 | ` element. 81 | * 82 | * Will default to self if not overridden 83 | * 84 | * @var string|string[]|null 85 | */ 86 | public $baseURI; 87 | 88 | /** 89 | * Lists the URLs for workers and embedded frame contents 90 | * 91 | * @var string|string[] 92 | */ 93 | public $childSrc = 'self'; 94 | 95 | /** 96 | * Limits the origins that you can connect to (via XHR, 97 | * WebSockets, and EventSource). 98 | * 99 | * @var string|string[] 100 | */ 101 | public $connectSrc = 'self'; 102 | 103 | /** 104 | * Specifies the origins that can serve web fonts. 105 | * 106 | * @var string|string[] 107 | */ 108 | public $fontSrc; 109 | 110 | /** 111 | * Lists valid endpoints for submission from `
` tags. 112 | * 113 | * @var string|string[] 114 | */ 115 | public $formAction = 'self'; 116 | 117 | /** 118 | * Specifies the sources that can embed the current page. 119 | * This directive applies to ``, `