<?php

/**
 * Remove recent comments style
 */
function flatsome_remove_recent_comments_style() {
	add_filter( 'show_recent_comments_widget_style', '__return_false' );
}

add_action( 'widgets_init', 'flatsome_remove_recent_comments_style' );

/**
 * Apply custom post excerpt suffix based on user setting.
 */
function flatsome_excerpt_suffix() {
	return get_theme_mod( 'blog_excerpt_suffix', ' [...]' );
}
add_filter( 'excerpt_more', 'flatsome_excerpt_suffix' );


// Blog Article Classes
function flatsome_blog_article_classes() {
	$classes = array();
	if ( get_theme_mod( 'blog_posts_depth', 0 ) ) $classes[]       = 'has-shadow box-shadow-' . get_theme_mod( 'blog_posts_depth', 0 );
	if ( get_theme_mod( 'blog_posts_depth_hover', 0 ) ) $classes[] = 'box-shadow-' . get_theme_mod( 'blog_posts_depth_hover', 0 ) . '-hover';
	if ( ! empty( $classes ) ) echo implode( ' ', $classes );
}

// Add Custom Blog Header
function flatsome_custom_blog_header() {
	if ( get_theme_mod( 'blog_header' ) && is_home() ) {
		echo '<div class="blog-header-wrapper">' . do_shortcode( get_theme_mod( 'blog_header' ) ) . '</div>';
	}
}
add_action( 'flatsome_after_header', 'flatsome_custom_blog_header', 10 );

// Add transparent headers
function flatsome_blog_header_classes( $classes ) {
	// Add transparent header to product page if set.
	if ( is_singular( 'post' ) && get_theme_mod( 'blog_single_transparent', 0 ) ) {
		$classes[] = 'transparent has-transparent nav-dark toggle-nav-dark';
	}
	if ( get_theme_mod( 'blog_archive_transparent', 0 ) && is_home() ) {
		$classes[] = 'transparent has-transparent nav-dark toggle-nav-dark';
	}
	return $classes;
}

add_filter( 'flatsome_header_class', 'flatsome_blog_header_classes', 10 );


// Add Big blog header
function flatsome_single_page_header(){
  if(is_singular('post') && get_theme_mod('blog_post_style') == 'top'){
	   get_template_part( 'template-parts/posts/partials/single-featured', get_theme_mod('blog_post_style'));
	}
}
add_action('flatsome_after_header','flatsome_single_page_header', 10);


// Add Blog Archive title
function flatsome_archive_title() {
	if ( get_theme_mod( 'blog_archive_title', 1 ) && ( is_archive() || is_search() ) ) {
		get_template_part( 'template-parts/posts/partials/archive-title' );
	}
}
add_action( 'flatsome_before_blog', 'flatsome_archive_title', 15 );


// Remove the Auto scrolling if a Read more link is clicked
function flatsome_remove_more_link_scroll( $link ) {
	$link = preg_replace( '|#more-[0-9]+|', '', $link );
	return $link;
}
add_filter( 'the_content_more_link', 'flatsome_remove_more_link_scroll' );

// Add HTML after blog posts
function flatsome_before_blog_comments(){
    if(get_theme_mod('blog_after_post')){
        echo '<div class="html-before-comments mb">'.do_shortcode(get_theme_mod('blog_after_post')).'</div>';
    }
}
add_action('flatsome_before_comments','flatsome_before_blog_comments');

// Add button class to read more link
if( ! function_exists('flatsome_add_morelink_class') ) {
  function flatsome_add_morelink_class( $link, $text ) {
      return str_replace(
           'more-link'
          ,'more-link button primary smaller is-outline'
          ,$link
      );
  }
}
add_action( 'the_content_more_link', 'flatsome_add_morelink_class', 10, 2 );


/**
 * Display navigation to next/previous pages when applicable
 */
if ( ! function_exists( 'flatsome_content_nav' ) ) :

