function load_data_types() { global $data_types_list; // $data_types_path = get_theme_root() . "/runway-framework/data-types"; $data_types_path = FRAMEWORK_DIR . 'data-types'; $data_types_base = $data_types_path . "/data-type.php"; if (!file_exists($data_types_path) || !file_exists($data_types_base)) { wp_die("Error: has no data types."); } else { include_once $data_types_base; $data_types_array = include_data_types($data_types_path); foreach ($data_types_array as $name => $path) { $data_type_slug = basename($path, '.php'); if ($name == 'fileupload-type.php') { if (!did_action('wp_enqueue_media')) { wp_enqueue_media(); } // Needed for upload field } $data_types_list[$data_type_slug] = array('filename' => $name, 'classname' => ucfirst(str_replace('-', '_', $data_type_slug))); // Unsupported in old PHP versions $data_types_list[$data_type_slug]['classname']::assign_actions_and_filters(); } } }
public function add_to_customize_page() { if (!empty($this->options_pages)) { foreach ($this->options_pages as $key => $page_options) { if (!empty($page_options)) { $current = $this->prepare_form($page_options); $settings = $this->make_settings($current); if (!empty($settings)) { ${$current['admin_object']} = new Settings_Object($settings); } add_action('customize_controls_print_styles', array(${$current['admin_object']}, 'include_extension_css')); add_action('customize_controls_print_scripts', array(${$current['admin_object']}, 'include_extension_js')); $_this = ${$current['admin_object']}; add_action('customize_register', function ($wp_customize) use($_this) { // $data_types_path = get_theme_root() . "/runway-framework/data-types"; $data_types_path = FRAMEWORK_DIR . 'data-types'; $data_types_base = $data_types_path . '/data-type.php'; $_this->data_types = array(); if (!file_exists($data_types_path) || !file_exists($data_types_base)) { wp_die("Error: data types"); } else { include_once $data_types_base; include_data_types($data_types_path); } $_this->data = get_option($_this->option_key); // including js and cs // $_this->include_extension_css(); // $_this->include_extension_js(); foreach ($_this->builder_page->sortOrder as $tab) { if ($tab != 'none') { foreach ($tab as $container_id => $container_fields) { if ($container_id != 'none') { $container = $_this->builder_page->elements->{$container_id}; if (isset($container->display_on_customization_page) && $container->display_on_customization_page == true) { $wp_customize->add_section($container->index, array('title' => $container->title, 'description' => '', 'priority' => isset($container->priority) ? $container->priority : '')); $priority_level = 0; foreach ($container_fields as $field_id) { if ($field_id != 'none') { $field = $_this->builder_page->elements->{$field_id}; $class_Name = ucfirst(str_replace('-', '_', $field->type)); if (class_exists($class_Name)) { $wp_customize->add_setting($field->alias, array('default' => '', 'type' => 'customize')); $option_field = new $class_Name($_this, $field, $wp_customize, $field->alias, array('label' => $field->title, 'section' => $container->index, 'settings' => $field->alias, 'priority' => $priority_level)); $priority_level++; add_action('customize_save_' . $field->alias, array($option_field, 'save')); add_filter('customize_value_' . $field->alias, array($option_field, 'get_value')); $wp_customize->add_control($option_field); } } } } } } } } }); } } } }