<?php
/**
 * Aldine Filters
 *
 * @package Aldine
 */

namespace Aldine\Filters;

/**
 * Adds custom classes to the array of body classes.
 *
 * @see https://github.com/roots/sage/blob/master/app/filters.php
 *
 * @param array $classes Classes for the body element.
 * @return array
 */
function body_classes( array $classes ) {
	/** Add page slug if it doesn't exist */
	if ( is_single() || is_page() && ! is_front_page() ) {
		if ( ! in_array( basename( get_permalink() ), $classes, true ) ) {
			$classes[] = basename( get_permalink() );
		}
	}

	/** Clean up class names for custom templates */
	$classes = array_map( function ( $class ) {
		return preg_replace( [ '/-php$/', '/^page-template-/' ], '', $class );
	}, $classes);

	return array_filter( $classes );
}

/**
 * Customize excerpt.
 *
 * @return string
 */
function excerpt_more() {
	return ' &hellip; <a href="' . get_permalink() . '">' . __( 'Continued', 'pressbooks-aldine' ) . '</a>';
}

/**
 * Add things to the menu.
 *
 * @param string $items
 * @param object $args
 * @return string
 */

function adjust_menu( $items, $args ) {
	if ( $args->theme_location === 'primary-menu' ) {
		if ( ! is_front_page() ) {
			$items = sprintf(
				'<li><a href="%1$s">%2$s</a></li>',
				'/',
				__( 'Home', 'pressbooks-aldine' )
			) . $items;
		}
		if ( get_option( 'pb_network_contact_form' ) ) {
			$items .= sprintf(
				'<li><a href="%1$s">%2$s</a></li>',
				'#contact',
				__( 'Contact', 'pressbooks-aldine' )
			);
		}
		if ( ! is_user_logged_in() ) {
			$items .= sprintf(
				'<li><a href="%1$s">%2$s</a></li>',
				wp_login_url( get_permalink() ),
				__( 'Sign in', 'pressbooks-aldine' )
			);
			if ( in_array( get_site_option( 'registration' ), [ 'user', 'all' ], true ) ) {
				$items .= sprintf(
					'<li><a href="%1$s">%2$s</a></li>',
					network_home_url( '/wp-signup.php' ),
					__( 'Sign up', 'pressbooks-aldine' )
				);
			}
		} else {
			if ( is_super_admin() || is_user_member_of_blog() ) {
				$items .= sprintf(
					'<li><a href="%1$s">%2$s</a></li>',
					admin_url(),
					__( 'Admin', 'pressbooks-aldine' )
				);
			}
			$items .= sprintf(
				'<li><a href="%1$s">%2$s</a></li>',
				wp_logout_url( get_permalink() ),
				__( 'Sign out', 'pressbooks-aldine' )
			);
		}
		/* @codingStandardsIgnoreStart $items .= sprintf(
			'<li class="header__search js-search"><a class="icon icon-search js-toggle-search"></a><div class="header__search__form">%s</div></li>',
			get_search_form( false )
		); @codingStandardsIgnoreEnd */
	}

	return $items;
}