Plugins
Untuk membuat plugin badaso, Anda harus memahami cara membuat paket laravel terlebih dahulu. Anda bisa mempelajarinya disini.
#
PenamaanPlugin Badaso menggunakan slug untuk penamaannya, contoh: badaso-blog-module. Plugin itu sendiri harus setingkat dengan direktori badaso core agar bisa mendeteksi plugin oleh badaso core, contoh:
๐ฆ uasoft-indonesiaโฃ ๐ badasoโฃ ๐ badaso-example-plugin /** Your plugins here **/
#
Mendaftarkan PluginUntuk mendeteksi plugin, Anda harus menyertakannya dalam file .env pada variabel MIX_BADASO_PLUGINS dengan pembatas koma (,) tanpa spasi. Sebagai contoh:
MIX_BADASO_MODULES=badaso-blog-module,badaso-content-module
info
Jika plugin menggunakan menu di sidebar, Anda harus mendaftarkannya ke dalam MIX_BADASO_MENU untuk menampilkannya dengan pembatas koma (,) tanpa spasi. Sebagai contoh:
MIX_BADASO_MENU=badaso-blog-module,badaso-content-module
#
Resources Directory StructureDi bawah ini adalah struktur direktori resources untuk plugin dari badaso.
๐ฆ uasoft-indonesiaโฃ ๐ badasoโฃ ๐ badaso-example-pluginโ โฃ ๐ srcโ โ โฃ ๐ resourcesโ โ โ โฃ ๐ jsโ โ โ โ โฃ ๐ apiโ โ โ โ โ โฃ ๐ modules /** Register your api helper here. **/โ โ โ โ โ โ โ ๐ badaso-example.js /** Example of api helper. **/โ โ โ โ โ โ ๐ index.js * /** This file is required. **/โ โ โ โ โฃ ๐ componentsโ โ โ โ โ โฃ ๐ example-component.vue /** Example of components. **/โ โ โ โ โ โ ๐ index.js * /** Export the components here. This file is required. **/โ โ โ โ โฃ ๐ langโ โ โ โ โ โฃ ๐ modulesโ โ โ โ โ โ โ ๐ en.js /** Example of internationalization **/โ โ โ โ โ โ ๐ index.js * /** Export the language here. This file is required. **/โ โ โ โ โฃ ๐ pagesโ โ โ โ โ โฃ ๐ exampleโ โ โ โ โ โ ๐ index.js /** Export the pages here. This file is required. **/โ โ โ โ โฃ ๐ routerโ โ โ โ โ โ ๐ routes.js * /** Export the router here. This file is required. **/โ โ โ โ โฃ ๐ storeโ โ โ โ โ โ ๐ badaso.js * /** Export the store here. This file is required. **/โ โ โ โ โฃ ๐ utilsโ โ โ โ โ โ ๐ example.js * /** Export the utils here. **/
caution
Untuk penamaan file router harus menggunakan routes.js dan file store harus menggunakan badaso.js.
info
\*
akan di deteksi otomatis oleh badaso core.Jika Anda ingin menggunakan assets dan utils, Anda dapat membuat folder assets dan utils, tetapi folder tersebut hanya berpengaruh pada lingkup plugin Anda, bukan lingkup badaso core.
src\resources\js\pages\index.vue
#
Berikut adalah konten index.vue di direktori pages.
<template> <component v-if="globalComponentList[defaultComponent]" v-bind:is="globalComponentList[defaultComponent]" ></component> <component v-else v-bind:is="defaultComponent"></component></template>
<script>import Example from "./example/index.vue";
export default { components: { // Register the pages here Example }, name: "ExamplePlugin", data: () => ({ globalComponentList: {}, defaultComponent: null, }), mounted() { const routeName = this.$route.name; const componentName = this.$caseConvert.kebab(routeName); const slug = this.$route.params ? this.$route.params.slug : "";
this.globalComponentList = this.constructor.superOptions.components;
this.defaultComponent = componentName; }, methods: {},};</script>