File "Elements.php"

Full path: /home/dora/public_html/wp-content/plugins/bricksforge/includes/elements/Elements.php
File size: 3.14 KB
MIME-type: --
Charset: utf-8

<?php
namespace Bricksforge;

/**
 * Global Classes Handler
 */
 class Elements {

    public function __construct() {
        $this->init();
    }

    public function init() {
        
        $elements = [
            [
                'id' => 0,
                'path' => __DIR__ . '/flip-everything/FlipEverything.php',
            ],
            [
                'id' => 1,
                'path' => __DIR__ . '/font-awesome/FontAwesome.php',
            ],
            [
                'id' => 2,
                'path' => __DIR__ . '/before-and-after/BeforeAndAfter.php',
            ],
            [
                'id' => 3,
                'path' => __DIR__ . '/popup-trigger/PopupTrigger.php',
            ],
            [
                'id' => 4,
                'path' => __DIR__ . '/table-of-contents/TableOfContents.php',
            ]
        ];

        $options = get_option('brf_activated_elements') ? get_option('brf_activated_elements') : false;

        if ($options === false) {
            return;
        }
        
        foreach ( $elements as $element ) {
            $activated = false;

            foreach($options as $option) {
                if ($option->id == $element['id']) {
                    $activated = true;
                }
            }

            if ($activated === true) {
                \Bricks\Elements::register_element( $element['path'] );
            }
        }

        $this->injectData();
    }

    public function injectData() {
        add_action('wp_enqueue_scripts', function() {
            $args = array( 
                'siteurl' => get_option('siteurl'),
                'pluginurl' => BRICKSFORGE_URL,
                'nonce' => wp_create_nonce( 'wp_rest' ),
                'apiurl' => get_rest_url() . "bricksforge/v1/",
                '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'),
                "pageData" => \Bricks\Database::get_data(),
                'bricksPrefix' => BRICKSFORGE_BRICKS_ELEMENT_PREFIX,
                'breakpoints' => \Bricks\Breakpoints::$breakpoints,
                'icons' => \Bricks\Builder::get_icon_font_classes(),
                'currentUserRole' => $this->get_current_user_role(),
                'permissions' => get_option('brf_permissions_roles'),
                'panel' => get_option('brf_panel'),
                'panelActivated' => get_option('brf_activated_tools') && in_array(6, get_option('brf_activated_tools')),
                'megaMenuActivated' => get_option('brf_activated_tools') && in_array(3, get_option('brf_activated_tools')),
                'headerData' => \Bricks\Database::get_template_data( 'header' )
            );

            wp_localize_script('bricksforge-elements', 'BRFVARS', $args);
        });
    }

    public function get_current_user_role() {
        global $current_user;

        $user_roles = $current_user->roles;
        $user_role = array_shift($user_roles);

        return $user_role;
    }
 }