__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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 0775
blocks Folder 0775
builder Folder 0775
hero Folder 0775
media Folder 0775
patterns Folder 0775
single Folder 0775
woocommerce Folder 0775
back-to-top.php File 3.29 KB 0775
breadcrumbs.php File 22.21 KB 0775
contacts-box.php File 8.79 KB 0775
customizer-builder.php File 9.53 KB 0775
emoji-scripts.php File 1.12 KB 0775
gallery.php File 7.35 KB 0775
global-attrs.php File 4.75 KB 0775
hero-section.php File 5.18 KB 0775
menus.php File 11.42 KB 0775
pagination.php File 7.49 KB 0775
patterns.php File 832 B 0775
post-meta.php File 20.82 KB 0775
posts-listing.php File 3.1 KB 0775
search.php File 5.76 KB 0775
sidebar.php File 4.29 KB 0775
skip-to-content-link.php File 269 B 0775
social-box.php File 58.98 KB 0775
vertical-spacing.php File 1.53 KB 0775
woocommerce-integration.php File 5.25 KB 0775
Filemanager