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
:
Frontend.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Bricksforge; /** * Frontend Pages Handler */ class Frontend { public function __construct() { $this->render_conditionals(); wp_enqueue_style('bricksforge-style'); wp_enqueue_style('bricksforge-style'); if (bricks_is_builder()) { wp_enqueue_style('bricksforge-frontend'); wp_enqueue_script('bricksforge-frontend'); } add_shortcode('bricksforge', [$this, 'render_frontend']); } public function render_conditionals() { // Panel if (get_option('brf_activated_tools') && in_array(6, get_option('brf_activated_tools'))) { $panel_data = get_option('brf_panel'); if (bricks_is_builder()) { wp_enqueue_script('bricksforge-panel'); wp_enqueue_script('brf_gsap_draggable'); wp_enqueue_script('brf_gsap_splittext'); wp_enqueue_script('brf_gsap_flip'); } if ($panel_data) { $panel_data = $panel_data[0]; $instances = isset($panel_data->instances) ? $panel_data->instances : false; $timelines = isset($panel_data->timelines) ? $panel_data->timelines : false; if ($timelines) { wp_enqueue_script('bricksforge-panel'); wp_enqueue_script('brf_gsap'); // Check if $timelines contains an item on which the key "trigger" is equal to "scrollTrigger". If so, return true $has_scrollTrigger = array_filter($timelines, function ($timeline) { return isset($timeline->trigger) && $timeline->trigger == 'scrollTrigger'; }); // Check if $timelines array "animations" contains an item on which the key "splitText" is equal to "true". If so, return true $has_splitText = array_filter($timelines, function ($timeline) { return array_filter( $timeline->animations, function ($animation) { return isset($animation->splitText) && $animation->splitText == 'true'; } ); }); if ($has_scrollTrigger) { wp_enqueue_script('brf_gsap_scrolltrigger'); } if ($has_splitText) { wp_enqueue_script('brf_gsap_splittext'); } } if ($instances) { wp_enqueue_script('bricksforge-panel'); // Check if $instances array "actions" contains an object 'action" on which the key "value" is equal to "gsapFlip". If so, return true $has_gsapFlip = array_filter($instances, function ($instance) { return array_filter( $instance->actions, function ($action) { return isset($action->action->value) && $action->action->value == 'gsapFlip'; } ); }); // Check if $instances array "actions" contains an object 'action" on which the key "value" is equal to "gsapSet". If so, return true $has_gsapSet = array_filter($instances, function ($instance) { return array_filter( $instance->actions, function ($action) { return isset($action->action->value) && $action->action->value == 'gsapSet'; } ); }); // Check if $instances array "actions" contains an object 'action" on which the key "value" is equal to "gsap". If so, return true $has_gsap = array_filter($instances, function ($instance) { return array_filter( $instance->actions, function ($action) { return isset($action->action->value) && $action->action->value == 'gsap'; } ); }); if ($has_gsapSet || $has_gsap) { wp_enqueue_script('brf_gsap'); } if ($has_gsapFlip) { wp_enqueue_script('brf_gsap_flip'); } } } } if (get_option('brf_activated_tools') && in_array(1, get_option('brf_activated_tools'))) { add_action('wp_enqueue_scripts', function () { wp_localize_script( 'bricksforge-animator', 'BRFANIMATIONS', array( 'nonce' => wp_create_nonce('wp_rest'), 'siteurl' => get_option('siteurl'), 'pluginurl' => BRICKSFORGE_URL, 'apiurl' => get_rest_url() . "bricksforge/v1/", "pageData" => \Bricks\Database::get_data(), 'bricksPrefix' => BRICKSFORGE_BRICKS_ELEMENT_PREFIX, 'breakpoints' => \Bricks\Breakpoints::$breakpoints, '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')) ) ); }); } if (get_option('brf_activated_tools') && in_array(5, get_option('brf_activated_tools')) && get_option('brf_popups') && count(get_option('brf_popups')) > 0) { wp_enqueue_script('bricksforge-popups'); add_action('wp_enqueue_scripts', function () { wp_localize_script( 'bricksforge-popups', 'BRFPOPUPS', array( 'nonce' => wp_create_nonce('wp_rest'), 'popups' => get_option('brf_popups'), 'apiurl' => get_rest_url() . "bricksforge/v1/", 'currentPage' => get_the_ID() ) ); }); } // Scroll Smoother if (get_option('brf_activated_tools') && in_array(7, get_option('brf_activated_tools'))) { $scrollsmooth_provider = 'gsap'; $scrollsmooth_settings = get_option('brf_tool_settings'); if ($scrollsmooth_settings) { // Get the scrollsmooth settings with the key id equal to 7 $scrollsmooth_settings = array_filter($scrollsmooth_settings, function ($setting) { return $setting->id == 7; }); if ($scrollsmooth_settings) { $scrollsmooth_settings = $scrollsmooth_settings[0]; $scrollsmooth_provider = isset($scrollsmooth_settings->settings->provider) ? $scrollsmooth_settings->settings->provider : 'gsap'; } } if (!$scrollsmooth_provider) { $scrollsmooth_provider = 'gsap'; } switch ($scrollsmooth_provider) { case 'gsap': wp_enqueue_script('brf_gsap_scrollsmoother'); // Wrap needed container IDs add_action('bricks_before_site_wrapper', function () { echo '<div id="smooth-wrapper">'; echo '<div id="smooth-content">'; }); add_action('bricks_after_site_wrapper', function () { echo '</div>'; echo '</div>'; }); break; case 'lenis': wp_enqueue_script('bricksforge-lenis'); break; default: break; } wp_enqueue_script('bricksforge-scrollsmoother'); add_action('wp_enqueue_scripts', function () { $args = array( 'toolSettings' => get_option('brf_tool_settings') ); wp_localize_script('bricksforge-scrollsmoother', 'BRFSCROLLSMOOTHER', $args); }); } // Global Vars add_action('wp_enqueue_scripts', function () { $args = array( 'nonce' => wp_create_nonce('wp_rest'), 'siteurl' => get_option('siteurl'), 'pluginurl' => BRICKSFORGE_URL, '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(), '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'), 'currentUserRole' => bricks_is_builder() ? $this->get_current_user_role() : '', 'toolSettings' => get_option('brf_tool_settings') ); wp_localize_script('bricksforge-panel', '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; } /** * Render frontend app * * @param array $atts * @param string $content * * @return string */ public function render_frontend($atts, $content = '') { wp_enqueue_style('bricksforge-frontend'); wp_enqueue_style('bricksforge-style'); wp_enqueue_script('bricksforge-frontend'); $content .= '<div id="bricksforge-triggers"></div>'; return $content; } }