function flatsome_content_nav( $nav_id ) {
    global $wp_query, $post;

    // Don't print empty markup on single pages if there's nowhere to navigate.
    if ( is_single() ) {
        $previous = ( is_attachment() ) ? get_post( $post->post_parent ) : get_adjacent_post( false, '', true );
        $next = get_adjacent_post( false, '', false );

        if ( ! $next && ! $previous )
            return;
    }

    // Don't print empty markup in archives if there's only one page.
    if ( $wp_query->max_num_pages < 2 && ( is_home() || is_archive() || is_search() ) )
        return;

    $nav_class = ( is_single() ) ? 'navigation-post' : 'navigation-paging';

    ?>
    <?php if ( is_single() ) : // navigation links for single posts ?>
    <nav role="navigation" id="<?php echo esc_attr( $nav_id ); ?>" class="<?php echo $nav_class; ?>">
	<div class="flex-row next-prev-nav bt bb">
		<div class="flex-col flex-grow nav-prev text-left">
			    <?php previous_post_link( '<div class="nav-previous">%link</div>','<span class="hide-for-small">' .get_flatsome_icon('icon-angle-left') . _x( '', 'Previous post link', 'flatsome' ) . '</span> %title' ); ?>

		</div>
		<div class="flex-col flex-grow nav-next text-right">
			    <?php next_post_link( '<div class="nav-next">%link</div>', '%title <span class="hide-for-small">'. get_flatsome_icon('icon-angle-right') . _x( '', 'Next post link', 'flatsome' ) . '</span>' ); ?>
		</div>
	</div>

	<?php elseif ( $wp_query->max_num_pages > 1 && ( is_home() || is_archive() || is_search() ) ) : // navigation links for home, archive, and search pages ?>

	<div class="flex-row">
		<div class="flex-col flex-grow">
   <?php if ( get_next_posts_link() ) : ?>
        <div class="nav-previous"><?php next_posts_link( __( '<span class="icon-angle-left"></span> Older posts', 'flatsome' ) ); ?></div>
        <?php endif; ?>
		</div>
		<div class="flex-col flex-grow">
		  <?php if ( get_previous_posts_link() ) : ?>
		     <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="icon-angle-right"></span>', 'flatsome' ) ); ?></div>
		 <?php endif; ?>		</div>
	</div>
	<?php endif; ?>
    </nav>

    <?php
}
endif; // flatsome_content_nav


if ( ! function_exists( 'flatsome_comment' ) ) :
/**
 * Template for comments and pingbacks.
 *
 * Used as a callback by wp_list_comments() for displaying the comments.
 */
function flatsome_comment( $comment, $args, $depth ) {
	$GLOBALS['comment'] = $comment;
	switch ( $comment->comment_type ) :
		case 'pingback' :
		case 'trackback' :
	?>
	<li class="post pingback">
		<p><?php _e( 'Pingback:', 'flatsome' ); ?> <?php comment_author_link(); ?><?php edit_comment_link( __( 'Edit', 'flatsome' ), '<span class="edit-link">', '<span>' ); ?></p>
	<?php
			break;
		default :
	?>
	<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
		<article id="comment-<?php comment_ID(); ?>" class="comment-inner">

            <div class="flex-row align-top">
                <div class="flex-col">
                    <div class="comment-author mr-half">
                        <?php echo get_avatar( $comment, 70 ); ?>
                    </div>
                </div>

                <div class="flex-col flex-grow">
                    <?php printf( __( '%s <span class="says">says:</span>', 'flatsome' ), sprintf( '<cite class="strong fn">%s</cite>', get_comment_author_link() ) ); ?>
                    <?php if ( $comment->comment_approved == '0' ) : ?>
                    <em><?php _e( 'Your comment is awaiting moderation.', 'flatsome' ); ?></em>
                     <br />
                    <?php endif; ?>

                   <div class="comment-content"><?php comment_text(); ?></div>


                 <div class="comment-meta commentmetadata uppercase is-xsmall clear">
                    <a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>"><time datetime="<?php comment_time( 'c' ); ?>" class="pull-left">
                    <?php printf( _x( '%1$s at %2$s', '1: date, 2: time', 'flatsome' ), get_comment_date(), get_comment_time() ); ?>
                    </time></a>
                    <?php edit_comment_link( __( 'Edit', 'flatsome' ), '<span class="edit-link ml-half strong">', '<span>' ); ?>

                        <div class="reply pull-right">
                            <?php
                                comment_reply_link( array_merge( $args,array(
                                    'depth'     => $depth,
                                    'max_depth' => $args['max_depth'],
                                ) ) );
                            ?>
                        </div>
                </div>

                </div>
            </div>
		</article>
	<?php
			break;
	endswitch;
}
endif; // ends check for flatsome_comment()

