File: /home/bt667/public_html/wp-content/themes/news-event/inc/extras/helpers.php
<?php
/**
* Includes the helper functions and hooks the theme.
*
* @package News Event
* @since 1.0.0
*/
use NewsEvent\CustomizerDefault as NEV;
if( !function_exists( 'news_event_advertisement_block_html' ) ) :
/**
* Calls advertisement block
*
* @since 1.0.0
*/
function news_event_advertisement_block_html($options,$echo) {
$media = ( is_object( $options->media ) || is_array( $options->media ) ) ? $options->media :json_decode( $options->media );
if( ! isset( $media->media_id ) ) return;
?>
<div <?php if( isset( $options->blockId ) && !empty($options->blockId) ) echo 'id="' .esc_attr( $options->blockId ). '"'; ?> class="news-event-advertisement-block is-large">
<?php
if( $echo ) {
if( isset( $options->title ) && $options->title ) echo '<h2 class="news-event-block-title">' .esc_html( $options->title ). '</h2>';
if( $media->media_id != 0 ) {
?>
<figure class="inner-ad-block">
<a href="<?php echo esc_url( $options->url ); ?>" target="<?php echo esc_attr( $options->targetAttr ); ?>" rel="<?php echo esc_attr( $options->relAttr ); ?>"><img src="<?php echo esc_url( wp_get_attachment_url( $media->media_id ) ); ?>"></a>
</figure>
<?php
}
}
?>
</div>
<?php
}
endif;
if( !function_exists( 'news_event_shortcode_block_html' ) ) :
/**
* Calls shortcode block
*
* @since 1.0.0
*/
function news_event_shortcode_block_html($options,$echo) {
$shortcode = $options->shortcode;
if( ! $shortcode ) return;
?>
<div <?php if( isset( $options->blockId ) && !empty($options->blockId) ) echo 'id="' .esc_attr( $options->blockId ). '"'; ?> class="news-event-shortcode-block is-large">
<?php
if( $echo ) {
echo do_shortcode( $shortcode );
}
?>
</div>
<?php
}
endif;
if( !function_exists( 'news_event_top_header_html' ) ) :
/**
* Calls top header hooks
*
* @since 1.0.0
*/
function news_event_top_header_html() {
if( ! NEV\news_event_get_customizer_option( 'top_header_option' ) ) return;
require get_template_directory() . '/inc/hooks/top-header-hooks.php'; // top header hooks.
?>
<div class="top-header">
<div class="news-event-container">
<div class="row">
<?php
/**
* hook - news_event_top_header_hook
*
* @hooked - news_event_top_header_ticker_news_part - 10
* @hooked - news_event_top_header_social_part - 20
*/
if( has_action( 'news_event_top_header_hook' ) ) do_action( 'news_event_top_header_hook' );
?>
</div>
</div>
</div>
<?php
}
endif;
if( !function_exists( 'news_event_header_html' ) ) :
/**
* Calls header hooks
*
* @since 1.0.0
*/
function news_event_header_html() {
require get_template_directory() . '/inc/hooks/header-hooks.php'; // top header hooks.
?>
<div class="main-header">
<div class="site-branding-section">
<div class="news-event-container">
<div class="row">
<?php
/**
* hook - news_event_header__site_branding_section_hook
*
* @hooked - news_event_header_menu_part - 10
* @hooked - news_event_header_ads_banner_part - 20
*/
if( has_action( 'news_event_header__site_branding_section_hook' ) ) do_action( 'news_event_header__site_branding_section_hook' );
?>
</div>
</div>
</div>
<div class="menu-section">
<div class="news-event-container">
<div class="row">
<?php
/**
* hook - news_event_header__menu_section_hook
*
* @hooked - news_event_header_menu_part - 10
* @hooked - news_event_header_search_part - 20
*/
if( has_action( 'news_event_header__menu_section_hook' ) ) do_action( 'news_event_header__menu_section_hook' );
?>
</div>
</div>
</div>
</div>
<?php
}
endif;
if( !function_exists( 'news_event_after_header_html' ) ) :
/**
* Calls after header hooks
*
* @since 1.0.0
*/
function news_event_after_header_html() {
$ticker_news_width_layout = news_event_get_section_width_layout_val('ticker_news_width_layout');
?>
<div class="after-header header-layout-banner-two ticker-news-section--<?php echo esc_attr($ticker_news_width_layout); ?>">
<div class="news-event-container">
<div class="row">
<?php
/**
* hook - news_event_after_header_hook
*
* @hooked - news_event_header_ads_banner_part - 10
* @hooked - news_event_ticker_news_part - 10
*/
if( has_action( 'news_event_after_header_hook' ) ) do_action( 'news_event_after_header_hook' );
?>
</div>
</div>
</div>
<?php
}
endif;
require get_template_directory() . '/inc/hooks/footer-hooks.php'; // footer hooks.
if( !function_exists( 'news_event_footer_sections_html' ) ) :
/**
* Calls footer hooks
*
* @since 1.0.0
*/
function news_event_footer_sections_html() {
if( ! NEV\news_event_get_customizer_option( 'footer_option' ) ) return;
$footer_section_width = NEV\news_event_get_customizer_option( 'footer_section_width' );
?>
<div class="main-footer <?php echo esc_attr( $footer_section_width ); ?>">
<div class="footer-inner <?php if( $footer_section_width == 'boxed-width' ) { echo esc_attr( 'news-event-container' ); } else { echo esc_attr( 'news-event-container-fluid' ); } ?>">
<div class="row">
<?php
/**
* hook - news_event_footer_hook
*
* @hooked - news_event_footer_widgets_area_part - 10
*/
if( has_action( 'news_event_footer_hook' ) ) do_action( 'news_event_footer_hook' );
?>
</div>
</div>
</div>
<?php
}
endif;
if( !function_exists( 'news_event_bottom_footer_sections_html' ) ) :
/**
* Calls bottom footer hooks
*
* @since 1.0.0
*/
function news_event_bottom_footer_sections_html() {
if( ! NEV\news_event_get_customizer_option( 'bottom_footer_option' ) ) return;
require get_template_directory() . '/inc/hooks/bottom-footer-hooks.php'; // footer hooks.
$bottom_footer_width_layout = news_event_get_section_width_layout_val('bottom_footer_width_layout');
?>
<div class="bottom-footer <?php echo esc_attr( 'width-' . $bottom_footer_width_layout ); ?>">
<div class="news-event-container">
<div class="row">
<?php
/**
* hook - news_event_bottom_footer_sections_html
*
* @hooked - bottom_footer_social_option - 10
* @hooked - news_event_bottom_footer_menu_part - 20
* @hooked - news_event_bottom_footer_copyright_part - 3020
*/
if( has_action( 'news_event_botttom_footer_hook' ) ) do_action( 'news_event_botttom_footer_hook' );
?>
</div>
</div>
</div>
<?php
}
endif;
require get_template_directory() . '/inc/hooks/inner-hooks.php'; // inner hooks.
require get_template_directory() . '/inc/hooks/frontpage-sections-hooks.php'; // frontpage sections hooks.
if ( ! function_exists( 'news_event_breadcrumb_trail' ) ) :
/**
* Theme default breadcrumb function.
*
* @since 1.0.0
*/
function news_event_breadcrumb_trail() {
if ( ! function_exists( 'breadcrumb_trail' ) ) {
// load class file
require_once get_template_directory() . '/inc/breadcrumb-trail/breadcrumb-trail.php';
}
// arguments variable
$breadcrumb_args = array(
'container' => 'div',
'show_browse' => false,
);
breadcrumb_trail( $breadcrumb_args );
}
add_action( 'news_event_breadcrumb_trail_hook', 'news_event_breadcrumb_trail' );
endif;
if( ! function_exists( 'news_event_breadcrumb_html' ) ) :
/**
* Theme breadcrumb
*
* @package News Event
* @since 1.0.0
*/
function news_event_breadcrumb_html() {
$site_breadcrumb_option = NEV\news_event_get_customizer_option( 'site_breadcrumb_option' );
if ( ! $site_breadcrumb_option ) return;
if ( is_front_page() || is_home() ) return;
$site_breadcrumb_type = NEV\news_event_get_customizer_option( 'site_breadcrumb_type' );
?>
<div class="news-event-breadcrumb-wrapper">
<div class="news-event-container">
<div class="row">
<div class="news-event-breadcrumb-wrap news-event-card">
<?php
switch( $site_breadcrumb_type ) {
case 'yoast': if( news_event_compare_wand([news_event_function_exists( 'yoast_breadcrumb' )] ) ) yoast_breadcrumb();
break;
case 'rankmath': if( news_event_compare_wand([news_event_function_exists( 'rank_math_the_breadcrumbs' )] ) ) rank_math_the_breadcrumbs();
break;
case 'bcn': if( news_event_compare_wand([news_event_function_exists( 'bcn_display' )] ) ) bcn_display();
break;
default: do_action( 'news_event_breadcrumb_trail_hook' );
break;
}
?>
</div>
</div>
</div>
</div>
<?php
}
endif;
if( ! function_exists( 'news_event_category_archive_featured_posts_html' ) ) :
/**
* Html for category archive page featured post
*
* @package News Event
* @since 1.0.0
*/
function news_event_category_archive_featured_posts_html() {
if( ! is_category() ) return;
$sticky_posts = get_option( 'sticky_posts' );
if( ! $sticky_posts ) return;
$current_object = get_queried_object();
$current_object_id = $current_object->term_id;
foreach( $sticky_posts as $sticky_post_id ) :
$cat_ids = wp_get_post_categories( $sticky_post_id, array( 'fields' => 'ids' ) );
if( in_array( $current_object_id, $cat_ids ) ) {
$post_to_get = $sticky_post_id;
break;
}
endforeach;
if( ! isset($post_to_get) ) return;
?>
<div class="news-event-featured-posts-wrapper">
<div class="news-event-container">
<div class="row">
<article class="featured-post is-sticky" data-id="<?php echo esc_attr( $post_to_get ); ?>">
<figure class="post-thumb-wrap">
<a href="<?php the_permalink($post_to_get); ?>" title="<?php the_title_attribute(array('post' => $post_to_get)); ?>">
<?php if( has_post_thumbnail($post_to_get) ) {
echo get_the_post_thumbnail($post_to_get, 'full', array(
'title' => the_title_attribute(array(
'post' => $post_to_get,
'echo' => false
))
));
}
?>
</a>
</figure>
<div class="post-element">
<?php news_event_get_post_categories( $post_to_get, 2 ); ?>
<h2 class="post-title"><a href="<?php the_permalink($post_to_get); ?>" title="<?php the_title_attribute(array('post' => $post_to_get)); ?>"><?php echo wp_kses_post( get_the_title($post_to_get) ); ?></a></h2>
<div class="post-meta">
<?php
news_event_posted_by($post_to_get);
news_event_posted_on($post_to_get);
?>
</div>
</div>
</article>
</div>
</div>
</div>
<?php
}
add_action( 'news_event_before_main_content', 'news_event_category_archive_featured_posts_html', 20 );
endif;
if( ! function_exists( 'news_event_category_archive_author_html' ) ) :
/**
* Html for category archive page featured post
*
* @package News Event
* @since 1.0.0
*/
function news_event_category_archive_author_html() {
if( ! is_author() ) return;
$author_id = get_query_var( 'author' );
$ticker_news_width_layout = news_event_get_section_width_layout_val('ticker_news_width_layout');
$classes[] = esc_attr('ticker-news-section--' . $ticker_news_width_layout);
?>
<div class="ticker-news-section--<?php echo esc_attr($ticker_news_width_layout); ?>">
<div class="news-event-container news-event-author-section">
<div class="row">
<?php echo wp_kses_post( get_avatar($author_id, 125) ); ?>
<div class="author-content">
<h2 class="author-name"><?php echo esc_html( get_the_author_meta( 'display_name', $author_id ) ); ?></h2>
<p class="author-desc"><?php echo wp_kses_post( get_the_author_meta('description', $author_id) ); ?></p>
<div class="author-social-networks">
<?php
$facebook_url = ( get_the_author_meta( 'facebook_url', $author_id ) ) ? esc_url( get_the_author_meta( 'facebook_url', $author_id ) ) : '';
$twitter_url = ( get_the_author_meta( 'twitter_url', $author_id ) ) ? esc_url( get_the_author_meta( 'twitter_url', $author_id ) ) : '';
$linkedin_url = ( get_the_author_meta( 'linkedin_url', $author_id ) ) ? esc_url( get_the_author_meta( 'linkedin_url', $author_id ) ) : '';
$instagram_url = ( get_the_author_meta( 'instagram_url', $author_id ) ) ? esc_url( get_the_author_meta( 'instagram_url', $author_id ) ) : '';
if( $facebook_url ) echo '<a class="social-item" href="' .esc_url($facebook_url). '" target="_blank"><i class="fab fa-facebook-f"></i></a>';
if( $twitter_url ) echo '<a class="social-item" href="' .esc_url($twitter_url). '" target="_blank"><i class="fa-brands fa-x-twitter"></i></a>';
if( $linkedin_url ) echo '<a class="social-item" href="' .esc_url($linkedin_url). '" target="_blank"><i class="fab fa-linkedin-in"></i></a>';
if( $instagram_url ) echo '<a class="social-item" href="' .esc_url($instagram_url). '" target="_blank"><i class="fab fa-instagram"></i></a>';
?>
</div>
</div>
</div>
</div>
</div>
<?php
}
add_action( 'news_event_before_main_content', 'news_event_category_archive_author_html', 20 );
endif;
if( ! function_exists( 'news_event_button_html' ) ) :
/**
* View all html
*
* @package News Event
* @since 1.0.0
*/
function news_event_button_html( $args ) {
if( ! $args['option'] ) return;
$global_button_label = NEV\news_event_get_customizer_option( 'global_button_label' );
$classes = isset( $args['classes'] ) ? 'post-link-button' . ' ' .$args['classes'] : 'post-link-button';
$link = isset( $args['link'] ) ? $args['link'] : get_the_permalink();
$text = isset( $args['text'] ) ? $args['text'] : $global_button_label;
$icon = isset( $args['icon'] ) ? $args['icon'] : 'fas fa-angle-right';
$view_all_label_option = isset( $args['text_option'] ) ? $args['text_option'] : false;
if( $view_all_label_option ) $text = isset( $args['text'] ) ? $args['text'] : esc_htm__( 'View all', 'news-event' );
echo apply_filters( 'news_event_button_html', sprintf( '<a class="%1$s" href="%2$s">%3$s<i class="%4$s"></i></a>', esc_attr( $classes ), esc_url( $link ), esc_html( $text ), esc_attr( $icon ) ) );
}
add_action( 'news_event_section_block_view_all_hook', 'news_event_button_html', 10, 1 );
endif;
if( ! function_exists( 'news_event_archive_excerpt_length' ) ) :
/**
* Custom excerpt length
*
* @package News Event
* @since 1.0.0
*/
function news_event_archive_excerpt_length( $length ) {
return 20;
}
endif;
if( ! function_exists( 'news_event_banner_excerpt_length' ) ) :
/**
* Banner Custom excerpt length
*
* @package News Event
* @since 1.0.0
*/
function news_event_banner_excerpt_length( $length ) {
return 15;
}
endif;
if( ! function_exists( 'news_event_archive_excerpt_more_string' ) ) :
/**
* Excerpt more string filter
*
* @package News Event
* @since 1.0.0
*/
function news_event_archive_excerpt_more_string( $more ) {
return '...';
}
add_filter('excerpt_more', 'news_event_archive_excerpt_more_string');
endif;
if( ! function_exists( 'news_event_pagination_fnc' ) ) :
/**
* Renders pagination html
*
* @package News Event
* @since 1.0.0
*/
function news_event_pagination_fnc() {
if( is_null( paginate_links() ) ) {
return;
}
$pagination_type = NEV\news_event_get_customizer_option( 'archive_pagination_type' );
switch( $pagination_type ) {
case 'number' : echo '<div class="pagination">' .wp_kses_post( paginate_links( array( 'prev_text' => '<i class="fas fa-chevron-left"></i>', 'next_text' => '<i class="fas fa-chevron-right"></i>', 'type' => 'list' ) ) ). '</div>';
break;
default : echo '<div class="pagination">' .wp_kses_post( get_the_posts_navigation() ). '</div>';
break;
}
}
add_action( 'news_event_pagination_link_hook', 'news_event_pagination_fnc' );
endif;
if( ! function_exists( 'news_event_header_theme_mode_icon_part' ) ) :
/**
* Header theme mode element
*
* @since 1.0.0
*/
function news_event_header_theme_mode_icon_part() {
if( ! NEV\news_event_get_customizer_option( 'header_theme_mode_toggle_option' ) ) return;
$theme_mode = array_key_exists( 'themeMode', $_COOKIE ) ? $_COOKIE['themeMode'] : 'light';
$news_event_dark_mode = ( $theme_mode == 'dark' ) ? true : false;
?>
<div class="blaze-switcher-button<?php if( $news_event_dark_mode ) echo " active"; ?>">
<div class="blaze-switcher-button-inner-left"></div>
<div class="blaze-switcher-button-inner"></div>
</div>
<?php
}
add_action( 'news_event_after_footer_hook', 'news_event_header_theme_mode_icon_part', 10 );
endif;
if( ! function_exists( 'news_event_scroll_to_top_html' ) ) :
/**
* Scroll to top fnc
*
* @package News Event
* @since 1.0.0
*/
function news_event_scroll_to_top_html() {
if( ! NEV\news_event_get_customizer_option('stt_responsive_option') ) return;
?>
<div id="news-event-scroll-to-top" class="align--right">
<span class="icon-holder"><i class="fa-solid fa-angle-up"></i></span>
</div><!-- #news-event-scroll-to-top -->
<?php
}
add_action( 'news_event_after_footer_hook', 'news_event_scroll_to_top_html', 20 );
endif;
if( ! function_exists( 'news_event_get_background_and_cursor_animation' ) ) :
/**
* Renders html for cursor and background animation
*
* @since 1.0.0
*/
function news_event_get_background_and_cursor_animation() {
$site_background_animation = NEV\news_event_get_customizer_option( 'site_background_animation' );
if( $site_background_animation !== 'none' ) news_event_shooting_star_animation_html();
$cursor_animation = NEV\news_event_get_customizer_option( 'cursor_animation' );
$cursorclass = 'news-event-cursor';
if( $cursor_animation != 'none' ) $cursorclass .= ' type--' . $cursor_animation;
if( in_array( $cursor_animation, [ 'one', 'two' ] ) ) echo '<div class="'. esc_attr( $cursorclass ) .'"></div>';
}
add_action( 'news_event_after_footer_hook', 'news_event_get_background_and_cursor_animation', 30 );
endif;
if( ! function_exists( 'news_event_shooting_star_animation_html' ) ) :
/**
* Background animation one
*
* @package News Event
* @since 1.0.0
*/
function news_event_shooting_star_animation_html() {
$elementClass = 'news-event-background-animation';
?>
<div class="<?php echo esc_attr( $elementClass ); ?>">
<?php
for( $i = 0; $i < 13; $i++ ) :
echo '<span class="item"></span>';
endfor;
?>
</div>
<?php
}
endif;
if( ! function_exists( 'news_event_loader_html' ) ) :
/**
* Preloader html
*
* @package News Event
* @since 1.0.0
*/
function news_event_loader_html() {
if( ! NEV\news_event_get_customizer_option( 'preloader_option' ) ) return;
?>
<div class="news_event_loading_box">
<div class="box">
<div class="loader-item loader-<?php echo esc_attr( NEV\news_event_get_customizer_option( 'preloader_type' ) ); ?>"></div>
</div>
</div>
<?php
}
add_action( 'news_event_page_prepend_hook', 'news_event_loader_html', 1 );
endif;
if( ! function_exists( 'news_event_custom_header_html' ) ) :
/**
* Site custom header html
*
* @package News Event
* @since 1.0.0
*/
function news_event_custom_header_html() {
/**
* Get custom header markup
*
* @since 1.0.0
*/
the_custom_header_markup();
}
add_action( 'news_event_page_prepend_hook', 'news_event_custom_header_html', 20 );
endif;
if( ! function_exists( 'news_event_single_layout_part' ) ) :
/**
* Renders part of single layout including meta, title, thumb and category
*
* @since 1.0.0
*/
function news_event_single_layout_part() {
if( ! is_single() ) return;
$elementClass = 'entry-header';
$single_post_image_caption = NEV\news_event_get_customizer_option( 'single_post_image_caption' );
$single_post_show_original_image_option = NEV\news_event_get_customizer_option( 'single_post_show_original_image_option' );
?>
<header class="<?php echo esc_attr( $elementClass ); ?>">
<?php news_event_post_thumbnail( $single_post_show_original_image_option, $single_post_image_caption ); ?>
<div class="elements-wrapper">
<?php
news_event_get_post_categories( get_the_ID(), 2 );
the_title( '<h1 class="entry-title"' .news_event_schema_article_name_attributes(). '>', '</h1>' );
if ( 'post' === get_post_type() ) :
?>
<div class="entry-meta">
<?php
news_event_posted_by();
news_event_posted_on();
news_event_comments_number();
echo '<span class="read-time fas fa-clock">' .news_event_post_read_time( get_the_content() ). ' ' .esc_html__( 'mins', 'news-event' ). '</span>';
?>
</div><!-- .entry-meta -->
<?php
endif;
?>
</div>
</header><!-- .entry-header -->
<?php
}
endif;
if( ! function_exists( 'news_event_convert_number_to_numeric_string' )) :
/**
* Function to convert int parameter to numeric string
*
* @return string
*/
function news_event_convert_number_to_numeric_string( $int ) {
switch( $int ){
case 2:
return "two";
break;
case 3:
return "three";
break;
case 4:
return "four";
break;
case 5:
return "five";
break;
case 6:
return "six";
break;
case 7:
return "seven";
break;
case 8:
return "eight";
break;
case 9:
return "nine";
break;
case 10:
return "ten";
break;
default:
return "one";
}
}
endif;
if( ! function_exists( 'news_event_get_icon_control_html' ) ) :
/**
* Generates output for icon control
*
* @since 1.0.0
*/
function news_event_get_icon_control_html( $archive_date_icon ) {
if( $archive_date_icon['type'] == 'none' ) return;
switch( $archive_date_icon['type'] ) {
case 'svg' : $output = '<img src="' .esc_url( wp_get_attachment_url( $archive_date_icon['value'] ) ). '"/>';
break;
default: $output = '<i class="' .esc_attr( $archive_date_icon['value'] ). '"></i>';
}
return $output;
}
endif;