Initial Commit N° : 001 - V.4.3.3

This commit is contained in:
2025-03-28 14:32:57 +01:00
commit 238e5d7999
809 changed files with 371149 additions and 0 deletions
File diff suppressed because it is too large Load Diff
+367
View File
@@ -0,0 +1,367 @@
<?php
/**
* SMOF Interface
*
* @package WordPress
* @subpackage SMOF
* @since 1.4.0
* @author Syamil MJ
*/
/**
* Admin init
*
* Redirect from old theme options
*/
function optionsframework_admin_init_redirect() {
if (isset($_REQUEST['page']) && $_REQUEST['page'] === 'optionsframework') {
wp_redirect(admin_url('admin.php?page=' . NASA_ADMIN_PAGE_SLUG));
exit;
}
}
/**
* Admin Init
*
* @uses wp_verify_nonce()
* @uses header()
*
* @since 1.0.0
*/
function optionsframework_admin_init() {
// Rev up the Options Machine
global $of_options, $options_machine, $smof_data, $smof_details;
if (!isset($options_machine)) {
$options_machine = new Options_Machine($of_options);
}
do_action('optionsframework_admin_init_before', array(
'of_options' => $of_options,
'options_machine' => $options_machine,
'smof_data' => $smof_data
));
if (empty($smof_data['smof_init'])) { // Let's set the values if the theme's already been active
of_save_options($options_machine->Defaults);
of_save_options(date('r'), 'smof_init');
$smof_data = of_get_options();
$options_machine = new Options_Machine($of_options);
}
do_action('optionsframework_admin_init_after', array(
'of_options' => $of_options,
'options_machine' => $options_machine,
'smof_data' => $smof_data
));
}
/**
* Create Options page
*
* @uses add_theme_page()
* @uses add_action()
*
* @since 1.0.0
*/
function optionsframework_add_admin() {
global $nasa_opt;
if (isset($nasa_opt['white_lbl']) && $nasa_opt['white_lbl'] && isset($nasa_opt['white_lbl_name']) && $nasa_opt['white_lbl_name']) {
$title_option = $nasa_opt['white_lbl_name'] . ' Options';
} else {
$title_option = esc_html__('Theme Options', 'elessi-theme');
}
add_theme_page(
ELESSI_ADMIN_THEMENAME,
$title_option,
'edit_theme_options',
ELESSI_ADMIN_PAGE_SLUG_OLD,
'elessi_framework_options_page_old'
);
$of_page = add_menu_page(
ELESSI_ADMIN_THEMENAME,
$title_option,
'edit_theme_options',
NASA_ADMIN_PAGE_SLUG,
'elessi_framework_options_page',
ELESSI_ADMIN_DIR_URI . 'assets/images/settings-theme.svg',
2
);
if (NASA_HF_BUILDER) {
$hfe_admin = HFE_Admin::instance();
remove_action('admin_menu', array($hfe_admin, 'register_admin_menu'), 50);
add_submenu_page(
NASA_ADMIN_PAGE_SLUG,
__('Elementor - Header, Footer & Custom Block', 'elessi-theme'),
__('Elementor - Header, Footer & Custom Block', 'elessi-theme'),
'edit_pages',
'edit.php?post_type=elementor-hf'
);
}
// Add framework functionaily to the head individually
add_action("admin_print_scripts-" . $of_page, 'of_load_only');
add_action("admin_print_styles-" . $of_page, 'of_style_only');
}
/**
* Build Options page - OLD
*
* @since 1.0.0
*/
function elessi_framework_options_page_old() {
die;
}
/**
* Build Options page
*
* @since 1.0.0
*/
function elessi_framework_options_page() {
global $options_machine;
include_once ELESSI_ADMIN_PATH . 'front-end/options.php';
}
/**
* Create Options page
*
* @uses wp_enqueue_style()
*
* @since 1.0.0
*/
function of_style_only() {
wp_enqueue_style('nasa-theme-admin-style', ELESSI_ADMIN_DIR_URI . 'assets/css/admin-style.css', array(), '6.1.7');
wp_enqueue_style('jquery-ui-custom-admin', ELESSI_ADMIN_DIR_URI . 'assets/css/jquery-ui-custom.css');
if (!wp_style_is('wp-color-picker', 'registered')) {
wp_register_style('wp-color-picker', ELESSI_ADMIN_DIR_URI . 'assets/css/color-picker.min.css');
}
wp_enqueue_style('wp-color-picker');
do_action('of_style_only_after');
}
/**
* Create Options page
*
* @uses add_action()
* @uses wp_enqueue_script()
*
* @since 1.0.0
*/
function of_load_only() {
wp_enqueue_script('jquery-ui-core');
wp_enqueue_script('jquery-ui-sortable');
wp_enqueue_script('jquery-ui-slider');
wp_enqueue_script('jquery-input-mask', ELESSI_ADMIN_DIR_URI . 'assets/js/jquery.maskedinput-1.2.2.js', array('jquery'));
wp_enqueue_script('cookie', ELESSI_ADMIN_DIR_URI . 'assets/js/cookie.js', array('jquery'));
wp_enqueue_script('smof', ELESSI_ADMIN_DIR_URI . 'assets/js/smof.js', array('jquery'));
/**
* Enqueue scripts for file uploader
*/
if (function_exists('wp_enqueue_media')) {
wp_enqueue_media();
}
do_action('of_load_only_after');
}
/**
* Ajax Save Options
*
* @uses get_option()
*
* @since 1.0.0
*/
function of_ajax_callback() {
global $options_machine, $of_options;
$nonce = $_POST['security'];
if (!wp_verify_nonce($nonce, 'of_ajax_nonce')) {
die('-1');
}
//get options array from db
$all = of_get_options();
$save_type = $_POST['type'];
switch ($save_type) {
case 'upload':
$clickedID = $_POST['data']; // Acts as the name
$filename = $_FILES[$clickedID];
$filename['name'] = preg_replace('/[^a-zA-Z0-9._\-]/', '', $filename['name']);
$override['test_form'] = false;
$override['action'] = 'wp_handle_upload';
$uploaded_file = wp_handle_upload($filename, $override);
// $upload_tracking[] = $clickedID;
// update $options array w/ image URL
// preserve current data
$upload_image = $all;
$upload_image[$clickedID] = $uploaded_file['url'];
of_save_options($upload_image);
// Is the Response
echo !empty($uploaded_file['error']) ?
'Upload Error: ' . $uploaded_file['error'] : $uploaded_file['url'];
break;
case 'image_reset':
$id = $_POST['data']; // Acts as the name
$delete_image = $all; //preserve rest of data
$delete_image[$id] = ''; //update array key with empty value
of_save_options($delete_image);
break;
case 'backup_options':
$backup = $all;
$backup['backup_log'] = date('r');
of_save_options($backup, ELESSI_ADMIN_BACKUPS);
nasa_theme_rebuilt_css_dynamic();
elessi_save_option_woo_customize();
die('1');
break;
case 'restore_options':
$smof_data = of_get_options(ELESSI_ADMIN_BACKUPS);
of_save_options($smof_data);
nasa_theme_rebuilt_css_dynamic();
elessi_save_option_woo_customize();
die('1');
break;
case 'import_options':
$smof_data = json_decode(stripslashes($_POST['data']), true);
of_save_options($smof_data);
nasa_theme_rebuilt_css_dynamic();
elessi_save_option_woo_customize();
/**
* Clear cache variations
*/
if (function_exists('nasa_del_cache_variations')) {
nasa_del_cache_variations();
}
die('1');
break;
case 'save':
wp_parse_str(stripslashes($_POST['data']), $smof_data);
unset($smof_data['security']);
unset($smof_data['of_save']);
of_save_options($smof_data);
nasa_theme_rebuilt_css_dynamic();
elessi_save_option_woo_customize();
die('1');
break;
case 'reset':
of_save_options($options_machine->Defaults);
nasa_theme_rebuilt_css_dynamic();
elessi_save_option_woo_customize();
die('1'); //options reset
break;
default:
die();
}
}
/**
* Rebuilt dynamic style site
* @global type $wp_filesystem
*/
function nasa_theme_rebuilt_css_dynamic() {
global $wp_filesystem, $nasa_upload_dir;
if (!isset($nasa_upload_dir)) {
$nasa_upload_dir = wp_upload_dir();
$GLOBALS['nasa_upload_dir'] = $nasa_upload_dir;
}
$dynamic_path = $nasa_upload_dir['basedir'] . '/nasa-dynamic';
// Initialize the WP filesystem, no more using 'file-put-contents' function
if (empty($wp_filesystem)) {
require_once ABSPATH . '/wp-admin/includes/file.php';
WP_Filesystem();
}
if (!$wp_filesystem->is_dir($dynamic_path)) {
if (!wp_mkdir_p($dynamic_path)){
return true;
}
}
// get the upload directory and make a dynamic.css file
$filename = $dynamic_path . '/dynamic.css';
$data = get_theme_mods();
$css = elessi_get_content_custom_css($data);
if (!defined('FS_CHMOD_FILE')) {
define('FS_CHMOD_FILE', (fileperms(ABSPATH . 'index.php') & 0777 | 0644));
}
if (!$wp_filesystem->put_contents($filename, $css, FS_CHMOD_FILE)) {
return true;
}
set_theme_mod('nasa_dynamic_t', NASA_TIME_NOW);
return false;
}
/**
* Save Woo Customize
* @return type
*/
function elessi_save_option_woo_customize() {
if (!NASA_WOO_ACTIVED) {
return;
}
$columns = get_option('woocommerce_catalog_columns', 4);
$data = get_theme_mods();
if (isset($data['products_per_row']) && (int) $data['products_per_row'] != $columns) {
update_option('woocommerce_catalog_columns', (int) $data['products_per_row']);
}
}
/**
* After save Customize sync theme options
*/
add_action('customize_save_after', 'elessi_sync_option_theme');
function elessi_sync_option_theme() {
if (!NASA_WOO_ACTIVED) {
return;
}
$columns = get_option('woocommerce_catalog_columns', 4);
$data = get_theme_mods();
if (!isset($data['products_per_row']) || (int) $data['products_per_row'] != $columns) {
set_theme_mod('products_per_row', $columns . '-cols');
}
}
+43
View File
@@ -0,0 +1,43 @@
<?php
// Option elements
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_01_general_heading.php';
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_02_logo_icon_heading.php';
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_03_1_header_heading.php';
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_03_2_footer_heading.php';
/**
* Mobile Options
*/
if (NASA_CORE_ACTIVED) {
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_03_3_mobile_heading.php';
}
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_04_style_color_heading.php';
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_05_type_heading.php';
if (NASA_WOO_ACTIVED) {
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_06_breadcrumb_heading.php';
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_07_1_product_global_heading.php';
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_07_2_product_page_heading.php';
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_07_3_product_detail_heading.php';
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_07_4_product_compare_heading.php';
if (NASA_DOKAN_ACTIVED) {
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_07_5_dokan_heading.php';
}
}
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_08_blog_heading.php';
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_09_promo_popup_heading.php';
// require_once ELESSI_THEME_PATH . '/admin/settings/nasa_10_portfolio_heading.php';
/**
* Add Backup Options
*/
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_98_backup_options_heading.php';
/**
* White Label Options
*/
require_once ELESSI_THEME_PATH . '/admin/settings/nasa_99_white_label_heading.php';