{type} plugin<\/a>.", 'cleanora')
);
wp_enqueue_script('cmsmasters-hover-slider', get_template_directory_uri() . '/js/cmsmasters-hover-slider.min.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('debounced-resize', get_template_directory_uri() . '/js/debounced-resize.min.js', array('jquery'), '1.0.0', false);
wp_enqueue_script('easing', get_template_directory_uri() . '/js/easing.min.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('easy-pie-chart', get_template_directory_uri() . '/js/easy-pie-chart.min.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('modernizr', get_template_directory_uri() . '/js/modernizr.min.js', array('jquery'), '1.0.0', false);
wp_enqueue_script('mousewheel', get_template_directory_uri() . '/js/mousewheel.min.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('owlcarousel', get_template_directory_uri() . '/js/owlcarousel.min.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('imagesloaded');
wp_enqueue_script('request-animation-frame', get_template_directory_uri() . '/js/request-animation-frame.min.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('respond', get_template_directory_uri() . '/js/respond.min.js', array('jquery'), '1.0.0', false);
wp_enqueue_script('scrollspy', get_template_directory_uri() . '/js/scrollspy.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('scroll-to', get_template_directory_uri() . '/js/scroll-to.min.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('stellar', get_template_directory_uri() . '/js/stellar.min.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('waypoints', get_template_directory_uri() . '/js/waypoints.min.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('iLightBox', get_template_directory_uri() . '/js/jquery.iLightBox.min.js', array('jquery'), '2.2.0', false);
wp_enqueue_script('cleanora-script', get_template_directory_uri() . '/js/jquery.script.js', array('jquery'), '1.0.0', true);
wp_localize_script('cleanora-script', 'cmsmasters_script', $cmsmasters_localize_array);
wp_enqueue_script('cleanora-theme-script', get_template_directory_uri() . '/theme-framework/theme-style' . CMSMASTERS_THEME_STYLE . '/js/jquery.theme-script.js', array('jquery', 'cleanora-script'), '1.0.0', true);
wp_enqueue_script('twitter', get_template_directory_uri() . '/js/jquery.tweet.min.js', array('jquery'), '1.3.1', true);
wp_enqueue_script('smooth-sticky', get_template_directory_uri() . '/js/smooth-sticky.min.js', array('jquery'), '1.0.2', true);
wp_register_script('isotope', get_template_directory_uri() . '/js/jquery.isotope.min.js', array('jquery'), '1.5.19', true);
wp_register_script('isotopeMode', get_template_directory_uri() . '/theme-framework/theme-style' . CMSMASTERS_THEME_STYLE . '/js/jquery.isotope.mode.js', array('jquery', 'isotope'), '1.0.0', true);
wp_localize_script('isotopeMode', 'cmsmasters_isotope_mode', $cmsmasters_localize_array);
if (
is_a($post, 'WP_Post') &&
strpos($post->post_content, '[cmsmasters_portfolio ')
) {
wp_enqueue_script('isotope');
wp_enqueue_script('isotopeMode');
}
if (
is_a($post, 'WP_Post') &&
strpos($post->post_content, '[/cmsmasters_google_map_markers]') &&
isset($cmsmasters_option['cleanora' . '_gmap_api_key']) &&
$cmsmasters_option['cleanora' . '_gmap_api_key'] != ''
) {
wp_enqueue_script('gMapAPI', '//maps.googleapis.com/maps/api/js?key=' . $cmsmasters_option['cleanora' . '_gmap_api_key'], array('jquery'), '1.0.0', true);
wp_enqueue_script('gMap', get_template_directory_uri() . '/js/jquery.gMap.min.js', array('jquery', 'gMapAPI'), '3.2.0', true);
}
// Comment Reply enqueue
if (is_singular() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
// Add Custom JavaScript
$cmsmasters_custom_js = stripslashes($cmsmasters_option['cleanora' . '_custom_js']);
wp_add_inline_script('cleanora-script', $cmsmasters_custom_js);
if (CMSMASTERS_DEVELOPER_MODE) {
cleanora_regenerate_styles();
}
}
add_action('wp_enqueue_scripts', 'cleanora_register_js_scripts');
/* Fonts Generate Function */
if (!function_exists('cleanora_theme_fonts_generate')) {
function cleanora_theme_fonts_generate() {
$cmsmasters_option = cleanora_get_global_options();
global $cmsmasters_font_keys;
$cmsmasters_font_keys = array();
$fonts = array();
$font_fields = array(
'content',
'link',
'nav_title',
'nav_dropdown',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'button',
'small',
'input',
'quote'
);
$fonts_list = cmsmasters_fonts_list();
foreach ($font_fields as $font_field) {
$font_option = 'cleanora' . '_' . $font_field . '_font_google_font';
if (
isset($cmsmasters_option[$font_option]) &&
$cmsmasters_option[$font_option] != ''
) {
if (
array_key_exists($cmsmasters_option[$font_option], $fonts_list['web']) ||
array_key_exists($cmsmasters_option[$font_option], $fonts_list['local'])
) {
$fonts[] = $cmsmasters_option[$font_option];
}
}
}
$local_fonts = get_post_meta(get_the_ID(), 'cmsmasters_shortcodes_local_fonts', true);
if ($local_fonts != '') {
$local_fonts = explode('|', substr($local_fonts, 0, -1));
$fonts = array_merge($fonts, $local_fonts);
}
if (!empty($fonts)) {
$fonts = array_unique($fonts);
foreach ($fonts as $font) {
$cmsmasters_font_keys[] = $font;
}
cmsmasters_theme_font($fonts);
}
}
}
add_action('wp_enqueue_scripts', 'cleanora_theme_fonts_generate');
add_action('enqueue_block_editor_assets', 'cleanora_theme_fonts_generate');
/* Fonts Enqueue Function */
if (!function_exists('cmsmasters_theme_font')) {
function cmsmasters_theme_font($fonts, $font_name = '') {
global $cmsmasters_font_keys;
if (!isset($cmsmasters_font_keys)) {
return;
}
if (
$font_name == '' ||
($font_name != '' && is_array($cmsmasters_font_keys) && !in_array($font_name, $cmsmasters_font_keys))
) {
$local_fonts = '';
$web_fonts = '';
if (is_array($fonts)) {
foreach($fonts as $font) {
$check_font = explode(':', $font);
if (is_numeric($check_font[0])) {
$local_fonts .= get_post_meta($check_font[0], 'cmsmasters_font_face', true);
} else {
$web_fonts .= $font . '|';
}
}
} else {
$check_font = explode(':', $fonts);
if (is_numeric($check_font[0])) {
$local_fonts .= get_post_meta($check_font[0], 'cmsmasters_font_face', true);
} else {
$web_fonts .= $fonts . '|';
}
}
if ($local_fonts != '' && $font_name == '') {
wp_register_style( 'theme_fonts_generate', false );
wp_enqueue_style( 'theme_fonts_generate' );
wp_add_inline_style('theme_fonts_generate', $local_fonts);
}
if ($web_fonts != '') {
$web_fonts = str_replace('+', ' ', substr($web_fonts, 0, -1));
if ($font_name != '') {
$font_name = explode(':', $font_name);
$web_font_id = '-' . str_replace('+', '-', strtolower($font_name[0]));
} else {
$web_font_id = '';
}
$web_font_url = add_query_arg('family', urlencode($web_fonts), '//fonts.googleapis.com/css');
$cmsmasters_option = cleanora_get_global_options();
if (
isset($cmsmasters_option['cleanora' . '_google_web_fonts_subset']) &&
is_array($cmsmasters_option['cleanora' . '_google_web_fonts_subset'])
) {
$web_fonts_subset_array = $cmsmasters_option['cleanora' . '_google_web_fonts_subset'];
} else {
$web_fonts_subset_array = array();
}
$web_fonts_subset = '';
foreach ($web_fonts_subset_array as $subset) {
$web_fonts_subset .= $subset . ',';
}
if ($web_fonts_subset != '') {
$web_font_url = $web_font_url . '&subset=' . substr($web_fonts_subset, 0, -1);
}
wp_enqueue_style("google-fonts{$web_font_id}", $web_font_url);
}
}
}
}
/* Font Family Substing Generate Function */
function cleanora_get_google_font($font) {
if ($font != '') {
if (strpos($font, ':')) {
$font_array = explode(':', $font);
if (is_numeric($font_array[0])) {
$font_out = "'" . str_replace('+', ' ', $font_array[1]) . "', ";
} else {
$font_out = "'" . str_replace('+', ' ', $font_array[0]) . "', ";
}
} elseif (strpos($font, '&')) {
$font_array = explode('&', $font);
$font_out = "'" . str_replace('+', ' ', $font_array[0]) . "', ";
} else {
$font_out = "'" . str_replace('+', ' ', $font) . "', ";
}
} else {
$font_out = '';
}
return $font_out;
}
/* Register Default Theme Sidebars */
function cleanora_the_widgets_init() {
if (!function_exists('register_sidebars')) {
return;
}
register_sidebar(
array(
'name' => esc_html__('Sidebar', 'cleanora'),
'id' => 'sidebar_default',
'description' => esc_html__('Widgets in this area will be shown in all left and right sidebars till you don\'t use custom sidebar. To display the sidebar please choose the Right or Left Layout Type in the Theme Settings - General - Content options.', 'cleanora'),
'before_widget' => '',
'before_title' => ''
)
);
register_sidebar(
array(
'name' => esc_html__('Bottom Sidebar', 'cleanora'),
'id' => 'sidebar_bottom',
'description' => esc_html__('Widgets in this area will be shown at the bottom of middle block below the content and middle sidebar, but above footer. To display Bottom Sidebar please enable it in the Theme Settings - General - Content - Bottom Sidebar Visibility by Default. You can also display it on concrete page in the Page Layout options.', 'cleanora'),
'before_widget' => '',
'before_title' => ''
)
);
register_sidebar(
array(
'name' => esc_html__('Archive Sidebar', 'cleanora'),
'id' => 'sidebar_archive',
'description' => esc_html__('Widgets in this area will be shown in all left and right sidebars on archives pages. To display the sidebar please choose the Right or Left Layout Type in the Theme Settings - General - Content options.', 'cleanora'),
'before_widget' => '',
'before_title' => ''
)
);
register_sidebar(
array(
'name' => esc_html__('Search Sidebar', 'cleanora'),
'id' => 'sidebar_search',
'description' => esc_html__('Widgets in this area will be shown in left or right sidebar on search page. To display the sidebar please choose the Right or Left Layout Type in the Theme Settings - General - Content options.', 'cleanora'),
'before_widget' => '',
'before_title' => ''
)
);
$cmsmasters_option = cleanora_get_global_options();
if (isset($cmsmasters_option['cleanora' . '_sidebar']) && sizeof($cmsmasters_option['cleanora' . '_sidebar']) > 0) {
foreach ($cmsmasters_option['cleanora' . '_sidebar'] as $sidebar) {
register_sidebar(array(
'name' => $sidebar,
'id' => generateSlug($sidebar, 45),
'description' => esc_html__('Custom sidebar created with cmsmasters admin panel.', 'cleanora'),
'before_widget' => '',
'before_title' => ''
) );
}
}
}
add_action('widgets_init', 'cleanora_the_widgets_init');
/* Register Showing Home Page on Default WordPress Pages Menu */
function cleanora_page_menu_args($args) {
$args['show_home'] = true;
return $args;
}
add_filter('wp_page_menu_args', 'cleanora_page_menu_args');
/* Register Post Formats, Feed Links, Post Thumbnails and Set Image Sizes*/
if (function_exists('add_theme_support')) {
add_theme_support('post-formats', array(
'image',
'gallery',
'video',
'audio'
));
function cleanora_add_post_type_support_project($post) {
$screen = get_current_screen();
$post_type = $screen->post_type;
if ($post_type == 'project') {
add_theme_support('post-formats', array(
'gallery',
'video'
));
}
}
add_action('load-post.php', 'cleanora_add_post_type_support_project');
add_action('load-post-new.php', 'cleanora_add_post_type_support_project');
add_theme_support('post-thumbnails');
add_theme_support('title-tag');
add_theme_support('automatic-feed-links');
add_theme_support('html5', array(
'comment-list',
'comment-form',
'search-form',
'gallery',
'caption'
));
$thumbnail_list = cmsmasters_image_thumbnail_list();
if (!isset($content_width)) {
$content_width = $thumbnail_list['cmsmasters-full-thumb']['width'];
}
set_post_thumbnail_size($thumbnail_list['post-thumbnail']['width'], $thumbnail_list['post-thumbnail']['height'], $thumbnail_list['post-thumbnail']['crop']);
if (function_exists('add_image_size')) {
foreach ($thumbnail_list as $key => $image_size) {
if ($key != 'post-thumbnail') {
add_image_size($key, $image_size['width'], $image_size['height'], (isset($image_size['crop']) ? isset($image_size['crop']) : false));
}
}
}
add_filter('image_size_names_choose', 'cleanora_select_image_size');
}
/* Add Image Thumbnails Size to the List */
function cleanora_select_image_size($sizes) {
$thumbnail_list = cmsmasters_image_thumbnail_list();
$new_sizes = array();
foreach ($thumbnail_list as $key => $image_size) {
if (isset($image_size['title'])) {
$new_sizes[$key] = $image_size['title'];
}
}
$sizes = array_merge($sizes, $new_sizes);
return $sizes;
}
/* Register Visual Content Editor CSS Stylesheet */
function cleanora_add_editor_styles() {
add_editor_style('framework/admin/inc/css/custom-editor-style.css');
add_editor_style('//fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext');
}
$cmsmasters_wp_version = get_bloginfo('version');
if (version_compare($cmsmasters_wp_version, '5', '<') && !function_exists('is_gutenberg_page')) {
add_action('init', 'cleanora_add_editor_styles');
}
/* Register Removing 'More Text' From Excerpt */
function cleanora_new_excerpt_more($more) {
return '...';
}
add_filter('excerpt_more', 'cleanora_new_excerpt_more');
/* Register Custom Excerpt Length Function */
class Cmsmasters_Excerpt {
var $length = 55;
function __construct($length) {
$this->length = $length;
add_filter('excerpt_length', array($this, 'new_length'), 999);
}
public function new_length() {
return $this->length;
}
function output() {
the_excerpt();
}
function return_out() {
return get_the_excerpt();
}
}
function cleanora_excerpt($length = 55, $show = true) {
if ($show) {
$result = new Cmsmasters_Excerpt($length);
$result->output();
} else {
$result = new Cmsmasters_Excerpt($length);
return $result->return_out();
}
}
/* Register Post Types in Author & Date Archive */
function cleanora_post_author_archive($query) {
$post_types = apply_filters('post_types_archive_filter', array(
'post',
'project'
));
if (isset($query) && !is_admin() && ($query->is_author || $query->is_date)) {
$query->set('post_type', $post_types);
}
return $query;
}
add_action('pre_get_posts', 'cleanora_post_author_archive');
/* Check Row p Wrapper */
function cleanora_rowcheck($content) {
$content = str_replace('[/cmsmasters_row]', '[/cmsmasters_row]', $content);
$content = str_replace('[cmsmasters_row', '[cmsmasters_row', $content);
return $content;
}
/* Generate Page Shortcodes CSS */
function cleanora_generate_front_css() {
$cmsmasters_page_id = cleanora_get_singular_id();
$shortcodes_css = get_post_meta($cmsmasters_page_id, 'cmsmasters_shortcodes_custom_css', true);
wp_add_inline_style('cleanora-retina', $shortcodes_css);
}
add_action('wp_enqueue_scripts', 'cleanora_generate_front_css');
/* Register Removing 'p' Tags that Wrap Divs */
function cmsmasters_divpdel($content) {
$block = '(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|pre|section|table|tfoot|ul|video|style|iframe)';
$content = preg_replace('/^
<\/p>\n/', '', $content);
$content = preg_replace('/^<\/p>/', '', $content);
$content = preg_replace('/
$/', '', $content);
$content = preg_replace('/<\/' . $block . '>(\s*)<\/p>/', '\1>', $content);
$content = preg_replace('/<' . $block . '([^>]+)>(\s*)<\/p>/', '<\1\2>', $content);
$content = preg_replace('/
\s+<' . $block . '([^>]+)>/', '<\1\2>', $content);
$content = preg_replace('/
\s+<\/' . $block . '>/', '\1>', $content);
$content = preg_replace('/
<' . $block . '/', '<\1', $content);
$content = preg_replace('/(]*>[^<]+<\/a>\s*)<\/p>/', '\1', $content);
return $content;
}
/* Generate Slug Function */
function generateSlug($phrase, $maxLength) {
$result = strtolower($phrase);
$result = preg_replace("/[^a-z0-9\s-]/", "", $result);
$result = trim(preg_replace("/[\s-]+/", " ", $result));
$result = trim(substr($result, 0, $maxLength));
$result = preg_replace("/\s/", "-", $result);
return $result;
}
/* Add Icons List to Database */
function cleanora_add_global_icons() {
global $wp_filesystem;
if (empty($wp_filesystem)) {
require_once(ABSPATH . '/wp-admin/includes/file.php');
WP_Filesystem();
}
if ($wp_filesystem) {
$icons = $wp_filesystem->get_contents(CMSMASTERS_ADMIN . '/inc/fonts/config.json');
$icons_custom = $wp_filesystem->get_contents(get_template_directory() . '/theme-vars/theme-style' . CMSMASTERS_THEME_STYLE . '/admin/fonts/config-custom.json');
$arr = json_decode($icons, true);
$arr_custom = json_decode($icons_custom, true);
update_option('cmsmasters_' . 'cleanora' . '_icons', serialize($arr));
update_option('cmsmasters_' . 'cleanora' . '_icons_custom', serialize($arr_custom));
}
}
/* Generate Icons List */
function cmsmasters_composer_icons() {
global $pagenow;
$screen = get_current_screen();
if (
$pagenow == 'post.php' ||
$pagenow == 'post-new.php' ||
$pagenow == 'widgets.php' ||
$pagenow == 'term.php' ||
$pagenow == 'edit-tags.php' ||
$pagenow == 'nav-menus.php' ||
str_replace('cmsmasters-settings-element', '', $screen->id) != $screen->id
) {
$icons = get_option('cmsmasters_' . 'cleanora' . '_icons');
$icons_custom = get_option('cmsmasters_' . 'cleanora' . '_icons_custom');
$arr = unserialize($icons);
$arr_custom = unserialize($icons_custom);
$new_icons = '';
$out = "\n" . 'function cmsmasters_composer_icons() { ' . "\n\t\t" .
'return { ' . "\n\t\t\t";
if (!empty($arr_custom)) {
foreach ($arr_custom['glyphs'] as $item) {
if ($new_icons != $item['src']) {
if ($new_icons != '') {
$out = substr($out, 0, -4);
$out .= ' ' . "\n\t\t\t" . '}, ' . "\n\t\t\t";
}
$out .= "'" . $item['src'] . "' : { \n\t";
$new_icons = $item['src'];
}
$out .= "\t\t\t'" . $item['css'] . "' : '" . $arr_custom['css_prefix_text'] . $item['css'] . "', \n\t";
}
}
if (!empty($arr)) {
foreach ($arr['glyphs'] as $item) {
if ($new_icons != $item['src']) {
if ($new_icons != '') {
$out = substr($out, 0, -4);
$out .= ' ' . "\n\t\t\t" . '}, ' . "\n\t\t\t";
}
$out .= "'" . $item['src'] . "' : { \n\t";
$new_icons = $item['src'];
}
$out .= "\t\t\t'" . $item['css'] . "' : '" . $arr['css_prefix_text'] . $item['css'] . "', \n\t";
}
}
$out = substr($out, 0, -4);
$out .= ' ' . "\n\t\t\t" . '} ' . "\n\t\t" .
'}; ' . "\n\t" .
'} ' . "\n";
if (wp_script_is('cmsmasters_composer_shortcodes_js', 'queue')) {
wp_add_inline_script('cmsmasters_composer_shortcodes_js', $out, 'before');
} elseif (wp_script_is('cleanora-lightbox-js', 'queue')) {
wp_add_inline_script('cleanora-lightbox-js', $out, 'before');
}
}
}
/* Generate CSS Rules */
function cmsmasters_color_css($rule, $color) {
return $rule . ':' . $color . ';';
}
/* Generate RGB from HEX/RGBA Color */
function cmsmasters_color2rgb($color) {
return (preg_match('/^#[a-f0-9]{3}$/i', $color) || preg_match('/^#[a-f0-9]{6}$/i', $color)) ? cmsmasters_hex2rgb($color) : cmsmasters_rgba2rgb($color);
}
/* Generate RGB Color from HEX */
function cmsmasters_hex2rgb($color) {
$new_color = substr($color, 1);
$color_len = strlen($new_color);
$result = '';
if ($color_len == 6) {
$rgb = str_split($new_color, 2);
} elseif ($color_len == 3) {
$rgb = str_split($new_color, 1);
}
foreach ($rgb as $number) {
$result .= hexdec((strlen($number) == 2) ? $number : $number . $number) . ', ';
}
$rgb_color = substr($result, 0, -2);
return $rgb_color;
}
/* Generate HEX Color from RGB */
function cmsmasters_rgb2hex($rgb) {
$newRGBs = explode(',', $rgb);
$r = trim($newRGBs[0]);
$g = trim($newRGBs[1]);
$b = trim($newRGBs[2]);
$hex_color = '#' . dechex($r) . dechex($g) . dechex($b);
return $hex_color;
}
/* Generate RGB Color from RGBA */
function cmsmasters_rgba2rgb($rgba) {
$newRGBAs = explode(',', $rgba);
$r = trim(substr($newRGBAs[0], 5));
$g = trim($newRGBAs[1]);
$b = trim($newRGBAs[2]);
$rgb_color = "{$r}, {$g}, {$b}";
return $rgb_color;
}
/* Generate HSL Color from RGB */
function cmsmasters_rgb2hsl($rgb) {
$newRGBs = explode(',', $rgb);
$r = trim($newRGBs[0]);
$g = trim($newRGBs[1]);
$b = trim($newRGBs[2]);
$oldR = $r;
$oldG = $g;
$oldB = $b;
$r /= 255;
$g /= 255;
$b /= 255;
$max = max($r, $g, $b);
$min = min($r, $g, $b);
$h;
$s;
$l = ($max + $min) / 2;
$d = $max - $min;
if ($d == 0) {
$h = $s = 0;
} else {
$s = $d / (1 - abs(2 * $l - 1));
switch ($max) {
case $r:
$h = 60 * fmod((($g - $b) / $d), 6);
if ($b > $g) {
$h += 360;
}
break;
case $g:
$h = 60 * (($b - $r) / $d + 2);
break;
case $b:
$h = 60 * (($r - $g) / $d + 4);
break;
}
}
return array(round($h, 2), round($s, 2), round($l, 2));
}
/* Generate RGB Color from HSL */
function cmsmasters_hsl2rgb($h, $s, $l) {
$r;
$g;
$b;
$c = (1 - abs(2 * $l - 1)) * $s;
$x = $c * (1 - abs(fmod(($h / 60), 2) - 1));
$m = $l - ($c / 2);
if ($h < 60) {
$r = $c;
$g = $x;
$b = 0;
} else if ($h < 120) {
$r = $x;
$g = $c;
$b = 0;
} else if ($h < 180) {
$r = 0;
$g = $c;
$b = $x;
} else if ($h < 240) {
$r = 0;
$g = $x;
$b = $c;
} else if ($h < 300) {
$r = $x;
$g = 0;
$b = $c;
} else {
$r = $c;
$g = 0;
$b = $x;
}
$r = ($r + $m) * 255;
$g = ($g + $m) * 255;
$b = ($b + $m) * 255;
return floor($r) . ', ' . floor($g) . ', ' . floor($b);
}
/* Convert Embedded Video URL Function */
function cmsmasters_embedConvert($url) {
if (str_replace('youtube', '', $url) !== $url) {
parse_str(parse_url($url, PHP_URL_QUERY), $my_array_of_vars);
$result = '//www.youtube.com/embed/' . $my_array_of_vars['v'] . '?autoplay=1&autohide=1&border=0&egm=0&showinfo=0';
} elseif (str_replace('vimeo', '', $url) !== $url) {
$video_id = substr(parse_url($url, PHP_URL_PATH), 1);
$result = '//player.vimeo.com/video/' . $video_id . '?autoplay=1';
} else {
$result = '';
}
return $result;
}
/* Return of get_template_part() */
function cmsmasters_load_template_part($template_name, $part_name = null) {
ob_start();
get_template_part($template_name, $part_name);
$out = ob_get_contents();
ob_end_clean();
return $out;
}
/* Regenerate Custom Styles Function */
function cleanora_regenerate_styles() {
$custom_css_fonts = cleanora_theme_fonts();
$custom_css_colors_primary = cleanora_theme_colors_primary();
$custom_css_colors_secondary = cleanora_theme_colors_secondary();
$custom_css = $custom_css_fonts . $custom_css_colors_primary . $custom_css_colors_secondary;
cleanora_write_styles($custom_css);
}
/* Regenerate Custom Styles Function for plugins */
function cmsmasters_regenerate_styles() {
cleanora_regenerate_styles();
}
/* Write Custom Styles to File Function */
function cleanora_write_styles($styles, $filename = '') {
$upload_dir = wp_upload_dir();
$style_dir = str_replace('\\', '/', $upload_dir['basedir'] . '/cmsmasters_styles');
$is_dir = cleanora_create_folder($style_dir);
if ($is_dir === false) {
update_option('cmsmasters_style_dir_writable_' . 'cleanora', 'false');
update_option('cmsmasters_style_exists_' . 'cleanora', 'false');
return;
}
$file = trailingslashit($style_dir) . (($filename != '') ? $filename : 'cleanora') . '.css';
$created = cleanora_create_file($file, $styles);
if ($created === true) {
update_option('cmsmasters_style_dir_writable_' . 'cleanora', 'true');
update_option('cmsmasters_style_exists_' . 'cleanora', 'true');
}
}
/* Create Folder Function */
function cleanora_create_folder(&$folder, $addindex = true) {
if (is_dir($folder) && $addindex == false) {
return true;
}
$created = wp_mkdir_p(trailingslashit($folder));
if ($addindex == false) {
return $created;
}
$index_file = trailingslashit($folder) . 'index.php';
if (file_exists($index_file)) {
return $created;
}
global $wp_filesystem;
if (empty($wp_filesystem)) {
require_once(ABSPATH . '/wp-admin/includes/file.php');
WP_Filesystem();
}
if ($wp_filesystem) {
$wp_filesystem->put_contents(
$index_file,
"put_contents(
$file,
$content,
FS_CHMOD_FILE
);
}
if ($created !== false) {
$created = true;
}
return $created;
}
/* Twitter Shortcode Function */
function cmsmasters_get_tweets( $username, $count ) {
$backup_name = 'cmsmasters_' . 'cleanora' . '_tweets_list_backup';
$backup_tweets = get_option( $backup_name );
if ( 'done' === get_transient( 'cmsmasters_' . 'cleanora' . '_tweets_list_regeneration' ) && ! empty( $backup_tweets ) ) {
return $backup_tweets;
}
$cmsmasters_option = cleanora_get_global_options();
if ( empty( $cmsmasters_option['cleanora' . '_twitter_access_token'] ) ) {
return $backup_tweets;
}
$response = wp_remote_get(
'https://api.twitter.com/1.1/statuses/user_timeline.json',
array(
'headers' => array(
'Authorization' => 'Bearer ' . esc_html( $cmsmasters_option['cleanora' . '_twitter_access_token'] ),
),
'body' => array(
'screen_name' => $username,
'count' => max( 50, $count * 3 ),
'exclude_replies' => true,
'include_rts' => true,
),
)
);
if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
return $backup_tweets;
}
$fetchedTweets = json_decode( wp_remote_retrieve_body( $response ) );
$limitToDisplay = min( $count, count( $fetchedTweets ) );
$tweets = array();
for ( $i = 0; $i < $limitToDisplay; $i++ ) {
$tweet = $fetchedTweets[$i];
$name = $tweet->user->name;
$permalink = '//twitter.com/' . $name . '/status/' . $tweet->id_str;
$image = $tweet->user->profile_image_url;
$pattern = '/(http|https):(\S)+/';
$replace = '${0}';
$text = preg_replace($pattern, $replace, $tweet->text);
$time = $tweet->created_at;
$time = date_parse($time);
$uTime = mktime($time['hour'], $time['minute'], $time['second'], $time['month'], $time['day'], $time['year']);
$tweets[] = array(
'text' => $text,
'name' => $name,
'permalink' => $permalink,
'image' => $image,
'time' => $uTime,
);
}
update_option( $backup_name, $tweets );
set_transient( 'cmsmasters_' . 'cleanora' . '_tweets_list_regeneration', 'done', HOUR_IN_SECONDS * 6 );
return $tweets;
}
/* Get Singular ID */
function cleanora_get_singular_id() {
$id = false;
if (is_singular()) {
$id = get_the_ID();
} elseif (CMSMASTERS_WOOCOMMERCE && is_shop()) {
$id = wc_get_page_id('shop');
}
return $id;
}
/* Theme Background Styles */
function cleanora_theme_bg_styles() {
$cmsmasters_option = cleanora_get_global_options();
$cmsmasters_page_id = cleanora_get_singular_id();
$out = "";
if ($cmsmasters_option['cleanora' . '_theme_layout'] == 'boxed') {
$cmsmasters_bg_default = 'true';
if (
is_singular() ||
(CMSMASTERS_WOOCOMMERCE && is_shop())
) {
$cmsmasters_bg_default = get_post_meta($cmsmasters_page_id, 'cmsmasters_bg_default', true);
}
if ($cmsmasters_bg_default == 'false') {
$cmsmasters_bg_col = get_post_meta($cmsmasters_page_id, 'cmsmasters_bg_col', true);
$cmsmasters_bg_img_enable = get_post_meta($cmsmasters_page_id, 'cmsmasters_bg_img_enable', true);
$cmsmasters_bg_img_str = get_post_meta($cmsmasters_page_id, 'cmsmasters_bg_img', true);
$cmsmasters_bg_pos = get_post_meta($cmsmasters_page_id, 'cmsmasters_bg_pos', true);
$cmsmasters_bg_rep = get_post_meta($cmsmasters_page_id, 'cmsmasters_bg_rep', true);
$cmsmasters_bg_att = get_post_meta($cmsmasters_page_id, 'cmsmasters_bg_att', true);
$cmsmasters_bg_size = get_post_meta($cmsmasters_page_id, 'cmsmasters_bg_size', true);
} else {
$cmsmasters_bg_col = $cmsmasters_option['cleanora' . '_bg_col'];
$cmsmasters_bg_img_enable = $cmsmasters_option['cleanora' . '_bg_img_enable'];
$cmsmasters_bg_img_str = $cmsmasters_option['cleanora' . '_bg_img'];
$cmsmasters_bg_pos = $cmsmasters_option['cleanora' . '_bg_pos'];
$cmsmasters_bg_rep = $cmsmasters_option['cleanora' . '_bg_rep'];
$cmsmasters_bg_att = $cmsmasters_option['cleanora' . '_bg_att'];
$cmsmasters_bg_size = $cmsmasters_option['cleanora' . '_bg_size'];
}
$cmsmasters_bg_img = (!empty($cmsmasters_bg_img_str) ? explode('|', $cmsmasters_bg_img_str) : $cmsmasters_bg_img_str);
$cmsmasters_bg_img_url = (isset($cmsmasters_bg_img[0]) && is_numeric($cmsmasters_bg_img[0]) ? wp_get_attachment_image_src((int) $cmsmasters_bg_img[0], 'full') : '');
$cmsmasters_bg_img_src = (is_array($cmsmasters_bg_img) ? 'url(' . ((is_numeric($cmsmasters_bg_img[0])) ? $cmsmasters_bg_img_url[0] : $cmsmasters_bg_img[1]) . ')' : 'none');
$out .= "
html body {
background-color : {$cmsmasters_bg_col};";
if ($cmsmasters_bg_img_enable) {
$out .= "
background-image : {$cmsmasters_bg_img_src};
background-position : {$cmsmasters_bg_pos};
background-repeat : {$cmsmasters_bg_rep};
background-attachment : {$cmsmasters_bg_att};
background-size : {$cmsmasters_bg_size};
";
}
$out .= "
}";
}
wp_add_inline_style('cleanora-style', $out);
}
add_action('wp_enqueue_scripts', 'cleanora_theme_bg_styles');
/* Get Logo Function */
function cleanora_logo() {
$cmsmasters_option = cleanora_get_global_options();
if ($cmsmasters_option['cleanora' . '_logo_type'] == 'text') {
if ($cmsmasters_option['cleanora' . '_logo_title'] != '') {
$blog_title = stripslashes($cmsmasters_option['cleanora' . '_logo_title']);
} else {
$blog_title = (get_bloginfo('name')) ? get_bloginfo('name') : 'cleanora';
}
if ($cmsmasters_option['cleanora' . '_logo_subtitle'] != '') {
$blog_descr = stripslashes($cmsmasters_option['cleanora' . '_logo_subtitle']);
} else {
$blog_descr = (get_bloginfo('description')) ? get_bloginfo('description') : esc_html__('Default Logo Subtitle', 'cleanora');
}
echo '' . "\n\t" .
'' .
'' . esc_html($blog_title) . '' . "\n" .
($cmsmasters_option['cleanora' . '_logo_subtitle'] ? '' . esc_html($blog_descr) . '' : '') .
'' .
'';
} else {
list($logo_width, $logo_height) = getimagesize(get_template_directory() . '/theme-vars/theme-style' . CMSMASTERS_THEME_STYLE . '/img/logo.png');
if ($cmsmasters_option['cleanora' . '_logo_url'] == '') {
echo '' . "\n\t" .
'
' . "\n\t" .
'
' . "\r" .
'' . "\n";
} else {
$logo_img = explode('|', $cmsmasters_option['cleanora' . '_logo_url']);
if (is_numeric($logo_img[0])) {
$logo_img_url = wp_get_attachment_image_src((int) $logo_img[0], 'full');
}
echo '' . "\n\t" .
'
' . "\r";
if ($cmsmasters_option['cleanora' . '_logo_url_retina'] != '') {
$logo_img_retina = explode('|', $cmsmasters_option['cleanora' . '_logo_url_retina']);
if (is_numeric($logo_img_retina[0])) {
$logo_img_retina_url = wp_get_attachment_image_src((int) $logo_img_retina[0], 'full');
}
$logo_img_retina_width = ((is_numeric($logo_img_retina[0])) ? ((int) $logo_img_retina_url[1] / 2) : $logo_width);
$logo_img_retina_height = ((is_numeric($logo_img_retina[0])) ? ((int) $logo_img_retina_url[2] / 2) : $logo_height);
echo '
' . "\r";
} else {
echo '
' . "\r";
}
echo '' . "\n";
}
}
}
/* Logo Styles */
function cleanora_theme_logo_styles() {
$cmsmasters_option = cleanora_get_global_options();
$out = "";
if ($cmsmasters_option['cleanora' . '_logo_type'] == 'text') {
if ($cmsmasters_option['cleanora' . '_logo_custom_color']) {
$out .= "
#header a.logo span.title {
" . cmsmasters_color_css('color', $cmsmasters_option['cleanora' . '_logo_title_color']) . "
}
#header a.logo span.title_text {
" . cmsmasters_color_css('color', $cmsmasters_option['cleanora' . '_logo_subtitle_color']) . "
}
";
}
} else {
$defaults = cleanora_settings_general_defaults();
$header_mid_height = (($cmsmasters_option['cleanora' . '_header_mid_height'] !== '') ? $cmsmasters_option['cleanora' . '_header_mid_height'] : $defaults[$tab]['cleanora' . '_header_mid_height']);
list($logo_width, $logo_height) = getimagesize(get_template_directory() . '/theme-vars/theme-style' . CMSMASTERS_THEME_STYLE . '/img/logo.png');
if ($cmsmasters_option['cleanora' . '_logo_url'] == '') {
if ($logo_height >= $header_mid_height) {
$logo_def_style_width = (int) ($header_mid_height * ($logo_width / $logo_height));
} else {
$logo_def_style_width = $logo_width;
}
$out .= "
.header_mid .header_mid_inner .logo_wrap {
width : {$logo_def_style_width}px;
}
.header_mid_inner .logo img.logo_retina {
width : {$logo_width}px;
}
";
} else {
$logo_img = explode('|', $cmsmasters_option['cleanora' . '_logo_url']);
if (is_numeric($logo_img[0])) {
$logo_img_url = wp_get_attachment_image_src((int) $logo_img[0], 'full');
}
$logo_img_width = ((is_numeric($logo_img[0])) ? (int) $logo_img_url[1] : $logo_width);
$logo_img_height = ((is_numeric($logo_img[0])) ? (int) $logo_img_url[2] : $logo_height);
if ($logo_img_height >= $header_mid_height) {
$logo_style_width = (int) ($header_mid_height * ($logo_img_width / $logo_img_height));
} else {
$logo_style_width = $logo_img_width;
}
$out .= "
.header_mid .header_mid_inner .logo_wrap {
width : {$logo_style_width}px;
}
";
if ($cmsmasters_option['cleanora' . '_logo_url_retina'] != '') {
$logo_img_retina = explode('|', $cmsmasters_option['cleanora' . '_logo_url_retina']);
if (is_numeric($logo_img_retina[0])) {
$logo_img_retina_url = wp_get_attachment_image_src((int) $logo_img_retina[0], 'full');
}
$logo_img_retina_width = ((is_numeric($logo_img_retina[0])) ? ((int) $logo_img_retina_url[1] / 2) : $logo_width);
$out .= "
.header_mid_inner .logo img.logo_retina {
width : {$logo_img_retina_width}px;
}
";
}
}
}
wp_add_inline_style('cleanora-style', $out);
}
add_action('wp_enqueue_scripts', 'cleanora_theme_logo_styles');
/* Get Footer Logo Function */
function cleanora_footer_logo($cmsmasters_option) {
echo '
';
}
/* Get Social Icons Function */
function cleanora_social_icons() {
$out = '';
if (class_exists('Cmsmasters_Content_Composer')) {
$cmsmasters_option = cleanora_get_global_options();
$i = 1;
$out .= "
";
foreach ($cmsmasters_option['cleanora' . '_social_icons'] as $cmsmasters_social_icons) {
$cmsmasters_social_icon = explode('|', $cmsmasters_social_icons);
if (
(isset($cmsmasters_social_icon[4]) && trim($cmsmasters_social_icon[4]) != '') ||
(isset($cmsmasters_social_icon[5]) && trim($cmsmasters_social_icon[5]) != '')
) {
$social_icon_color = ' cmsmasters_social_icon_color';
} else {
$social_icon_color = '';
}
$out .= "
-
";
$i++;
}
$out .= "
";
}
echo cleanora_return_content($out);
}
/* Get Title Function */
function cmsmasters_title($cmsmasters_id, $show = true) {
$cmsmasters_heading = get_post_meta($cmsmasters_id, 'cmsmasters_heading', true);
$cmsmasters_heading_title = get_post_meta($cmsmasters_id, 'cmsmasters_heading_title', true);
$out = '';
if ($cmsmasters_heading == 'custom' && $cmsmasters_heading_title != '') {
$out .= esc_attr($cmsmasters_heading_title);
} else {
$out .= esc_attr(strip_tags(get_the_title($cmsmasters_id) ? get_the_title($cmsmasters_id) : $cmsmasters_id));
}
if ($show) {
echo wp_kses_post($out);
} else {
return wp_kses_post($out);
}
}
/* Get Comments Function */
function cleanora_get_comments($class = false, $show = false, $add_html = false) {
$out = '';
if ($add_html) {
$text = (get_comments_number() == '1') ? esc_html__('comment', 'cleanora') : esc_html__('comments', 'cleanora');
} else {
$text = '';
}
if (comments_open()) {
$out .= '';
}
if ($show) {
echo cleanora_return_content($out);
} else {
return $out;
}
}
/* Get Category List */
function cleanora_get_the_category_list($cmsmasters_id, $taxonomy, $sep = '', $before = '', $after = '', $taxonomy_class = false) {
$terms = get_the_terms($cmsmasters_id, $taxonomy);
if (is_wp_error($terms)) {
return $terms;
}
if (empty($terms)) {
return false;
}
$links = array();
foreach ($terms as $term) {
$link = get_term_link($term, $taxonomy);
if ($taxonomy_class && CMSMASTERS_CATEGORIES_ICON) {
$term_meta = get_term_meta($term->term_id, 'cmsmasters_cat_icon', true);
}
if (is_wp_error($link)) {
return $link;
}
$links[] = '