├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── dashboard.png ├── menu.png ├── profile.png └── workflows │ └── php.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── composer.json ├── phpunit.xml.dist ├── src ├── Commands │ ├── InstallCommand.php │ └── PublishCommand.php ├── Config │ ├── Boilerplate.php │ └── Routes.php ├── Controllers │ ├── BaseController.php │ ├── DashboardController.php │ └── Users │ │ ├── MenuController.php │ │ ├── PermissionController.php │ │ ├── RoleController.php │ │ └── UserController.php ├── Database │ ├── Migrations │ │ └── 2020-02-03-081118_create_menu_table.php │ └── Seeds │ │ └── BoilerplateSeeder.php ├── Entities │ ├── Collection.php │ └── MenuEntity.php ├── Filters │ ├── PermissionFilter.php │ └── RoleFilter.php ├── Helpers │ └── menu_helper.php ├── Language │ ├── en │ │ └── boilerplate.php │ └── id │ │ └── boilerplate.php ├── Models │ ├── GroupMenuModel.php │ ├── GroupModel.php │ ├── MenuModel.php │ ├── PermissionModel.php │ └── UserModel.php └── Views │ ├── Authentication │ ├── emails │ │ ├── activation.php │ │ └── forgot.php │ ├── forgot.php │ ├── index.php │ ├── login.php │ ├── message_block.php │ ├── register.php │ └── reset.php │ ├── Menu │ ├── index.php │ └── update.php │ ├── Permission │ ├── create.php │ └── index.php │ ├── Role │ ├── create.php │ ├── edit.php │ └── index.php │ ├── User │ ├── create.php │ ├── index.php │ ├── profile.php │ └── update.php │ ├── dashboard.php │ ├── layout │ ├── contentheader.php │ ├── header.php │ ├── index.php │ └── mainsidebar.php │ └── load │ ├── datatables.php │ ├── duallistbox.php │ ├── iconpicker.php │ ├── nestable.php │ ├── select2.php │ └── sweetalert.php └── tests ├── Controllers └── ExampleTest.php ├── Support ├── AuthTestCase.php └── SessionTestCase.php └── UserTest.php /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | custom: https://saweria.co/agungsugiarto # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Additional context** 27 | Add any other context about the problem here. 28 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agungsugiarto/boilerplate/7ae95390dfab215a66e40a3789ad742c3636f841/.github/dashboard.png -------------------------------------------------------------------------------- /.github/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agungsugiarto/boilerplate/7ae95390dfab215a66e40a3789ad742c3636f841/.github/menu.png -------------------------------------------------------------------------------- /.github/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agungsugiarto/boilerplate/7ae95390dfab215a66e40a3789ad742c3636f841/.github/profile.png -------------------------------------------------------------------------------- /.github/workflows/php.yml: -------------------------------------------------------------------------------- 1 | name: "ci build" 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: 7 | - "master" 8 | 9 | jobs: 10 | build: 11 | name: PHP ${{ matrix.php-versions }} 12 | runs-on: ubuntu-latest 13 | if: "!contains(github.event.head_commit.message, '[ci skip]')" 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | php-versions: ['7.3', '7.4'] 18 | steps: 19 | - name: Setup PHP Action 20 | uses: shivammathur/setup-php@v2 21 | with: 22 | extensions: intl, json, mbstring, xdebug, xml 23 | php-version: "${{ matrix.php-versions }}" 24 | coverage: xdebug 25 | - name: Checkout 26 | uses: actions/checkout@v2 27 | - name: "Validate composer.json and composer.lock" 28 | run: "composer validate" 29 | - name: "Install dependencies" 30 | run: "composer install --prefer-source --no-progress --no-suggest" 31 | - name: "Run test suite" 32 | run: "composer test" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #------------------------- 2 | # Operating Specific Junk Files 3 | #------------------------- 4 | 5 | # OS X 6 | .DS_Store 7 | .AppleDouble 8 | .LSOverride 9 | 10 | # OS X Thumbnails 11 | ._* 12 | 13 | # Windows image file caches 14 | Thumbs.db 15 | ehthumbs.db 16 | Desktop.ini 17 | 18 | # Recycle Bin used on file shares 19 | $RECYCLE.BIN/ 20 | 21 | # Windows Installer files 22 | *.cab 23 | *.msi 24 | *.msm 25 | *.msp 26 | 27 | # Windows shortcuts 28 | *.lnk 29 | 30 | # Linux 31 | *~ 32 | 33 | # KDE directory preferences 34 | .directory 35 | 36 | # Linux trash folder which might appear on any partition or disk 37 | .Trash-* 38 | 39 | #------------------------- 40 | # Environment Files 41 | #------------------------- 42 | # These should never be under version control, 43 | # as it poses a security risk. 44 | .env 45 | .vagrant 46 | Vagrantfile 47 | 48 | #------------------------- 49 | # Temporary Files 50 | #------------------------- 51 | writable/cache/* 52 | !writable/cache/index.html 53 | 54 | writable/logs/* 55 | !writable/logs/index.html 56 | 57 | writable/session/* 58 | !writable/session/index.html 59 | 60 | writable/uploads/* 61 | !writable/uploads/index.html 62 | 63 | writable/debugbar/* 64 | 65 | php_errors.log 66 | 67 | #------------------------- 68 | # User Guide Temp Files 69 | #------------------------- 70 | user_guide_src/build/* 71 | user_guide_src/cilexer/build/* 72 | user_guide_src/cilexer/dist/* 73 | user_guide_src/cilexer/pycilexer.egg-info/* 74 | 75 | #------------------------- 76 | # Test Files 77 | #------------------------- 78 | tests/coverage* 79 | 80 | # Don't save phpunit under version control. 81 | phpunit 82 | 83 | #------------------------- 84 | # Composer 85 | #------------------------- 86 | vendor/ 87 | composer.lock 88 | 89 | #------------------------- 90 | # IDE / Development Files 91 | #------------------------- 92 | 93 | # Modules Testing 94 | _modules/* 95 | 96 | # phpenv local config 97 | .php-version 98 | 99 | # Jetbrains editors (PHPStorm, etc) 100 | .idea/ 101 | *.iml 102 | 103 | # Netbeans 104 | nbproject/ 105 | build/ 106 | nbbuild/ 107 | dist/ 108 | nbdist/ 109 | nbactions.xml 110 | nb-configuration.xml 111 | .nb-gradle/ 112 | 113 | # Sublime Text 114 | *.tmlanguage.cache 115 | *.tmPreferences.cache 116 | *.stTheme.cache 117 | *.sublime-workspace 118 | *.sublime-project 119 | .phpintel 120 | /api/ 121 | 122 | # Visual Studio Code 123 | .vscode/ 124 | 125 | /results/ 126 | /phpunit*.xml 127 | /.phpunit.*.cache 128 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019-2020 Agung Sugiarto 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
'; 104 | $html .= $parent->title; 105 | if (count($parent->children)) { 106 | $html .= ""; 107 | } 108 | $html .= '
'; 109 | $html .= ''; 110 | if (count($parent->children)) { 111 | $html .= "