Jump to content

Changing URL of logo


Moabs

Recommended Posts

Hi guys, need some help changing the URL of the mobile version of a logo. It is a Wordpress website.The frontend code shows the following:

<div id="g1-id">
<h1 class="site-title">
<a href="https://domainnamehere.co.uk"><img style="width: 278px; height: 61px;" id="g1-logo" src="https://domainnamehere.co.uk/wp-content/uploads/2016/02/logo2.png" alt="Logo" data-g1-src-desktop="https://domainnamehere.co.uk/wp-content/uploads/2016/02/logo2.png" data-g1-src-desktop-hdpi="https://domainnamehere.co.uk/wp-content/uploads/2016/02/logo2.png" height="61" width="278">
<noscript>
<img src="https://domainnamehere/wp-content/uploads/2016/02/logo2.png" alt="Logo" />
</noscript>
<img id="g1-mobile-logo" src="https://domainnamehere.co.uk/wp-content/uploads/2016/04/mobile-logo.png" alt="Logo" data-g1-src-mobile="https://domainnamehere.co.uk/wp-content/uploads/2016/04/mobile-logo.png" data-g1-src-mobile-hdpi="https://domainnamehere.co.uk/wp-content/uploads/2016/04/mobile-logo.png" height="61" width="278">
</a>
</h1>
</div>

In the theme-functions.php I found this code:

$out_desktop =
                '<img'. $size_desktop .' id="g1-logo" src="'. esc_url($desktop_src) .'" alt="'. esc_attr($name) .'" '. $data_desktop_str .' />
                <noscript><img src="'. esc_url($desktop_src) .'" alt="'. esc_attr($name) .'" /></noscript>';

            $out_mobile =
                '<img'. $size_mobile .' id="g1-mobile-logo" src="'. esc_url($data['data-g1-src-mobile']) .'" alt="'. esc_attr($name) .'" '. $data_mobile_str .' />';

Which bit do I have to change, the change the out URL of the mobile logo?

 

I understand it could be the part that is esc_url($data['data-g1-src-mobile']) but I am unsure exactly where to add my telephone URL such as tel:442344567890

 

Thankyou

 

Link to comment
Share on other sites

Why would you replace the source attribute of an image with your telephone number? It sounds like you're looking for the anchor tag, in which case you're looking at the wrong code. Look for where the template outputs or assigns to a variable "<a href='https://domainnamehere.co.uk'>" - that's the line you're wanting to change.

 

