<?php

/**
 * Custom template tags for this theme.
 *
 * Eventually, some of the functionality here could be replaced by core features.
 *
 * @package Chic Lifestyle
 */



if (! function_exists('chic_lifestyle_posted_on')) :
	/**
	 * Prints HTML with meta information for the current post-date/time and author.
	 */
	function chic_lifestyle_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())
		);

		$posted_on = sprintf(
			esc_html_x('Posted on %s', 'post date', 'chic-lifestyle'),
			'<a href="' . esc_url(get_permalink()) . '" rel="bookmark">' . $time_string . '</a>'
		);

		$byline = sprintf(
			esc_html_x('by %s', 'post author', 'chic-lifestyle'),
			'<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="posted-on">' . $posted_on . '</span><span class="byline"> ' . $byline . '</span>'; // WPCS: XSS OK.

	}
endif;

if (! function_exists('chic_lifestyle_entry_footer')) :
	/**
	 * Prints HTML with meta information for the categories, tags and comments.
	 */
	function chic_lifestyle_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__(', ', 'chic-lifestyle'));
			if ($categories_list && chic_lifestyle_categorized_blog()) {
				printf('<span class="cat-links">' . esc_html__('Posted in %1$s', 'chic-lifestyle') . '</span>', $categories_list); // WPCS: XSS OK.
			}

			/* translators: used between list items, there is a space after the comma */
			$tags_list = get_the_tag_list('', esc_html__(', ', 'chic-lifestyle'));
			if ($tags_list) {
				printf('<span class="tags-links">' . esc_html__('Tagged %1$s', 'chic-lifestyle') . '</span>', $tags_list); // WPCS: XSS OK.
			}
		}

		if (! is_single() && ! post_password_required() && (comments_open() || get_comments_number())) {
			echo '<span class="comments-link">';
			comments_popup_link(esc_html__('Leave a comment', 'chic-lifestyle'), esc_html__('1 Comment', 'chic-lifestyle'), esc_html__('% Comments', 'chic-lifestyle'));
			echo '</span>';
		}

		edit_post_link(esc_html__('Edit', 'chic-lifestyle'), '<span class="edit-link">', '</span>');
	}
endif;



/**
 * Returns true if a blog has more than 1 category.
 *
 * @return bool
 */
function chic_lifestyle_categorized_blog()
{
	if (false === ($all_the_cool_cats = get_transient('chic_lifestyle_categories'))) {
		// Create an array of all the categories that are attached to posts.
		$all_the_cool_cats = get_categories(array(
			'fields'     => 'ids',
			'hide_empty' => 1,

			// We only need to know if there is more than one category.
			'number'     => 2,
		));

		// Count the number of categories that are attached to the posts.
		$all_the_cool_cats = count($all_the_cool_cats);

		set_transient('chic_lifestyle_categories', $all_the_cool_cats);
	}

	if ($all_the_cool_cats > 1) {
		// This blog has more than 1 category so chic_lifestyle_categorized_blog should return true.
		return true;
	} else {
		// This blog has only 1 category so chic_lifestyle_categorized_blog should return false.
		return false;
	}
}

/**
 * Flush out the transients used in chic_lifestyle_categorized_blog.
 */
function chic_lifestyle_category_transient_flusher()
{
	if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
		return;
	}
	// Like, beat it. Dig?
	delete_transient('chic_lifestyle_categories');
}
add_action('edit_category', 'chic_lifestyle_category_transient_flusher');
add_action('save_post',     'chic_lifestyle_category_transient_flusher');


if (! function_exists('chic_lifestyle_footer_widgets')) {
	function chic_lifestyle_footer_widgets()
	{
		$footer_layout = get_theme_mod('chic_lifestyle_footer_layout', 4);
		switch ($footer_layout) {
			case 4:
				$widget_width = 'col-md-3';
				break;
			case 3:
				$widget_width = 'col-md-4';
				break;
			case 2:
				$widget_width = 'col-md-6';
				break;
			case 1:
				$widget_width = 'col-md-12';
				break;
		} ?>
		<div id="footer-widgets" class="d-flex flex-row flex-wrap row mb-0 mb-md-48">
			<?php for ($i = 1; $i < ($footer_layout + 1); $i++) { ?>
				<div id="footer-widget-<?php echo $i; ?>" class="<?php echo $widget_width; ?> footer-col d-flex flex-column flex-shrink-0 mb-48 mb-md-0 col-12 col-sm-6 col-md-3">
					<?php dynamic_sidebar('footer-' . $i); ?>
				</div>
			<?php } ?>
		</div>
<?php
	}
}

/**
 * Retrieve the sidebar layout for the current post or page.
 */
if ( ! function_exists( 'chic_lifestyle_get_sidebar_layout' ) ) {
	function chic_lifestyle_get_sidebar_layout( $post_id = null ) {
	    // Get ID from global post if no $post_id is provided
	    if ( ! $post_id ) {
        global $post;
        if ( ! $post ) {
          return 'no-sidebar';
        }
        $post_id = $post->ID;
        if ( $parent_id = wp_is_post_revision( $post_id ) ) {
		      $post_id = $parent_id;
		    }
	    }
	    // Handle blog page
	    if ( is_home() ) {
        return get_theme_mod( 'chic_lifestyle_blog_layout', 'no-sidebar' );
	    }
	    // Handle search page
      if ( is_search() ) {
        return get_theme_mod( 'chic_lifestyle_page_layout', 'no-sidebar' );
      }
      // Handle archive page
      if ( is_archive() ) {
        return get_theme_mod( 'chic_lifestyle_page_layout', 'no-sidebar' );
      }
	    

	    // Get the meta value (make sure you use the same key as registered).
	    $meta_layout = get_post_meta( $post_id, 'chic_lifestyle_sidebar_layout', true );

	    // If meta value is not empty, use it.
	    if ( $meta_layout && $meta_layout !== '' ) {
	      return $meta_layout;
	    }

	    // Fallback to Customizer setting based on post type
	    $post_type = get_post_type( $post_id );
	    if ( 'page' === $post_type ) {
	  		return get_theme_mod( 'chic_lifestyle_page_layout', 'no-sidebar' );
	    } elseif ( 'post' === $post_type ) {
	      return get_theme_mod( 'chic_lifestyle_post_layout', 'no-sidebar' );
	    }

	    // Default fallback.
	    return 'no-sidebar';
	}
}