__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php

require_once dirname(__FILE__) . '/builder/builder-renderer.php';

require_once dirname(__FILE__) . '/builder/header-logic.php';
require_once dirname(__FILE__) . '/builder/header-elements.php';
require_once dirname(__FILE__) . '/builder/builder-header-renderer.php';

require_once dirname(__FILE__) . '/builder/footer-logic.php';
require_once dirname(__FILE__) . '/builder/builder-footer-renderer.php';

class Blocksy_Customizer_Builder {
	private $items_cache = null;

	public function __construct() {
		$this->items_cache = [
			'header' => null,
			'footer' => null
		];
	}

	public function patch_header_value_for($processed_terms) {
		blocksy_manager()->header_builder->patch_value_for($processed_terms);
		blocksy_manager()->footer_builder->patch_value_for($processed_terms);
	}

	public function translation_keys() {
		return array_merge(
			blocksy_manager()->header_builder->translation_keys(),
			blocksy_manager()->footer_builder->translation_keys()
		);
	}

	public function typography_keys() {
		return array_merge(
			blocksy_manager()->header_builder->typography_keys(),
			blocksy_manager()->footer_builder->typography_keys()
		);
	}

	public function dynamic_css($panel_type = 'header', $args = []) {
		if (! blocksy_dynamic_styles_should_call($args)) {
			return;
		}

		if ($panel_type === 'header') {
			$panel_logic = blocksy_manager()->header_builder;
		} else {
			$panel_logic = blocksy_manager()->footer_builder;
		}

		if ($args['context'] === 'inline') {
			$this->load_dynamic_css_for_section([
				'panel_type' => $panel_type,
				'section_id' => $panel_logic->get_current_section_id()
			], $args);

			return;
		}

		$sections_to_load_css_for = apply_filters(
			'blocksy:' . $panel_type . ':sections-for-dynamic-css',
			[$panel_logic->get_section_value()['sections'][0]],
			$panel_logic->get_section_value()
		);

		foreach ($sections_to_load_css_for as $single_section) {
			$this->load_dynamic_css_for_section([
				'panel_type' => $panel_type,
				'section_id' => $single_section['id']
			], $args);
		}
	}

	public function load_dynamic_css_for_section($args = [], $css_args = []) {
		$args = wp_parse_args($args, [
			'panel_type' => 'header',
			'section_id' => null
		]);

		if ($args['panel_type'] === 'header') {
			$render = new Blocksy_Header_Builder_Render([
				'current_section_id' => $args['section_id']
			]);
		} else {
			$render = new Blocksy_Footer_Builder_Render([
				'current_section_id' => $args['section_id']
			]);
		}

		$all_items = $this->get_registered_items_by($args['panel_type']);
		$current_section = $render->get_current_section();

		foreach ($current_section['items'] as $item) {
			if ($render->is_custom_id($item['id'])) {
				$new_item = [];

				foreach ($this->get_registered_items_by($args['panel_type']) as $nested_item) {
					if ($nested_item['id'] === $render->get_original_id($item['id'])) {
						$new_item = $nested_item;
						$new_item['id'] = $item['id'];
					}
				}

				$all_items[] = $new_item;
			}
		}

		foreach ($all_items as $item) {
			if ($item) {
				if (
					! $render->contains_item($item['id'], $item['is_primary'])
					&&
					$item['id'] !== 'offcanvas'
				) {
					continue;
				}

				if (! file_exists($item['path'] . '/dynamic-styles.php')) {
					continue;
				}

				$css_args['atts'] = $render->get_item_data_for($item['id']);
				$css_args['item'] = $item;

				$row_id = null;

				$row_ids = [];

				if (isset($item['is_primary']) && $item['is_primary']) {
					$row_id = $item['id'];
					$css_args['primary_item'] = $render->get_primary_item($item['id']);
				} else {
					if (isset($current_section['desktop'])) {
						foreach ($current_section['desktop'] as $row) {
							foreach ($row['placements'] as $single_placement) {
								if (in_array($item['id'], $single_placement['items'])) {
									$row_id = $row['id'];
									$row_ids[] = $row['id'];
								}
							}
						}
					}

					if (isset($current_section['mobile'])) {
						foreach ($current_section['mobile'] as $row) {
							foreach ($row['placements'] as $single_placement) {
								if (in_array($item['id'], $single_placement['items'])) {
									$row_id = $row['id'];
									$row_ids[] = $row['id'];
								}
							}
						}
					}
				}

				blocksy_theme_get_dynamic_styles(apply_filters(
					'blocksy:' . $args['panel_type'] . ':dynamic-styles-args',
					array_merge([
						'section_id' => $args['section_id'],
						'row_id' => $row_id,
						'row_ids' => $row_ids,
						'panel_type' => $args['panel_type'],
						'path' => $item['path'] . '/dynamic-styles.php',
						'root_selector' => $render->get_root_selector($item),
						'root_selector_header' => $render->get_root_selector(),
						'column_selector' => $render->get_column_selector($item)
					], $css_args)
				));
			};
		}

		$path = apply_filters(
			'blocksy:' . $args['panel_type'] . ':dynamic-styles-path',
			get_template_directory() . '/inc/panel-builder/' . $args['panel_type'] . '/dynamic-styles.php'
		);

		$section = $render->get_current_section();

		if (! isset($section['settings'])) {
			$section['settings'] = [];
		}

		$css_args['atts'] = $section['settings'];

		if (file_exists($path)) {
			blocksy_theme_get_dynamic_styles(
				apply_filters(
					'blocksy:' . $args['panel_type'] . ':dynamic-styles-args',
					array_merge([
						'section_id' => $args['section_id'],
						'path' => $path,
						'root_selector' => $render->get_root_selector()
					], $css_args)
				)
			);
		}
	}