Although, looking at the little bit of code you've supplied, I'm not exactly sure how your theme is handling this. It's outputting both mobile and desktop versions of the image, and I assume using CSS media queries to display or hide the appropriate image. Check to see if the theme developers have added a filter at the point where the home link's href attribute is output in the template file (I assume you're in header.php).

Link to comment
Share on other sites

Hi,

 

Thanks for your reply. Yes it seems to be outputting both logos and then when the screen size is reduced, it changes to the logo to the mobile version.

 

I need to make the mobile logo a click to call URL link, as opposed to it going to the homepage. So a link like <a href="tel:1-847-555-5555">Call Us Now</a>

 

Here are the two header files I could find:

 

Header.php:

<?php
/**
 * The Header for our theme.
 *
 * For the full license information, please view the Licensing folder
 * that was distributed with this source code.
 *
 * @package G1_Framework
 * @subpackage G1_Theme03
 * @since G1_Theme03 1.0.0
 */

// Prevent direct script access
if ( !defined('ABSPATH') )
    die ( 'No direct script access allowed' );

?><!DOCTYPE html>
<!--[if IE 7]>
<html class="no-js lt-ie10 lt-ie9 lt-ie8" id="ie7" <?php language_attributes(); ?>>
<![endif]-->
<!--[if IE 8]>
<html class="no-js lt-ie10 lt-ie9" id="ie8" <?php language_attributes(); ?>>
<![endif]-->
<!--[if IE 9]>
<html class="no-js lt-ie10" id="ie9" <?php language_attributes(); ?>>
<![endif]-->
<!--[if !IE]><!-->
<html class="no-js" <?php language_attributes(); ?>>
<!--<![endif]-->
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>" />
    <title><?php wp_title( '', true, 'right' ); ?></title>
    <link rel="profile" href="http://gmpg.org/xfn/11" />
    <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />

    <?php wp_head(); ?>
</head>
<body <?php body_class(); ?> itemscope itemtype="http://schema.org/WebPage">
<?php do_action( 'g1_before_page' ); ?>
<div id="page">
    <div id="g1-top">
	<?php 
		/* Executes a custom hook.
		 * If you want to add some content before the g1-header, hook into 'g1_header_before' action.
		 */	
		do_action( 'g1_header_before' );
	?>

	<!-- BEGIN #g1-header -->
    <div id="g1-header-waypoint">
	<div id="g1-header" class="g1-header" role="banner">
        <div class="g1-layout-inner">
            <?php
                /* Executes a custom hook.
                 * If you want to add some content before the g1-primary-bar, hook into 'g1_header_begin' action.
                 */
                do_action( 'g1_header_begin' );
            ?>

            <div id="g1-primary-bar">
                <?php G1_Theme()->render_site_id(); ?>

                <!-- BEGIN #g1-primary-nav -->
                <nav id="g1-primary-nav" class="g1-nav--<?php echo sanitize_html_class( g1_get_theme_option('ta_header', 'primary_nav_style', 'none') ); ?> g1-nav--collapsed">
                    <a id="g1-primary-nav-switch" href="#"><?php echo __('Menu', 'g1_theme')?></a>
                    <?php
                        if ( has_nav_menu( 'primary_nav' ) ) {
                            wp_nav_menu( array(
                                'theme_location'	=> 'primary_nav',
                                'container'			=> '',
                                'menu_class'        => '',
                                'menu_id'			=> 'g1-primary-nav-menu',
                                'depth'				=> 0,
                                'walker'            => new G1_Extended_Walker_Nav_Menu(array(
                                    'with_description' => true,
                                    'with_icon' => true,
                                )),
                            ));
                        } else {
                            $helpmode = G1_Helpmode(
                                'empty_primary_nvation',
                                __( 'Empty Primary Navigation', 'g1_theme' ),
                                '<p>' . sprintf( __( 'You should <a href="%s">assign a menu to the Primary Navigation Theme Location</a>', 'g1_theme' ), network_admin_url( 'nav-menus.php' ) ) . '</p>'
                            );
                            $helpmode->render();
                        }
                    ?>

                    <?php if ( apply_filters( 'g1_header_woocommerce_minicart', is_plugin_active('woocommerce/woocommerce.php') ) ): ?>
                    <div class="g1-cartbox">
                        <a class="g1-cartbox__switch" href="#">
                            <div class="g1-cartbox__arrow"></div>
                            <strong><?php _ex( ' ', 'searchbox switch label',  'g1_theme' ); ?></strong>
                        </a>

                        <div class="g1-cartbox__box">
                            <div class="g1-inner woocommerce">
                                <?php
                                    $g1_instance = array(
                                        'title' => '',
                                        'number' => 1
                                    );
                                    $g1_args = array(
                                        'title' => '',
                                        'before_widget' => '',
                                        'after_widget' => '',
                                        'before_title' => '<div class="g1-cartbox__title">',
                                        'after_title' => '</div>',
                                    );
                                    $g1_widget = new WC_Widget_Cart();
                                    $g1_widget->number = $g1_instance['number'];
                                    $g1_widget->widget( $g1_args, $g1_instance );
                                ?>
                                <p class="g1-cartbox__empty"><?php _e( 'No products in the cart.', 'woocommerce' ); ?></p>
                            </div>

                        </div>
                    </div>
                    <?php endif; ?>

                    <?php
                        $g1_value = g1_get_theme_option( 'ta_header', 'searchform' );
                        $g1_layout = g1_get_theme_option( 'ta_header', 'layout', 'semi-standard' );

                        $g1_class = array(
                            'g1-searchbox',
                            'g1-searchbox--' . $g1_value,
                            'g1-searchbox--' . $g1_layout
                        );
                    ?>
                    <?php if ( 'none' !== $g1_value && !is_404() ): ?>
                    <div class="<?php echo  sanitize_html_classes($g1_class); ?>">
                        <a class="g1-searchbox__switch" href="#">
                            <div class="g1-searchbox__arrow"></div>
                            <strong><?php _ex( ' ', 'searchbox switch label',  'g1_theme' ); ?></strong>
                        </a>
                        <?php get_search_form(); ?>
                    </div>
                    <?php endif; ?>

                </nav>
                <!-- END #g1-primary-nav -->
            </div><!-- END #g1-primary-bar -->

            <?php
                /* Executes a custom hook.
                 * If you want to add some content after the g1-primary-bar, hook into 'g1_header_end' action.
                 */
                do_action( 'g1_header_end' );
            ?>

		</div>

        <?php get_template_part( 'template-parts/g1_background', 'header' ); ?>
	</div>
    </div>
	<!-- END #g1-header -->	

	<?php 
		/* Executes a custom hook.
		 * If you want to add some content after the g1-header, hook into 'g1_header_after' action.
		 */	
		do_action( 'g1_header_after' );
	?>
	
	<?php 
		/* Executes a custom hook.
		 * If you want to add some content before the g1-content, hook into 'g1_content_before' action.
		 */	
		do_action( 'g1_content_before' );
	?>
	
	<?php get_template_part( 'g1_precontent' ); ?>


        <div class="g1-background">
        </div>
    </div>

	<!-- BEGIN #g1-content -->
	<div id="g1-content" class="g1-content">
        <div class="g1-layout-inner">
            <?php
                /* Executes a custom hook.
                 * If you want to add some content before the g1-content-area, hook into 'g1_content_begin' action.
                 */
                do_action( 'g1_content_begin' );
            ?>
            <div id="g1-content-area">

header-g1-simple.php:

<?php
/**
 * The Header for our theme.
 *
 * For the full license information, please view the Licensing folder
 * that was distributed with this source code.
 *
 * @package G1_Framework
 * @subpackage G1_Theme03
 * @since G1_Theme03 1.0.0
 */

// Prevent direct script access
if ( !defined('ABSPATH') )
    die ( 'No direct script access allowed' );
?><!DOCTYPE html>
<!--[if IE 7 ]>
<html class="no-js lt-ie10 lt-ie9 lt-ie8" id="ie7" <?php language_attributes(); ?>>
<![endif]-->
<!--[if IE 8 ]>
<html class="no-js lt-ie10 lt-ie9" id="ie8" <?php language_attributes(); ?>>
<![endif]-->
<!--[if IE 9 ]>
<html class="no-js lt-ie10" id="ie9" <?php language_attributes(); ?>>
<![endif]-->
<!--[if !IE ]><!-->
<html class="no-js" <?php language_attributes(); ?>>
<!--<![endif]-->
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>" />
    <title><?php wp_title( '', true, 'right' ); ?></title>
    <link rel="profile" href="http://gmpg.org/xfn/11" />
    <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />

    <?php wp_head(); ?>
</head>
<body <?php body_class(); ?> itemscope itemtype="http://schema.org/WebPage">
<?php do_action( 'g1_before_page' ); ?>
<div id="page">
    <div id="g1-top">
	<?php 
		/* Executes a custom hook.
		 * If you want to add some content before the g1-header, hook into 'g1_header_before' action.
		 */	
		do_action( 'g1_header_before' );
	?>
	<!-- BEGIN #g1-header -->
    <div id="g1-header-waypoint">
	<div id="g1-header" class="g1-header" role="banner">
        <div class="g1-layout-inner">
            <?php
                /* Executes a custom hook.
                 * If you want to add some content before the g1-primary-bar, hook into 'g1_header_begin' action.
                 */
                do_action( 'g1_header_begin' );
            ?>

            <div id="g1-primary-bar">
                <?php G1_Theme()->render_site_id(); ?>
                <!-- END #g1-primary-nav -->
            </div><!-- END #g1-primary-bar -->

            <?php
                /* Executes a custom hook.
                 * If you want to add some content after the g1-primary-bar, hook into 'g1_header_end' action.
                 */
                do_action( 'g1_header_end' );
            ?>

		</div>

        <?php
        if ( 'none' !== g1_get_theme_option( 'general', 'scroll_to_top', 'standard' ) ) {
            echo '<p id="g1-back-to-top"><a href="#page">' . __( 'Top', 'g1_theme' ) . '</a></p>';
        }
        ?>

        <?php get_template_part( 'template-parts/g1_background', 'header' ); ?>
	</div>
    </div>
	<!-- END #g1-header -->	

	<?php
		/* Executes a custom hook.
		 * If you want to add some content after the g1-header, hook into 'g1_header_after' action.
		 */
		do_action( 'g1_header_after' );
	?>

	<?php
		/* Executes a custom hook.
		 * If you want to add some content before the g1-content, hook into 'g1_content_before' action.
		 */	
		do_action( 'g1_content_before' );
	?>

	<?php get_template_part( 'g1_precontent' ); ?>


        <div class="g1-background">
        </div>
    </div>


	<!-- BEGIN #g1-content -->
	<div id="g1-content" class="g1-content">
        <div class="g1-layout-inner">
            <?php
                /* Executes a custom hook.
                 * If you want to add some content before the g1-content-area, hook into 'g1_content_begin' action.
                 */
                do_action( 'g1_content_begin' );
            ?>
            <div id="g1-content-area">

finally, theme-functions.php:

<?php
/**
 * For the full license information, please view the Licensing folder
 * that was distributed with this source code.
 *
 * @package G1_Theme03
 * @subpackage G1_Theme
 * @since G1_Theme 1.0.0
 */

// Prevent direct script access
if ( !defined('ABSPATH') )
    die ( 'No direct script access allowed' );
?>
<?php

/**
 * Our Theme
 */
class G1_Theme {
    protected $id;
    protected $base_id;

    protected $version;
    const NAME = '3clicks';


    public function __construct( $id ) {
        $this->base_id = $id;
        $this->set_id( $id );

        $current_theme = wp_get_theme( self::NAME );
        $current_version = $current_theme->exists() ? $current_theme->get( 'Version' ) : '1.0.0';

        $this->set_version( $current_version );

        add_action( 'after_setup_theme', array( $this, 'setup_hooks' ) );
    }

    public function get_id() { return $this->id; }
    public function set_id( $val ) { $this->id = $val; }

    public function get_version() { return $this->version; }
    public function set_version( $val ) { $this->version = $val; }


    public function setup_hooks() {
        add_action( 'init', array($this, 'setup_session'), 1 );

        // WPML integration
        add_action( 'init', array( $this, 'setup_wpml' ) );

        add_filter( 'g1_site_id_markup', array( $this, 'change_site_id_markup_besides_front_page' ), 20 );

        // Enable post thumbnails
        add_action( 'init', array( $this, 'setup_post_thumbnails' ) );

        // Dynamic style cache revalidation
        add_action('update_option_' . $this->get_id(), array( $this, 'mark_dynamic_style_cache_as_invalid' ), 999, 2);

        // Set up shortcodes and related stuff
        $this->setup_shortcodes();

        // Set up widgets and related stuff
        $this->setup_widgets();

        // Register sidebars
        add_action( 'init', array( $this, 'setup_sidebars' ), 1 );

        // Register custom navigation locations
        add_action( 'init', array( $this, 'setup_nav_menus' ) );

        // Enable WP Auto Feed Links
        add_theme_support( 'automatic-feed-links' );

        $this->setup_post_formats();

        $this->load_embed_video_simple_interface();


        $this->setup_archive_templates();
        $this->setup_collections();
        $this->setup_single_templates();

        if ( is_plugin_active( 'revslider/revslider.php' ) ) {
            add_filter( 'g1_element_slider_choices' ,       array($this, 'add_rev_slider_choices') );
        }

        add_filter( 'default_content', array( $this, 'setup_default_discussion_options' ), 10, 2 );
        add_filter( 'embed_defaults', array( $this, 'embed_defaults' ), 999 );
    }

    public function mark_dynamic_style_cache_as_invalid ($old_value, $new_value) {
        $option_name = $this->get_id() . '_cache_dynamic_style';
        $dynamic_style_cache_enabled = $new_value['advanced_dynamic_style_cache'] === 'standard';

        if ( $dynamic_style_cache_enabled && $this->can_use_static_dynamic_style() ) {
            update_option($option_name, true);
        } else {
            delete_option($option_name);

            $use_cache_option_name = $this->get_id() . '_use_dynamic_style_cache';
            delete_option($use_cache_option_name);
        }
    }

    public function revalidate_dynamic_style_cache () {
        $force_cache_option_name = $this->get_id() . '_cache_dynamic_style';
        $force_cache = get_option( $force_cache_option_name) == true;

        if ( $force_cache ) {
            $file_cached = $this->cache_dynamic_style();

            // flag that indicates if we can use cached version
            $use_cache_option_name = $this->get_id() . '_use_dynamic_style_cache';

            if ( $file_cached ) {
                update_option($use_cache_option_name, true);

                $this->add_to_cache_log( __( 'Cache file was successfully saved on disk.', 'g1_theme'), 'success');
            } else {
                delete_option($use_cache_option_name);

                $this->add_to_cache_log( __( 'Caching process failed. Cache file was not saved on disk.', 'g1_theme'), 'error');
            }

            // regardless of whether caching was successful or not,
            // we need to remove this flag.
            // If options will be saved next time, this flag will be set again
            // and caching process will be repeated
            delete_option($force_cache_option_name);
        }
    }

    protected function add_to_cache_log ($message, $type) {
        $expire_after_one_hour = 60 * 60 * 1;

        $log_entry = array(
            'type' => $type,
            'message'  => $message,
            'date' => date('F j, Y, g:i a')
        );

        set_transient('g1_dynamic_style_cache_log', $log_entry, $expire_after_one_hour);
    }

    public function cache_dynamic_style () {
        require_once(ABSPATH . 'wp-admin/includes/file.php');

        WP_Filesystem();
        global $wp_filesystem;

        if (!$wp_filesystem) {
            return false;
        }

        $css_dir = trailingslashit( get_template_directory() ) . 'css/';

        // fetch styles content
        ob_start();
        $dont_send_headers = true;
        require_once( $css_dir . 'g1-dynamic-style.php' );
        $css = ob_get_clean();

        $filename = trailingslashit( $this->get_static_css_file_dir() ) . 'g1-dynamic-style.css';

        // if save correctly, use cached version
        if ( $wp_filesystem->exists( $filename ) ) {
            $wp_filesystem->delete( $filename );
        }

        if ( $wp_filesystem->put_contents( $filename, $css, FS_CHMOD_FILE) ) {
            return true;
        }

        return false;
    }

    public function can_use_static_dynamic_style () {
        return wp_is_writable($this->get_static_css_file_dir());
    }

    public function get_static_css_file_dir () {
        $upload_dir = wp_upload_dir();
        $dir = trailingslashit($upload_dir['basedir']);

        return $dir;
    }

    public function get_dynamic_style_file_url () {
        $use_dynamic_style_option_name = $this->get_id() . '_use_dynamic_style_cache';
        $use_dynamic_style = get_option($use_dynamic_style_option_name) == true;

        if ( $use_dynamic_style ) {
            $upload_dir = wp_upload_dir();

            $url = trailingslashit( $upload_dir['baseurl'] ) . 'g1-dynamic-style.css';
        } else {
            $url = trailingslashit( get_template_directory_uri() ) . 'css/g1-dynamic-style.php';
        }

        return $url;
    }

    /**
     * Set up the WordPress Multilingual Plugin if available
     *
     * You can read more about this plugin here:
     * http://wpml.org/
     */
    public function setup_wpml() {
        if ( G1_WPML_LOADED ) {

            // Remove @lang from term title
            global $sitepress;
            if ( $sitepress ) {
                add_filter('single_term_title', array( $sitepress, 'the_category_name_filter' ) );
            }
        }
    }


    public function embed_defaults ($args) {
        $args['height'] = round( $args['width'] * 9/16 );

        return $args;
    }

    public function setup_default_discussion_options ( $post_content, $post ) {
        if( !empty($post->post_type) ) {
            switch( $post->post_type ) {
                case 'page':
                    $post->comment_status = g1_get_theme_option('post_type_page', 'comment_status', 'open');
                    $post->ping_status = g1_get_theme_option('post_type_page', 'ping_status', 'open');
                    break;
            }
        }

        return $post_content;
    }


    public function add_rev_slider_choices ($choices) {
        if ( !class_exists('GlobalsRevSlider') ) {
            return array();
        }

        global $wpdb;

        $tableSliders = $wpdb->prefix . GlobalsRevSlider::TABLE_SLIDERS_NAME;

        $res = $wpdb->get_results( "SELECT id, title, alias FROM $tableSliders", ARRAY_A );

        foreach ($res as $slider) {
            $choices['revslider_'.$slider['alias']] = 'RevSlider: ' . $slider['title'] . ' (ID:' . $slider['id'] . ')';
        }

        return $choices;
    }



    public function setup_session () {
        if (defined('G1_CUSTOMIZE_MODE')) {
    	    $dontUseSession = !empty($_COOKIE['g1_dont_use_session']) ? (bool)$_COOKIE['g1_dont_use_session'] : false;

            if ($dontUseSession) {
                return;
            }

            if ( !session_id() ) {
                session_start();
            }

            // get
            $demo_nr = isset($_GET['demo']) ? (integer)$_GET['demo'] : null;

            if ($demo_nr !== null && $demo_nr >= 1 && $demo_nr <= 12) {
                $theme_id = $this->base_id;

                if ( $demo_nr >= 2 ) {
                    $theme_id .= '_v' . str_pad($demo_nr, 2, '0', STR_PAD_LEFT);
                }

                $_SESSION['theme_id'] = $theme_id;
            }

            // session
            $session_theme_id = isset($_SESSION['theme_id']) ? $_SESSION['theme_id'] : $this->base_id;

            if ($session_theme_id !== null) {
                $this->set_id( $session_theme_id );
            }
        }
    }

    public function gallery_shortcode ( $attr ) {
        $attr = wp_parse_args( $attr, array(
            'itemtag'    => 'li',
            'icontag'    => 'div',
            'captiontag' => 'div',
            'lightbox' => true
        ));

        $open_in_lightbox = $attr['lightbox'] !== 'false';

        if ( $open_in_lightbox ) {
            $attr['link'] = 'file';
        }

        $html = gallery_shortcode( $attr );

        $html = preg_replace( '/<br[^>]*>/i', '', $html );

        $open_tag_found = preg_match('/^\s*(<div[^>]*>)/i', $html, $open_matches);
        $close_tag_found = preg_match('/(<\/div>)\s*$/i', $html);

        // replace first opening and last closing tag
        if ( $open_tag_found && $close_tag_found ) {

            $open_div = $open_matches[1];
            $new_open_div = str_replace('div', 'figure', $open_div) . '<ol>';
            $html = str_replace($open_div, $new_open_div, $html);

            $html = preg_replace('/<\/div>\s*$/', '</ol></figure>', $html);

            $lightbox_group_id = rand();

            if ( $open_in_lightbox ) {
                $html = str_replace('<a', '<a data-g1-lightbox="gallery-'. $lightbox_group_id .'"', $html);
            }
        }

        return $html;
    }

    public function setup_post_formats () {
        add_theme_support(
            'post-formats',
            array(
                'aside',
                'gallery',
                'link',
                'image',
                'quote',
                'status',
                'video',
                'audio',
                'chat'
            )
        );

        require_once( G1_LIB_DIR . '/g1-post-formats/g1-post-formats.php' );
    }

    public function load_embed_video_simple_interface () {
        add_filter( 'embed_oembed_html', 'g1_youtube_simple_interface', 10, 3 );
        add_filter( 'embed_oembed_html', 'g1_vimeo_simple_interface', 10, 3 );
    }

    public function load_embed_video_rich_interface () {
        remove_filter( 'embed_oembed_html', 'g1_youtube_simple_interface' );
        remove_filter( 'embed_oembed_html', 'g1_vimeo_simple_interface' );
    }

    /**
     * @param $size
     *
     * @return boolean
     */
    public function get_crop_for_size ( $size ) {
        $image_size_properties = g1_get_theme_option('image_size', $size, array());

        if ( !empty($image_size_properties['crop']) ) {
            return (bool)($image_size_properties['crop'] === 'standard');
        }

        // size doesn't exist
        return false;
    }

    public function default_post_thumbnails_sizes_crops () {
        return array(
            'g1_max'        => false,
            'g1_two_third'  => false,
            'g1_one_half'   => true,
            'g1_one_third'  => true,
            'g1_one_fourth' => true,
            'g1_one_twelfth'=> true,
        );
    }

    public function setup_post_thumbnails() {
        // Enable post-thumbnails feature
        add_theme_support( 'post-thumbnails' );

        // Add image sizes based on our grid
        // Please note that modules can add their own sizes

        $unit_width = 55;
        $gutter_width = 28;

        add_image_size( 'g1_max', 968, 9999, $this->get_crop_for_size( 'g1_max' ) );

        add_image_size( 'g1_two_third',
            8*$unit_width + 7*$gutter_width,
            9999,
            $this->get_crop_for_size( 'g1_two_third' )
        );

        add_image_size( 'g1_one_half',
            482,
            round( 482 * (9/16) ),
            $this->get_crop_for_size( 'g1_one_half' )
        );

        add_image_size( 'g1_one_third',
            320,
            round( 320 * (9/16) ),
            $this->get_crop_for_size( 'g1_one_third' )
        );

        add_image_size( 'g1_one_third_flexible',
            320,
            9999,
            $this->get_crop_for_size( 'g1_one_third_flexible' )
        );

        add_image_size( 'g1_one_fourth',
            239,
            round( 239 * (9/16) ),
            $this->get_crop_for_size( 'g1_one_fourth' )
        );

        add_image_size( 'g1_one_fourth_flexible',
            239,
            9999,
            $this->get_crop_for_size( 'g1_one_fourth_flexible' )
        );


        add_image_size( 'g1_one_twelfth',
            $unit_width,
            $unit_width,
            $this->get_crop_for_size( 'g1_one_twelfth' )
        );
    }








    /**
     * Registers sidebars
     *
     * Registers permanent sidebars and custom ones from the sidedar generator
     */
    public function setup_sidebars() {
        $sidebars = g1_get_theme_option( 'sidebars', '', array() );

        // Normalize | sanitize
        foreach ( $sidebars as $index => $sidebar ) {
            $sidebar = preg_replace( '/[^0-9a-zA-Z_-]/', '-', $sidebar );
            $sidebar = preg_replace( '/\-{2,}/', '-', $sidebar );
            $sidebar = strtolower($sidebar);

            $sidebars[ $index ] = $sidebar;
        }

        // Prepend default sidebars
        array_unshift(
            $sidebars,
            'primary',
            'preheader-1',
            'preheader-2',
            'preheader-3',
            'preheader-4',
            'preheader-5',
            'prefooter-1',
            'prefooter-2',
            'prefooter-3',
            'prefooter-4',
            'prefooter-5'
        );

        $sidebars = apply_filters( 'g1_setup_sidebars', $sidebars );

        if ( count( $sidebars ) ) {
            foreach ( $sidebars as $sidebar) {
                if ( strlen( $sidebar ) ) {
                    register_sidebar( array(
                        'name'				=> $sidebar,
                        'id'				=> $sidebar,
                        'before_widget' 	=> '<section id="%1$s" class="widget %2$s g1-widget--cssclass">',
                        'after_widget' 		=> '</section>',
                        'before_title'  	=> '<header><h3 class="widgettitle">',
                        'after_title'   	=> '</h3></header>'

                    ));
                }
            }
        }
    }

    /**
     * Registers Custom Navigation Locations
     */
    public function setup_nav_menus() {
        register_nav_menus(  array(
            'primary_nav'   => __( 'Primary Navigation', 'g1_theme' ),
            'secondary_nav' => __( 'Secondary Navigation', 'g1_theme' ),
            'footer_nav'	=> __( 'Footer Navigation', 'g1_theme' ),
        ));
    }




    public function setup_shortcodes() {
        require_once( G1_LIB_DIR.'/g1-shortcodes/basic.php' );
        require_once( G1_LIB_DIR.'/g1-shortcodes/grid.php' );
        require_once( G1_LIB_DIR.'/g1-shortcodes/panels.php' );
        require_once( G1_LIB_DIR.'/g1-shortcodes/misc.php' );


        // gallery shortcode
        remove_shortcode( 'gallery' );
        add_shortcode( 'gallery', array($this, 'gallery_shortcode') );
        add_filter( 'use_default_gallery_style', '__return_false' );


        if ( is_admin() ) {
            require_once( G1_LIB_DIR.'/g1-shortcodes/admin/home_page_snippets.php' );
            require_once( G1_LIB_DIR.'/g1-shortcodes/admin/page_snippets.php' );
        }

        //add_shortcode('wp_caption', 'g1_img_caption_shortcode');
        //add_shortcode('caption', 'g1_img_caption_shortcode');
    }

    public function setup_widgets() {
        // Enable shortcodes in the Text Widget
        add_filter( 'widget_text', 'do_shortcode', 11 );

        // The title of a widget can be empty now
        add_filter( 'widget_title',  array( $this, 'allow_empty_widget_title' ), 9999 );
    }

    public function setup_archive_templates() {
        add_action( 'g1_archive_templates_register', array( $this, 'register_archive_templates' ), 8 );
    }

    public function setup_single_templates() {
        add_action( 'g1_single_templates_register', array( $this, 'register_single_templates' ), 8 );
    }

    public function setup_collections() {
        add_action( 'g1_collections_register', array( $this, 'register_collections' ), 8 );
    }


    public function allow_empty_widget_title( $title ) {
        $title = trim( $title );
        $title = ( $title === " " ) ? '' : $title;

        return $title;
    }




    public function register_archive_templates( $manager ) {
        $dir = '/';
        $uri = trailingslashit( get_template_directory_uri() ) . 'images/templates/';

        // Add archive templates
        $templates = array(
            '1col_sidebar_right' => array(
                'label' => __( '1 Column, Right Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_1col_sidebar_right.php',
                'icon'  => $uri . 'g1_template_archive_1col_sidebar_right.png',
            ),
            '1col_sidebar_left' => array(
                'label' => __( '1 Column, Left Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_1col_sidebar_left.php',
                'icon'  => $uri . 'g1_template_archive_1col_sidebar_left.png',
            ),
            '1col' => array(
                'label' => __( '1 Column', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_1col.php',
                'icon'  => $uri . 'g1_template_archive_1col.png',
            ),
            '2col' => array(
                'label' => __( '2 Columns', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col.php',
                'icon'  => $uri . 'g1_template_archive_2col.png',
            ),
            '2col_filterable' => array(
                'label' => __( '2 Columns Filterable', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_filterable.php',
                'icon'  => $uri . 'g1_template_archive_2col_filterable.png',
            ),
            '2col_gallery' => array(
                'label' => __( '2 Columns Gallery', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_gallery.php',
                'icon'  => $uri . 'g1_template_archive_2col_gallery.png',
            ),
            '2col_gallery_filterable' => array(
                'label' => __( '2 Columns Gallery Filterable', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_gallery_filterable.php',
                'icon'  => $uri . 'g1_template_archive_2col_gallery_filterable.png',
            ),
            '2col_sidebar_left' => array(
                'label' => __( '2 Columns, Left Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_sidebar_left.php',
                'icon'  => $uri . 'g1_template_archive_2col_sidebar_left.png',
            ),
            '2col_filterable_sidebar_left' => array(
                'label' => __( '2 Columns Filterable, Left Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_filterable_sidebar_left.php',
                'icon'  => $uri . 'g1_template_archive_2col_filterable_sidebar_left.png',
            ),
            '2col_gallery_sidebar_left' => array(
                'label' => __( '2 Columns Gallery, Left Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_gallery_sidebar_left.php',
                'icon'  => $uri . 'g1_template_archive_2col_gallery_sidebar_left.png',
            ),
            '2col_gallery_filterable_sidebar_left' => array(
                'label' => __( '2 Columns Gallery Filterable, Left Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_gallery_filterable_sidebar_left.php',
                'icon'  => $uri . 'g1_template_archive_2col_gallery_filterable_sidebar_left.png',
            ),
            '2col_sidebar_right' => array(
                'label' => __( '2 Column, Right Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_sidebar_right.php',
                'icon'  => $uri . 'g1_template_archive_2col_sidebar_right.png',
            ),
            '2col_filterable_sidebar_right' => array(
                'label' => __( '2 Columns Filterable, Right Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_filterable_sidebar_right.php',
                'icon'  => $uri . 'g1_template_archive_2col_filterable_sidebar_right.png',
            ),
            '2col_gallery_sidebar_right' => array(
                'label' => __( '2 Column Gallery, Right Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_gallery_sidebar_right.php',
                'icon'  => $uri . 'g1_template_archive_2col_gallery_sidebar_right.png',
            ),
            '2col_gallery_filterable_sidebar_right' => array(
                'label' => __( '2 Columns Gallery Filterable, Right Sidebar', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_2col_gallery_filterable_sidebar_right.php',
                'icon'  => $uri . 'g1_template_archive_2col_gallery_filterable_sidebar_right.png',
            ),
            '3col' => array(
                'label' => __( '3 Columns', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_3col.php',
                'icon'  => $uri . 'g1_template_archive_3col.png',
            ),
            '3col_filterable' => array(
                'label' => __( '3 Columns Filterable', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_3col_filterable.php',
                'icon'  => $uri . 'g1_template_archive_3col_filterable.png',
            ),
            '3col_masonry' => array(
                'label' => __( '3 Columns Masonry', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_3col_masonry.php',
                'icon'  => $uri . 'g1_template_archive_3col_masonry.png',
            ),
            '3col_gallery' => array(
                'label' => __( '3 Columns Gallery', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_3col_gallery.php',
                'icon'  => $uri . 'g1_template_archive_3col_gallery.png',
            ),
            '3col_gallery_filterable' => array(
                'label' => __( '3 Columns Gallery Filterable', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_3col_gallery_filterable.php',
                'icon'  => $uri . 'g1_template_archive_3col_gallery_filterable.png',
            ),
            '4col' => array(
                'label' => __( '4 Columns', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_4col.php',
                'icon'  => $uri . 'g1_template_archive_4col.png',
            ),
            '4col_masonry' => array(
                'label' => __( '4 Columns Masonry', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_4col_masonry.php',
                'icon'  => $uri . 'g1_template_archive_4col_masonry.png',
            ),
            '4col_gallery' => array(
                'label' => __( '4 Columns Gallery', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_4col_gallery.php',
                'icon'  => $uri . 'g1_template_archive_4col_gallery.png',
            ),
            '4col_filterable' => array(
                'label' => __( '4 Columns Filterable', 'g1_theme' ),
                'file'  => $dir . 'g1_template_archive_4col_filterable.php',
                'icon'  => $uri . 'g1_template_archive_4col_filterable.png',
            ),
        );

        foreach ( $templates as $id => $args ) {
            $manager->add_template( $id, $args );
        }
    }

    public function register_collections( $manager ) {
        $template_parts_dir = 'template-parts/';

        $templates = array(
            'one_fourth' => array(
                'file'              => $template_parts_dir . 'g1_collection_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-fourth', 'g1-collection--simple' ),
                'image_size'        => 'g1_one_fourth',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_fourth_gallery' => array(
                'file'              => $template_parts_dir . 'g1_collection_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-fourth', 'g1-collection--gallery' ),
                'image_size'        => 'g1_one_fourth',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_fourth_filterable' => array(
                'file'              => $template_parts_dir . 'g1_collection_filterable_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-fourth', 'g1-collection--filterable' ),
                'image_size'        => 'g1_one_fourth',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_fourth_masonry' => array(
                'file'              => $template_parts_dir . 'g1_collection_masonry',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-fourth', 'g1-collection--masonry' ),
                'image_size'        => 'g1_one_fourth_flexible',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => false,
            ),
            'one_third' => array(
                'file'              => $template_parts_dir . 'g1_collection_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-third', 'g1-collection--simple' ),
                'image_size'        => 'g1_one_third',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_third_filterable' => array(
                'file'              => $template_parts_dir . 'g1_collection_filterable_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-third', 'g1-collection--filterable' ),
                'image_size'        => 'g1_one_third',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_third_gallery' => array(
                'file'              => $template_parts_dir . 'g1_collection_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-third', 'g1-collection--gallery' ),
                'image_size'        => 'g1_one_third',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_third_gallery_filterable' => array(
                'file'              => $template_parts_dir . 'g1_collection_filterable_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-third', 'g1-collection--gallery' ),
                'image_size'        => 'g1_one_third',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_third_masonry' => array(
                'file'              => $template_parts_dir . 'g1_collection_masonry',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-third', 'g1-collection--masonry' ),
                'image_size'        => 'g1_one_third_flexible',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => false,
            ),
            'one_half' => array(
                'file'              => $template_parts_dir . 'g1_collection_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-half', 'g1-collection--simple' ),
                'image_size'        => 'g1_one_half',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_half_filterable' => array(
                'file'              => $template_parts_dir . 'g1_collection_filterable_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-half', 'g1-collection--filterable' ),
                'image_size'        => 'g1_one_half',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_half_gallery' => array(
                'file'              => $template_parts_dir . 'g1_collection_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-half', 'g1-collection--gallery' ),
                'image_size'        => 'g1_one_half',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'one_half_gallery_filterable' => array(
                'file'              => $template_parts_dir . 'g1_collection_filterable_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--one-half', 'g1-collection--gallery' ),
                'image_size'        => 'g1_one_half',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => true,
            ),
            'two_third' => array(
                'file'              => $template_parts_dir . 'g1_collection_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--two-third', 'g1-collection--simple' ),
                'image_size'        => 'g1_two_third',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => false,
            ),
            'max' => array(
                'file'              => $template_parts_dir . 'g1_collection_grid',
                'classes'           => array( 'g1-collection--grid', 'g1-collection--max', 'g1-collection--simple' ),
                'image_size'        => 'g1_max',
                'lightbox_group'    => 'g1-works',
                'force_placeholder' => false,
            ),
        );

        foreach ( $templates as $id => $args ) {
            $manager->add_collection( $id, $args );
        }
    }



    public function register_single_templates( $manager ) {
        $dir = '/';
        $uri = trailingslashit( get_template_directory_uri() ) . 'images/templates/';

        // Add archive templates
        $templates = array(
            'sidebar_right' => array(
                'label' => __( 'Sidebar Right', 'g1_theme' ),
                'file'  => $dir . 'g1_template_single_sidebar_right.php',
                'icon'  => $uri . 'g1_template_single_sidebar_right.png',
            ),
            'sidebar_left' => array(
                'label' => __( 'Sidebar Left', 'g1_theme' ),
                'file'  => $dir . 'g1_template_single_sidebar_left.php',
                'icon'  => $uri . 'g1_template_single_sidebar_left.png',
            ),
            'overview_right' => array(
                'label' => __( 'Overview Right', 'g1_theme' ),
                'file'  => $dir . 'g1_template_single_overview_right.php',
                'icon'  => $uri . 'g1_template_single_overview_right.png',
            ),
            'overview_left' => array(
                'label' => __( 'Overview Left', 'g1_theme' ),
                'file'  => $dir . 'g1_template_single_overview_left.php',
                'icon'  => $uri . 'g1_template_single_overview_left.png',
            ),
            'full' => array(
                'label' => __( 'Full', 'g1_theme' ),
                'file'  => $dir . 'g1_template_single_full.php',
                'icon'  => $uri . 'g1_template_single_full.png',
            ),
        );

        foreach ( $templates as $id => $args ) {
            $manager->add_template( $id, $args );
        }
    }


    public function get_theme_areas() {
        $result = array(
            '.g1-preheader'     => __( 'Preheader', 'g1_theme' ),
            '.g1-header'        => __( 'Header', 'g1_theme' ),
            '.g1-precontent'    => __( 'Precontent', 'g1_theme' ),
            '.g1-content'       => __( 'Content', 'g1_theme' ),
            '.g1-prefooter'     => __( 'Prefooter', 'g1_theme' ),
            '.g1-footer'        => __( 'Footer', 'g1_theme' ),
        );

        return $result;
    }

    public function change_site_id_markup_besides_front_page ( $markup ) {
        if ( !is_front_page() ) {
            $markup = '<p class="site-title"><a href="%1$s" title="'. __( 'Go back to the homepage', 'g1_theme' ) .'">%2$s</a></p>';
        }

        return $markup;
    }


    /**
     * Captures HTML with site identification.
     *
     * @return string
     */
    public function capture_site_id() {
        $out = '';

        // Get all required data
        $name = get_bloginfo( 'name' );
        $description = get_bloginfo( 'description' );
        $desktop_src = g1_get_theme_option( 'branding', 'logo' );

        // Compose logo element
        $out_desktop = '';
        $out_mobile = '';

        // image logo
        if ( ! empty( $desktop_src) ) {
            $set = array();

            // set desktop logo as a defualt for every media width
            $data = array(
                'data-g1-src-desktop' => $desktop_src,
                'data-g1-src-desktop-hdpi' => $desktop_src,
                'data-g1-src-mobile' => $desktop_src,
                'data-g1-src-mobile-hdpi' => $desktop_src,
            );

            // Desktop - HDPI screens
            $desktop_hdpi_src = g1_get_theme_option( 'branding', 'logo_hdpi' );
            if ( !empty( $desktop_hdpi_src ) ) {
                $data['data-g1-src-desktop-hdpi'] = $desktop_hdpi_src;
            }

            // Mobile
            $mobile_src = g1_get_theme_option( 'branding', 'logo_mobile' );
            if (  !empty( $mobile_src ) ) {
                $data['data-g1-src-mobile'] = $mobile_src;
            }

            // Mobile - HDPI screens
            $mobile_hdpi_src = g1_get_theme_option( 'branding', 'logo_mobile_hdpi' );
            if (  !empty( $mobile_hdpi_src ) ) {
                $data['data-g1-src-mobile-hdpi'] = $mobile_hdpi_src;
            } else if ( !empty( $desktop_hdpi_src ) ) {
                $data['data-g1-src-mobile-hdpi'] = $desktop_hdpi_src;
            }

            // markup
            $data_desktop_str =  sprintf(' %s="%s"', 'data-g1-src-desktop', esc_url( $data['data-g1-src-desktop'] ));
            $data_desktop_str .= sprintf(' %s="%s"', 'data-g1-src-desktop-hdpi', esc_url( $data['data-g1-src-desktop-hdpi'] ));

            $data_mobile_str =  sprintf(' %s="%s"', 'data-g1-src-mobile', esc_url( $data['data-g1-src-mobile'] ));
            $data_mobile_str .= sprintf(' %s="%s"', 'data-g1-src-mobile-hdpi', esc_url( $data['data-g1-src-mobile-hdpi'] ));

            $data_desktop_str = trim( $data_desktop_str );
            $data_mobile_str = trim( $data_mobile_str );

            $size_desktop = '';
            $logo_width = absint(g1_get_theme_option('branding', 'logo_width'));
            $logo_height = absint(g1_get_theme_option('branding', 'logo_height'));

            if ( !empty($logo_width) && !empty($logo_height) ) {
                $size_desktop = sprintf(' width="%s" height="%s"', $logo_width, $logo_height);
            }

            $size_mobile = '';
            $logo_mobile_width = absint(g1_get_theme_option('branding', 'logo_mobile_width'));
            $logo_mobile_height = absint(g1_get_theme_option('branding', 'logo_mobile_height'));

            if ( !empty($logo_mobile_width) && !empty($logo_mobile_height) ) {
                $size_mobile = sprintf(' width="%s" height="%s"', $logo_mobile_width, $logo_mobile_height);
            } else if ( !empty($logo_width) && !empty($logo_height) ) {
                $size_mobile = sprintf(' width="%s" height="%s"', $logo_width, $logo_height);
            }

            $out_desktop =
                '<img'. $size_desktop .' id="g1-logo" src="'. esc_url($desktop_src) .'" alt="'. esc_attr($name) .'" '. $data_desktop_str .' />
                <noscript><img src="'. esc_url($desktop_src) .'" alt="'. esc_attr($name) .'" /></noscript>';

            $out_mobile =
                '<img'. $size_mobile .' id="g1-mobile-logo" src="'. esc_url($data['data-g1-src-mobile']) .'" alt="'. esc_attr($name) .'" '. $data_mobile_str .' />';

            // text logo
        } else {
            $out_desktop = esc_html( $name );
        }

        $markup = apply_filters( 'g1_site_id_markup', '<h1 class="site-title"><a href="%1$s">%2$s</a></h1>' );

        $out .= '<div id="g1-id">';

        $out .= sprintf(
            $markup,
            esc_url( home_url() ),
            $out_desktop . $out_mobile
        );

        // Capture tagline
        if ( 'none' !== g1_get_theme_option( 'ta_header', 'tagline' ) && strlen( $description ) ) {
            if ( is_front_page() ) {
                $out .= '<p class="site-description"><strong>' . esc_html( $description ) . '</strong></p>';
            } else {
                $out .= '<p class="site-description">' . esc_html( $description ) . '</p>';
            }
        }
        $out .= '</div><!-- #id -->';

        return $out;
    }

    public function render_site_id() {
        echo $this->capture_site_id();
    }

    public function primary_full_body_class( $classes ) {
        $classes[] = 'g1-primary-full';
        return $classes;
    }

    public function secondary_before_body_class( $classes ) {
        $classes[] = 'g1-secondary-before';
        return $classes;
    }
    public function secondary_after_body_class( $classes ) {
        $classes[] = 'g1-secondary-after';
        return $classes;
    }
    public function secondary_none_body_class( $classes ) {
        $classes[] = 'g1-secondary-none';
        return $classes;
    }
    public function secondary_wide_body_class( $classes ) {
        $classes[] = 'g1-secondary-wide';
        return $classes;
    }
    public function secondary_narrow_body_class( $classes ) {
        $classes[] = 'g1-secondary-narrow';
        return $classes;
    }


    public function mediabox_before_body_class( $classes ) {
        $classes[] = 'g1-mediabox-before';
        return $classes;
    }
    public function mediabox_after_body_class( $classes ) {
        $classes[] = 'g1-mediabox-after';
        return $classes;
    }
    public function mediabox_wide_body_class( $classes ) {
        $classes[] = 'g1-mediabox-wide';
        return $classes;
    }
    public function mediabox_narrow_body_class( $classes ) {
        $classes[] = 'g1-mediabox-narrow';
        return $classes;
    }





}

/**
 * Quasi-singleton for our theme
 *
 * @return G1_Theme
 */
function G1_Theme() {
    static $instance;

    if ( !isset( $instance ) ) {
        $instance = new G1_Theme( 'g1_theme03' );
    }

    return $instance;
}
// Fire in the hole 
G1_Theme();


if ( is_admin() ) {
    require_once( G1_LIB_DIR . '/theme-admin.php' );
} else {
    require_once( G1_LIB_DIR . '/theme-front.php' );
}




/**
 * Gets a theme option
 */
function g1_get_theme_option( $base, $key, $default = false ) {
    static $storage_values = null;

    $storage_name = G1_Theme()->get_id();

    if ( null === $storage_values || defined('G1_CUSTOMIZE_MODE')) {
        $storage_values = get_option( $storage_name , array() );
    }

    $option_name = $base;

    if ( strlen($key) > 0 ) {
        $option_name .= '_' .$key;
    }

    $result = isset( $storage_values[ $option_name ] ) ? $storage_values[ $option_name ] : $default;

    return $result;
}

function g1_get_font_awesome ( $icon_name = null ) {
    $list = array('adjust' => 'adjust',
        'adn' => 'adn',
        'align-center' => 'align-center',
        'align-justify' => 'align-justify',
        'align-left' => 'align-left',
        'align-right' => 'align-right',
        'ambulance' => 'ambulance',
        'anchor' => 'anchor',
        'android' => 'android',
        'angle-down' => 'angle-down',
        'angle-left' => 'angle-left',
        'angle-right' => 'angle-right',
        'angle-up' => 'angle-up',
        'apple' => 'apple',
        'archive' => 'archive',
        'arrow-down' => 'arrow-down',
        'arrow-left' => 'arrow-left',
        'arrow-right' => 'arrow-right',
        'arrow-up' => 'arrow-up',
        'asterisk' => 'asterisk',
        'backward' => 'backward',
        'ban-circle' => 'ban-circle',
        'bar-chart' => 'bar-chart',
        'barcode' => 'barcode',
        'beaker' => 'beaker',
        'beer' => 'beer',
        'bell' => 'bell',
        'bell-alt' => 'bell-alt',
        'bitbucket' => 'bitbucket',
        'bitbucket-sign' => 'bitbucket-sign',
        'bold' => 'bold',
        'bolt' => 'bolt',
        'book' => 'book',
        'bookmark' => 'bookmark',
        'bookmark-empty' => 'bookmark-empty',
        'briefcase' => 'briefcase',
        'btc' => 'btc',
        'bug' => 'bug',
        'building' => 'building',
        'bullhorn' => 'bullhorn',
        'bullseye' => 'bullseye',
        'calendar' => 'calendar',
        'calendar-empty' => 'calendar-empty',
        'camera' => 'camera',
        'camera-retro' => 'camera-retro',
        'caret-down' => 'caret-down',
        'caret-left' => 'caret-left',
        'caret-right' => 'caret-right',
        'caret-up' => 'caret-up',
        'certificate' => 'certificate',
        'check' => 'check',
        'check-empty' => 'check-empty',
        'check-minus' => 'check-minus',
        'check-sign' => 'check-sign',
        'chevron-down' => 'chevron-down',
        'chevron-left' => 'chevron-left',
        'chevron-right' => 'chevron-right',
        'chevron-sign-down' => 'chevron-sign-down',
        'chevron-sign-left' => 'chevron-sign-left',
        'chevron-sign-right' => 'chevron-sign-right',
        'chevron-sign-up' => 'chevron-sign-up',
        'chevron-up' => 'chevron-up',
        'circle' => 'circle',
        'circle-arrow-down' => 'circle-arrow-down',
        'circle-arrow-left' => 'circle-arrow-left',
        'circle-arrow-right' => 'circle-arrow-right',
        'circle-arrow-up' => 'circle-arrow-up',
        'circle-blank' => 'circle-blank',
        'cloud' => 'cloud',
        'cloud-download' => 'cloud-download',
        'cloud-upload' => 'cloud-upload',
        'cny' => 'cny',
        'code' => 'code',
        'code-fork' => 'code-fork',
        'coffee' => 'coffee',
        'cog' => 'cog',
        'cogs' => 'cogs',
        'collapse' => 'collapse',
        'collapse-alt' => 'collapse-alt',
        'collapse-top' => 'collapse-top',
        'columns' => 'columns',
        'comment' => 'comment',
        'comment-alt' => 'comment-alt',
        'comments' => 'comments',
        'comments-alt' => 'comments-alt',
        'compass' => 'compass',
        'copy' => 'copy',
        'credit-card' => 'credit-card',
        'crop' => 'crop',
        'css3' => 'css3',
        'cut' => 'cut',
        'dashboard' => 'dashboard',
        'desktop' => 'desktop',
        'double-angle-down' => 'double-angle-down',
        'double-angle-left' => 'double-angle-left',
        'double-angle-right' => 'double-angle-right',
        'double-angle-up' => 'double-angle-up',
        'download' => 'download',
        'download-alt' => 'download-alt',
        'dribble' => 'dribble',
        'dropbox' => 'dropbox',
        'edit' => 'edit',
        'edit-sign' => 'edit-sign',
        'eject' => 'eject',
        'ellipsis-horizontal' => 'ellipsis-horizontal',
        'ellipsis-vertical' => 'ellipsis-vertical',
        'envelope' => 'envelope',
        'envelope-alt' => 'envelope-alt',
        'eraser' => 'eraser',
        'eur' => 'eur',
        'exchange' => 'exchange',
        'exclamation' => 'exclamation',
        'exclamation-sign' => 'exclamation-sign',
        'expand' => 'expand',
        'expand-alt' => 'expand-alt',
        'external-link' => 'external-link',
        'external-link-sign' => 'external-link-sign',
        'eye-close' => 'eye-close',
        'eye-open' => 'eye-open',
        'facebook' => 'facebook',
        'facebook-sign' => 'facebook-sign',
        'facetime-video' => 'facetime-video',
        'fast-backward' => 'fast-backward',
        'fast-forward' => 'fast-forward',
        'female' => 'female',
        'fighter-jet' => 'fighter-jet',
        'file' => 'file',
        'file-alt' => 'file-alt',
        'file-text' => 'file-text',
        'file-text-alt' => 'file-text-alt',
        'film' => 'film',
        'filter' => 'filter',
        'fire' => 'fire',
        'fire-extinguisher' => 'fire-extinguisher',
        'flag' => 'flag',
        'flag-alt' => 'flag-alt',
        'flag-checkered' => 'flag-checkered',
        'flickr' => 'flickr',
        'folder-close' => 'folder-close',
        'folder-close-alt' => 'folder-close-alt',
        'folder-open' => 'folder-open',
        'folder-open-alt' => 'folder-open-alt',
        'font' => 'font',
        'food' => 'food',
        'forward' => 'forward',
        'foursquare' => 'foursquare',
        'frown' => 'frown',
        'fullscreen' => 'fullscreen',
        'gamepad' => 'gamepad',
        'gbp' => 'gbp',
        'gift' => 'gift',
        'github' => 'github',
        'github-alt' => 'github-alt',
        'github-sign' => 'github-sign',
        'gittip' => 'gittip',
        'glass' => 'glass',
        'globe' => 'globe',
        'google-plus' => 'google-plus',
        'google-plus-sign' => 'google-plus-sign',
        'group' => 'group',
        'h-sign' => 'h-sign',
        'hand-down' => 'hand-down',
        'hand-left' => 'hand-left',
        'hand-right' => 'hand-right',
        'hand-up' => 'hand-up',
        'hdd' => 'hdd',
        'headphones' => 'headphones',
        'heart' => 'heart',
        'heart-empty' => 'heart-empty',
        'home' => 'home',
        'hospital' => 'hospital',
        'html5' => 'html5',
        'inbox' => 'inbox',
        'indent-left' => 'indent-left',
        'indent-right' => 'indent-right',
        'info' => 'info',
        'info-sign' => 'info-sign',
        'inr' => 'inr',
        'instagram' => 'instagram',
        'italic' => 'italic',
        'jpy' => 'jpy',
        'key' => 'key',
        'keyboard' => 'keyboard',
        'krw' => 'krw',
        'laptop' => 'laptop',
        'leaf' => 'leaf',
        'legal' => 'legal',
        'lemon' => 'lemon',
        'level-down' => 'level-down',
        'level-up' => 'level-up',
        'lightbulb' => 'lightbulb',
        'link' => 'link',
        'linkedin' => 'linkedin',
        'linkedin-sign' => 'linkedin-sign',
        'linux' => 'linux',
        'list' => 'list',
        'list-alt' => 'list-alt',
        'list-ol' => 'list-ol',
        'list-ul' => 'list-ul',
        'location-arrow' => 'location-arrow',
        'lock' => 'lock',
        'long-arrow-down' => 'long-arrow-down',
        'long-arrow-left' => 'long-arrow-left',
        'long-arrow-right' => 'long-arrow-right',
        'long-arrow-up' => 'long-arrow-up',
        'magic' => 'magic',
        'magnet' => 'magnet',
        'mail-reply-all' => 'mail-reply-all',
        'male' => 'male',
        'map-marker' => 'map-marker',
        'maxcdn' => 'maxcdn',
        'medkit' => 'medkit',
        'meh' => 'meh',
        'microphone' => 'microphone',
        'microphone-off' => 'microphone-off',
        'minus' => 'minus',
        'minus-sign' => 'minus-sign',
        'minus-sign-alt' => 'minus-sign-alt',
        'mobile-phone' => 'mobile-phone',
        'money' => 'money',
        'moon' => 'moon',
        'move' => 'move',
        'music' => 'music',
        'off' => 'off',
        'ok' => 'ok',
        'ok-circle' => 'ok-circle',
        'ok-sign' => 'ok-sign',
        'paper-clip' => 'paper-clip',
        'paste' => 'paste',
        'pause' => 'pause',
        'pencil' => 'pencil',
        'phone' => 'phone',
        'phone-sign' => 'phone-sign',
        'picture' => 'picture',
        'pinterest' => 'pinterest',
        'pinterest-sign' => 'pinterest-sign',
        'plane' => 'plane',
        'play' => 'play',
        'play-circle' => 'play-circle',
        'play-sign' => 'play-sign',
        'plus' => 'plus',
        'plus-sign' => 'plus-sign',
        'plus-sign-alt' => 'plus-sign-alt',
        'print' => 'print',
        'pushpin' => 'pushpin',
        'puzzle-piece' => 'puzzle-piece',
        'qrcode' => 'qrcode',
        'question' => 'question',
        'question-sign' => 'question-sign',
        'quote-left' => 'quote-left',
        'quote-right' => 'quote-right',
        'random' => 'random',
        'refresh' => 'refresh',
        'remove' => 'remove',
        'remove-circle' => 'remove-circle',
        'remove-sign' => 'remove-sign',
        'renren' => 'renren',
        'reorder' => 'reorder',
        'repeat' => 'repeat',
        'reply' => 'reply',
        'reply-all' => 'reply-all',
        'resize-full' => 'resize-full',
        'resize-horizontal' => 'resize-horizontal',
        'resize-small' => 'resize-small',
        'resize-vertical' => 'resize-vertical',
        'retweet' => 'retweet',
        'road' => 'road',
        'rocket' => 'rocket',
        'rss' => 'rss',
        'rss-sign' => 'rss-sign',
        'save' => 'save',
        'screenshot' => 'screenshot',
        'search' => 'search',
        'share' => 'share',
        'share-alt' => 'share-alt',
        'share-sign' => 'share-sign',
        'shield' => 'shield',
        'shopping-cart' => 'shopping-cart',
        'sign-blank' => 'sign-blank',
        'signal' => 'signal',
        'signin' => 'signin',
        'signout' => 'signout',
        'sitemap' => 'sitemap',
        'skype' => 'skype',
        'smile' => 'smile',
        'sort' => 'sort',
        'sort-by-alphabet' => 'sort-by-alphabet',
        'sort-by-alphabet-alt' => 'sort-by-alphabet-alt',
        'sort-by-attributes' => 'sort-by-attributes',
        'sort-by-attributes-alt' => 'sort-by-attributes-alt',
        'sort-by-order' => 'sort-by-order',
        'sort-by-order-alt' => 'sort-by-order-alt',
        'sort-down' => 'sort-down',
        'sort-up' => 'sort-up',
        'spinner' => 'spinner',
        'stackexchange' => 'stackexchange',
        'star' => 'star',
        'star-empty' => 'star-empty',
        'star-half' => 'star-half',
        'star-half-empty' => 'star-half-empty',
        'step-backward' => 'step-backward',
        'step-forward' => 'step-forward',
        'stethoscope' => 'stethoscope',
        'stop' => 'stop',
        'strikethrough' => 'strikethrough',
        'subscript' => 'subscript',
        'suitcase' => 'suitcase',
        'sun' => 'sun',
        'superscript' => 'superscript',
        'table' => 'table',
        'tablet' => 'tablet',
        'tag' => 'tag',
        'tags' => 'tags',
        'tasks' => 'tasks',
        'terminal' => 'terminal',
        'text-height' => 'text-height',
        'text-width' => 'text-width',
        'th' => 'th',
        'th-large' => 'th-large',
        'th-list' => 'th-list',
        'thumbs-down' => 'thumbs-down',
        'thumbs-down-alt' => 'thumbs-down-alt',
        'thumbs-up' => 'thumbs-up',
        'thumbs-up-alt' => 'thumbs-up-alt',
        'ticket' => 'ticket',
        'time' => 'time',
        'tint' => 'tint',
        'trash' => 'trash',
        'trello' => 'trello',
        'trophy' => 'trophy',
        'truck' => 'truck',
        'tumblr' => 'tumblr',
        'tumblr-sign' => 'tumblr-sign',
        'twitter' => 'twitter',
        'twitter-sign' => 'twitter-sign',
        'umbrella' => 'umbrella',
        'underline' => 'underline',
        'undo' => 'undo',
        'unlink' => 'unlink',
        'unlock' => 'unlock',
        'unlock-alt' => 'unlock-alt',
        'upload' => 'upload',
        'upload-alt' => 'upload-alt',
        'usd' => 'usd',
        'user' => 'user',
        'user-md' => 'user-md',
        'vk' => 'vk',
        'volume-down' => 'volume-down',
        'volume-off' => 'volume-off',
        'volume-up' => 'volume-up',
        'warning-sign' => 'warning-sign',
        'weibo' => 'weibo',
        'windows' => 'windows',
        'wrench' => 'wrench',
        'xing' => 'xing',
        'xing-sign' => 'xing-sign',
        'youtube' => 'youtube',
        'youtube-play' => 'youtube-play',
        'youtube-sign' => 'youtube-sign',
        'zoom-in' => 'zoom-in',
        'zoom-out' => 'zoom-out',
    );

    if ( !is_null($icon_name) ) {
        $index = array_search( $icon_name, $list );

        if ( $index !== false ) {
            return array(
                'code'  =>  $index,
                'name'  =>  $list[$index]
            );
        }

        return null;
    }

    return $list;
}




Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.