This topic has 27 replies, 2 voices, and was last updated 7 years by KyndFellow.

  • Author
  • #177358
     KyndFellow
    Participant

    I was editing  wp-content/themes/sweetdate-child and now can’t log in.

    I was tried apply https://bbpress.org/forums/topic/removing-buttons-from-html-toolbar/

     

    #177364
     KyndFellow
    Participant

    admin login credentials:

    KyndFellow
    gogo2062

    standard user login credential

    KyndFellow
    gogo2062

    Marilyn
    gogo2062

    #177365
     KyndFellow
    Participant

    I edited here when the problem occurred:

    WP Admin > Appearance > Editor > SweetDate Child > functions.php

    sweetdate-child/fuctions.php

    #177366
     KyndFellow
    Participant

    NFdates.com/wp-content/themes/sweetdate-child/fuctions.php

    #177367
     KyndFellow
    Participant

    After the problem occurred I re-installed the sweetdate-child theme by FTP, and get this when I login as admin:

    http://nfdates.com/wp-login.php?redirect_to=http%3A%2F%2Fnfdates.com%2Fwp-admin%2F&reauth=1

    With this message:

    Warning: Cannot modify header information – headers already sent by (output started at /home4/knodel/public_html/NFdates.com/wp-content/themes/sweetdate-child/functions.php:74) in /home4/knodel/public_html/NFdates.com/wp-login.php on line 396

    Warning: Cannot modify header information – headers already sent by (output started at /home4/knodel/public_html/NFdates.com/wp-content/themes/sweetdate-child/functions.php:74) in /home4/knodel/public_html/NFdates.com/wp-login.php on line 409

    Warning: Cannot modify header information – headers already sent by (output started at /home4/knodel/public_html/NFdates.com/wp-content/themes/sweetdate-child/functions.php:74) in /home4/knodel/public_html/NFdates.com/wp-includes/pluggable.php on line 914

    Warning: Cannot modify header information – headers already sent by (output started at /home4/knodel/public_html/NFdates.com/wp-content/themes/sweetdate-child/functions.php:74) in /home4/knodel/public_html/NFdates.com/wp-includes/pluggable.php on line 915

    Warning: Cannot modify header information – headers already sent by (output started at /home4/knodel/public_html/NFdates.com/wp-content/themes/sweetdate-child/functions.php:74) in /home4/knodel/public_html/NFdates.com/wp-includes/pluggable.php on line 916

    Warning: Cannot modify header information – headers already sent by (output started at /home4/knodel/public_html/NFdates.com/wp-content/themes/sweetdate-child/functions.php:74) in /home4/knodel/public_html/NFdates.com/wp-includes/pluggable.php on line 1210

    #177403
     Kieran_SQ
    Moderator

    Hi,

    I have looked at your site and there appears to be a lot of files in your child theme, can you confirm that you uploaded the contents of your child theme backup into the child theme and not the contents of the main theme into the child theme.

    Side note: You should consider developing your site further on a staging site or on localhost (https://www.apachefriends.org). This will stop your live site going down if you use code that does not work. If in future you add code to functions.php that does not work and causes your site to go offline you do not need to restore a backup, you can login via FTP and edit the file directly to remove the snippet you pasted in.

    Thanks,

    Kieran.

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

    #177468
     KyndFellow
    Participant

    Thank you for replying over the weekend.

    Yes, I thought reinstalled the child theme, and didn’t mix the main theme with the child theme.

    The main part I wanted to replace was the functions.php file that caused the problem after I edited it.

    #177478
     KyndFellow
    Participant

    I think I found the problem with the extra files you mentioned. There is a sweetdate folder INSIDE of my child theme folder.

    Please be careful to preserve all the CSS Ive added when trying to resolved this. Please try to fix it. I don’t want to make it any worse myself.

    Attachments:
    You must be logged in to view attached files.
    #177529
     Kieran_SQ
    Moderator

    Hi,

    I do not have FTP access to make any changes to that folder so I am unable to check it out or remove it. Can you let me know what the contents of the folder are (if it’s lots of files I do not need a list, a screenshot will be fine) and what the folder size is please.

    Thanks

    Kieran.

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

    #177597
     KyndFellow
    Participant

    I deleted the Sweetdate folder inside of my child theme, and that didn’t fix the problem. I’ll send you screenshots of the error and my changes. What should we do next?

    Attachments:
    You must be logged in to view attached files.
    #177619
     KyndFellow
    Participant

    I was editing the fuctions.php file in the main sweetdate theme, not the child, when this problem started. Can you check my php here and tell me is this causing the problem. Especially look at the bottom:

    COPY CODE
    -----------------------------------------------
    
    <?php
    /**
     * @package WordPress
     * @subpackage Sweetdate
     * @author SeventhQueen <themesupport@seventhqueen.com>
     * @since Sweetdate 1.0
     */
    global $kleo_config;
    $kleo_config['image_sizes'] = array('blog_carousel' => array('width' => 310, 'height' => 177));
    
    // Profile fields to show on members loop, below the name
    $kleo_config['bp_members_loop_meta'] = array(
        'I am a',
        'Marital status',
        'City'
    );
    //From which profile field to show member details on members directory page
    $kleo_config['bp_members_details_field'] = 'About me';
    
    /* 
     * Arrays with compatibility match fields. Customize these fields to change the match score
     */
    $kleo_config['matching_fields']['starting_score'] = 1;
    //If we want to match by members sex. values: 0|1
    $kleo_config['matching_fields']['sex_match'] = 1;
    $kleo_config['matching_fields']['sex'] = 'I am a';
    $kleo_config['matching_fields']['looking_for'] = 'Looking for a';
    $kleo_config['matching_fields']['sex_percentage'] = 49;
    $kleo_config['matching_fields']['sex_mandatory'] = 1;
    
    //single value fields like select, textbox,radio
    $kleo_config['matching_fields']['single_value'] = array (
        'Marital status' => 20,
        'Country' => 10
    );
    //multiple values fields like multiple select or checkbox
    $kleo_config['matching_fields']['multiple_values'] = array (
        'Interests' => 10,
        'Looking for' => 10,
    );
    
    /* Include theme constants */
    require_once(get_template_directory() . '/framework/constants.php');
    
    /* Include our Framework logic */
    require_once(FRAMEWORK_PATH . '/load.php');
    
    if ( ! isset( $content_width ) )
    	$content_width = 980;
    
    /**
     * Sets up theme defaults and registers the various WordPress features
     *
     * @uses load_theme_textdomain() For translation/localization support.
     * @uses add_editor_style() To add a Visual Editor stylesheet.
     * @uses add_theme_support() To add support for post thumbnails, automatic feed links,
     * 	custom background, and post formats.
     * @uses register_nav_menu() To add support for navigation menus.
     * @uses set_post_thumbnail_size() To set a custom post thumbnail size.
     *
     * @since Sweetdate 1.0
     */
    function sweetdate_setup() {
        global $kleo_config;
    	/*
    	 * Makes Sweetdate available for translation.
    	 * Translations can be added to the /languages/ directory.
    	 */
    	load_theme_textdomain( 'kleo_framework', get_template_directory() . '/languages' );
    
    	// This theme styles the visual editor with editor-style.css to match the theme style.
    	add_editor_style();
    
    	// Adds RSS feed links to <head> for posts and comments.
    	add_theme_support( 'automatic-feed-links' );
    
    	// This theme supports a variety of post formats.
    	add_theme_support( 'structured-post-formats', array('link', 'video') );
    	add_theme_support( 'post-formats', array('aside', 'audio', 'gallery', 'image', 'quote', 'status','link', 'video') );
            
    	add_theme_support('buddypress');
    	add_theme_support( 'bbpress' );
    	add_theme_support( 'woocommerce' );
    
    	add_theme_support( 'title-tag' );
    
    	// This theme uses wp_nav_menu() in one location.
    	register_nav_menu( 'primary', __( 'Primary Menu', 'kleo_framework' ) );
    
    	// This theme uses a custom image size for featured images, displayed on "standard" posts.
    	add_theme_support( 'post-thumbnails' );
    	set_post_thumbnail_size( 938, 9999 ); // Unlimited height, soft crop 
        add_image_size( 'blog_carousel', $kleo_config['image_sizes']['blog_carousel']['width'], $kleo_config['image_sizes']['blog_carousel']['height'], true ); // hard crop for articles carousel
    }
    add_action( 'after_setup_theme', 'sweetdate_setup', 8 );
    
    if ( ! function_exists( '_wp_render_title_tag' ) ) {
    	function kleo_slug_render_title() {
    		?>
    		<title><?php wp_title( '|', true, 'right' ); ?></title>
    		<?php
    	}
    	add_action( 'wp_head', 'kleo_slug_render_title' );
    }
    
    /* Load the framework functions. */
    add_action( 'after_setup_theme', 'kleo_framework_functions', 9 );
    
    /**
     * Adds theme functionalities
     */
    function kleo_framework_functions() {
    
    	/* Include Buddypress functions */
    	if (function_exists( 'bp_is_active' ))
    	{
    		locate_template('custom_buddypress/bp-functions.php', true);
    	}
    
    	/* Include Woocommerce functions */
    	if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) )
    	{
    		locate_template( 'functions-woocommerce.php', true );
    	}
    
    	/* Paid memberships pro integration */
    	if (function_exists( 'pmpro_url' ))
    	{
    		locate_template('functions-pmpro.php', true);
    	}
    
    	/* Include our custom shortcodes for this theme */
    	locate_template('functions-shortcodes.php', true);
    }
    
    if ( ! function_exists( '_wp_render_title_tag' ) ) {
    	function kleo_slug_render_title() {
    		?>
    		<title><?php wp_title( '|', true, 'right' ); ?></title>
    		<?php
    	}
    	add_action( 'wp_head', 'kleo_slug_render_title' );
    }
    
    if ( ! function_exists( 'sweetdate_wp_title' )) {
    	/**
    	 * Creates a nicely formatted and more specific title element text
    	 * for output in head of document, based on current view.
    	 *
    	 * @since Kleo Framework 1.0
    	 *
    	 * @param string $title Default title text for current view.
    	 * @param string $sep Optional separator.
    	 * @return string Filtered title.
    	 */
    	function sweetdate_wp_title( $title, $sep ) {
    		global $paged, $page;
    
    		if ( is_feed() ) {
    			return $title;
    		}
    		// Add the site name.
    		$title .= get_bloginfo('name');
    
    		// Add the site description for the home/front page.
    		$site_description = get_bloginfo('description', 'display');
    		if ($site_description && (is_home() || is_front_page())) {
    			$title = "$title $sep $site_description";
    		}
    		// Add a page number if necessary.
    		if ($paged >= 2 || $page >= 2) {
    			$title = "$title $sep " . sprintf(__('Page %s', 'kleo_framework'), max($paged, $page));
    		}
    
    		return $title;
    	}
    
    	if ( ! function_exists( '_wp_render_title_tag' ) ) {
    		add_filter( 'wp_title', 'sweetdate_wp_title', 10, 2 );
    	}
    }
    
    if ( !function_exists( 'sweetdate_main_nav' ) ) :
    /**
     * wp_nav_menu() callback from the main navigation in header.php
     *
     * Used when the custom menus haven't been configured.
     *
     * @param array Menu arguments from wp_nav_menu()
     * @see wp_nav_menu()
     * @since BuddyPress (1.5)
     */
    function sweetdate_main_nav( $args ) {
    	$pages_args = array(
    		'depth'      => 0,
    		'echo'       => false,
    		'exclude'    => '',
    		'title_li'   => ''
    	);
    	$menu = wp_page_menu( $pages_args );
    	$menu = str_replace( array( '<div class="menu"><ul>', '</ul></div>' ), array( '<ul class="right"><li><a href="'.get_bloginfo('url').'"><i class="icon-home"></i> '.__("HOME", 'kleo_framework').'</a></li>', '</ul>' ), $menu );
    	echo $menu;
    
    	do_action( 'bp_nav_items' );
    }
    endif;
    
    //------------------------------------------------------------------------------
    
    /**
     * Modify some elements for the menu
     */
    if (!class_exists('sweetdate_walker_nav_menu')): 
    class sweetdate_walker_nav_menu extends Walker_Nav_Menu {
    
        // add classes to ul sub-menus
        function start_lvl( &$output, $depth = 0, $args = array() ) {
            // depth dependent classes
            $indent = ( $depth > 0  ? str_repeat( "\t", $depth ) : '' ); // code indent
            $display_depth = ( $depth + 1); // because it counts the first submenu as 0
            $classes = array(
                'dropdown'
                );
            $class_names = implode( ' ', $classes );
    
            // build html
            $output .= "\n" . $indent . '<ul class="' . $class_names . '">' . "\n";
        }
    
        function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output )
        {
            $id_field = $this->db_fields['id'];
            if ( is_object( $args[0] ) ) {
                $args[0]->has_children = ! empty( $children_elements[$element->$id_field] );
            }
            return parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
        }
        
     
        
        // add main/sub classes to li's and links
         function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
            global $wp_query;
            $indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' ); // code indent
    
            // depth dependent classes
            $depth_classes = array(
                ( $depth == 0 ? 'main-menu-item' : 'sub-menu-item' ),
                ( $depth >=2 ? 'sub-sub-menu-item' : '' ),
                ( $depth % 2 ? 'menu-item-odd' : 'menu-item-even' ),
                'menu-item-depth-' . $depth
            );
            $depth_class_names = esc_attr( implode( ' ', $depth_classes ) );
    
            // passed classes
            $classes = empty( $item->classes ) ? array() : (array) $item->classes;
            $class_names = esc_attr( implode( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ) );
    
            // build html
            //$output .= $indent . '<li id="nav-menu-item-'. $item->ID . '" class="' . $depth_class_names . ' ' . $class_names . '">';
            $output .= $indent . '<li id="nav-menu-item-'. $item->ID . '" '.($args->has_children > 0 ?'class="has-dropdown"': '').'>';
            
            // link attributes
            $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
            $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
            $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
            $attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';
            $attributes .= ' class="' . $class_names . ( $depth > 0 ? ' sub-menu-link' : ' main-menu-link' ) . '"';
            
            if ($args->has_children) {
                $item_output = sprintf( '%1$s<a%2$s>%3$s%4$s%5$s</a>%6$s',
                    $args->before,
                    $attributes,
                    $args->link_before,
                    apply_filters( 'the_title', $item->title, $item->ID ),
                    $args->link_after,
                    $args->after
                );
            }
            else {
                $item_output = sprintf( '%1$s<a%2$s>%3$s%4$s%5$s</a>%6$s',
                   $args->before,
                   $attributes,
                   $args->link_before,
                   apply_filters( 'the_title', $item->title, $item->ID ),
                   $args->link_after,
                   $args->after
               );           
            }
            // build html
            $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
        }
    }
    endif;
    //------------------------------------------------------------------------------
    
    if (!function_exists('sweetdate_widgets_init')):
    /**
     * Registers our main widget area and the front page widget areas.
     *
     * @since Twenty Twelve 1.0
     */
    function sweetdate_widgets_init() {
    	register_sidebar( array(
    		'name' => __( 'Main Sidebar', 'kleo_framework' ),
    		'id' => 'sidebar-1',
    		'description' => __( 'Default sidebar', 'kleo_framework' ),
    		'before_widget' => '<div class="widgets clearfix %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h5>',
    		'after_title' => '</h5>',
    	) );
    	register_sidebar(array(
    		'name' => 'Footer Widget 1',
            'id' => 'footer-1',
    		'before_widget' => '<div class="widgets clearfix %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h5>',
    		'after_title' => '</h5>',
    	));
    
    	register_sidebar(array(
    		'name' => 'Footer Widget 2',
            'id' => 'footer-2',
    		'before_widget' => '<div class="widgets clearfix %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h5>',
    		'after_title' => '</h5>',
    	));
    
    	register_sidebar(array(
    		'name' => 'Footer Widget 3',
            'id' => 'footer-3',
    		'before_widget' => '<div class="widgets clearfix %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h5>',
    		'after_title' => '</h5>',
    	));
    
    	register_sidebar(array(
    		'name' => 'Footer Widget 4',
            'id' => 'footer-4',
    		'before_widget' => '<div class="widgets clearfix %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h5>',
    		'after_title' => '</h5>',
    	));
            
    	register_sidebar(array(
    		'name' => 'Footer Level 1 - Widget 1',
            'id' => 'footer-level1-1',
    		'before_widget' => '<div class="widgets clearfix %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h5>',
    		'after_title' => '</h5>',
    	));
               
    	register_sidebar(array(
    		'name' => 'Footer Level 1 - Widget 2',
            'id' => 'footer-level1-2',
    		'before_widget' => '<div class="widgets clearfix %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h5>',
    		'after_title' => '</h5>',
    	));
            
    	register_sidebar(array(
    		'name' => 'Footer Level 2',
            'id' => 'footer-level-2',
    		'before_widget' => '<div class="widgets clearfix %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h5>',
    		'after_title' => '</h5>',
    	));
        register_sidebar(array(
             'name' => 'Shop Sidebar',
             'id' => 'shop-1',
             'before_widget' => '<div class="widgets clearfix %2$s">',
             'after_widget' => '</div>',
             'before_title' => '<h5>',
             'after_title' => '</h5>',
         ));
        register_sidebar(array(
             'name' => 'Extra - for 3 columns pages',
             'id' => 'extra',
             'before_widget' => '<div class="widgets clearfix %2$s">',
             'after_widget' => '</div>',
             'before_title' => '<h5>',
             'after_title' => '</h5>',
         ));
    
    }
    endif;
    
    add_action( 'widgets_init', 'sweetdate_widgets_init' );
    
    //------------------------------------------------------------------------------
    
    /***************************************************
    :: ADMIN CSS
     ***************************************************/
    function kleo_admin_styles() {
        wp_register_style("kleo-admin", FRAMEWORK_HTTP . "/inc/kleo-admin.css", array(), "1.0", "all");
        wp_enqueue_style( 'kleo-admin' );
    }
    add_action( 'admin_enqueue_scripts', 'kleo_admin_styles' );
    
    if ( ! function_exists( 'sweetdate_comment' ) ) :
    /**
     * Template for comments and pingbacks.
     *
     * To override this walker in a child theme without modifying the comments template
     * simply create your own sweetdate_comment(), and that function will be used instead.
     *
     * Used as a callback by wp_list_comments() for displaying the comments.
     *
     * @since Sweetdate 1.0
     */
    function sweetdate_comment( $comment, $args, $depth ) {
    	$GLOBALS['comment'] = $comment;
    	switch ( $comment->comment_type ) :
    		case 'pingback' :
    		case 'trackback' :
    		// Display trackbacks differently than normal comments.
    	?>
    	<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
    		<p><?php _e( 'Pingback:', 'kleo_framework' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)', 'kleo_framework' ), '<span class="edit-link">', '</span>' ); ?></p>
    	<?php
    			break;
    		default :
    		// Proceed with normal comments.
    		global $post;
    	?>
    	<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
    		
    
                <?php
                echo '<div class="avatar">'.get_avatar( $comment, 94 ).'</div>';
                echo '<div class="comment-meta"><h5 class="author">'.get_comment_author_link().'</h5>';
                echo '<p class="date">'.sprintf( __( '%1$s at %2$s', 'kleo_framework' ), get_comment_date(), get_comment_time() ).'</p></div>';
                ?>
                <div class="comment-body">
                    <?php comment_text(); ?>
                    <?php edit_comment_link( __( 'Edit', 'kleo_framework' ), '<p class="edit-link">', '</p>' ); ?>
                </div>
    
                <div class="reply">
                        <?php comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Reply', 'kleo_framework' ), 'after' => ' <span>&darr;</span>', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
                </div><!-- .reply -->
                <?php if ( '0' == $comment->comment_approved ) : ?>
                        <p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'kleo_framework' ); ?></p>
                <?php endif; ?>
    		
    	<?php
    		break;
    	endswitch; // end comment_type check
    }
    endif;
    
    //------------------------------------------------------------------------------
    
    /**
     * Customize comment reply form 
     * 
     */
    add_filter('comment_form_default_fields', 'kleo_comment_field_changes');
    if (!function_exists('kleo_comment_field_changes')):
    function kleo_comment_field_changes($arg) {
    
        $commenter = wp_get_current_commenter();
        $user = wp_get_current_user();
        $user_identity = $user->exists() ? $user->display_name : '';
    
        $req = get_option( 'require_name_email' );
        $aria_req = ( $req ? " aria-required='true'" : '' );
        
        $arg['author'] = '<div class="row"><div class="six columns">' . '<label for="author">' . __( 'Name', 'kleo_framework' ) . ( $req ? ' <span class="required"> ('.__("required", 'kleo_framework').')</span>' : '' ) . '</label> ' .
                        '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . ( $req ? ' required' : '' ) . '></div>';
    
        $arg['email']  = '<div class="six columns"><label for="email">' . __( 'Email', 'kleo_framework' ) . ( $req ? ' <span class="required"> ('.__("required", 'kleo_framework').')</span>' : '' ) . '</label> ' .
                        '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . ( $req ? ' required' : '' ) . '></div></div>';
        $arg['url'] = '';
        return $arg;
    }
    endif;
    
    add_filter('comment_form_defaults', 'kleo_comment_changes');
    if(!function_exists('kleo_comment_changes')):
    function kleo_comment_changes($arg) {
        $arg['label_submit'] =  __( 'Send Message', 'kleo_framework' );
        $arg['comment_notes_before'] = '';
        $arg['comment_notes_after'] = '';
        $arg['comment_field'] = '<div class="row"><div class="twelve columns"><label for="comment">' . _x( 'Comment', 'noun', 'kleo_framework' ) . ' ('.__("required", 'kleo_framework').')</label><textarea id="comment" name="comment" cols="45" rows="8" required aria-required="true"></textarea></div></div>';
        return $arg;
    }
    endif;
    
    //------------------------------------------------------------------------------
    
    if (!function_exists('kleo_comment_form')):
    /**
     * Outputs a complete commenting form for use within a template.
     * Most strings and form fields may be controlled through the $args array passed
     * into the function, while you may also choose to use the comment_form_default_fields
     * filter to modify the array of default fields if you'd just like to add a new
     * one or remove a single field. All fields are also individually passed through
     * a filter of the form comment_form_field_$name where $name is the key used
     * in the array of fields.
     *
     * @param array $args Options for strings, fields etc in the form
     * @param mixed $post_id Post ID to generate the form for, uses the current post if null
     * @return void
     */
    function kleo_comment_form( $args = array(), $post_id = null ) {
    	global $id;
    
    	if ( null === $post_id )
    		$post_id = $id;
    	else
    		$id = $post_id;
    
    	$commenter = wp_get_current_commenter();
    	$user = wp_get_current_user();
    	$user_identity = $user->exists() ? $user->display_name : '';
    
    	$req = get_option( 'require_name_email' );
    	$aria_req = ( $req ? " aria-required='true'" : '' );
    	$fields =  array(
    		'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name', 'kleo_framework' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
    		            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
    		'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email', 'kleo_framework' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
    		            '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
    		'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website', 'kleo_framework' ) . '</label>' .
    		            '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
    	);
    
    	$required_text = sprintf( ' ' . __('Required fields are marked %s', 'kleo_framework'), '<span class="required">*</span>' );
    	$defaults = array(
    		'fields'               => apply_filters( 'comment_form_default_fields', $fields ),
    		'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun', 'kleo_framework' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',
    		'must_log_in'          => '<p class="must-log-in">' . sprintf( __( 'You must be <a href="%s">logged in</a> to post a comment.', 'kleo_framework' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
    		'logged_in_as'         => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out?</a>', 'kleo_framework' ), get_edit_user_link(), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
    		'comment_notes_before' => '<p class="comment-notes">' . __( 'Your email address will not be published.', 'kleo_framework' ) . ( $req ? $required_text : '' ) . '</p>',
    		'comment_notes_after'  => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s', 'kleo_framework' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>',
    		'id_form'              => 'commentform',
    		'id_submit'            => 'submit',
    		'title_reply'          => __( 'Leave a Reply','kleo_framework' ),
    		'title_reply_to'       => __( 'Leave a Reply to %s', 'kleo_framework' ),
    		'cancel_reply_link'    => __( 'Cancel reply','kleo_framework' ),
    		'label_submit'         => __( 'Post Comment','kleo_framework' ),
    	);
    
    	$args = wp_parse_args( $args, apply_filters( 'comment_form_defaults', $defaults ) );
    
    	?>
    		<?php if ( comments_open( $post_id ) ) : ?>
    			<?php do_action( 'comment_form_before' ); ?>
    			<div>
    				<h4 id="reply-title"><?php comment_form_title( $args['title_reply'], $args['title_reply_to'] ); ?> <small><?php cancel_comment_reply_link( $args['cancel_reply_link'] ); ?></small></h4><br>
    				<?php if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) : ?>
    					<?php echo $args['must_log_in']; ?>
    					<?php do_action( 'comment_form_must_log_in_after' ); ?>
    				<?php else : ?>
    					<form action="<?php echo site_url( '/wp-comments-post.php' ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>" class="leave-comment clearfix">
    						<?php do_action( 'comment_form_top' ); ?>
    						<?php if ( is_user_logged_in() ) : ?>
    							<?php echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity ); ?>
    							<?php do_action( 'comment_form_logged_in_after', $commenter, $user_identity ); ?>
    						<?php else : ?>
    							<?php echo $args['comment_notes_before']; ?>
    							<?php
    							do_action( 'comment_form_before_fields' );
    							foreach ( (array) $args['fields'] as $name => $field ) {
    								echo apply_filters( "comment_form_field_{$name}", $field ) . "\n";
    							}
    							do_action( 'comment_form_after_fields' );
    							?>
    						<?php endif; ?>
    						<?php echo apply_filters( 'comment_form_field_comment', $args['comment_field'] ); ?>
    						<?php echo $args['comment_notes_after']; ?>
    						
    						<button type="submit" class="radius button right" name="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>"><?php echo esc_attr( $args['label_submit'] ); ?></button>
    						<?php comment_id_fields( $post_id ); ?>
    						
    						<?php do_action( 'comment_form', $post_id ); ?>
    					</form>
    				<?php endif; ?>
    			</div><!-- #respond -->
    			<?php do_action( 'comment_form_after' ); ?>
    		<?php else : ?>
    			<?php do_action( 'comment_form_comments_closed' ); ?>
    		<?php endif; ?>
    	<?php
    }
    endif;
    
    if ( ! function_exists( 'sweetdate_entry_meta' ) ) :
    /**
     * Prints HTML with meta information for current post: categories, tags, permalink, author, and date.
     *
     * Create your own sweetdate_entry_meta() to override in a child theme.
     *
     * @since Sweetdate 1.0
     */
    function sweetdate_entry_meta() {
    	// Translators: used between list items, there is a space after the comma.
    	$categories_list = get_the_category_list( __( ', ', 'kleo_framework' ) );
    
    	// Translators: used between list items, there is a space after the comma.
    	$tag_list = get_the_tag_list( '', __( ', ', 'kleo_framework' ) );
    
    	$date = sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>',
    		esc_url( get_permalink() ),
    		esc_attr( get_the_time() ),
    		esc_attr( get_the_date( 'c' ) ),
    		esc_html( get_the_date() )
    	);
    
    	$author = sprintf( '<a href="%1$s" title="%2$s" rel="author">%3$s</a>',
    		esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
    		esc_attr( sprintf( __( 'View all posts by %s', 'kleo_framework' ), get_the_author() ) ),
    		get_the_author()
    	);
    
    	// Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name.
    	if ( $categories_list ) {
                    echo '<li><i class="icon-calendar"></i> '.$date.'</li>';
                    echo '<li><i class="icon-user"></i> '.$author.'</li>';
                    echo '<li><i class="icon-heart"></i> '.$categories_list.'</li>';
                    if ($tag_list) echo '<li><i class="icon-tags"></i> '.$tag_list.'</li>';
                    echo '<li><i class="icon-comments"></i> <a href="'.get_permalink().'#comments">'.sprintf( _n( 'One comment', '%1$s comments', get_comments_number(), 'kleo_framework' ),number_format_i18n( get_comments_number() ) ).'</a></li>';
            }
            else {
                    echo '<li><i class="icon-calendar"></i> '.$date.'</li>';
                    echo '<li><i class="icon-user"></i> '.$author.'</li>';
                    if ($tag_list) echo '<li><i class="icon-tags"></i> '.$tag_list.'</li>';
                    echo '<li><i class="icon-comments"></i> <a href="'. get_permalink().'#comments">'.sprintf( _n( 'One comment', '%1$s comments', get_comments_number(), 'kleo_framework' ),number_format_i18n( get_comments_number() ) ).'</a></li>';
    	}
    
    }
    endif;
    
    // -----------------------------------------------------------------------------
    
    if ( ! function_exists( 'add_video_wmode_transparent' ) ) :
        /**
         * Automatically add wmode=transparent to embeded media
         * Automatically add showinfo=0 for youtube
         * @param type $html
         * @param type $url
         * @param type $attr
         * @return type
         */
        function add_video_wmode_transparent($html, $url, $attr) {
          
        if (strpos($html, "youtube.com") !== false || strpos($html, "youtu.be") !== false) {
            $info = "&showinfo=0";
        }
        else {
            $info = "";
        }
        //add specific classes so the video will fit the container 
        if (strpos($html, "youtube.com") !== false || strpos($html, "youtu.be") !== false || strpos($html, "vimeo.com") !== false ) {
            $html = '<div class="flex-video widescreen vimeo">'.$html.'</div>';
        }
        
        if ( strpos( $html, "<embed src=" ) !== false )
           { return str_replace('</param><embed', '</param><param name="wmode" value="opaque"></param><embed wmode="opaque" ', $html); }
        elseif ( strpos ( $html, 'feature=oembed' ) !== false )
           { return str_replace( 'feature=oembed', 'feature=oembed&wmode=opaque'.$info, $html ); }
        else
           { return $html; }
        }
    endif;
    
    add_filter( 'oembed_result', 'add_video_wmode_transparent', 10, 3);
    
    if (!function_exists('kleo_oembed_filter')):
    function kleo_oembed_filter( $return, $data, $url ) {
     	$return = str_replace('frameborder="0"', 'style="border: none"', $return);
    	return $return;
    }
    endif;
    add_filter('oembed_dataparse', 'kleo_oembed_filter', 90, 3 );
    
    /***************************************************
     * Lost password function - used in Ajax action
     **************************************************/
    if (!function_exists('kleo_lost_password_ajax')) : 
    function kleo_lost_password_ajax()
    {
        global $wpdb;
        $errors = array();
        if ( isset($_POST) ) {
    
            if ( empty( $_POST['email'] ) ) {
               _e('<strong>ERROR</strong>: The e-mail field is empty.', 'kleo_framework');
               die();
            }
            else {
                do_action('lostpassword_post');
                // redefining user_login ensures we return the right case in the email
                $user_data = get_user_by( 'email', trim( $_POST['email'] ) );
    
                if ( ! isset( $user_data->user_email ) || strtolower( $user_data->user_email ) != strtolower( $_POST['email'] ) ) {
                     _e( '<strong>ERROR</strong>: Invalid  e-mail.', 'kleo_framework' );
                     die();
                } else {
                    $user_login = $user_data->user_login;
    								$user_email = $user_data->user_email;
    
                    do_action('retrieve_password', $user_login);
    
    								$allow = apply_filters( 'allow_password_reset', true, $user_data->ID );
    
    								if ( ! $allow )
    									echo new WP_Error('no_password_reset', __('Password reset is not allowed for this user'));
    								else if ( is_wp_error($allow) )
    									echo $allow;
    
    								// Generate something random for a password reset key.
    								$key = wp_generate_password( 20, false );
    
    								do_action( 'retrieve_password_key', $user_login, $key );
    
    								// Now insert the key, hashed, into the DB.
    								if ( empty( $wp_hasher ) ) {
    									require_once ABSPATH . 'wp-includes/class-phpass.php';
    									$wp_hasher = new PasswordHash( 8, true );
    								}
                                    $hashed = time() . ':' . $wp_hasher->HashPassword( $key );
    								$wpdb->update( $wpdb->users, array( 'user_activation_key' => $hashed ), array( 'user_login' => $user_login ) );
    
    								$message = __('Someone requested that the password be reset for the following account:') . "\r\n\r\n";
    								$message .= network_home_url( '/' ) . "\r\n\r\n";
    								$message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
    								$message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "\r\n\r\n";
    								$message .= __('To reset your password, visit the following address:') . "\r\n\r\n";
    								$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";
    
    								if ( is_multisite() )
    									$blogname = $GLOBALS['current_site']->site_name;
    								else
    									// The blogname option is escaped with esc_html on the way into the database in sanitize_option
    									// we want to reverse this for the plain text arena of emails.
    									$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    
    								$title = sprintf( __('[%s] Password Reset'), $blogname );
    
    								/**
    								 * Filter the subject of the password reset email.
    								 *
    								 * @since 2.8.0
    								 *
    								 * @param string $title Default email title.
    								 */
    								$title = apply_filters( 'retrieve_password_title', $title );
    								/**
    								 * Filter the message body of the password reset mail.
    								 *
    								 * @since 2.8.0
    								 *
    								 * @param string $message Default mail message.
    								 * @param string $key     The activation key.
    								 */
    								$message = apply_filters( 'retrieve_password_message', $message, $key, $user_login );
    
                    if ( $message && !wp_mail($user_email, $title, $message) ) {
                        echo "<span style='color:red'>".__("Failure! ", 'kleo_framework');
                        echo __("The e-mail could not be sent.", 'kleo_framework');
                        echo "</span>";
                        die();
                    } else {
                       echo "<span style='color:green'>". __("Email successfully sent!", 'kleo_framework')."</span>";
                        die();
                    }
                }
            }
        }
        die();
    }
    endif;
    add_action("wp_ajax_kleo_lost_password","kleo_lost_password_ajax");
    add_action('wp_ajax_nopriv_kleo_lost_password', 'kleo_lost_password_ajax');
    
    function kleo_lost_password_js()
    {
    ?>
    <script type="text/javascript">
    /* Lost password ajax */
    jQuery(document).ready(function(){
        jQuery("#forgot_form #recover").on("click",function(){
            jQuery.ajax({
                   url: ajaxurl,
                   type: 'POST',
                   data: {
                           action: 'kleo_lost_password',
                           email: jQuery("#forgot-email").val(),
                   },
                   success: function(data){
                           jQuery('#lost_result').html("<p>"+data+"</p>");
                   },
                   error: function() {
                           jQuery('#lost_result').html('Sorry, an error occurred.').css('color', 'red');
                   }
    
            });
            return false;
    	});
    });
    </script>
        
    <?php 
    }
    add_action('wp_footer', 'kleo_lost_password_js');
    
    /* -----------------------------------------------------------------------------
     * END Lost password section
     */
    
    /**
     *  ACTIONS section
     */
    
    //GLOBAL SIDEBAR
    
    if (sq_option('global_sidebar') == 'left')
    {
       add_action('kleo_before_content', 'kleo_sidebar');
    }
    elseif (sq_option('global_sidebar') == 'right')
    {
       add_action('kleo_after_content', 'kleo_sidebar');
    }
    elseif (sq_option('global_sidebar') == '3ll')
    {
    	add_action('kleo_before_content', 'kleo_sidebar');
    	add_action('kleo_before_content', 'kleo_extra_sidebar');
    
    }
    elseif (sq_option('global_sidebar') == '3lr')
    {
    	add_action('kleo_before_content', 'kleo_sidebar');
    	add_action('kleo_after_content', 'kleo_extra_sidebar');
    }
    elseif (sq_option('global_sidebar') == '3rr')
    {
    	add_action('kleo_after_content', 'kleo_sidebar');
    	add_action('kleo_after_content', 'kleo_extra_sidebar');
    }
    
    //get the global sidebar
    if (!function_exists('kleo_sidebar')):
    function kleo_sidebar()
    {
        get_sidebar();
    }
    endif;
    
    //get the extra sidebar
    if (!function_exists('kleo_extra_sidebar')):
    function kleo_extra_sidebar()
    {
    ?>
    	<aside class="three columns">
    		<div class="widgets-container sidebar_location">
    			<?php generated_dynamic_sidebar('extra');?>
    		</div>
    	</aside> <!--end four columns-->
    <?php
    }
    endif;
    
    // -----------------------------------------------------------------------------
    
    /* Render search form horizontal on members page */
    add_action ('bp_before_directory_members_page', 'kleo_members_filter');
    if ( !function_exists('kleo_members_filter')):
        function kleo_members_filter()
        {
            global $bp_search_fields;
            
            if ( function_exists('kleo_bp_search_form_horizontal') && bp_is_active ('xprofile') )
            {
            $mode = (isset($bp_search_fields['button_show']) && $bp_search_fields['button_show'] == 1) ? true : false;
            kleo_bp_search_form_horizontal($mode);
            }
        }
    endif;
    
    /* If we are on the home page here it will render the search form */
    if ( sq_option('home_search',1) == 1) {
        add_action('after_header_content','render_user_search');
    }
    /* If we are on the home page here it will render the register form */
    elseif (sq_option('home_search',1) == 2) {
        add_action('after_header_content','render_user_register');
    }
    /* If we are on the home page here it will render the mixed form */
    elseif (sq_option('home_search',1) == 3) {
    	add_action('after_setup_theme', 'kleo_home_form');
    }
    
    if ( ! function_exists( 'kleo_home_form' ) ) :
    function kleo_home_form()
    {
        if (is_user_logged_in()) {
            add_action('after_header_content','render_user_search');
        }
        else {
            add_action('after_header_content','render_user_register');
        }
    }
    endif;
    
    if ( ! function_exists( 'render_user_search' ) ) :
    /**
     * Prints HTML on homepage search form
     *
     * Create your own render_user_search() to override in a child theme.
     *
     * @since Sweetdate 1.0
     */
    
    function render_user_search() 
    {
        if (is_page_template('page-templates/front-page.php'))
            get_template_part('page-parts/home-search-form');
    }
    
    endif;
    
    if ( ! function_exists( 'render_user_register' ) ) :
    /**
     * Prints Register form
     *
     * Create your own render_user_register() to override in a child theme.
     *
     * @since Sweetdate 1.5
     */
    
    function render_user_register() 
    {
        if (is_page_template('page-templates/front-page.php')) {
    		get_template_part('page-parts/home-register-form');
    	}
    }
    
    endif;
    
    // -----------------------------------------------------------------------------
    
    /* Add Home page Image */
    add_action('wp_head', 'kleo_home_page_image', 9);
    
    if (!function_exists('kleo_home_page_image')):
        function kleo_home_page_image()
        {
            global $kleo_sweetdate;
            //HOME PAGE IMAGE
            if(is_page_template('page-templates/front-page.php'))
            {
                //backward compatibile theme check
                if (count(sq_option('home_pic_background')) > 0)
                    $kleo_sweetdate->add_bg_css('home_pic_background','#header');
                else
                    $kleo_sweetdate->add_css('#header { background-image: url("'.sq_option('home_pic_background_image').'"); background-position: '.sq_option('home_pic_background_image_horizontal').' '.sq_option('home_pic_background_image_vertical').'; background-repeat: '.sq_option('home_pic_background_image_repeat').'; }');
    
                if ((sq_option('responsive_design') == 1))
                {
                    $kleo_sweetdate->add_css('@media only screen and (max-width: 767px) {#header { background-image: none;}}');
                }
            }
        }
    endif;
    // -----------------------------------------------------------------------------
    
    /* Revolution slider in homepage */
    if (sq_option('home_rev',0) == 1 && function_exists('putRevSlider'))
    {
    	add_action('kleo_after_header', 'kleo_home_revslider');
    }
    
    if ( ! function_exists( 'kleo_home_revslider' ) ) {
    	/**
    	 * Generate revolution slider on front page template
    	 * @since 2.1
    	 */
    	function kleo_home_revslider() {
    		if ( sq_option('home_rev_slide' ) && is_page_template('page-templates/front-page.php')) {
    			putRevSlider(sq_option('home_rev_slide'));
    		}
    	}
    }
    
    /* Revolution slider in single page */
    add_action('kleo_after_header', 'kleo_page_revslider');
    /**
     * Render revslider
     * @since 2.1
     */
    function kleo_page_revslider()
    {
    	if ((is_single() || is_page()) && get_cfield('revolution_slider') && function_exists('putRevSlider'))
    	{
    		putRevSlider( get_cfield('revolution_slider') );
    	}
    }
    
    /**
     * Retrieve defined Revolution sliders 
     * @global object $wpdb
     * @since 2.1
     */
    function kleo_revslide_sliders()
    {
        if (class_exists('RevSlider')) {
            $theslider = new RevSlider();
            $arrSliders = $theslider->getArrSliders();
            $arrA = array(0);
            $arrT = array(__('Select slider','kleo_framework'));
            foreach($arrSliders as $slider){
    			$arrA[] = $slider->getAlias();
                $arrT[] = $slider->getTitle();
            }
        
    		$revsliders = array_combine($arrA, $arrT);
            
            return $revsliders;
        }
    	else {
    		return array(__('You need to install Revolution Slider plugin first','kleo_framework'));
    	}
    }
    
    /*
     * Adds some required body claasses
     */
    add_filter('body_class','kleo_body_classes');
    
    /**
     * Adds specific classes to body element
     * @param array $classes
     * @return array
     * @since 2.1
     */
    function kleo_body_classes($classes = '') {
    	if (is_page_template('page-templates/front-page.php'))  {
    		//if revslider is enabled in header
    		if (sq_option('home_rev',0) == 1 && function_exists('putRevSlider')) {
    			$classes[] = 'revslider-head';
    		}
    		//if we want an absolute header
    		if (sq_option('home_rev',0) == 1 && sq_option('home_rev_transparent', 1) == 1) {
    			$classes[] = 'absolute-head';
    		}
    	}
    
    	if (is_single() || is_page()) {
    		//if revslider is enabled in header
    		if (get_cfield('revolution_slider') && function_exists('putRevSlider'))
    		{
    			$classes[] = 'revslider-head';
    		}
    		//if we want an absolute header
    		if (get_cfield('revolution_slider') && get_cfield('rev_transparent') == 1) {
    			$classes[] = 'absolute-head';
    		}
    		
    	}
    	
    	if (is_admin_bar_showing() && sq_option('admin_bar',1 ) == 1) {
    		$classes[] = 'adminbar-enable';
    	}
    
    	if (sq_option('responsive_design',1) == 0) {
    		$classes[] = 'not-responsive';
    	}
    
    	return $classes;
    }
    
    // -----------------------------------------------------------------------------
    
    /* If WPML is active add the language switcher */
    add_action('kleo_before_top_links', 'kleo_language_selector');
    
    function kleo_language_selector()
    {
        if(defined('ICL_LANGUAGE_CODE')) do_action('icl_language_selector');
    }
    
    // -----------------------------------------------------------------------------
    
    /* Ajax search in header */
    
    //if set from admin to show search
    if (sq_option('ajax_search', 1))
    {
        add_filter( 'wp_nav_menu_items', 'kleo_search_menu_item', 10, 2 );
    }
    
    if(!function_exists('kleo_search_menu_item'))
    {
    	/**
    	 * Add search to menu
    	 * @param string $items
    	 * @param oject $args
    	 * @return string
    	 */
    	function kleo_search_menu_item ( $items, $args )
    	{
    	    if ($args->theme_location == 'primary')
    	    {
    	        ob_start();
    	        get_template_part('page-parts/header-ajaxsearch');
    	        $form = ob_get_clean();
    
    	        $items .= '<li id="nav-menu-item-search" class="menu-item kleo-menu-item-search"><a href="#"><i class="icon icon-search"></i></a>'.$form.'</li>';
    	    }
    	    return $items;
    	}
    }
    
    //Catch ajax requests
    add_action( 'wp_ajax_kleo_ajax_search', 'kleo_ajax_search' );
    add_action( 'wp_ajax_nopriv_kleo_ajax_search', 'kleo_ajax_search' );
    if(!function_exists('kleo_ajax_search'))
    {
    	function kleo_ajax_search()
    	{
            //if "s" input is missing exit
    	    if(empty($_REQUEST['s'])) die();
            
            $output = "";
    	    $defaults = array('numberposts' => 4, 'post_type' => 'any', 'post_status' => 'publish', 'post_password' => '', 'suppress_filters' => false);
    	    $defaults =  apply_filters( 'kleo_ajax_query_args', $defaults);
    
    	    $query = array_merge($defaults, $_REQUEST);
    	    $query = http_build_query($query);
    	    $posts = get_posts( $query );
    
            //if there are no posts
    	    if(empty($posts))
    	    {
    	        $output  = "<div class='kleo_ajax_entry ajax_not_found'>";
    	        $output .= "<div class='ajax_search_content'>";
                $output .= "<i class='icon icon-exclamation-sign'></i> ";
    	        $output .=       __("Sorry, no pages matched your criteria.", 'kleo_framework');
                $output .= "<br>";
    	        $output .=      __("Please try searching by different terms.", 'kleo_framework');
    	        $output .= "</div>";
    	        $output .= "</div>";
    	        echo $output;
    	        die();
    	    }
    
    	    //if there are posts
    	    $post_types = array();
    	    $post_type_obj = array();
    	    foreach($posts as $post)
    	    {
    
    	        $post_types[$post->post_type][] = $post;
    	        if(empty($post_type_obj[$post->post_type]))
    	        {
    	            $post_type_obj[$post->post_type] = get_post_type_object($post->post_type);
    	        }
    	    }
    
    	    foreach($post_types as $ptype => $post_type)
    	    {
    	        if(isset($post_type_obj[$ptype]->labels->name))
    	        {
    	            $output .= "<h4>".$post_type_obj[$ptype]->labels->name."</h4>";
    	        }
    	        else
    	        {
    	            $output .= "<hr>";
    	        }
    	        foreach($post_type as $post)
    	        {
                    $format = get_post_format($post->ID);
                    if (get_the_post_thumbnail( $post->ID, 'thumbnail' ))
                    {
                        $image = get_the_post_thumbnail( $post->ID, 'thumbnail' );
                    }
                    else
                    {
                        if ($format == 'video')
                            $image = "<i class='icon icon-film'></i>";
                        elseif ($format == 'image' || $format == 'gallery')
                            $image = "<i class='icon icon-picture'></i>";
                        else
                            $image = "<i class='icon-info-sign'></i>";
                    }
    
    	            $excerpt = "";
                    
    	            if(!empty($post->post_content))
    	            {
    	                $excerpt =  "<br>".char_trim(trim(strip_tags(strip_shortcodes($post->post_content))),40,"...");
    	            }
    	            $link = apply_filters('kleo_custom_url', get_permalink($post->ID));
                    $classes = "format-".$format;
    	            $output .= "<div class='kleo_ajax_entry $classes'>";
                        $output .= "<div class='ajax_search_image'>$image</div>";
                        $output .= "<div class='ajax_search_content'>";
                            $output .= "<a href='$link'>";
                            $output .= get_the_title($post->ID);
                            $output .= "</a>";
                            $output .= "<span class='search_excerpt'>";
                            $output .= $excerpt;
                            $output .= "</span>";
                        $output .= "</div>";
    	            $output .= "</div>";
    	        }
    	    }
    
    	    $output .= "<a>".__('View all results','kleo_framework')."</a>";
    
    	    echo $output;
    	    die();
    	}
    }
    
    //add mp4, webm and ogv mimes for uploads
    add_filter('upload_mimes','kleo_add_upload_mimes');
    if(!function_exists('kleo_add_upload_mimes'))
    {
    	function kleo_add_upload_mimes($mimes){ return array_merge($mimes, array ('mp4' => 'video/mp4', 'ogv' => 'video/ogg', 'webm' => 'video/webm')); }
    }
    
    /*
     * Display breadcrumb
     */
    add_action('kleo_before_page','kleo_show_breadcrumb',9);
    
    if (! function_exists('kleo_show_breadcrumb')):
        
    /**
     * Renders the breadcrumb
     */
    function kleo_show_breadcrumb()
    {
        if (sq_option('breadcrumb_status') == 1) 
        {
            if(!is_page_template('page-templates/front-page.php')) { ?>
            <!-- BREADCRUMBS SECTION
            ================================================ -->
            <section>
              <div>
                <div class="row">
                  <div class="nine columns">
                        <?php kleo_breadcrumb(array('container_class' => 'breadcrumbs hide-for-small')); ?>
                  </div>
    
                <?php do_action('kleo_after_breadcrumb'); ?>
    
                </div><!--end row-->
              </div><!--end breadcrumbs-wrapp-->
            </section>
            <!--END BREADCRUMBS SECTION-->
            <?php 
            }
        }
    }
    endif;
    
    /* Specific page hide breadcrumb */
    add_action('kleo_after_header', 'kleo_set_breadcrumb');
    
    /**
     * Disable breadcrumb on page if set
     * @since 2.1
     */
    function kleo_set_breadcrumb() 
    {
    	if (get_cfield('hide_breadcrumb') == 1)
    	{
    		remove_action('kleo_before_page','kleo_show_breadcrumb',9);
    	}
    }
    
    /**
     * Text content of widgets is parsed for shortcodes and those shortcodes are ran
     * @since 1.5
     */
    add_filter('widget_text', 'do_shortcode');
    
    /*
     * Remove prev/next link in header
     * @since 2.1
     */
    remove_action( 'wp_head', 'wp_shortlink_wp_head' );
    remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' );
    
    if(!function_exists('kleo_copyright_text')):
    /**
     * Add footer text
     */
    function kleo_copyright_text()
    {
      echo '<p>'. __("Copyright", 'kleo_framework').' &copy; '.date("Y").' '. get_bloginfo('name').'. <br class="hide-for-large show-for-small"/>'. get_bloginfo( 'description' ).'</p>';        
    }
    endif;
    add_action('kleo_footer_text','kleo_copyright_text');
    
    /* Modal Ajax login */
    
    //Render some required HTML
    add_action('fb_popup_button','kleo_add_login_result_tag', 99);
    function kleo_add_login_result_tag()
    {
    	wp_nonce_field( 'kleo-ajax-login-nonce', 'security' );
    	echo '<div></div>';
    }
    
    add_action( 'wp_ajax_nopriv_kleoajaxlogin', 'kleo_ajax_login' );
    
    if (!function_exists('kleo_ajax_login')){
        function kleo_ajax_login()
        {
            // Check the nonce, if it fails the function will break
            check_ajax_referer( 'kleo-ajax-login-nonce', 'security' );
    
            // Nonce is checked, continue
            $secure_cookie = '';
    
            // If the user wants ssl but the session is not ssl, force a secure cookie.
            if ( !empty($_POST['log']) && !force_ssl_admin() ) {
                $user_name = sanitize_user($_POST['log']);
                if ( $user = get_user_by('login', $user_name) ) {
                    if ( get_user_option('use_ssl', $user->ID) ) {
                        $secure_cookie = true;
                        force_ssl_admin(true);
                    }
                }
            }
    
            if ( isset( $_REQUEST['redirect_to'] ) ) {
                $redirect_to = $_REQUEST['redirect_to'];
                // Redirect to https if user wants ssl
                if ( $secure_cookie && false !== strpos($redirect_to, 'wp-admin') )
                    $redirect_to = preg_replace('|^http://|', 'https://', $redirect_to);
            } else {
                $redirect_to = '';
            }
    
            $user_signon = wp_signon( '', $secure_cookie );
            if ( is_wp_error( $user_signon ) ){
                $error_msg = $user_signon->get_error_message();
                echo json_encode(array( 'loggedin' => false, 'message' => '<i class="icon-warning-sign"></i> ' . $error_msg  ));
            } else {
                if ( sq_option( 'login_redirect' , 'default' ) == 'reload' ) {
                    $redirecturl = NULL;
                }
                else {
                    $requested_redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
                    /**
                     * Filter the login redirect URL.
                     *
                     * @since 3.0.0
                     *
                     * @param string           $redirect_to           The redirect destination URL.
                     * @param string           $requested_redirect_to The requested redirect destination URL passed as a parameter.
                     * @param WP_User|WP_Error $user                  WP_User object if login was successful, WP_Error object otherwise.
                     */
                    $redirecturl = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to, $user_signon );
    
                }
    
                echo json_encode(array('loggedin'=>true, 'redirecturl' => $redirecturl, 'message'=> '<i class="icon-ok-sign"></i> ' . __( 'Login successful, redirecting...','kleo_framework' ) ));
            }
    
            die();
        }
    }
    
    add_action( 'wp_ajax_kleoajaxlogin', 'kleo_ajax_login_priv' );
    
    if (!function_exists('kleo_ajax_login_priv')):
    	function kleo_ajax_login_priv() {
    	$link = "javascript:window.location.reload();return false;";
    		echo json_encode(array('loggedin'=>false, 'message'=> '<i class="icon-warning-sign"></i> ' . sprintf(__('You are already logged in. Please <a href="#">refresh</a> page','kleo_framework'),$link)));
    		die();
    	}
    endif;
    // -----------------------------------------------------------------------------
    
    /* rtMedia compatibility */
    
    add_filter( 'rtmedia_main_template_set_theme_compat', 'kleo_rtmedia_theme_compat',11 );
    function kleo_rtmedia_theme_compat() {
    	return false;
    }
     
    add_filter( 'rtmedia_main_template_include', 'kleo_rtmedia_template_include', 11, 2);
    function kleo_rtmedia_template_include($template, $new_rt_template) 
    {
    	return $new_rt_template;
    }
    
    add_action('wp_enqueue_scripts', 'kleo_rtmedia_script', 999);
    function kleo_rtmedia_script() {
    	wp_deregister_style( 'rtmedia-font-awesome' );
        wp_dequeue_script('rtmedia-touchswipe');
        wp_deregister_script( 'rtmedia-touchswipe' );
    }
    // -----------------------------------------------------------------------------
    
    /* Admin bar fix for versions great than 3.8 */
    
    if (!function_exists('kleo_admin_bar_fix')):
    	/**
    	 * Admin bar fix for WP > 3.8
    	 * @since 2.3.1
    	 */
    	function kleo_admin_bar_fix()
    	{
    		global $wp_version, $kleo_sweetdate;
    		if ($wp_version >= 3.8) {
    			$kleo_sweetdate->add_css( '@media screen and (max-width: 600px) {#wpadminbar { position: fixed; }}'
    				.'@media screen and ( max-width: 782px ) {.adminbar-enable .sticky.fixed { margin-top: 46px; }}'
    				);
    		}
    	}
    endif;
    add_action('wp_head', 'kleo_admin_bar_fix', 9);
    
    /***************************************************
    :: Theme options link in Admin bar
    ***************************************************/
    
    add_action('admin_bar_menu', 'kleo_add_adminbar_options', 100);
    
    function kleo_add_adminbar_options($admin_bar){
    	if (is_super_admin()) {
    		$admin_bar->add_menu( array(
    				'id'    => 'theme-options',
    				'title' => __('Theme options','kleo_framework'),
    				'href'  => get_admin_url().'admin.php?page=sweetdate_options',
    				'meta'  => array(
    					'title' => __('Theme options','kleo_framework'),
    					'target' => '_blank'
    				),
    		));
    	}
    
    }
    
    /* BuddyPress Profile cover compatibility */
    add_filter( 'bpcp_profile_tag', 'sweeet_bpcp_tag');
    function sweeet_bpcp_tag( $tag ) {
        $tag = 'div#profile';
        return $tag;
    }
    #177620
     KyndFellow
    Participant

    Here’s my child theme functions.php I was editing too:

    COPY CODE
    -------------------------------------------------------
    
    <?php
    
    /**
    
     * @package WordPress
    
     * @subpackage Sweetdate
    
     * @author SeventhQueen <themesupport@seventhqueen.com>
    
     * @since Sweetdate 1.0
    
     */
    
    /**
    
     * Sweetdate Child Theme Functions
    
     * Add extra code or replace existing functions
    
    */ 
    
    // Translate Forums to Discussion
    
    add_filter('gettext', 'translate_reply');
    
    add_filter('ngettext', 'translate_reply');
    
    function translate_reply($translated) {
    
    $translated = str_ireplace('Forums', 'Discussion', $translated);
    
    return $translated;
    
    }
    
    function filter_bbp_get_quicktags_settings( $settings ) {
    
     $buttons_array = explode( ',', $settings['buttons'] );
    
     $buttons = array_diff( $buttons_array, array(
    
       'del','ul','ol','li','close'
    
     ) );
    
     $settings['buttons'] = implode( ',', $buttons );
    
         return $settings;
    
     };
    
    ?>
    #177630
     Kieran_SQ
    Moderator

    Hi,

    You will need to download a clean copy of SweetDate on overwrite the parent theme functions.php file via FTP.

    With regards to the snippet at the end what is it you were trying to achieve?

    COPY CODE
    /* BuddyPress Profile cover compatibility */
    add_filter( 'bpcp_profile_tag', 'sweeet_bpcp_tag');
    function sweeet_bpcp_tag( $tag ) {
        $tag = 'div#profile';
        return $tag;
    }

    Thanks,

    Kieran

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

    #177642
     KyndFellow
    Participant

    Thank you for the reply on Sunday. First things first, I downloaded and reinstalled my parent functions.php. Now I’m getting this error for every nav link on NFdates.com and admin login:

    Fatal error: Cannot redeclare sweetdate_comment_script() (previously declared in /home4/knodel/public_html/NFdates.com/wp-content/themes/sweetdate/functions.php:241) in /home4/knodel/public_html/NFdates.com/wp-content/themes/sweetdate/framework/frontend.php on line 66

    Attachments:
    You must be logged in to view attached files.
    #177701
     Kieran_SQ
    Moderator

    Hi,

    It looks like you may have edited other files, to be sure I think you’re going to have to delete the parent theme altogether and upload a clean copy of the latest version of SweetDate theme contents into the parent theme folder.

    You should clear and then disable any server and site caching as well as any services like CloudFlare

    Kieran.

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

    #177799
     KyndFellow
    Participant

    Are you saying I’m going to need to start building this website all over from the beginning? Replace what SweetDate theme contents into the parent theme folder? If I replace “assets” folder in the parent, I’ll lose all my images of my website. Will I lose all my CSS? Will I lose my members?

    Attachments:
    You must be logged in to view attached files.
    #177825
     Kieran_SQ
    Moderator

    Hi,

    Your members, site, content and theme settings are all stored in the database and uploading fresh files into the /wp-content/themes/sweetdate/ folder should not effect any of your sites content in anyway. Think of it as when you update the main theme, nothing changes with regards to your preexisting content, all you will be doing is making the process manual rather than automatic and your version of SweetDate will stay the same.

    You should always make a backup of your site content (the WordPress folder) and your database (most likely phpMyAdmin) before making any significant changes or adding any plugins.

    Please note: You should download the theme files only from ThemeForest (to ensure it is the latest version and that no files have been altered) and only upload the contents into the /wp-content/themes/sweetdate/ folder not the /wp-content/themes/sweetdate-child/ folder.

    Thanks,

    Kieran

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

    #177888
     KyndFellow
    Participant

    Where on my FTP is the CSS that we added with the sweetdate styling editor with wordpress. I need to copy (over FTP) the CSS we wrote before I overwrite any files.

    I’m confused. Please awswer my question. Am I going to lose my memebers, images, CSS, and settings?

    Can you fix this if I give you FTP access? I’ll pay.

    #177897
     KyndFellow
    Participant

    I downloaded a new Sweetdate copy, but it doesnt have the same files. Where are the wp-content and themes folders? See screenshot.

    Attachments:
    You must be logged in to view attached files.
    #177941
     KyndFellow
    Participant

    Nevermind my previous messages I fixed it by uploading a backup copy of this whole website. Im back to the point before the problem edit.

    I was trying to achieve the toolbar with these bbPress edits to the Sweetdate member profiles:

    https://bbpress.org/forums/topic/removing-buttons-from-html-toolbar/

    Look at my screenshots of NFdates.com. How can I do what I did to my bbPress forums to the Sweetdate toolbar?

    Also, how can I remove that symbol on the toolbar. What is that thing for?

    Attachments:
    You must be logged in to view attached files.
    #178002
     Kieran_SQ
    Moderator

    Hi,

    Please let me know how you want to style the editor for color, background color and exactly which items you wish to stay and which you wish to remove and I will send the CSS.

    The symbol you’re referring to is called a Pilcrow and has been used in the English language to indicate a paragraph. You can read more about the Pilcrow here https://en.wikipedia.org/wiki/Pilcrow.

    Thanks,

    Kieran.

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

    #178052
     KyndFellow
    Participant

    Ok, thank you. I want to remove the pilcrows, and only keep “link” and “img” bottons. I want to have those two buttons on the bbPress and Sweetdate (“Self Summary” and “Looking For”) text editing toolbar.

    So I need the CSS for the Sweetdate text editing toolbar with only link and image bottons, and removel of pilcrows, please.

    Can we change the “img” botton to “image”, by any chance?

    Attachments:
    You must be logged in to view attached files.
    #178055
     Kieran_SQ
    Moderator

    Hi,

    Please add the below CSS to your SweetDate Child theme’s style.css or to Quick CSS

    Remove pilcrow bbPress

    input#qt_bbp_reply_content_sofbg-axcell {display: none !important;}

    Remove all buttons except for link and img in BuddyPress profile edit

    COPY CODE
    input#qt_field_212_sofbg-axcell {display: none !important;}
    input#qt_field_212_close {display: none !important;}
    input#qt_field_212_more {display: none !important;}
    input#qt_field_212_code {display: none !important;}
    input#qt_field_212_li {display: none !important;}
    input#qt_field_212_ol {display: none !important;}
    input#qt_field_212_ul {display: none !important;}
    input#qt_field_212_strong {display: none !important;}
    input#qt_field_212_em {display: none !important;}
    input#qt_field_212_block {display: none !important;}
    input#qt_field_212_del {display: none !important;}
    input#qt_field_212_ins {display: none !important;}
    

    With regards to changing the text from img to image you could try the below snippet in your SweetDate Child theme’s functions.php file

    COPY CODE
    // Translate img to image
    add_filter('gettext', 'translate_reply');
    add_filter('ngettext', 'translate_reply');
    function translate_reply($translated) {
    $translated = str_ireplace('img', 'image', $translated);
    return $translated;
    }

    Thanks,

    Kieran.

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

    #178063
     KyndFellow
    Participant

    This is beautiful. But I need the CSS to remove the pilcrow on bbPress “create new topic” page. I also need CSS to do the same to BuddyPress “look for” as “myself summary” text editor. See screenshots.

    Attachments:
    You must be logged in to view attached files.
    #178143
     Kieran_SQ
    Moderator

    Hi,

    When I visit your site I do not see the pilcrow in bbPress (see screenshot) since sending you the CSS to remove it, please try clearing your cache to see any changes. If you continue to see it please send me a few links as to where you see it.

    To remove the buttons on the other inputs please use the below CSS

    COPY CODE
    input#qt_field_213_sofbg-axcell {display: none !important;}
    input#qt_field_213_close {display: none !important;}
    input#qt_field_213_more {display: none !important;}
    input#qt_field_213_code {display: none !important;}
    input#qt_field_213_li {display: none !important;}
    input#qt_field_213_ol {display: none !important;}
    input#qt_field_213_ul {display: none !important;}
    input#qt_field_213_strong {display: none !important;}
    input#qt_field_213_em {display: none !important;}
    input#qt_field_213_block {display: none !important;}
    input#qt_field_213_del {display: none !important;}
    input#qt_field_213_ins {display: none !important;}
    input#qt_field_214_sofbg-axcell {display: none !important;}
    input#qt_field_214_close {display: none !important;}
    input#qt_field_214_more {display: none !important;}
    input#qt_field_214_code {display: none !important;}
    input#qt_field_214_li {display: none !important;}
    input#qt_field_214_ol {display: none !important;}
    input#qt_field_214_ul {display: none !important;}
    input#qt_field_214_strong {display: none !important;}
    input#qt_field_214_em {display: none !important;}
    input#qt_field_214_block {display: none !important;}
    input#qt_field_214_del {display: none !important;}
    input#qt_field_214_ins {display: none !important;}

    Thanks,

    Kieran.

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

    #178174
     KyndFellow
    Participant

    Almost done with CSS. We still need to remove the Pilcrow from the bbPress New Topic pages, like this:

    http://nfdates.com/forums/forum/general-discussion/

    Login with:
    Marilyn
    gogo2062

    Attachments:
    You must be logged in to view attached files.
    #178179
     Kieran_SQ
    Moderator

    Hi,

    Please use the below CSS

    #qt_bbp_topic_content_sofbg-axcell {display: none !important;}

    Kieran

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

    #178248
     KyndFellow
    Participant

    This really is beautifully. You should make these edits an option in Sweetdate for other costumers. I’ve seen the HTML toolbar that comes with it complained by many others. It needs to be more user friendly. You have an excellent theme otherwise. Thank you for helping me.

    You’re welcome to display NFdates.com if you like.

    #178253
     Kieran_SQ
    Moderator

    Hi,

    Thanks for the feedback and the offer, I will pass them on the development team.

    All the best,

    Kieran.

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Custom development requests can be sent to dev@seventhqueen.com, one of the development team will be happy to discuss your needs.

Viewing 29 posts - 1 through 29 (of 29 total)

You must be logged in to reply to this topic.

Log in with your credentials

Forgot your details?