%PDF- %PDF-
| Direktori : /home/opti/public_html/stlc/wp-content/plugins/insur-addon/common/ |
| Current File : /home/opti/public_html/stlc/wp-content/plugins/insur-addon/common/functions.php |
<?php
/**
* making array of custom icon classes
* which is saved in transient
* @return array
*/
if (!function_exists('insur_get_fa_icons')) :
function insur_get_fa_icons()
{
$data = get_transient('insur_fa_icons');
if (empty($data)) {
global $wp_filesystem;
require_once(ABSPATH . '/wp-admin/includes/file.php');
WP_Filesystem();
$fontAwesome_file = INSUR_ADDON_PATH . '/assets/vendors/fontawesome/css/all.min.css';
$template_icon_file = INSUR_ADDON_PATH . '/assets/vendors/insur-icons/style.css';
$content = '';
if ($wp_filesystem->exists($fontAwesome_file)) {
$content = $wp_filesystem->get_contents($fontAwesome_file);
} // End If Statement
if ($wp_filesystem->exists($template_icon_file)) {
$content .= $wp_filesystem->get_contents($template_icon_file);
} // End If Statement
$pattern = '/\.(fa-(?:\w+(?:-)?)+):before\s*{\s*content/';
$pattern_two = '/\.(icon-(?:\w+(?:-)?)+):before\s*{\s*content/';
$subject = $content;
preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER);
preg_match_all($pattern_two, $subject, $matches_two, PREG_SET_ORDER);
$all_matches = array_merge($matches, $matches_two);
$icons = array();
foreach ($all_matches as $match) {
// $icons[] = array('value' => $match[1], 'label' => $match[1]);
$icons[] = $match[1];
}
$data = $icons;
set_transient('insur_fa_icons', $data, 10080); // saved for one week
}
return array_combine($data, $data); // combined for key = value
}
endif;
// custom kses allowed html
if (!function_exists('insur_kses_allowed_html')) :
function insur_kses_allowed_html($tags, $context)
{
switch ($context) {
case 'insur_allowed_tags':
$tags = array(
'a' => array('href' => array(), 'class' => array()),
'b' => array(),
'br' => array(),
'span' => array('class' => array(), 'data-count' => array()),
'img' => array('class' => array()),
'i' => array('class' => array()),
'p' => array('class' => array()),
'ul' => array('class' => array()),
'li' => array('class' => array()),
'div' => array('class' => array()),
'strong' => array()
);
return $tags;
default:
return $tags;
}
}
add_filter('wp_kses_allowed_html', 'insur_kses_allowed_html', 10, 2);
endif;
if (!function_exists('insur_excerpt')) :
// Post's excerpt text
function insur_excerpt($get_limit_value, $echo = true)
{
$opt = $get_limit_value;
$excerpt_limit = !empty($opt) ? $opt : 40;
$excerpt = wp_trim_words(get_the_content(), $excerpt_limit, '');
if ($echo == true) {
echo esc_html($excerpt);
} else {
return esc_html($excerpt);
}
}
endif;
if (!function_exists('insur_posted_on')) :
/**
* Prints HTML with meta information for the current post-date/time.
*/
function insur_posted_on()
{
$time_insurtring = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
if (get_the_time('U') !== get_the_modified_time('U')) {
$time_insurtring = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
}
$time_insurtring = sprintf(
$time_insurtring,
esc_attr(get_the_date(DATE_W3C)),
esc_html(get_the_date()),
esc_attr(get_the_modified_date(DATE_W3C)),
esc_html(get_the_modified_date())
);
$posted_on = sprintf(
/* translators: %s: post date. */
esc_html_x(' %s', 'post date', 'insur'),
'<a href="' . esc_url(get_permalink()) . '" rel="bookmark">' . $time_insurtring . '</a>'
);
echo '<span class="posted-on"><i class="far fa-calendar"></i>' . $posted_on . '</span>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
endif;
if (!function_exists('insur_posted_by')) :
/**
* Prints HTML with meta information for the current author.
*/
function insur_posted_by()
{
$byline = sprintf(
/* translators: %s: post author. */
esc_html_x('%s', 'post author', 'insur'),
'<span class="author vcard"><a class="url fn n" href="' . esc_url(get_author_posts_url(get_the_author_meta('ID'))) . '">' . esc_html(get_the_author()) . '</a></span>'
);
echo '<span class="byline"><i class="far fa-user-circle"></i> ' . $byline . '</span>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
endif;
if (!function_exists('insur_comment_count')) {
function insur_comment_count()
{
if (!is_single() && !post_password_required() && (comments_open() || get_comments_number())) {
echo '<span class="comments-link"><i class="far fa-comments"></i> ';
comments_popup_link(
sprintf(
wp_kses(
/* translators: %s: post title */
__('Leave a Comment<span class="screen-reader-text"> on %s</span>', 'insur'),
array(
'span' => array(
'class' => array(),
),
)
),
wp_kses_post(get_the_title())
)
);
echo '</span>';
}
}
}
if (!function_exists('insur_entry_footer')) :
/**
* Prints HTML with meta information for the categories, tags and comments.
*/
function insur_entry_footer()
{
// Hide category and tag text for pages.
if ('post' === get_post_type()) {
/* translators: used between list items, there is a space after the comma */
$categories_list = get_the_category_list(esc_html__(' ', 'insur'));
if ($categories_list) {
/* translators: 1: list of categories. */
printf('<span class="news-details__tags"><span>' . esc_html__('Posted in %1$s', 'insur') . '</span>', '</span>' . $categories_list); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/* translators: used between list items, there is a space after the comma */
$tags_list = get_the_tag_list('', esc_html_x(' ', 'list item separator', 'insur'));
if ($tags_list) {
/* translators: 1: list of tags. */
printf('<span class="news-details__tags"><span>' . esc_html__('Tags %1$s', 'insur') . '</span>', '</span>' . $tags_list); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
}
}
endif;
if (!function_exists('insur_post_thumbnail')) :
/**
* Displays an optional post thumbnail.
*
* Wraps the post thumbnail in an anchor element on index views, or a div
* element when on single views.
*/
function insur_post_thumbnail()
{
if (post_password_required() || is_attachment() || !has_post_thumbnail()) {
return;
}
if (is_singular()) :
?>
<div class="post-thumbnail blog-single__content-img blog-details__img">
<?php the_post_thumbnail(); ?>
</div><!-- .post-thumbnail -->
<?php else : ?>
<div class="news-sideabr__img">
<a class="post-thumbnail blog-single__content-img" href="<?php the_permalink(); ?>" aria-hidden="true" tabindex="-1">
<?php
the_post_thumbnail(
'post-thumbnail',
array(
'alt' => the_title_attribute(
array(
'echo' => false,
)
),
)
);
?>
</a>
</div>
<?php
endif; // End is_singular().
}
endif;
if (!function_exists('insur_post_query')) {
function insur_post_query($post_type)
{
$post_list = get_posts(array(
'post_type' => $post_type,
'showposts' => -1,
));
$posts = array();
if (!empty($post_list) && !is_wp_error($post_list)) {
foreach ($post_list as $post) {
$options[$post->ID] = $post->post_title;
}
return $options;
}
}
}
if (!function_exists('insur_custom_query_pagination')) :
/**
* Prints HTML with post pagination links.
*/
function insur_custom_query_pagination($paged = '', $max_page = '')
{
global $wp_query;
$big = 999999999; // need an unlikely integer
if (!$paged)
$paged = get_query_var('paged');
if (!$max_page)
$max_page = $wp_query->max_num_pages;
$links = paginate_links(array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => max(1, $paged),
'total' => $max_page,
'mid_size' => 1,
'prev_text' => '<i class="fa fa-angle-left"></i>',
'next_text' => '<i class="fa fa-angle-right"></i>',
));
echo wp_kses($links, 'insur_allowed_tags');
}
endif;
if (!function_exists('insur_get_nav_menu')) :
function insur_get_nav_menu()
{
$menu_list = get_terms(array(
'taxonomy' => 'nav_menu',
'hide_empty' => true,
));
$options = [];
if (!empty($menu_list) && !is_wp_error($menu_list)) {
foreach ($menu_list as $menu) {
$options[$menu->slug] = $menu->name;
}
return $options;
}
}
endif;
if (!function_exists('insur_get_taxonoy')) :
function insur_get_taxonoy($taxonoy)
{
$taxonomy_list = get_terms(array(
'taxonomy' => $taxonoy,
'hide_empty' => true,
));
$options = [];
if (!empty($taxonomy_list) && !is_wp_error($taxonomy_list)) {
foreach ($taxonomy_list as $taxonomy) {
$options[$taxonomy->slug] = $taxonomy->name;
}
return $options;
}
}
endif;
if (!function_exists('insur_get_template')) :
function insur_get_template($template_name = null)
{
$template_path = apply_filters('insur-elementor/template-path', 'elementor-templates/');
$template = locate_template($template_path . $template_name);
if (!$template) {
$template = INSUR_ADDON_PATH . '/elementor-templates/' . $template_name;
}
if (file_exists($template)) {
return $template;
} else {
return false;
}
}
endif;
if (!function_exists('insur_get_thumbnail_alt')) :
function insur_get_thumbnail_alt($thumbnail_id)
{
return get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true);
}
endif;
if (!function_exists('insur_get_owl_options')) :
function insur_get_owl_options($settings)
{
$loop_status = ('yes' == $settings['loop']) ? 'true' : 'false';
$nav_status = ('yes' == $settings['enable_nav']) ? 'true' : 'false';
$dots_status = ('yes' == $settings['enable_dots']) ? 'true' : 'false';
if ('yes' == $settings['enable_nav']) {
$nav_left_icon = $settings['nav_left_icon']['value'];
$nav_right_icon = $settings['nav_right_icon']['value'];
}
$items = $settings['items']['size'];
$margin = $settings['margin']['size'];
$smart_speed = $settings['smart_speed']['size'];
$breakpoint = $settings['breakpoint'];
ob_start(); ?>
{
"loop": <?php echo esc_attr($loop_status) ?>,
"margin": <?php echo esc_attr($margin) ?>,
"items": <?php echo esc_attr($items) ?>
,"nav": <?php echo esc_attr($nav_status) ?>
<?php if ('yes' == $settings['enable_nav']) : ?>
,"navText": [
"<i class=\" <?php echo esc_attr($nav_left_icon) ?>\"></i>",
"<i class=\" <?php echo esc_attr($nav_right_icon) ?>\"></i>"
]
<?php endif; ?>
,"dots": <?php echo esc_attr($dots_status) ?>
,"smartSpeed": <?php echo esc_attr($smart_speed) ?>
<?php if (!empty($breakpoint)) : ?>
,
"responsive":
{
<?php foreach ($breakpoint as $item) : ?>
"<?php echo esc_attr($item['screen_size']['size']); ?>": {
"margin": <?php echo esc_attr($item['margin']['size']); ?>,
"items": <?php echo esc_attr($item['item']['size']); ?>
}<?php echo esc_attr($item != end($breakpoint) ? ',' : ''); ?>
<?php endforeach; ?>
}
<?php endif; ?>
}
<?php return ob_get_clean();
}
endif;
if (!function_exists('insur_get_swiper_options')) :
function insur_get_swiper_options($settings, $pagination_id = false)
{
$loop_status = ('yes' == $settings['loop']) ? 'true' : 'false';
$autoplay_status = ('yes' == $settings['autoplay']) ? 'true' : 'false';
$delay = $settings['delay']['size'];
$items = $settings['items']['size'];
$margin = $settings['margin']['size'];
$breakpoint = $settings['breakpoint'];
ob_start(); ?>
{
"loop": <?php echo esc_attr($loop_status); ?>,
"spaceBetween": <?php echo esc_attr($margin); ?>,
"slidesPerView": <?php echo esc_attr($items); ?>
<?php if ('true' == $autoplay_status) : ?>
,"autoplay": { "delay": <?php echo esc_attr($delay); ?> }
<?php endif; ?>
<?php if ('yes' == $settings['enable_dots']) : ?>
,"pagination": {
"el": "#<?php echo esc_attr($pagination_id); ?>",
"type": "bullets",
"clickable": true
}
<?php endif; ?>
<?php if (!empty($breakpoint)) : ?>
,"breakpoints": {
<?php foreach ($breakpoint as $item) : ?>
"<?php echo esc_attr($item['screen_size']['size']); ?>": {
"spaceBetween": <?php echo esc_attr($item['margin']['size']); ?>,
"slidesPerView": <?php echo esc_attr($item['item']['size']); ?>
}<?php echo esc_attr($item != end($breakpoint) ? ',' : ''); ?>
<?php endforeach; ?>
}
<?php endif; ?>
}
<?php return ob_get_clean();
}
endif;
if (!function_exists('insur_get_elementor_carousel_options')) :
function insur_get_elementor_carousel_options($arg, $condition)
{
$arg->start_controls_section(
'slider_options',
[
'label' => __('Slider Options', 'insur-addon'),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
'condition' => [
'layout_type' => $condition
]
]
);
$arg->add_control(
'autoplay',
[
'label' => esc_html__('AutoPlay', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => esc_html__('Yes', 'insur-addon'),
'label_off' => esc_html__('No', 'insur-addon'),
'return_value' => 'yes',
'default' => 'yes',
]
);
$arg->add_control(
'delay',
[
'label' => __('AutoPlay Delay', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => ['count'],
'range' => [
'count' => [
'min' => 0,
'max' => 10000,
'step' => 1,
],
],
'default' => [
'unit' => 'count',
'size' => 5000,
],
]
);
$arg->add_control(
'loop',
[
'label' => esc_html__('Loop', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => esc_html__('Yes', 'insur-addon'),
'label_off' => esc_html__('No', 'insur-addon'),
'return_value' => 'yes',
'default' => 'yes',
]
);
$arg->add_control(
'enable_nav',
[
'label' => esc_html__('Display Nav', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => esc_html__('Yes', 'insur-addon'),
'label_off' => esc_html__('No', 'insur-addon'),
'return_value' => 'yes',
'default' => 'yes',
]
);
$arg->add_control(
'nav_left_icon',
[
'label' => esc_html__('Nav Left Icon', 'insur-addon'),
'type' => \Elementor\Controls_Manager::ICONS,
'condition' => [
'enable_nav' => 'yes'
],
'default' => [
'value' => 'icon-right-arrow',
'library' => 'custom-icon',
],
]
);
$arg->add_control(
'nav_right_icon',
[
'label' => esc_html__('Nav Right Icon', 'insur-addon'),
'type' => \Elementor\Controls_Manager::ICONS,
'condition' => [
'enable_nav' => 'yes'
],
'default' => [
'value' => 'icon-right-arrow1',
'library' => 'custom-icon',
],
]
);
$arg->add_control(
'enable_dots',
[
'label' => esc_html__('Display Dots', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => esc_html__('Yes', 'insur-addon'),
'label_off' => esc_html__('No', 'insur-addon'),
'return_value' => 'yes',
'default' => 'yes',
]
);
$arg->add_control(
'smart_speed',
[
'label' => __('Smart Speed', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => ['count'],
'range' => [
'count' => [
'min' => 0,
'max' => 10000,
'step' => 1,
],
],
'default' => [
'unit' => 'count',
'size' => 700,
],
]
);
$arg->add_control(
'items',
[
'label' => __('Slide Items', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => ['count'],
'range' => [
'count' => [
'min' => 1,
'max' => 10,
'step' => 1,
],
],
'default' => [
'unit' => 'count',
'size' => 1,
],
]
);
$arg->add_control(
'margin',
[
'label' => __('Margin', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => ['count'],
'range' => [
'count' => [
'min' => 1,
'max' => 200,
'step' => 1,
],
],
'default' => [
'unit' => 'count',
'size' => 0,
],
]
);
$breakpoint = new \Elementor\Repeater();
$breakpoint->add_control(
'screen_size',
[
'label' => __('Screen Size', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => ['count'],
'range' => [
'count' => [
'min' => 0,
'max' => 1920,
'step' => 1,
],
],
'default' => [
'unit' => 'count',
'size' => 0,
],
]
);
$breakpoint->add_control(
'item',
[
'label' => __('Slide Item', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => ['count'],
'range' => [
'count' => [
'min' => 1,
'max' => 10,
'step' => 1,
],
],
'default' => [
'unit' => 'count',
'size' => 1,
],
]
);
$breakpoint->add_control(
'margin',
[
'label' => __('Margin', 'insur-addon'),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => ['count'],
'range' => [
'count' => [
'min' => 1,
'max' => 200,
'step' => 1,
],
],
'default' => [
'unit' => 'count',
'size' => 0,
],
]
);
$arg->add_control(
'breakpoint',
[
'label' => __('Breakpoints', 'insur-addon'),
'type' => \Elementor\Controls_Manager::REPEATER,
'prevent_empty' => false,
'fields' => $breakpoint->get_controls(),
]
);
$arg->end_controls_section();
}
endif;
if (!function_exists('insur_typo_and_color_options')) :
function insur_typo_and_color_options($agrs, $label, $selector, $condition, $style = 'color', $typo = true, $color = true)
{
if (false != $typo) :
//title typography
$agrs->add_group_control(
\Elementor\Group_Control_Typography::get_type(),
[
'name' => str_replace(' ', '_', $label) . '_typo',
'label' => esc_html__($label . ' Typography', 'insur-addon'),
'selector' => $selector,
'condition' => [
'layout_type' => $condition
]
]
);
endif;
if (false != $color) :
$agrs->add_control(
str_replace(' ', '_', $label) . '_color',
[
'label' => __($label . ' Color', 'insur-addon'),
'type' => \Elementor\Controls_Manager::COLOR,
'selectors' => [
$selector => $style . ': {{VALUE}}',
],
'condition' => [
'layout_type' => $condition
]
]
);
endif;
}
endif;