	public function get_data_for_customizer() {
		$result = [];

		$result['header'] = $this->get_registered_items_by('header', [
			'require_options' => true
		]);

		$result['footer'] = $this->get_registered_items_by('footer', [
			'require_options' => true
		]);

		$result['footer_data'] = [
			'footer_options' => blocksy_get_options(
				get_template_directory() . '/inc/panel-builder/footer/options.php',
				[],
				false
			)
		];

		$result['header_data'] = [
			'header_options' => blocksy_get_options(
				apply_filters(
					'blocksy:header:general-options-path',
					get_template_directory() . '/inc/panel-builder/header/options.php'
				),
				[],
				false
			)
		];

		$result['secondary_items'] = [
			'header' => $this->get_registered_items_by('header', [
				'include' => 'secondary'
			]),

			'footer' => $this->get_registered_items_by('footer', [
				'include' => 'secondary'
			]),
		];

		return $result;
	}

	public function get_option_id_for($panel_type = 'header', $item = []) {
		return $panel_type . '_item_' . str_replace('-', '_', $item['id']);
	}

	public function get_registered_items_by($panel_type = 'header', $args = []) {
		$args = wp_parse_args($args, [
			// all | primary | secondary
			'include' => 'all',
			'require_options' => false
		]);

		$should_do_caching = $args['include'] === 'all' && ! $args['require_options'];

		if ($should_do_caching) {
			if ($this->items_cache[$panel_type]) {
				return $this->items_cache[$panel_type];
			}
		}

		$paths_to_look_for_items = apply_filters(
			'blocksy:' . $panel_type . ':items-paths',
			[
				get_template_directory() . '/inc/panel-builder/' . $panel_type
			],
			$panel_type
		);

		$items = [];

		$primary_items = [
			'top-row',
			'middle-row',
			'bottom-row',
			'offcanvas'
		];

		$all_items = [];

		foreach ($paths_to_look_for_items as $single_path) {
			$temporary_items = glob($single_path . '/*', GLOB_ONLYDIR);

			foreach ($temporary_items as $single_item_path) {
				$all_items[] = $single_item_path;
			}
		}

		foreach (apply_filters(
			'blocksy:' . $panel_type . ':items-root-paths',
			$all_items
		) as $single_item) {
			$id = str_replace('_', '-', basename($single_item));

			if (in_array($id, $primary_items)) {
				if ($args['include'] === 'secondary') {
					continue;
				}
			} else {
				if ($args['include'] === 'primary') {
					continue;
				}
			}

			$future_data = [
				'id' => $id,
				'path' => $single_item,
				'is_primary' => in_array($id, $primary_items)
			];

			if (is_customize_preview() || is_admin()) {
				$future_data['config'] = apply_filters(
					'blocksy:' . $panel_type . ':items-config',
					$this->read_config_for($single_item),
					$id
				);
			}

			if ($args['require_options']) {
				$future_data['options'] = $this->get_options_for(
					$panel_type,
					$future_data
				);
			}

			$items[] = $future_data;
		}

		if ($should_do_caching) {
			$this->items_cache[$panel_type] = $items;
		}

		return $items;
	}

	private function read_config_for($file_path) {
		$name = explode('-', basename($file_path));
		$name = array_map('ucfirst', $name);
		$name = implode(' ', $name);

		$_extract_variables = ['config' => []];

		if (is_readable($file_path . '/config.php')) {
			require $file_path . '/config.php';

			foreach ($_extract_variables as $variable_name => $default_value) {
				if (isset($$variable_name)) {
					$_extract_variables[$variable_name] = $$variable_name;
				}
			}
		}

		$_extract_variables['config'] = array_merge(
			[
				'name' => $name,
				'description' => '',
				'typography_keys' => [],
				'translation_keys' => [],
				'devices' => ['desktop', 'mobile'],
				'selective_refresh' => [],
				'allowed_in' => [],
				'excluded_from' => [],
				'clone' => false,

				// border | drop
				'shortcut_style' => 'drop',
				'enabled' => true
			],
			$_extract_variables['config']
		);

		return $_extract_variables['config'];
	}

	public function get_options_for($panel_type = 'header', $item = []) {
		if (! is_array($item)) {
			return [];
		}

		if (! isset($item['path'])) {
			return [];
		}

		return blocksy_get_options($item['path'] . '/options.php', [
			'panel_type' => $panel_type,
			'prefix' => $this->get_option_id_for($panel_type, $item) . '_'
		], false);
	}
}


Filemanager

Name Type Size Permission Actions
archive Folder 0750
blocks Folder 0750
builder Folder 0750
hero Folder 0750
media Folder 0750
patterns Folder 0750
single Folder 0750
woocommerce Folder 0750
back-to-top.php File 3.29 KB 0640
breadcrumbs.php File 22.21 KB 0640
contacts-box.php File 8.79 KB 0640
customizer-builder.php File 9.53 KB 0640
emoji-scripts.php File 1.12 KB 0640
gallery.php File 7.35 KB 0640
global-attrs.php File 4.73 KB 0640
hero-section.php File 5.18 KB 0640
menus.php File 10.65 KB 0640
pagination.php File 7.49 KB 0640
patterns.php File 832 B 0640
post-meta.php File 20.31 KB 0640
posts-listing.php File 3.1 KB 0640
search.php File 5.76 KB 0640
sidebar.php File 4.29 KB 0640
skip-to-content-link.php File 269 B 0640
social-box.php File 58.93 KB 0640
vertical-spacing.php File 1.42 KB 0640
woocommerce-integration.php File 5.08 KB 0640
Filemanager