Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
bricksforge
/
includes
:
Admin.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Bricksforge; /** * Admin Pages Handler */ class Admin { public function __construct() { add_action('admin_menu', [$this, 'admin_menu']); add_action('admin_init', [$this, 'check_for_global_classes']); add_filter('plugin_action_links_bricksforge/plugin.php', [$this, 'add_plugin_links']); wp_enqueue_style('bricksforge-style'); $this->render_conditionals(); } public function render_conditionals() { if (get_option('brf_activated_tools') && in_array(0, get_option('brf_activated_tools'))) { wp_enqueue_script('bricksforge-font-uploader'); add_filter('upload_mimes', [$this, 'upload_mimes']); } } /** * Register our menu page * * @return void */ public function admin_menu() { global $submenu; $capability = 'manage_options'; $slug = 'bricksforge'; $whitelabel = get_option('brf_whitelabel'); $whitelabel = $whitelabel != false && is_array($whitelabel) ? $whitelabel[0] : false; $menu_title = isset($whitelabel->menuTitle) && $whitelabel->menuTitle ? $whitelabel->menuTitle : 'Bricksforge'; $hook = add_submenu_page('bricks', __($menu_title, 'bricksforge'), __($menu_title, 'bricksforge'), $capability, $slug, [$this, 'plugin_page']); add_action('load-' . $hook, [$this, 'init_hooks']); } /** * Check for custom global classes. If yes, refresh the css file * * @return void * @since 0.9.2 */ public function check_for_global_classes() { $classes = get_option('brf_global_classes'); if (!$classes || !count($classes)) { return; } $css_content = file_get_contents(BRICKSFORGE_CUSTOM_STYLES_FILE); if (preg_replace('/\s+/', '', $css_content) != "") { return; } if (class_exists('Bricksforge\Api\Bricksforge')) { (new Api\Bricksforge)->render_css_files($classes); } } /** * Add Plugin Links * * @return void */ public function add_plugin_links($links) { $links = array_merge( array( '<a style="color: #555; font-weight: 600" href="' . esc_url(admin_url('/admin.php?page=bricksforge')) . '">' . __('Settings', 'bricksforge') . '</a>', '<a style="color: #555; font-weight: 600" href="https://forum.bricksforge.io" target="_blank">' . __('Forum', 'bricksforge') . '</a>', '<a style="color: #555; font-weight: 600" href="https://bricksforge.io/documentation" target="_blank">' . __('Documentation', 'bricksforge') . '</a>' ), $links ); return $links; } /** * Initialize our hooks for the admin page * * @return void */ public function init_hooks() { add_action('admin_enqueue_scripts', [$this, 'enqueue_scripts']); } /** * Load scripts and styles for the app * * @return void */ public function enqueue_scripts() { $args = array( 'siteurl' => get_option('siteurl'), 'ajaxurl' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('wp_rest'), 'pluginurl' => BRICKSFORGE_URL, 'pluginVersion' => BRICKSFORGE_VERSION, 'apiurl' => get_rest_url() . "bricksforge/v1/", 'bricksElements' => \Bricks\Elements::$elements, 'globalClasses' => get_option('bricks_global_classes'), 'globalClassesLocked' => get_option('bricks_global_classes_locked'), 'brfGlobalClassesActivated' => get_option('brf_global_classes_activated'), 'brfActivatedTools' => get_option('brf_activated_tools'), 'brfActivatedElements' => get_option('brf_activated_elements'), 'breakpoints' => \Bricks\Breakpoints::$breakpoints, 'pages' => query_posts(["post_type" => "any", 'posts_per_page' => -1, 'post_status' => 'publish',]), 'ptPage' => query_posts(["post_type" => "page", 'posts_per_page' => -1, 'post_status' => 'publish',]), 'templates' => get_posts(['post_type' => 'bricks_template', 'post_status' => 'publish', 'numberposts' => -1, 'posts_per_page' => -1]), 'popups' => get_option('brf_popups'), 'permissions' => get_option('brf_permissions_roles'), 'maintenance' => get_option('brf_maintenance'), 'whiteLabel' => get_option('brf_whitelabel'), 'panelActivated' => get_option('brf_activated_tools') && in_array(6, get_option('brf_activated_tools')), 'settings' => get_option('brf_settings'), ); wp_enqueue_style('bricksforge-admin'); wp_localize_script('bricksforge-admin', 'BRFVARS', $args); wp_enqueue_script('bricksforge-admin'); } /** * Render our admin page * * @return void */ public function plugin_page() { echo '<div class="wrap"><div id="bricksforge-admin-app"></div></div>'; } public function upload_mimes($mime_types) { $font_mime_types = [ // 'eot' => 'font/eot', // <IE9 only (if specified, it must be listed first) 'woff2' => 'font/woff2', 'woff' => 'font/woff', 'ttf' => 'font/ttf', ]; if (\Bricks\Capabilities::current_user_can_use_builder()) { foreach ($font_mime_types as $type => $mime) { if (!isset($mime_types[$type])) { $mime_types[$type] = $mime; } } } return $mime_types; } }