if ( ! function_exists( 'flatsome_posted_on' ) ) :

	// Prints HTML with meta information for the current post-date/time and author.
	function flatsome_posted_on() {
		$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
		if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
			$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
		}

		$time_string = sprintf( $time_string,
			esc_attr( get_the_date( 'c' ) ),
			esc_html( get_the_date() ),
			esc_attr( get_the_modified_date( 'c' ) ),
			esc_html( get_the_modified_date() )
		);

		echo sprintf(
			/* translators: %1$s: post date, %2$s: post author */
			wp_kses_post( _x( '<span class="posted-on">Posted on %1$s</span> <span class="byline">by %2$s</span>', 'post date by post author', 'flatsome' ) ),
			'<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>', // phpcs:ignore WordPress.Security.EscapeOutput
			'<span class="meta-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>'
		);
	}
endif;

function flatsome_featured_sticky_posts( $query ) {
	if ( get_theme_mod( 'blog_featured', '' ) && $query->is_home() && $query->is_main_query() ) {
		$query->set( 'ignore_sticky_posts', 1 );
		if ( get_theme_mod( 'blog_hide_sticky', 0 ) ) $query->set( 'post__not_in', get_option( 'sticky_posts' ) );
	}
}
add_action( 'pre_get_posts', 'flatsome_featured_sticky_posts' );


// Filter in a link to a content ID attribute for the next/previous image links on image attachment pages
function flatsome_enhanced_image_navigation( $url, $id ) {
  if ( ! is_attachment() && ! wp_attachment_is_image( $id ) )
    return $url;

  $image = get_post( $id );
  if ( ! empty( $image->post_parent ) && $image->post_parent != $id )
    $url .= '#main';

  return $url;
}
add_filter( 'attachment_link', 'flatsome_enhanced_image_navigation', 10, 2 );


// Numbered Pagination
if ( !function_exists( 'flatsome_posts_pagination' ) ) {

    function  flatsome_posts_pagination() {

        $prev_arrow = is_rtl() ? get_flatsome_icon('icon-angle-right') : get_flatsome_icon('icon-angle-left');
        $next_arrow = is_rtl() ? get_flatsome_icon('icon-angle-left') : get_flatsome_icon('icon-angle-right');

        global $wp_query;
        $total = $wp_query->max_num_pages;
        $big = 999999999; // need an unlikely integer
        if( $total > 1 )  {

             if( !$current_page = get_query_var('paged') )
                 $current_page = 1;
             if( get_option('permalink_structure') ) {
                 $format = 'page/%#%/';
             } else {
                 $format = '&paged=%#%';
             }
            $pages = paginate_links(array(
                'base'          => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
                'format'        => $format,
                'current'       => max( 1, get_query_var('paged') ),
                'total'         => $total,
                'mid_size'      => 3,
                'type'          => 'array',
                'prev_text'     => $prev_arrow,
                'next_text'     => $next_arrow,
             ) );

            if( is_array( $pages ) ) {
                $paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
                echo '<ul class="page-numbers nav-pagination links text-center">';
                foreach ( $pages as $page ) {
					$page = str_replace("page-numbers","page-number",$page);
					$page = str_replace( '<a class="next page-number', '<a aria-label="' . esc_attr__( 'Next', 'flatsome' ) . '" class="next page-number', $page );
					$page = str_replace( '<a class="prev page-number', '<a aria-label="' . esc_attr__( 'Previous', 'flatsome' ) . '" class="prev page-number', $page );
					echo "<li>$page</li>";
                }
               echo '</ul>';
            }
        }
    }

}
