Files

1379 lines
42 KiB
PHP

<?php
/**
* SMOF Admin
*
* @package WordPress
* @subpackage SMOF
* @since 1.4.0
* @author Syamil MJ
*/
/**
* Head Hook
*
* @since 1.0.0
*/
function of_head() {
do_action('of_head');
}
/**
* Add default options upon activation else DB does not exist
*
* DEPRECATED, Class_options_machine now does this on load to ensure all values are set
*
* @since 1.0.0
*/
function of_option_setup() {
global $of_options, $options_machine;
$options_machine = new Options_Machine($of_options);
if (!of_get_options()) {
of_save_options($options_machine->Defaults);
}
}
/**
* Change activation message
*
* @since 1.0.0
*/
function optionsframework_admin_message() {
//Tweaked the message on theme activate
?>
<script>
jQuery(function () {
var message = '<p>This theme comes with an <a href="<?php echo esc_url(admin_url('admin.php?page=' . NASA_ADMIN_PAGE_SLUG)); ?>">options panel</a> to configure settings. This theme also supports widgets, please visit the <a href="<?php echo esc_url(admin_url('widgets.php')); ?>">widgets settings page</a> to configure them.</p>';
jQuery('.themes-php #message2').html(message);
});
</script>
<?php
}
/**
* Get header classes
*
* @since 1.0.0
*/
function of_get_header_classes_array() {
global $of_options;
$hooks = !isset($hooks) ? array() : $hooks;
foreach ($of_options as $value) {
if ($value['type'] == 'heading') {
$hooks[] = isset($value['target']) ? 'heading-' . str_replace(' ', '-', strtolower($value['target'])) : str_replace(' ', '', strtolower($value['name']));
}
}
return $hooks;
}
/**
* Save options to the database after processing them
*
* @param $data Options array to save
* @author Jonah Dahlquist
* @since 1.4.0
* @uses update_option()
* @return void
*/
function of_save_options($data, $key = null) {
global $smof_data;
if (empty($data)) {
return;
}
do_action('of_save_options_before', array(
'key' => $key,
'data' => $data
));
$data = apply_filters('of_options_before_save', $data);
if ($key != null) { // Update one specific value
if ($key == ELESSI_ADMIN_BACKUPS) {
unset($data['smof_init']); // Don't want to change this.
}
set_theme_mod($key, $data);
} else {
// Update all values in $data
foreach ($data as $k => $v) {
// Only write to the DB when we need to
if (!isset($smof_data[$k]) || $smof_data[$k] != $v) {
set_theme_mod($k, $v);
} elseif (is_array($v)) {
foreach ($v as $key => $val) {
if ($key != $k && $v[$key] == $val) {
set_theme_mod($k, $v);
break;
}
}
}
}
}
do_action('of_save_options_after', array(
'key' => $key,
'data' => $data
));
}
/**
* Filter URLs from uploaded media fields and replaces them with keywords.
* This is to keep from storing the site URL in the database to make
* migrations easier.
*
* @since 1.4.0
* @param $data Options array
* @return array
*/
// add_filter('of_options_before_save', 'of_filter_save_media_upload');
function of_filter_save_media_upload($data) {
if (!is_array($data)) {
return $data;
}
$keys_media = array(
'site_bg_image',
'site_logo',
'site_logo_retina',
'site_logo_sticky',
'site_logo_m',
'site_favicon',
'breadcrumb_bg',
'breadcrumb_bg_m',
'pp_background_image',
'background_area',
);
foreach ($data as $key => $value) {
if (is_string($value)) {
if (in_array($key, $keys_media)) {
$data[$key] = str_replace(
array(
site_url('', 'http'),
site_url('', 'https'),
), array(
'[site_url]',
'[site_url_secure]',
), $value
);
}
}
}
return $data;
}
/**
* For use in themes
*
* @since forever
*/
$data = of_get_options();
if (!isset($smof_details)) {
$smof_details = array();
}
/**
* Filter URLs from uploaded media fields and replaces the site URL keywords
* with the actual site URL.
*
* @since 1.4.0
* @param $data Options array
* @return array
*/
add_filter('of_options_after_load', 'of_filter_load_media_upload');
function of_filter_load_media_upload($data) {
if (!is_array($data)) {
return $data;
}
foreach ($data as $key => $value) {
if (is_string($value)) {
$data[$key] = str_replace(
array(
'[site_url]',
'[site_url_secure]',
), array(
site_url('', 'http'),
site_url('', 'https'),
), $value
);
}
}
return $data;
}
/**
* Get options from the database and process them with the load filter hook.
*
* @author Jonah Dahlquist
* @since 1.4.0
* @return array
*/
function of_get_options($key = null, $data = null) {
global $smof_data;
do_action('of_get_options_before', array(
'key' => $key,
'data' => $data
));
$data = $key != null ? get_theme_mod($key, $data) : get_theme_mods();
$data = apply_filters('of_options_after_load', $data);
if ($key == null) {
$smof_data = $data;
} else {
$smof_data[$key] = $data;
}
do_action('of_option_setup_before', array(
'key' => $key,
'data' => $data
));
return $data;
}
/* ======================================================================== */
/* ================== Custom ADMIN ======================================== */
/* ======================================================================== */
/**
* Get Menu Options
*/
function elessi_admin_get_menu_options() {
$menus = function_exists('nasa_meta_get_list_menus') ?
nasa_meta_get_list_menus() : array();
if (isset($menus['-1'])) {
unset($menus['-1']);
}
return $menus;
}
/**
* Get static Blocks
*/
function elessi_admin_get_static_blocks() {
$static_blocks = array('default' => esc_html__('Select', 'elessi-theme'));
$nasa_blocks = function_exists('nasa_get_blocks_options') ?
nasa_get_blocks_options(true) : array();
if (isset($nasa_blocks[''])) {
unset($nasa_blocks['']);
}
if (isset($nasa_blocks['-1'])) {
unset($nasa_blocks['-1']);
}
if (!empty($nasa_blocks)) {
foreach ($nasa_blocks as $key => $value) {
$static_blocks[$key] = $value;
}
}
return $static_blocks;
}
/**
* Get Footer Builder
*/
function elessi_admin_get_footer_builder() {
$footers_builder = function_exists('nasa_get_footers_options') ?
nasa_get_footers_options(true) : array();
if (isset($footers_builder[''])) {
unset($footers_builder['']);
}
return $footers_builder;
}
/**
* Get Footer Elementor
*/
function elessi_admin_get_footer_elementor() {
$footers = function_exists('nasa_get_footers_elementor') ?
nasa_get_footers_elementor() : array();
return $footers;
}
/**
* Get Header Builder
*/
function elessi_admin_get_header_builder() {
$headers_builder = function_exists('nasa_get_headers_options') ?
nasa_get_headers_options(true) : array();
if (isset($headers_builder[''])) {
unset($headers_builder['']);
}
return $headers_builder;
}
/**
* Get Header Builder
*/
function elessi_admin_get_header_elementor() {
$headers = function_exists('nasa_get_headers_elementor') ?
nasa_get_headers_elementor() : array();
return $headers;
}
/**
* Get cats
*/
function elessi_get_cats_array() {
$categories = get_categories(array(
'taxonomy' => 'category',
'orderby' => 'name'
));
$list = array(
'' => esc_html__('Select category', 'elessi-theme')
);
if (!empty($categories)) {
foreach ($categories as $v) {
$list[$v->term_id] = $v->name;
}
}
return $list;
}
/**
* Get Goolge Fonts
*/
function elessi_get_google_fonts() {
return function_exists('nasa_get_google_fonts') ? nasa_get_google_fonts() : array();
}
if (!isset($nasa_list_icons)) {
$nasa_list_icons = array(
'nasa' => array(
"icon-nasa-headphone",
"icon-nasa-headset",
"icon-nasa-icons-4",
"icon-nasa-cart",
"icon-nasa-cart-2",
"icon-nasa-cart-3",
"icon-nasa-cart-4",
"icon-nasa-refresh",
"icon-nasa-compare",
"icon-nasa-compare-1",
"icon-nasa-compare-2",
"icon-nasa-compare-3",
"icon-nasa-compare-4",
"icon-nasa-compare-5",
"icon-nasa-like",
"icon-nasa-liked",
"icon-nasa-wishlist",
"icon-nasa-like-love-streamline",
"icon-nasa-1column",
"icon-nasa-2column",
"icon-nasa-3column",
"icon-nasa-4column",
"icon-nasa-5column",
"icon-nasa-6column",
"icon-nasa-list",
"icon-nasa-icons-17",
"icon-nasa-icons-18",
"icon-nasa-icons-19",
"icon-nasa-icons-21",
"icon-nasa-icons-menu",
"icon-nasa-icons-1",
"icon-nasa-icons-6",
"icon-nasa-sale",
"icon-nasa-sale-1",
"icon-nasa-sale-2",
"icon-nasa-like-hand",
"icon-nasa-car",
"icon-nasa-car-1",
"icon-nasa-car-2",
"icon-nasa-location",
"icon-nasa-credit",
"icon-nasa-icons-15",
"icon-nasa-99",
"icon-nasa-search",
"icon-nasa-if-search",
"icon-nasa-left-arrow",
"icon-nasa-right-arrow",
"icon-nasa-icons-8",
"icon-nasa-icons-10",
"icon-nasa-icons-11",
"icon-nasa-icons-12-1",
"icon-nasa-expand",
"icon-nasa-play",
"icon-nasa-close",
"icon-nasa-close-1",
"icon-nasa-close-2",
"icon-nasa-icons-12",
"icon-nasa-99-1",
"icon-nasa-mouse",
"icon-nasa-computer",
"icon-nasa-check",
"icon-nasa-check-1",
"icon-nasa-icons-plus",
"icon-nasa-icons-minus",
"icon-nasa-fruit",
"icon-nasa-diet",
"icon-nasa-orange",
"icon-nasa-parsley",
"icon-nasa-onion",
"icon-nasa-banana",
"icon-nasa-potatoes",
"icon-nasa-raspberry",
"icon-nasa-healthy-food",
"icon-nasa-meat",
"icon-nasa-fish",
"icon-nasa-fast-food",
"icon-nasa-tomato"
),
'fa' => array(
"fa-glass",
"fa-music",
"fa-search",
"fa-envelope-o",
"fa-heart",
"fa-star",
"fa-star-o",
"fa-user",
"fa-film",
"fa-th-large",
"fa-th",
"fa-th-list",
"fa-check",
"fa-remove",
"fa-close",
"fa-times",
"fa-search-plus",
"fa-search-minus",
"fa-power-off",
"fa-signal",
"fa-gear",
"fa-cog",
"fa-trash-o",
"fa-home",
"fa-file-o",
"fa-clock-o",
"fa-road",
"fa-download",
"fa-arrow-circle-o-down",
"fa-arrow-circle-o-up",
"fa-inbox",
"fa-play-circle-o",
"fa-rotate-right",
"fa-repeat",
"fa-refresh",
"fa-list-alt",
"fa-lock",
"fa-flag",
"fa-headphones",
"fa-volume-off",
"fa-volume-down",
"fa-volume-up",
"fa-qrcode",
"fa-barcode",
"fa-tag",
"fa-tags",
"fa-book",
"fa-bookmark",
"fa-print",
"fa-camera",
"fa-font",
"fa-bold",
"fa-italic",
"fa-text-height",
"fa-text-width",
"fa-align-left",
"fa-align-center",
"fa-align-right",
"fa-align-justify",
"fa-list",
"fa-dedent",
"fa-outdent",
"fa-indent",
"fa-video-camera",
"fa-photo",
"fa-image",
"fa-picture-o",
"fa-pencil",
"fa-map-marker",
"fa-adjust",
"fa-tint",
"fa-edit",
"fa-pencil-square-o",
"fa-share-square-o",
"fa-check-square-o",
"fa-arrows",
"fa-step-backward",
"fa-fast-backward",
"fa-backward",
"fa-play",
"fa-pause",
"fa-stop",
"fa-forward",
"fa-fast-forward",
"fa-step-forward",
"fa-eject",
"fa-chevron-left",
"fa-chevron-right",
"fa-plus-circle",
"fa-minus-circle",
"fa-times-circle",
"fa-check-circle",
"fa-question-circle",
"fa-info-circle",
"fa-crosshairs",
"fa-times-circle-o",
"fa-check-circle-o",
"fa-ban",
"fa-arrow-left",
"fa-arrow-right",
"fa-arrow-up",
"fa-arrow-down",
"fa-mail-forward",
"fa-share",
"fa-expand",
"fa-compress",
"fa-plus",
"fa-minus",
"fa-asterisk",
"fa-exclamation-circle",
"fa-gift",
"fa-leaf",
"fa-fire",
"fa-eye",
"fa-eye-slash",
"fa-warning",
"fa-exclamation-triangle",
"fa-plane",
"fa-calendar",
"fa-random",
"fa-comment",
"fa-magnet",
"fa-chevron-up",
"fa-chevron-down",
"fa-retweet",
"fa-shopping-cart",
"fa-folder",
"fa-folder-open",
"fa-arrows-v",
"fa-arrows-h",
"fa-bar-chart-o",
"fa-bar-chart",
"fa-twitter-square",
"fa-facebook-square",
"fa-camera-retro",
"fa-key",
"fa-gears",
"fa-cogs",
"fa-comments",
"fa-thumbs-o-up",
"fa-thumbs-o-down",
"fa-star-half",
"fa-heart-o",
"fa-sign-out",
"fa-linkedin-square",
"fa-thumb-tack",
"fa-external-link",
"fa-sign-in",
"fa-trophy",
"fa-github-square",
"fa-upload",
"fa-lemon-o",
"fa-phone",
"fa-square-o",
"fa-bookmark-o",
"fa-phone-square",
"fa-twitter",
"fa-facebook",
"fa-github",
"fa-unlock",
"fa-credit-card",
"fa-rss",
"fa-hdd-o",
"fa-bullhorn",
"fa-bell",
"fa-certificate",
"fa-hand-o-right",
"fa-hand-o-left",
"fa-hand-o-up",
"fa-hand-o-down",
"fa-arrow-circle-left",
"fa-arrow-circle-right",
"fa-arrow-circle-up",
"fa-arrow-circle-down",
"fa-globe",
"fa-wrench",
"fa-tasks",
"fa-filter",
"fa-briefcase",
"fa-arrows-alt",
"fa-group",
"fa-users",
"fa-chain",
"fa-link",
"fa-cloud",
"fa-flask",
"fa-cut",
"fa-scissors",
"fa-copy",
"fa-files-o",
"fa-paperclip",
"fa-save",
"fa-floppy-o",
"fa-square",
"fa-navicon",
"fa-reorder",
"fa-bars",
"fa-list-ul",
"fa-list-ol",
"fa-strikethrough",
"fa-underline",
"fa-table",
"fa-magic",
"fa-truck",
"fa-pinterest",
"fa-pinterest-square",
"fa-google-plus-square",
"fa-google-plus",
"fa-money",
"fa-caret-down",
"fa-caret-up",
"fa-caret-left",
"fa-caret-right",
"fa-columns",
"fa-unsorted",
"fa-sort",
"fa-sort-down",
"fa-sort-desc",
"fa-sort-up",
"fa-sort-asc",
"fa-envelope",
"fa-linkedin",
"fa-rotate-left",
"fa-undo",
"fa-legal",
"fa-gavel",
"fa-dashboard",
"fa-tachometer",
"fa-comment-o",
"fa-comments-o",
"fa-flash",
"fa-bolt",
"fa-sitemap",
"fa-umbrella",
"fa-paste",
"fa-clipboard",
"fa-lightbulb-o",
"fa-exchange",
"fa-cloud-download",
"fa-cloud-upload",
"fa-user-md",
"fa-stethoscope",
"fa-suitcase",
"fa-bell-o",
"fa-coffee",
"fa-cutlery",
"fa-file-text-o",
"fa-building-o",
"fa-hospital-o",
"fa-ambulance",
"fa-medkit",
"fa-fighter-jet",
"fa-beer",
"fa-h-square",
"fa-plus-square",
"fa-angle-double-left",
"fa-angle-double-right",
"fa-angle-double-up",
"fa-angle-double-down",
"fa-angle-left",
"fa-angle-right",
"fa-angle-up",
"fa-angle-down",
"fa-desktop",
"fa-laptop",
"fa-tablet",
"fa-mobile-phone",
"fa-mobile",
"fa-circle-o",
"fa-quote-left",
"fa-quote-right",
"fa-spinner",
"fa-circle",
"fa-mail-reply",
"fa-reply",
"fa-github-alt",
"fa-folder-o",
"fa-folder-open-o",
"fa-smile-o",
"fa-frown-o",
"fa-meh-o",
"fa-gamepad",
"fa-keyboard-o",
"fa-flag-o",
"fa-flag-checkered",
"fa-terminal",
"fa-code",
"fa-mail-reply-all",
"fa-reply-all",
"fa-star-half-empty",
"fa-star-half-full",
"fa-star-half-o",
"fa-location-arrow",
"fa-crop",
"fa-code-fork",
"fa-unlink",
"fa-chain-broken",
"fa-question",
"fa-info",
"fa-exclamation",
"fa-superscript",
"fa-subscript",
"fa-eraser",
"fa-puzzle-piece",
"fa-microphone",
"fa-microphone-slash",
"fa-shield",
"fa-calendar-o",
"fa-fire-extinguisher",
"fa-rocket",
"fa-maxcdn",
"fa-chevron-circle-left",
"fa-chevron-circle-right",
"fa-chevron-circle-up",
"fa-chevron-circle-down",
"fa-html5",
"fa-css3",
"fa-anchor",
"fa-unlock-alt",
"fa-bullseye",
"fa-ellipsis-h",
"fa-ellipsis-v",
"fa-rss-square",
"fa-play-circle",
"fa-ticket",
"fa-minus-square",
"fa-minus-square-o",
"fa-level-up",
"fa-level-down",
"fa-check-square",
"fa-pencil-square",
"fa-external-link-square",
"fa-share-square",
"fa-compass",
"fa-toggle-down",
"fa-caret-square-o-down",
"fa-toggle-up",
"fa-caret-square-o-up",
"fa-toggle-right",
"fa-caret-square-o-right",
"fa-euro",
"fa-eur",
"fa-gbp",
"fa-dollar",
"fa-usd",
"fa-rupee",
"fa-inr",
"fa-cny",
"fa-rmb",
"fa-yen",
"fa-jpy",
"fa-ruble",
"fa-rouble",
"fa-rub",
"fa-won",
"fa-krw",
"fa-bitcoin",
"fa-btc",
"fa-file",
"fa-file-text",
"fa-sort-alpha-asc",
"fa-sort-alpha-desc",
"fa-sort-amount-asc",
"fa-sort-amount-desc",
"fa-sort-numeric-asc",
"fa-sort-numeric-desc",
"fa-thumbs-up",
"fa-thumbs-down",
"fa-youtube-square",
"fa-youtube",
"fa-xing",
"fa-xing-square",
"fa-youtube-play",
"fa-dropbox",
"fa-stack-overflow",
"fa-instagram",
"fa-flickr",
"fa-adn",
"fa-bitbucket",
"fa-bitbucket-square",
"fa-tumblr",
"fa-tumblr-square",
"fa-long-arrow-down",
"fa-long-arrow-up",
"fa-long-arrow-left",
"fa-long-arrow-right",
"fa-apple",
"fa-windows",
"fa-android",
"fa-linux",
"fa-dribbble",
"fa-skype",
"fa-foursquare",
"fa-trello",
"fa-female",
"fa-male",
"fa-gittip",
"fa-sun-o",
"fa-moon-o",
"fa-archive",
"fa-bug",
"fa-vk",
"fa-weibo",
"fa-renren",
"fa-pagelines",
"fa-stack-exchange",
"fa-arrow-circle-o-right",
"fa-arrow-circle-o-left",
"fa-toggle-left",
"fa-caret-square-o-left",
"fa-dot-circle-o",
"fa-wheelchair",
"fa-vimeo-square",
"fa-turkish-lira",
"fa-try",
"fa-plus-square-o",
"fa-space-shuttle",
"fa-slack",
"fa-envelope-square",
"fa-wordpress",
"fa-openid",
"fa-institution",
"fa-bank",
"fa-university",
"fa-mortar-board",
"fa-graduation-cap",
"fa-yahoo",
"fa-google",
"fa-reddit",
"fa-reddit-square",
"fa-stumbleupon-circle",
"fa-stumbleupon",
"fa-delicious",
"fa-digg",
"fa-pied-piper",
"fa-pied-piper-alt",
"fa-drupal",
"fa-joomla",
"fa-language",
"fa-fax",
"fa-building",
"fa-child",
"fa-paw",
"fa-spoon",
"fa-cube",
"fa-cubes",
"fa-behance",
"fa-behance-square",
"fa-steam",
"fa-steam-square",
"fa-recycle",
"fa-automobile",
"fa-car",
"fa-cab",
"fa-taxi",
"fa-tree",
"fa-spotify",
"fa-deviantart",
"fa-soundcloud",
"fa-database",
"fa-file-pdf-o",
"fa-file-word-o",
"fa-file-excel-o",
"fa-file-powerpoint-o",
"fa-file-photo-o",
"fa-file-picture-o",
"fa-file-image-o",
"fa-file-zip-o",
"fa-file-archive-o",
"fa-file-sound-o",
"fa-file-audio-o",
"fa-file-movie-o",
"fa-file-video-o",
"fa-file-code-o",
"fa-vine",
"fa-codepen",
"fa-jsfiddle",
"fa-life-bouy",
"fa-life-buoy",
"fa-life-saver",
"fa-support",
"fa-life-ring",
"fa-circle-o-notch",
"fa-ra",
"fa-rebel",
"fa-ge",
"fa-empire",
"fa-git-square",
"fa-git",
"fa-hacker-news",
"fa-tencent-weibo",
"fa-qq",
"fa-wechat",
"fa-weixin",
"fa-send",
"fa-paper-plane",
"fa-send-o",
"fa-paper-plane-o",
"fa-history",
"fa-circle-thin",
"fa-header",
"fa-paragraph",
"fa-sliders",
"fa-share-alt",
"fa-share-alt-square",
"fa-bomb",
"fa-soccer-ball-o",
"fa-futbol-o",
"fa-tty",
"fa-binoculars",
"fa-plug",
"fa-slideshare",
"fa-twitch",
"fa-yelp",
"fa-newspaper-o",
"fa-wifi",
"fa-calculator",
"fa-paypal",
"fa-google-wallet",
"fa-cc-visa",
"fa-cc-mastercard",
"fa-cc-discover",
"fa-cc-amex",
"fa-cc-paypal",
"fa-cc-stripe",
"fa-bell-slash",
"fa-bell-slash-o",
"fa-trash",
"fa-copyright",
"fa-at",
"fa-eyedropper",
"fa-paint-brush",
"fa-birthday-cake",
"fa-area-chart",
"fa-pie-chart",
"fa-line-chart",
"fa-lastfm",
"fa-lastfm-square",
"fa-toggle-off",
"fa-toggle-on",
"fa-bicycle",
"fa-bus",
"fa-ioxhost",
"fa-angellist",
"fa-cc",
"fa-shekel",
"fa-sheqel",
"fa-ils",
"fa-meanpath",
),
'pe' => array(
'pe-7s-album', 'pe-7s-arc', 'pe-7s-back-2', 'pe-7s-bandaid', 'pe-7s-car', 'pe-7s-diamond',
'pe-7s-door-lock', 'pe-7s-eyedropper', 'pe-7s-female', 'pe-7s-gym', 'pe-7s-hammer',
'pe-7s-headphones', 'pe-7s-helm', 'pe-7s-hourglass', 'pe-7s-leaf', 'pe-7s-magic-wand',
'pe-7s-male', 'pe-7s-map-2', 'pe-7s-next-2', 'pe-7s-paint-bucket', 'pe-7s-pendrive',
'pe-7s-photo', 'pe-7s-piggy', 'pe-7s-plugin', 'pe-7s-refresh-2', 'pe-7s-rocket', 'pe-7s-settings',
'pe-7s-shield', 'pe-7s-smile', 'pe-7s-usb', 'pe-7s-vector', 'pe-7s-wine', 'pe-7s-cloud-upload',
'pe-7s-cash', 'pe-7s-close', 'pe-7s-bluetooth', 'pe-7s-cloud-download', 'pe-7s-way',
'pe-7s-close-circle', 'pe-7s-id', 'pe-7s-angle-up', 'pe-7s-wristwatch', 'pe-7s-angle-up-circle',
'pe-7s-world', 'pe-7s-angle-right', 'pe-7s-volume', 'pe-7s-angle-right-circle',
'pe-7s-users', 'pe-7s-angle-left', 'pe-7s-user-female', 'pe-7s-angle-left-circle',
'pe-7s-up-arrow', 'pe-7s-angle-down', 'pe-7s-switch', 'pe-7s-angle-down-circle', 'pe-7s-scissors',
'pe-7s-wallet', 'pe-7s-safe', 'pe-7s-volume2', 'pe-7s-volume1', 'pe-7s-voicemail',
'pe-7s-video', 'pe-7s-user', 'pe-7s-upload', 'pe-7s-unlock', 'pe-7s-umbrella', 'pe-7s-trash',
'pe-7s-tools', 'pe-7s-timer', 'pe-7s-ticket', 'pe-7s-target', 'pe-7s-sun', 'pe-7s-study',
'pe-7s-stopwatch', 'pe-7s-star', 'pe-7s-speaker', 'pe-7s-signal', 'pe-7s-shuffle',
'pe-7s-shopbag', 'pe-7s-share', 'pe-7s-server', 'pe-7s-search', 'pe-7s-film', 'pe-7s-science',
'pe-7s-disk', 'pe-7s-ribbon', 'pe-7s-repeat', 'pe-7s-refresh', 'pe-7s-add-user',
'pe-7s-refresh-cloud', 'pe-7s-paperclip', 'pe-7s-radio', 'pe-7s-note2', 'pe-7s-print',
'pe-7s-network', 'pe-7s-prev', 'pe-7s-mute', 'pe-7s-power', 'pe-7s-medal', 'pe-7s-portfolio',
'pe-7s-like2', 'pe-7s-plus', 'pe-7s-left-arrow', 'pe-7s-play', 'pe-7s-key', 'pe-7s-plane',
'pe-7s-joy', 'pe-7s-photo-gallery', 'pe-7s-pin', 'pe-7s-phone', 'pe-7s-plug', 'pe-7s-pen',
'pe-7s-right-arrow', 'pe-7s-paper-plane', 'pe-7s-delete-user', 'pe-7s-paint', 'pe-7s-bottom-arrow',
'pe-7s-notebook', 'pe-7s-note', 'pe-7s-next', 'pe-7s-news-paper', 'pe-7s-musiclist',
'pe-7s-music', 'pe-7s-mouse', 'pe-7s-more', 'pe-7s-moon', 'pe-7s-monitor', 'pe-7s-micro',
'pe-7s-menu', 'pe-7s-map', 'pe-7s-map-marker', 'pe-7s-mail', 'pe-7s-mail-open',
'pe-7s-mail-open-file', 'pe-7s-magnet', 'pe-7s-loop', 'pe-7s-look', 'pe-7s-lock', 'pe-7s-lintern',
'pe-7s-link', 'pe-7s-like', 'pe-7s-light', 'pe-7s-less', 'pe-7s-keypad', 'pe-7s-junk',
'pe-7s-info', 'pe-7s-home', 'pe-7s-help2', 'pe-7s-help1', 'pe-7s-graph3', 'pe-7s-graph2',
'pe-7s-graph1', 'pe-7s-graph', 'pe-7s-global', 'pe-7s-gleam', 'pe-7s-glasses', 'pe-7s-gift',
'pe-7s-folder', 'pe-7s-flag', 'pe-7s-filter', 'pe-7s-file', 'pe-7s-expand1', 'pe-7s-exapnd2',
'pe-7s-edit', 'pe-7s-drop', 'pe-7s-drawer', 'pe-7s-download', 'pe-7s-display2', 'pe-7s-display1',
'pe-7s-diskette', 'pe-7s-date', 'pe-7s-cup', 'pe-7s-culture', 'pe-7s-crop', 'pe-7s-credit',
'pe-7s-copy-file', 'pe-7s-config', 'pe-7s-compass', 'pe-7s-comment', 'pe-7s-coffee', 'pe-7s-cloud',
'pe-7s-clock', 'pe-7s-check', 'pe-7s-chat', 'pe-7s-cart', 'pe-7s-camera', 'pe-7s-call',
'pe-7s-calculator', 'pe-7s-browser', 'pe-7s-box2', 'pe-7s-box1', 'pe-7s-bookmarks', 'pe-7s-bicycle',
'pe-7s-bell', 'pe-7s-battery', 'pe-7s-ball', 'pe-7s-back', 'pe-7s-attention', 'pe-7s-anchor',
'pe-7s-albums', 'pe-7s-alarm', 'pe-7s-airplay'
)
);
}
add_action('admin_enqueue_scripts', 'elessi_admin_scripts');
function elessi_admin_scripts() {
$prefix = elessi_prefix_theme();
wp_enqueue_script('wp-color-picker');
wp_enqueue_script($prefix . '-admin-script', ELESSI_THEME_URI . '/admin/assets/js/nasa-script.js', array(), '6.0.5.1', true);
$inline_js = 'var ajaxurl="' . esc_url(admin_url('admin-ajax.php')) . '";';
$inline_js .= 'var ns_admin_url_search="' . esc_url(admin_url('admin-ajax.php?action=woocommerce_json_search_products')) . '";';
$inline_js .= 'var ns_admin_search_nonce="' . wp_create_nonce('search-products') . '";';
wp_add_inline_script($prefix . '-admin-script', $inline_js, 'before');
}
/**
* Enqueue styles admin
*/
add_action('admin_enqueue_scripts', 'elessi_admin_enqueue_style');
function elessi_admin_enqueue_style() {
$prefix = elessi_prefix_theme();
wp_enqueue_style('wp-color-picker');
wp_enqueue_style($prefix . '-admin-style', ELESSI_THEME_URI . '/admin/assets/css/nasa-style.css', array(), '6.3.1');
$admin_inline_css = elessi_admin_inline_css();
if ($admin_inline_css) {
wp_add_inline_style($prefix . '-admin-style', $admin_inline_css);
}
}
/**
* add Select 2
*/
add_action('admin_enqueue_scripts', 'elessi_admin_select_2');
function elessi_admin_select_2() {
if (!isset($_REQUEST['page']) || $_REQUEST['page'] !== 'nasa-theme-options') {
return;
}
$prefix = elessi_prefix_theme();
wp_enqueue_style($prefix . '-admin-select2', ELESSI_THEME_URI . '/admin/assets/css/select2.css');
wp_enqueue_script($prefix . '-admin-select2', ELESSI_THEME_URI . '/admin/assets/js/select2/select2.full.min.js', array('jquery'), null, true);
wp_enqueue_script($prefix . '-admin-select2-init', ELESSI_THEME_URI . '/admin/assets/js/nasa-select2.js', array('jquery'), null, true);
}
// **********************************************************************//
// ! Add Font Awesome, Font Pe7s, Font Elegant
// **********************************************************************//
add_action('admin_enqueue_scripts', 'elessi_add_font_custom_admin');
function elessi_add_font_custom_admin() {
$prefix = elessi_prefix_theme();
wp_register_style($prefix . '-admin-font-awesome-style', ELESSI_THEME_URI . '/assets/font-awesome-4.7.0/css/font-awesome.min.css');
wp_enqueue_style($prefix . '-admin-font-awesome-style');
wp_register_style($prefix . '-admin-font-pe7s-style', ELESSI_THEME_URI . '/assets/font-pe-icon-7-stroke/css/pe-icon-7-stroke.css');
wp_enqueue_style($prefix . '-admin-font-pe7s-style');
wp_register_style($prefix . '-admin-font-nasa-style', ELESSI_THEME_URI . '/assets/font-nasa/nasa-font.css');
wp_enqueue_style($prefix . '-admin-font-nasa-style');
}
add_action('wp_ajax_nasa_list_fonts_admin', 'elessi_list_fonts_admin');
function elessi_list_fonts_admin() {
global $nasa_list_icons;
?>
<div class="nasa-list-icons-select" data-fill="<?php echo esc_attr($_REQUEST['fill']); ?>">
<input name="search-icons" value="" class="nasa-input-search-icon" placeholder="<?php echo esc_attr__('Search icon', 'elessi-theme'); ?>" />
<?php do_action('nasa_before_list_icons_admin'); ?>
<h3><?php echo esc_html__('Font Nasa icons', 'elessi-theme'); ?></h3>
<?php foreach ($nasa_list_icons['nasa'] as $font) : ?>
<a class="nasa-fill-icon nasa-font-icon nasa-font-icons" href="javascript:void(0);" data-val="nasa-icon <?php echo esc_attr($font); ?>" data-text="nasa-icon <?php echo esc_attr($font); ?>"><i class="<?php echo esc_attr($font); ?>"></i></a>
<?php endforeach; ?>
<hr />
<h3><?php echo esc_html__('Fontawesome icons', 'elessi-theme'); ?></h3>
<?php foreach ($nasa_list_icons['fa'] as $font) : ?>
<a class="nasa-fill-icon nasa-fa-icon nasa-font-icons" href="javascript:void(0);" data-val="fa <?php echo esc_attr($font); ?>" data-text="<?php echo esc_attr($font); ?>"><i class="fa <?php echo esc_attr($font); ?>"></i></a>
<?php endforeach; ?>
<hr />
<h3><?php echo esc_html__('Pe7s icons', 'elessi-theme'); ?></h3>
<?php foreach ($nasa_list_icons['pe'] as $font) : ?>
<a class="nasa-fill-icon nasa-pe7-icon nasa-font-icons" href="javascript:void(0);" data-val="pe7-icon <?php echo esc_attr($font); ?>" data-text="<?php echo esc_attr($font); ?>"><i class="<?php echo esc_attr($font); ?>"></i></a>
<?php endforeach; ?>
<?php do_action('nasa_after_list_icons_admin'); ?>
</div>
<?php
die();
}
/**
* Admin inline style
*/
function elessi_admin_inline_css() {
global $nasa_opt;
$css = '';
if (isset($nasa_opt['white_lbl']) && $nasa_opt['white_lbl']) {
if (isset($nasa_opt['white_lbl_name']) && $nasa_opt['white_lbl_name']) {
$css .= '.theme-name#elessi-theme-child-name, .theme-name#elessi-theme-name {display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex; text-indent: -9999px;}';
$css .= '.theme-name#elessi-theme-child-name:after, .theme-name#elessi-theme-name:after {content: "' . esc_html($nasa_opt['white_lbl_name']) . '"; text-indent: 0; margin: 0 5px;}';
$css .= '.theme-name#elessi-theme-child-name span, .theme-name#elessi-theme-name span {text-indent: 0;}';
}
}
return $css;
}
/**
* Get Template Compare
* @return type
*/
function elessi_get_pages_temp_compare() {
$pages_compare = array('' => esc_html__('Select page view compare', 'elessi-theme'));
$pages = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => 'page-view-compare.php'
));
if ($pages) {
foreach ($pages as $page) {
$pages_compare[$page->ID . '-page'] = $page->post_title;
}
}
return $pages_compare;
}
function elessi_get_pages_temp_portfolio() {
$portfolio = array('' => esc_html__('Select page view Portfolio', 'elessi-theme'));
$pages = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => 'portfolio.php'
));
if ($pages) {
foreach ($pages as $page) {
$portfolio[$page->ID . '-page'] = $page->post_title;
}
}
return $portfolio;
}
/**
* Get custom fonts
*/
function elessi_get_custom_fonts() {
return function_exists('nasa_get_custom_fonts') ? nasa_get_custom_fonts() : array();
}
/**
* Add new custom font
*/
add_action('init', 'elessi_add_new_custom_font', 1);
function elessi_add_new_custom_font() {
$result = array('success' => false);
if (!current_user_can('manage_options')) {
$result['mess'] = esc_html__("Access denied.", 'elessi-theme');
return $result;
}
if (!isset($_FILES['zip_packet_font'])) {
$result['mess'] = esc_html__("Require ZIP file.", 'elessi-theme');
return $result;
}
header('X-XSS-Protection:0');
$filename = $_FILES["zip_packet_font"]["name"];
$type = $_FILES["zip_packet_font"]["type"];
$accepted_types = array('application/zip', 'application/x-zip-compressed', 'multipart/x-zip', 'application/x-compressed');
if (!in_array($type, $accepted_types)) {
$result['mess'] = esc_html__("The file you are trying to upload is not a .zip file. Please try again.", 'elessi-theme');
return $result;
}
$name = explode(".", $filename);
if (strtolower($name[1]) != 'zip') {
$result['mess'] = esc_html__("The file you are trying to upload is not a .zip file. Please try again.", 'elessi-theme');
return $result;
}
global $wp_filesystem, $nasa_upload_dir;
if (!isset($nasa_upload_dir)) {
$nasa_upload_dir = wp_upload_dir();
$GLOBALS['nasa_upload_dir'] = $nasa_upload_dir;
}
// Initialize the WP filesystem
if (empty($wp_filesystem)) {
require_once ABSPATH . '/wp-admin/includes/file.php';
WP_Filesystem();
}
add_filter('upload_dir', 'elessi_base_upload_dir_zip');
$uploadZip = wp_handle_upload($_FILES['zip_packet_font']);
remove_filter('upload_dir', 'elessi_base_upload_dir_zip');
if ($uploadZip) {
$checkDir = $nasa_upload_dir['basedir'] . '/nasa-check-custom-fonts';
if (!$wp_filesystem->is_dir($checkDir)) {
if (!wp_mkdir_p($checkDir)) {
$result['mess'] = "The dir: " . $checkDir . " don't accept create. Please try again.";
return $result;
}
}
$unzip_test = unzip_file($uploadZip["file"], $checkDir);
if ($unzip_test) {
$list_unzipfile = $wp_filesystem->dirlist($checkDir);
$hasDir = false;
foreach ($list_unzipfile as $key => $value) {
if (isset($value['type']) && $value['type'] === 'd' && $key == $name[0]) {
$hasDir = true;
break;
}
}
$font_dir = $nasa_upload_dir['basedir'] . '/nasa-custom-fonts';
if (!$wp_filesystem->is_dir($font_dir)) {
wp_mkdir_p($font_dir);
}
if ($wp_filesystem->is_dir($font_dir . '/' . $name[0])) {
$wp_filesystem->rmdir($font_dir . '/' . $name[0], true);
}
if (!$hasDir) {
$font_dir = $font_dir . '/' . $name[0];
wp_mkdir_p($font_dir);
}
// Install font
unzip_file($uploadZip["file"], $font_dir);
// Remove dir, files tmp
$wp_filesystem->rmdir($checkDir, true);
$wp_filesystem->delete($uploadZip["file"]);
$result['success'] = true;
$result['mess'] = esc_html__("Upload new custom font success!", 'elessi-theme');
}
}
return $result;
}
/**
* Override the default upload path.
*
* @param array $dir
* @return array
*/
function elessi_base_upload_dir_zip($dir) {
return array(
'path' => $dir['basedir'] . '/nasatheme-tmp',
'url' => $dir['baseurl'] . '/nasatheme-tmp',
'subdir' => '/nasatheme-zip',
) + $dir;
}
/* Remove Tabs - Accordions elements */
add_action('vc_build_admin_page', 'elessi_vc_remove_elements_default', 11);
function elessi_vc_remove_elements_default() {
// remove params tabs
vc_remove_param('vc_tta_tabs', 'css_animation');
vc_remove_param('vc_tta_tabs', 'shape');
vc_remove_param('vc_tta_tabs', 'style');
vc_remove_param('vc_tta_tabs', 'color');
vc_remove_param('vc_tta_tabs', 'autoplay');
vc_remove_param('vc_tta_tabs', 'active_section');
vc_remove_param('vc_tta_tabs', 'no_fill_content_area');
vc_remove_param('vc_tta_tabs', 'spacing');
vc_remove_param('vc_tta_tabs', 'gap');
vc_remove_param('vc_tta_tabs', 'tab_position');
vc_remove_param('vc_tta_tabs', 'pagination_style');
vc_remove_param('vc_tta_tabs', 'pagination_color');
vc_remove_param('vc_tta_tabs', 'el_id');
// remove params accordions
vc_remove_param('vc_tta_accordion', 'css_animation');
vc_remove_param('vc_tta_accordion', 'style');
vc_remove_param('vc_tta_accordion', 'shape');
vc_remove_param('vc_tta_accordion', 'color');
vc_remove_param('vc_tta_accordion', 'c_align');
vc_remove_param('vc_tta_accordion', 'no_fill');
vc_remove_param('vc_tta_accordion', 'spacing');
vc_remove_param('vc_tta_accordion', 'gap');
vc_remove_param('vc_tta_accordion', 'autoplay');
vc_remove_param('vc_tta_accordion', 'c_position');
vc_remove_param('vc_tta_accordion', 'collapsible_all');
vc_remove_param('vc_tta_accordion', 'c_icon');
vc_remove_param('vc_tta_accordion', 'active_section');
vc_remove_param('vc_tta_accordion', 'el_id');
vc_remove_element("vc_tabs");
vc_remove_element("vc_accordion");
vc_remove_element("vc_carousel");
vc_remove_element("vc_images_carousel");
vc_remove_element("vc_tour");
vc_remove_element("vc_cta");
vc_remove_element("vc_tta_tour");
vc_remove_element("vc_tta_pageable");
vc_remove_element("vc_cta_button");
vc_remove_element("vc_cta_button2");
vc_remove_element("vc_button");
vc_remove_element("vc_button2");
vc_remove_element("vc_wp_search");
vc_remove_element("vc_wp_meta");
vc_remove_element("vc_wp_recentcomments");
vc_remove_element("vc_wp_calendar");
vc_remove_element("vc_wp_posts");
vc_remove_element("vc_wp_links");
vc_remove_element("vc_wp_archives");
vc_remove_element("vc_wp_rss");
vc_remove_param("vc_row", "columns_placement");
vc_remove_param("vc_row", "full_height");
vc_remove_param("vc_row", "full_width");
vc_remove_param("vc_row", "rtl_reverse");
vc_remove_param("vc_row", "gap");
}