sideBarMenus()); global $submenu; foreach ($menus as $menu) { if (isset($menu['capability']) && Capabilities::check($menu['capability'])) { if ($menu['type'] == 'menu') { add_menu_page( $menu['title'], $menu['name'], $menu['capability'], $menu['slug'], $menu['callback'], $menu['icon'], $menu['position'] ); } elseif (isset($menu['callback'])) { add_submenu_page( $menu['parent'], $menu['title'], $menu['name'], $menu['capability'], $menu['slug'], $menu['callback'] ); } else { $submenu[$menu['parent']][] = [ $menu['name'], $menu['capability'], 'admin.php?page=' . $menu['slug'], ]; } } } } public function removeAdminNotices() { // phpcs:disable global $plugin_page, $wp_filter; if (empty($plugin_page) || strpos($plugin_page, Config::SLUG) === false) { return; } // phpcs:enable remove_all_actions('admin_notices'); remove_all_actions('all_admin_notices'); $this->adminNotice(); } public function filterConfigVariable($config) { if (Capabilities::check('list_users')) { $config['users'] = Plugin::instance()->permissions()->allUsers(); } if (Capabilities::check('install_plugins')) { $config['sys_info'] = $this->getSystemInfo(); } if ($adBanner = Config::adBanner()) { $config['adBanner'] = $adBanner; } return (array) $config + [ 'nonce' => wp_create_nonce(Config::withPrefix('nonce')), 'baseURL' => Config::get('ADMIN_URL') . 'admin.php?page=' . Config::SLUG . '#elf_l1_Lw/', 'pluginSlug' => Config::SLUG, 'rootURL' => Config::get('ROOT_URI'), 'assetsURL' => Config::get('ASSET_URI'), 'routePrefix' => Config::VAR_PREFIX, 'plugin_dir' => BFM_ROOT_DIR, 'plugin_url' => BFM_ROOT_URL, 'action' => Config::withPrefix('connector'), 'options' => Plugin::instance()->preferences()->finderOptions(), ]; } public function enqueueAssets() { $preferences = Plugin::instance()->preferences(); wp_enqueue_style('bfm-jquery-ui-css'); if (\in_array($preferences->getTheme(), ['default', 'bootstrap'])) { wp_enqueue_style(Config::SLUG . 'elfinder-css'); wp_enqueue_style(Config::SLUG . 'theme-css'); } wp_enqueue_script(Config::SLUG . 'elfinder-script'); wp_enqueue_script(Config::SLUG . 'elfinder-editor-script'); wp_enqueue_script(Config::SLUG . 'elfinder-lang', $preferences->getLangUrl(), [Config::SLUG . 'elfinder-script']); if (Config::isDev()) { $port = file_get_contents(Config::get('BASEDIR') . '/port'); $devUrl = 'http://localhost:' . $port; wp_enqueue_script( Config::SLUG . '-MODULE-vite-client-helper', $devUrl . '/config/devHotModule.js', [], null ); wp_enqueue_script(Config::SLUG . '-MODULE-vite-client', $devUrl . '/@vite/client', [], null); wp_enqueue_script(Config::SLUG . '-MODULE-index', $devUrl . '/main.tsx', [], null); } else { wp_enqueue_script( Config::SLUG . '-MODULE-main', Config::get('ASSET_JS_URI') . '/main.' . Config::VERSION . '.js', [Config::SLUG . 'elfinder-script'], Config::VERSION ); wp_enqueue_style( Config::SLUG . '-style-main', Config::get('ASSET_JS_URI') . '/main.' . Config::VERSION . '.css' ); } } public function dashboard() { $this->enqueueAssets(); // phpcs:ignore echo "
"; } public function homePage() { return view('admin.index'); } public function settingsPage() { return view('admin.settings'); } public function logsPage() { return view('admin.logs'); } public function systemInfoPage() { return view('admin.utility'); } public function permissionsPage() { return view('admin.permission_system'); } /** * Adds admin notices to the admin page * * @return void * */ public function adminNotice() { // DISALLOW_FILE_EDIT Macro checking if (\defined('DISALLOW_FILE_EDIT') && DISALLOW_FILE_EDIT) { ?>
DISALLOW_FILE_EDIT TRUE. Bit File Manager. DISALLOW_FILE_EDIT FALSE
permissions()->isCurrentUserHasPermission() || Plugin::instance()->permissions()->isCurrentRoleHasPermission() ) { return Plugin::instance()->permissions()->currentUserRole(); } return false; } /** * Modify script tags. * * @param string $html script tag * @param mixed $handle * @param mixed $href * * @return string new script tag */ public function filterScriptTag($html, $handle) { $newTag = $html; if (str_contains($handle, Config::SLUG . '-MODULE')) { $newTag = preg_replace('/