. * */ /** * @package Test Plugin * @version 0.1 */ /* Name: Test plugin Slug: test-plugin Category: development Url: https://www.vvveb.com Description: Test plugin to show how to write one. Thumb: test-plugin.svg Author: givanz Version: 0.1 Author url: https://www.vvveb.com */ use function Vvveb\__; use Vvveb\System\Event; use Vvveb\System\Routes; if (! defined('V_VERSION')) { die('Invalid request!'); } class TestPlugin { function admin() { //add admin menu item $admin_path = \Vvveb\adminPath(); Event::on('Vvveb\Controller\Base', 'init-menu', __CLASS__, function ($menu) use ($admin_path) { $menu += [ 'test_plugin' => [ 'name' => __('Test plugin'), 'url' => '/test-plugin', 'module' => 'plugins/test-plugin', 'icon-img' => PUBLIC_PATH . 'plugins/test-plugin/test-plugin.svg', ], ]; return [$menu]; }); } function app() { //add new route for plugin page Routes::addRoute('/test-plugin', ['module' => 'plugins/test-plugin/index/index']); } function __construct() { if (APP == 'admin') { $this->admin(); } else { if (APP == 'app') { $this->app(); } } } } $testPlugin = new TestPlugin();