├── screenshot.png ├── assets ├── img │ ├── logo.png │ ├── favicon.png │ ├── banner_bg.png │ ├── banner_bg_1.png │ ├── banner_overlay_1.png │ ├── banner_overlay_2.png │ ├── footer_overlay_1.png │ └── footer_overlay_2.png ├── fonts │ ├── themify.eot │ ├── themify.ttf │ ├── Flaticon.eot │ ├── Flaticon.ttf │ ├── Flaticon.woff │ ├── Flaticon.woff2 │ └── themify.woff ├── css │ ├── gilb_admin.css │ ├── flaticon.css │ ├── slick.css │ ├── owl.carousel.min.css │ ├── nice-select.css │ ├── magnific-popup.css │ └── elementor-default-element-style.css └── js │ ├── gilb_admin.js │ ├── post-likes.js │ ├── jquery.instagramFeed.min.js │ ├── gilb-elementor-notice.js │ ├── custom.js │ ├── jquery.nice-select.min.js │ └── jquery.ajaxchimp.min.js ├── .gitmodules ├── template-builder.php ├── templates ├── pagination.php ├── footer-widgets.php ├── footer-bottom.php ├── content-page.php ├── biography.php ├── content-audio.php ├── content-video.php ├── content-none.php ├── 404.php ├── footer-personal-info.php ├── header-bottom.php ├── content.php ├── content-single.php └── header-top.php ├── template-builder-wheader.php ├── sidebar-page.php ├── 404.php ├── sidebar.php ├── footer.php ├── searchform.php ├── header.php ├── style.css ├── inc ├── class-epsilon-dashboard-autoloader.php ├── gilb-widgets-reg.php ├── wp_bootstrap_pagination.php ├── libraries │ └── class-epsilon-init-notify-system.php ├── hooks │ ├── hooks.php │ └── hooks-functions.php ├── customizer │ ├── customizer.php │ ├── fields │ │ └── sections.php │ └── js │ │ └── customizer.js ├── classes │ ├── Class-Enqueue.php │ └── Class-Config.php ├── support-functions.php ├── class-epsilon-init-dashboard.php ├── gilb-breadcrumbs.php ├── wp-html-helper.php ├── wp_bootstrap_navwalker.php ├── gilb-commoncss.php └── post-like.php ├── single.php ├── page.php ├── index.php ├── search.php ├── readme.txt ├── single-portfolio.php ├── archive.php ├── comments.php └── functions.php /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/screenshot.png -------------------------------------------------------------------------------- /assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/img/logo.png -------------------------------------------------------------------------------- /assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/img/favicon.png -------------------------------------------------------------------------------- /assets/fonts/themify.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/fonts/themify.eot -------------------------------------------------------------------------------- /assets/fonts/themify.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/fonts/themify.ttf -------------------------------------------------------------------------------- /assets/img/banner_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/img/banner_bg.png -------------------------------------------------------------------------------- /assets/fonts/Flaticon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/fonts/Flaticon.eot -------------------------------------------------------------------------------- /assets/fonts/Flaticon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/fonts/Flaticon.ttf -------------------------------------------------------------------------------- /assets/fonts/Flaticon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/fonts/Flaticon.woff -------------------------------------------------------------------------------- /assets/fonts/Flaticon.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/fonts/Flaticon.woff2 -------------------------------------------------------------------------------- /assets/fonts/themify.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/fonts/themify.woff -------------------------------------------------------------------------------- /assets/img/banner_bg_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/img/banner_bg_1.png -------------------------------------------------------------------------------- /assets/img/banner_overlay_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/img/banner_overlay_1.png -------------------------------------------------------------------------------- /assets/img/banner_overlay_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/img/banner_overlay_2.png -------------------------------------------------------------------------------- /assets/img/footer_overlay_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/img/footer_overlay_1.png -------------------------------------------------------------------------------- /assets/img/footer_overlay_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/gilb-theme/master/assets/img/footer_overlay_2.png -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "inc/libraries/epsilon-theme-dashboard"] 2 | path = inc/libraries/epsilon-theme-dashboard 3 | url = https://github.com/MachoThemes/epsilon-theme-dashboard 4 | [submodule "inc/libraries/epsilon-framework"] 5 | path = inc/libraries/epsilon-framework 6 | url = https://github.com/MachoThemes/epsilon-framework 7 | -------------------------------------------------------------------------------- /template-builder.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /templates/pagination.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /template-builder-wheader.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sidebar-page.php: -------------------------------------------------------------------------------- 1 | '; 18 | dynamic_sidebar( 'gilb-page-sidebar' ); 19 | echo ''; 20 | } 21 | 22 | 23 | ?> -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sidebar.php: -------------------------------------------------------------------------------- 1 |
'; 18 | dynamic_sidebar( 'gilb-post-sidebar' ); 19 | echo '
'; 20 | } 21 | 22 | 23 | ?> -------------------------------------------------------------------------------- /templates/footer-widgets.php: -------------------------------------------------------------------------------- 1 | 15 | 16 | -------------------------------------------------------------------------------- /templates/footer-bottom.php: -------------------------------------------------------------------------------- 1 | ', '', date( 'Y' ) ); 5 | $copyRight = !empty( gilb_opt( 'gilb_footer_copyright_text' ) ) ? gilb_opt( 'gilb_footer_copyright_text' ) : $copyText; 6 | ?> 7 | 8 |
9 | 12 |
-------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 31 | 32 | -------------------------------------------------------------------------------- /templates/content-page.php: -------------------------------------------------------------------------------- 1 | 17 |
18 |
> 19 | 33 |
34 |
-------------------------------------------------------------------------------- /assets/css/gilb_admin.css: -------------------------------------------------------------------------------- 1 | .epsilon-dashboard-tab .row .col { 2 | background-color: #fff; 3 | min-width: 29% !important; 4 | margin-left: 6px; 5 | margin-right: 6px; 6 | padding: 12px; 7 | } 8 | .epsilon-dashboard-tab .standout { 9 | padding: 40px !important; 10 | } 11 | #epsilon-demo.epsilon-dashboard-tab .row .epsilon-demo-box.col, 12 | #epsilon-demos .row .epsilon-demo-box.col { 13 | background-color: transparent; 14 | min-width: 159px !important; 15 | width: 155px !important; 16 | } 17 | .epsilon-dashboard-container--tabs nav a.active { 18 | border-bottom-color: #0073aa; 19 | background-color: #222; 20 | color: #fff !important; 21 | } 22 | .epsilon-dashboard-container--tabs nav a { 23 | background-color: #fff; 24 | } 25 | .dashicons-admin-tools:before{ 26 | content: "\f102"; 27 | } -------------------------------------------------------------------------------- /searchform.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
17 |
18 |
19 | 20 |
21 | 22 |
23 |
24 |
25 | 26 |
-------------------------------------------------------------------------------- /templates/biography.php: -------------------------------------------------------------------------------- 1 | 18 |
19 |
20 | 25 |
26 |

27 |

28 |
29 |
30 |
-------------------------------------------------------------------------------- /header.php: -------------------------------------------------------------------------------- 1 | 2 | > 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | > 14 | 15 | 16 | 17 | 17 | 18 |
> 19 |
20 | 62 |
63 |
-------------------------------------------------------------------------------- /templates/content-video.php: -------------------------------------------------------------------------------- 1 | 17 | 18 |
> 19 |
20 | 62 |
63 |
-------------------------------------------------------------------------------- /templates/content-none.php: -------------------------------------------------------------------------------- 1 | 14 |
15 |

16 | 17 | 18 | 19 |

Get started here.', 'gilb' ), esc_url( admin_url( 'post-new.php' ) ) ); ?>

20 | 21 | 22 | 23 |

24 | 38 | 39 | 40 | 41 |

42 | 43 | 44 | 45 |
46 | -------------------------------------------------------------------------------- /templates/404.php: -------------------------------------------------------------------------------- 1 | 16 | 17 |
18 |
19 |
20 |
21 |
22 | '.esc_html( $errorText ).''; 29 | 30 | // Wrong text block 31 | $wrongText = wp_kses_post( __( 'Either something went wrong or the page dosen’t exist anymore.', 'gilb' ) ); 32 | 33 | if( gilb_opt('gilb_fof_titletwo') ){ 34 | $wrongText = gilb_opt('gilb_fof_titletwo'); 35 | } 36 | 37 | $anchor = gilb_anchor_tag( 38 | array( 39 | 'url' => esc_url( site_url( '/' ) ), 40 | 'text' => esc_html__( 'Go To Home page', 'gilb' ), 41 | 'class' => 'button-contactForm btn_1' 42 | ) 43 | ); 44 | 45 | echo gilb_paragraph_tag( 46 | array( 47 | 'text' => esc_html( $wrongText ) 48 | ) 49 | ); 50 | 51 | echo wp_kses_post( $anchor ); 52 | ?> 53 |
54 |
55 |
56 |
57 |
-------------------------------------------------------------------------------- /templates/footer-personal-info.php: -------------------------------------------------------------------------------- 1 | 15 | 16 | 25 |
26 | 30 |
31 |
32 | 35 |
36 | -------------------------------------------------------------------------------- /assets/js/post-likes.js: -------------------------------------------------------------------------------- 1 | (function( $ ) { 2 | 'use strict'; 3 | $(document).on('click', '.sl-button', function() { 4 | var button = $(this); 5 | var post_id = button.attr('data-post-id'); 6 | var gilb = button.attr('data-nonce'); 7 | var iscomment = button.attr('data-iscomment'); 8 | var allbuttons; 9 | if ( iscomment === '1' ) { /* Comments can have same id */ 10 | allbuttons = $('.sl-comment-button-'+post_id); 11 | } else { 12 | allbuttons = $('.sl-button-'+post_id); 13 | } 14 | var loader = allbuttons.next('#sl-loader'); 15 | if (post_id !== '') { 16 | $.ajax({ 17 | type: 'POST', 18 | url: simpleLikes.ajaxurl, 19 | data : { 20 | action : 'gilb_process_simple_like', 21 | post_id : post_id, 22 | nonce : gilb, 23 | is_comment : iscomment, 24 | }, 25 | beforeSend:function(){ 26 | loader.html(' 
Loading...
'); 27 | }, 28 | success: function(response){ 29 | var icon = response.icon; 30 | var customIcon = button.prev(); 31 | var count = response.count; 32 | allbuttons.html(count); 33 | if(response.status === 'unliked') { 34 | var like_text = simpleLikes.like; 35 | allbuttons.prop('title', like_text); 36 | allbuttons.removeClass('liked'); 37 | if( customIcon.hasClass( 'fa-heart' )){ 38 | customIcon.removeClass('fa-heart'); 39 | } 40 | customIcon.addClass('fa-heart-o'); 41 | } else { 42 | var unlike_text = simpleLikes.unlike; 43 | allbuttons.prop('title', unlike_text); 44 | allbuttons.addClass('liked'); 45 | if( customIcon.hasClass( 'fa-heart-o' )){ 46 | customIcon.removeClass('fa-heart-o'); 47 | } 48 | customIcon.addClass('fa-heart'); 49 | } 50 | loader.empty(); 51 | } 52 | }); 53 | 54 | } 55 | return false; 56 | }); 57 | })( jQuery ); 58 | -------------------------------------------------------------------------------- /inc/class-epsilon-dashboard-autoloader.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /templates/header-bottom.php: -------------------------------------------------------------------------------- 1 | 23 | 24 |
> 25 |
26 |
27 | 58 |
59 |
60 |
-------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /templates/content.php: -------------------------------------------------------------------------------- 1 | 17 | 18 |
> 19 | 96 |
-------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | === Gilb === 2 | Contributors: colorlib 3 | Tags: custom-header, custom-menu, featured-image-header, featured-images, full-width-template, translation-ready 4 | Requires at least: 5.2 5 | Tested up to: 5.4.2 6 | 7 | == Description == 8 | Gilb is a clean, simple, responsive and customizable WordPress theme that looks awesome on any device. For a quick launch of a page to showcases your works, your talents and your services, apredefined theme is a wise decision to make. Gilb has it all in store for you to easily and effortlessly engineer an appealing page to attract new clients and seal new business deals. 9 | 10 | 11 | = License = 12 | Gilb WordPress theme, Copyright (C) 2018 Colorlib.com 13 | Gilb WordPress theme is licensed under the GPL2. 14 | 15 | Unless otherwise specified, all the theme files, scripts and images are licensed under GNU General Public License. 16 | The exceptions to this license are as follows: 17 | 18 | Images: 19 | - theme screenshot: custom work created by Colorlib.com and released under GPLv2 20 | 21 | * Bootstrap v4.1.1 (http://getbootstrap.com) 22 | Copyright 2011-2018 Twitter, Inc. 23 | Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 24 | 25 | * Animate CSS (https://daneden.github.io/animate.css/) 26 | Licensed under MIT (https://github.com/daneden/animate.css/blob/master/LICENSE) 27 | 28 | * Font Awesome 29 | License: SIL OFL 1.1 30 | URL: http://scripts.sil.org/OFL 31 | 32 | * Google Fonts: 33 | License: SIL OFL 1.1 34 | URL: http://scripts.sil.org/OFL 35 | 36 | * PopperJS (https://github.com/FezVrasta/popper.js) 37 | Copyright © 2016-2018 Federico Zivolo 38 | License: MIT 39 | URL: https://github.com/FezVrasta/popper.js/blob/master/LICENSE.md 40 | 41 | *ScrollUpJS (http://markgoodyear.com/labs/scrollup/) 42 | Copyright (c) Mark Goodyear — @markgdyr — http://markgoodyear.com 43 | License: MIT 44 | URL: http://markgoodyear.com/labs/scrollup/ 45 | 46 | *wowJS (https://github.com/graingert/wow) 47 | URL: https://wowjs.uk 48 | Copyright (c) 2016 - 2018 Thomas Grainger 49 | License: MIT 50 | -------------------------------------------------------------------------------- /inc/gilb-widgets-reg.php: -------------------------------------------------------------------------------- 1 | esc_html__( 'Sidebar', 'gilb' ), 20 | 'id' => 'gilb-post-sidebar', 21 | 'before_widget' => '
', 22 | 'after_widget' => '
', 23 | 'before_title' => '

', 24 | 'after_title' => '

', 25 | ) ); 26 | // page sidebar widgets register 27 | register_sidebar( array( 28 | 'name' => esc_html__( 'Page Sidebar', 'gilb' ), 29 | 'id' => 'gilb-page-sidebar', 30 | 'before_widget' => '
', 31 | 'after_widget' => '
', 32 | 'before_title' => '
', 33 | 'after_title' => '
', 34 | ) ); 35 | 36 | // footer widgets register 37 | register_sidebar( array( 38 | 'name' => esc_html__( 'Footer One', 'gilb' ), 39 | 'id' => 'footer-1', 40 | 'before_widget' => '
', 42 | 'before_title' => '', 43 | 'after_title' => '', 44 | ) ); 45 | register_sidebar( array( 46 | 'name' => esc_html__( 'Footer Two', 'gilb' ), 47 | 'id' => 'footer-2', 48 | 'before_widget' => '
', 50 | 'before_title' => '', 51 | 'after_title' => '', 52 | ) ); 53 | 54 | 55 | 56 | } 57 | add_action( 'widgets_init', 'gilb_widgets_init' ); 58 | -------------------------------------------------------------------------------- /assets/css/slick.css: -------------------------------------------------------------------------------- 1 | /* Slider */ 2 | .slick-slider 3 | { 4 | position: relative; 5 | 6 | display: block; 7 | 8 | -moz-box-sizing: border-box; 9 | box-sizing: border-box; 10 | 11 | -webkit-user-select: none; 12 | -moz-user-select: none; 13 | -ms-user-select: none; 14 | user-select: none; 15 | 16 | -webkit-touch-callout: none; 17 | -khtml-user-select: none; 18 | -ms-touch-action: pan-y; 19 | touch-action: pan-y; 20 | -webkit-tap-highlight-color: transparent; 21 | } 22 | 23 | .slick-list 24 | { 25 | position: relative; 26 | 27 | display: block; 28 | overflow: hidden; 29 | 30 | margin: 0; 31 | padding: 0; 32 | } 33 | .slick-list:focus 34 | { 35 | outline: none; 36 | } 37 | .slick-list.dragging 38 | { 39 | cursor: pointer; 40 | cursor: hand; 41 | } 42 | 43 | .slick-slider .slick-track, 44 | .slick-slider .slick-list 45 | { 46 | -webkit-transform: translate3d(0, 0, 0); 47 | -moz-transform: translate3d(0, 0, 0); 48 | -ms-transform: translate3d(0, 0, 0); 49 | -o-transform: translate3d(0, 0, 0); 50 | transform: translate3d(0, 0, 0); 51 | } 52 | 53 | .slick-track 54 | { 55 | position: relative; 56 | top: 0; 57 | left: 0; 58 | 59 | display: block; 60 | } 61 | .slick-track:before, 62 | .slick-track:after 63 | { 64 | display: table; 65 | 66 | content: ''; 67 | } 68 | .slick-track:after 69 | { 70 | clear: both; 71 | } 72 | .slick-loading .slick-track 73 | { 74 | visibility: hidden; 75 | } 76 | 77 | .slick-slide 78 | { 79 | display: none; 80 | float: left; 81 | 82 | height: 100%; 83 | min-height: 1px; 84 | } 85 | [dir='rtl'] .slick-slide 86 | { 87 | float: right; 88 | } 89 | .slick-slide img 90 | { 91 | display: block; 92 | } 93 | .slick-slide.slick-loading img 94 | { 95 | display: none; 96 | } 97 | .slick-slide.dragging img 98 | { 99 | pointer-events: none; 100 | } 101 | .slick-initialized .slick-slide 102 | { 103 | display: block; 104 | } 105 | .slick-loading .slick-slide 106 | { 107 | visibility: hidden; 108 | } 109 | .slick-vertical .slick-slide 110 | { 111 | display: block; 112 | 113 | height: auto; 114 | 115 | border: 1px solid transparent; 116 | } -------------------------------------------------------------------------------- /single-portfolio.php: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 |
18 |
19 |
20 | 24 |
25 |
26 | '; 28 | ?> 29 |
30 |
31 |
32 |
33 |

34 | 35 | 42 |
43 |
44 | 48 |
49 |
50 |
51 | 52 | 53 | 7 | * 8 | * https://github.com/BanNsS1/jquery.instagramFeed 9 | * 10 | */ 11 | (function(e){var l={username:"",container:"",display_profile:!0,display_biography:!0,display_gallery:!0,get_raw_json:!1,callback:null,styling:!0,items:8,items_per_row:4,margin:.5};e.instagramFeed=function(b){b=e.fn.extend({},l,b);""==b.username&&""==b.tag?console.log("Instagram Feed: Error, no username or tag found."):b.get_raw_json||""!=b.container?b.get_raw_json&&null==b.callback?console.log("Instagram Feed: Error, no callback defined to get the raw json"):e.get("https://www.instagram.com/"+b.username, 12 | function(a){a=a.split("window._sharedData = ");a=a[1].split("\x3c/script>");a=a[0];a=a.substr(0,a.length-1);a=JSON.parse(a);a=a.entry_data.ProfilePage[0].graphql.user;if(b.get_raw_json)b.callback(JSON.stringify({id:a.id,username:a.username,full_name:a.full_name,is_private:a.is_private,is_verified:a.is_verified,biography:a.biography,followed_by:a.edge_followed_by.count,following:a.edge_follow.count,images:a.edge_owner_to_timeline_media.edges}));else{var d="",f="",g="",h="",k="";b.styling&&(d=" style='text-align:center;'", 13 | f=" style='border-radius:10em;width:15%;max-width:125px;min-width:50px;'",g=" style='font-size:1.2em;'",h=" style='font-size:1em;'",k=" style='margin:"+b.margin+"% "+b.margin+"%;width:"+(100-2*b.margin*b.items_per_row)/b.items_per_row+"%;float:left;'");var c="";b.display_profile&&(c=c+("
")+("\t"+b.username+" profile pic"),c+="\t

@"+a.full_name+" (@"+b.username+")

");b.display_biography&&(c+="\t

"+a.biography+"

");b.display_profile&&(c+="
");if(b.display_gallery)if(a.is_private)c+="

This profile is private

";else{a=a.edge_owner_to_timeline_media.edges;max=a.length>b.items?b.items:a.length;c+=""}e(b.container).html(c)}}):console.log("Instagram Feed: Error, no container found.")}})(jQuery); -------------------------------------------------------------------------------- /assets/js/gilb-elementor-notice.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Notice for Elementor 3 | * 4 | * @package Gilb 5 | */ 6 | 7 | /* global gilbElementorNotice */ 8 | 9 | jQuery( document ).ready( 10 | function () { 11 | 12 | var style = ''; 13 | 14 | var dialog = style + '
' + 15 | '
' + 16 | '
Gilb supports default styling for Elementor widgets
' + 17 | '
Do you want to disable Elementors\' default styles and use the theme defaults?
' + 18 | '
' + 19 | 'No' + 20 | 'Yes' + 21 | '
' + 22 | '
' + 23 | '
'; 24 | 25 | jQuery( 'body' ).prepend( dialog ); 26 | jQuery( '.gilb-elementor-notice-buttons > a' ).on( 27 | 'click', function() { 28 | 29 | var reply = jQuery( this ).data( 'reply' ); 30 | 31 | jQuery.ajax( 32 | { 33 | url: gilbElementorNotice.ajaxurl, 34 | data: { 35 | reply: reply, 36 | nonce: gilbElementorNotice.nonce, 37 | action: 'elementor_desiable_default_style' 38 | }, 39 | type: 'post', 40 | success: function () { 41 | 42 | if ( reply === 'yes' ) { 43 | parent.location.reload(); 44 | } else { 45 | jQuery( '.gilb-disable-elementor-styling' ).fadeOut( 500, function() { jQuery( this ).remove(); } ); 46 | } 47 | } 48 | } 49 | ); 50 | } 51 | ); 52 | } 53 | ); 54 | -------------------------------------------------------------------------------- /assets/js/custom.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | "use strict"; 3 | 4 | 5 | $(document).ready(function() { 6 | $('select').niceSelect(); 7 | }); 8 | 9 | // menu fixed js code 10 | $(window).scroll(function () { 11 | var window_top = $(window).scrollTop() + 1; 12 | if (window_top > 50) { 13 | $('.main_menu').addClass('menu_fixed animated fadeInDown'); 14 | } else { 15 | $('.main_menu').removeClass('menu_fixed animated fadeInDown'); 16 | } 17 | }); 18 | 19 | 20 | $('.img_gallery').magnificPopup({ 21 | type: 'image', 22 | gallery:{ 23 | enabled:true 24 | } 25 | }); 26 | 27 | $('.grid').masonry({ 28 | itemSelector: '.grid-item', 29 | columnWidth: '.grid-sizer', 30 | }); 31 | 32 | $('.single_service_part').hover( 33 | function(){$(this).addClass('active')}, 34 | function(){$(this).removeClass('active')} 35 | ) 36 | 37 | // $('.single_service_part').hover(function(){ 38 | // $('.single_service_text').removeClass('active'); 39 | // $('.single_service_text').addClass('active'); 40 | // }); 41 | 42 | 43 | 44 | var review = $('.client_review_part'); 45 | if (review.length) { 46 | review.owlCarousel({ 47 | items: 2, 48 | loop: true, 49 | dots: true, 50 | autoplay: true, 51 | autoplayHoverPause: true, 52 | autoplayTimeout: 5000, 53 | nav: false, 54 | margin: 20, 55 | responsive:{ 56 | 0:{ 57 | items:1, 58 | dots: false 59 | }, 60 | 600:{ 61 | items:2, 62 | } 63 | } 64 | }); 65 | } 66 | 67 | /*------------------------------------- 68 | Instagram Photos 69 | -------------------------------------*/ 70 | function cp_instagram_photos() { 71 | $('.cp-instagram-photos').each(function(){ 72 | $.instagramFeed({ 73 | 'username': $(this).data('username'), 74 | 'container': $(this), 75 | 'display_profile': false, 76 | 'display_biography': false, 77 | 'items': $(this).data('items'), 78 | 'margin': 0 79 | }); 80 | console.log( $(this) ); 81 | }); 82 | 83 | } 84 | cp_instagram_photos(); 85 | 86 | // function getAjaxSubmitUrl() { 87 | // var url = $ ("#mc_embed_signup"). attr ("action"); 88 | // if (typeof url == 'undefined') { 89 | // url = "https://spondonit.us12.list-manage.com/subscribe/post?u=1462626880ade1ac87bd9c93a&id=92a4423d01"; 90 | // } 91 | // url = url.replace ("/ post? u =", "/ post-json? u ="); 92 | // url += "& c =?"; 93 | // return url; 94 | // } 95 | // getAjaxSubmitUrl(); 96 | 97 | 98 | }(jQuery)); -------------------------------------------------------------------------------- /inc/wp_bootstrap_pagination.php: -------------------------------------------------------------------------------- 1 | 4, 20 | 'custom_query' => FALSE, 21 | 'previous_string' => esc_html__( '«', 'gilb' ), 22 | 'next_string' => esc_html__( '»', 'gilb' ), 23 | 'before_output' => '
' 25 | ); 26 | 27 | $args = wp_parse_args( 28 | $args, 29 | apply_filters( 'gilb_pagination_defaults', $defaults ) 30 | ); 31 | 32 | $args['range'] = (int) $args['range'] - 1; 33 | if ( !$args['custom_query'] ) 34 | $args['custom_query'] = isset( $GLOBALS['wp_query'] ) ? $GLOBALS['wp_query'] : ''; 35 | $count = (int) $args['custom_query']->max_num_pages; 36 | $page = intval( get_query_var( 'paged' ) ); 37 | $ceil = ceil( $args['range'] / 2 ); 38 | 39 | if ( $count <= 1 ) 40 | return FALSE; 41 | 42 | if ( !$page ) 43 | $page = 1; 44 | 45 | if ( $count > $args['range'] ) { 46 | if ( $page <= $args['range'] ) { 47 | $min = 1; 48 | $max = $args['range'] + 1; 49 | } elseif ( $page >= ($count - $ceil) ) { 50 | $min = $count - $args['range']; 51 | $max = $count; 52 | } elseif ( $page >= $args['range'] && $page < ($count - $ceil) ) { 53 | $min = $page - $ceil; 54 | $max = $page + $ceil; 55 | } 56 | } else { 57 | $min = 1; 58 | $max = $count; 59 | } 60 | 61 | $echo = ''; 62 | 63 | 64 | if ( !empty($min) && !empty($max) ) { 65 | for( $i = $min; $i <= $max; $i++ ) { 66 | if ( $page == $i ) { 67 | $echo .= '
  • ' . str_pad( (int)$i, 1, '0', STR_PAD_LEFT ) . '.
  • '; 68 | } else { 69 | $echo .= sprintf( '
  • %2d.
  • ', esc_attr( get_pagenum_link($i) ), $i ); 70 | } 71 | } 72 | } 73 | 74 | 75 | if ( isset($echo) ) 76 | echo wp_kses_post( $args['before_output'] . $echo . $args['after_output'] ); 77 | } 78 | -------------------------------------------------------------------------------- /archive.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /templates/content-single.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
    > 17 |
    18 | 106 |
    107 | 115 |
    -------------------------------------------------------------------------------- /assets/js/jquery.nice-select.min.js: -------------------------------------------------------------------------------- 1 | /* jQuery Nice Select - v1.0 2 | https://github.com/hernansartorio/jquery-nice-select 3 | Made by Hernán Sartorio */ 4 | !function(e){e.fn.niceSelect=function(t){function s(t){t.after(e("
    ").addClass("nice-select").addClass(t.attr("class")||"").addClass(t.attr("disabled")?"disabled":"").attr("tabindex",t.attr("disabled")?null:"0").html(''));var s=t.next(),n=t.find("option"),i=t.find("option:selected");s.find(".current").html(i.data("display")||i.text()),n.each(function(t){var n=e(this),i=n.data("display");s.find("ul").append(e("
  • ").attr("data-value",n.val()).attr("data-display",i||null).addClass("option"+(n.is(":selected")?" selected":"")+(n.is(":disabled")?" disabled":"")).html(n.text()))})}if("string"==typeof t)return"update"==t?this.each(function(){var t=e(this),n=e(this).next(".nice-select"),i=n.hasClass("open");n.length&&(n.remove(),s(t),i&&t.next().trigger("click"))}):"destroy"==t?(this.each(function(){var t=e(this),s=e(this).next(".nice-select");s.length&&(s.remove(),t.css("display",""))}),0==e(".nice-select").length&&e(document).off(".nice_select")):console.log('Method "'+t+'" does not exist.'),this;this.hide(),this.each(function(){var t=e(this);t.next().hasClass("nice-select")||s(t)}),e(document).off(".nice_select"),e(document).on("click.nice_select",".nice-select",function(t){var s=e(this);e(".nice-select").not(s).removeClass("open"),s.toggleClass("open"),s.hasClass("open")?(s.find(".option"),s.find(".focus").removeClass("focus"),s.find(".selected").addClass("focus")):s.focus()}),e(document).on("click.nice_select",function(t){0===e(t.target).closest(".nice-select").length&&e(".nice-select").removeClass("open").find(".option")}),e(document).on("click.nice_select",".nice-select .option:not(.disabled)",function(t){var s=e(this),n=s.closest(".nice-select");n.find(".selected").removeClass("selected"),s.addClass("selected");var i=s.data("display")||s.text();n.find(".current").text(i),n.prev("select").val(s.data("value")).trigger("change")}),e(document).on("keydown.nice_select",".nice-select",function(t){var s=e(this),n=e(s.find(".focus")||s.find(".list .option.selected"));if(32==t.keyCode||13==t.keyCode)return s.hasClass("open")?n.trigger("click"):s.trigger("click"),!1;if(40==t.keyCode){if(s.hasClass("open")){var i=n.nextAll(".option:not(.disabled)").first();i.length>0&&(s.find(".focus").removeClass("focus"),i.addClass("focus"))}else s.trigger("click");return!1}if(38==t.keyCode){if(s.hasClass("open")){var l=n.prevAll(".option:not(.disabled)").first();l.length>0&&(s.find(".focus").removeClass("focus"),l.addClass("focus"))}else s.trigger("click");return!1}if(27==t.keyCode)s.hasClass("open")&&s.trigger("click");else if(9==t.keyCode&&s.hasClass("open"))return!1});var n=document.createElement("a").style;return n.cssText="pointer-events:auto","auto"!==n.pointerEvents&&e("html").addClass("no-csspointerevents"),this}}(jQuery); -------------------------------------------------------------------------------- /inc/libraries/class-epsilon-init-notify-system.php: -------------------------------------------------------------------------------- 1 | Epsilon_Notify_System::check_plugin_is_installed( $slug ), 44 | 'active' => Epsilon_Notify_System::check_plugin_is_active( $slug ), 45 | ); 46 | 47 | if ( empty( $get ) ) { 48 | $arr = array_filter( $arr ); 49 | 50 | return 2 === count( $arr ); 51 | } 52 | } 53 | 54 | // Translators: %s is the plugin name. 55 | $arr['title'] = sprintf( __( 'Install: %s', 'gilb' ), $plugin_name ); 56 | // Translators: %s is the plugin name. 57 | $arr['description'] = sprintf( __( 'Please install %s in order to create the demo content.', 'gilb' ), $plugin_name ); 58 | 59 | if ( $arr['installed'] ) { 60 | // Translators: %s is the plugin name 61 | $arr['title'] = sprintf( __( 'Activate: %s', 'gilb' ), $plugin_name ); 62 | // Translators: %s is the plugin name 63 | $arr['description'] = sprintf( __( 'Please activate %s in order to create the demo content.', 'gilb' ), $plugin_name ); 64 | } 65 | 66 | return $arr[ $get ]; 67 | } 68 | 69 | /** 70 | * @return array 71 | */ 72 | public static function verify_cf7() { 73 | $arr = array( 74 | 'installed' => false, 75 | 'active' => false, 76 | ); 77 | 78 | if ( file_exists( ABSPATH . 'wp-content/plugins/contact-form-7' ) ) { 79 | $arr['installed'] = true; 80 | $arr['active'] = true; 81 | } 82 | 83 | return $arr; 84 | } 85 | 86 | public static function verify_ocdi() { 87 | $arr = array( 88 | 'installed' => false, 89 | 'active' => false, 90 | ); 91 | 92 | if ( file_exists( ABSPATH . 'wp-content/plugins/one-click-demo-import' ) ) { 93 | $arr['installed'] = true; 94 | $arr['active'] = true; 95 | } 96 | 97 | return $arr; 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /templates/header-top.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /inc/hooks/hooks.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /inc/customizer/customizer.php: -------------------------------------------------------------------------------- 1 | get_section( 'title_tagline' )->panel = 'gilb_theme_options_panel'; 28 | // change priorities 29 | $wp_customize->get_section( 'title_tagline' )->priority = 0; 30 | $wp_customize->remove_section( 'colors' ); 31 | 32 | // Copyright text selective refresh 33 | $wp_customize->selective_refresh->add_partial( 'gilb-copyright-text-settings', 34 | array( 'selector' => '.footer_Part' ) ); 35 | 36 | } 37 | 38 | 39 | // Customizer js enqueue 40 | 41 | public function gilb_customizer_js(){ 42 | 43 | wp_enqueue_script( 'gilb-customizer', GILB_DIR_URI.'inc/customizer/js/customizer.js', array('customize-controls'), '1.0', true ); 44 | 45 | $portfolios = new WP_Query( array( 46 | 'post_type' => 'portfolio', 47 | 'posts_per_page' => -1, 48 | 49 | ) ); 50 | 51 | if ( count($portfolios->posts) > 0 ) { 52 | $first_portfolio_item_id = $portfolios->posts[0]->ID; 53 | $first_portfolio_item_url = get_permalink( $first_portfolio_item_id ); 54 | } else { 55 | $first_portfolio_item_url = ''; 56 | } 57 | 58 | wp_localize_script( 'gilb-customizer', 'moahCustomizerdata', array( 59 | 'site_url' => site_url('/'), 60 | 'blog_page' => get_post_type_archive_link( 'post' ), 61 | 'portfolio_page' => esc_url($first_portfolio_item_url), 62 | 63 | ) ); 64 | 65 | } 66 | 67 | // Image sanitization callback. 68 | 69 | public static function gilb_sanitize_image( $image, $setting ) { 70 | 71 | /* 72 | * Array of valid image file types. 73 | * 74 | * The array includes image mime types that are included in wp_get_mime_types() 75 | */ 76 | $mimes = array( 77 | 'jpg|jpeg|jpe' => 'image/jpeg', 78 | 'gif' => 'image/gif', 79 | 'png' => 'image/png', 80 | 'bmp' => 'image/bmp', 81 | 'tif|tiff' => 'image/tiff', 82 | 'ico' => 'image/x-icon' 83 | ); 84 | 85 | // Return an array with file extension and mime_type. 86 | $file = wp_check_filetype( $image, $mimes ); 87 | 88 | // If $image has a valid mime_type, return it; otherwise, return the default. 89 | return ( $file['ext'] ? $image : $setting->default ); 90 | } 91 | 92 | } 93 | ?> -------------------------------------------------------------------------------- /assets/css/owl.carousel.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.3.4 3 | * Copyright 2013-2018 David Deutsch 4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 5 | */ 6 | .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} -------------------------------------------------------------------------------- /inc/customizer/fields/sections.php: -------------------------------------------------------------------------------- 1 | 'gilb_theme_options_panel', 22 | 'args' => array( 23 | 'priority' => 0, 24 | 'capability' => 'edit_theme_options', 25 | 'theme_supports' => '', 26 | 'title' => esc_html__( 'Theme Options', 'gilb' ), 27 | ), 28 | ) 29 | ); 30 | 31 | 32 | /*********************************** 33 | * Register customizer sections 34 | ***********************************/ 35 | 36 | 37 | $sections = array( 38 | 39 | /** 40 | * General Section 41 | */ 42 | array( 43 | 'id' => 'gilb_general_section', 44 | 'args' => array( 45 | 'title' => esc_html__( 'General', 'gilb' ), 46 | 'panel' => 'gilb_theme_options_panel', 47 | 'priority' => 1, 48 | ), 49 | ), 50 | 51 | /** 52 | * Header Section 53 | */ 54 | array( 55 | 'id' => 'gilb_header_section', 56 | 'args' => array( 57 | 'title' => esc_html__( 'Header', 'gilb' ), 58 | 'panel' => 'gilb_theme_options_panel', 59 | 'priority' => 2, 60 | ), 61 | ), 62 | 63 | /** 64 | * Blog Section 65 | */ 66 | array( 67 | 'id' => 'gilb_blog_section', 68 | 'args' => array( 69 | 'title' => esc_html__( 'Blog', 'gilb' ), 70 | 'panel' => 'gilb_theme_options_panel', 71 | 'priority' => 3, 72 | ), 73 | ), 74 | 75 | /** 76 | * Portfolio Section 77 | */ 78 | array( 79 | 'id' => 'gilb_portfolio_section', 80 | 'args' => array( 81 | 'title' => esc_html__( 'Portfolio', 'gilb' ), 82 | 'panel' => 'gilb_theme_options_panel', 83 | 'priority' => 4, 84 | ), 85 | ), 86 | 87 | 88 | /** 89 | * 404 Page Section 90 | */ 91 | array( 92 | 'id' => 'gilb_fof_section', 93 | 'args' => array( 94 | 'title' => esc_html__( '404 Page', 'gilb' ), 95 | 'panel' => 'gilb_theme_options_panel', 96 | 'priority' => 6, 97 | ), 98 | ), 99 | 100 | /** 101 | * Footer Section 102 | */ 103 | array( 104 | 'id' => 'gilb_footer_section', 105 | 'args' => array( 106 | 'title' => esc_html__( 'Footer Page', 'gilb' ), 107 | 'panel' => 'gilb_theme_options_panel', 108 | 'priority' => 7, 109 | ), 110 | ), 111 | 112 | 113 | 114 | ); 115 | 116 | 117 | /*********************************** 118 | * Add customizer elements 119 | ***********************************/ 120 | $collection = array( 121 | 'panel' => $panels, 122 | 'section' => $sections, 123 | ); 124 | 125 | Epsilon_Customizer::add_multiple( $collection ); 126 | 127 | ?> -------------------------------------------------------------------------------- /comments.php: -------------------------------------------------------------------------------- 1 | 23 | 24 | 25 |
    26 |

    27 | 'div', 31 | 'short_ping' => true, 32 | 'avatar_size' => 70, 33 | 'type' => 'all', 34 | 'callback' => 'gilb_comment_callback', 35 | ) 36 | ); 37 | the_comments_pagination(); ?> 38 |
    39 | 40 | 41 | 42 | 44 |

    45 | 48 | 49 |
    50 | 51 |

    52 | 53 | 54 | '
    ', 60 | 'email' => '
    ', 61 | 'url' => '
    ' 62 | ); 63 | $comments_args = array( 64 | 'fields' => apply_filters( 'comment_form_default_fields', $fields ), 65 | 'class_form' => 'form-contact comment_form', 66 | 'id_form' => 'commentForm', 67 | 'submit_button' => '
    ', 68 | 'id_submit' => 'submit-btn', 69 | 'title_reply' => '', 70 | 'comment_notes_before' => '', 71 | 'comment_field' => '
    ', 72 | 'comment_notes_after' => '', 73 | ); 74 | comment_form($comments_args); 75 | ?> 76 |
    -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | scripts; 27 | 28 | // variable type check 29 | if( is_array( $scripts ) && count( $scripts ) > 0 ){ 30 | 31 | // Style Enqueue 32 | if( is_array( $scripts['style'] ) && count( $scripts['style'] ) > 0 ){ 33 | 34 | foreach( $scripts['style'] as $style ){ 35 | 36 | // Check handler 37 | $handler = ''; 38 | if( !empty( $style['handler'] ) ){ 39 | $handler = $style['handler']; 40 | } 41 | 42 | // Check file 43 | $file = ''; 44 | if( !empty( $style['file'] ) ){ 45 | $file = $style['file']; 46 | } 47 | // Check dependency 48 | $dependency = ''; 49 | if( !empty( $style['dependency'] ) ){ 50 | $dependency = $style['dependency']; 51 | } 52 | // Check version 53 | $version = ''; 54 | if( !empty( $style['version'] ) ){ 55 | $version = $style['version']; 56 | } 57 | 58 | // wp_enqueue_style 59 | wp_enqueue_style( esc_html( $handler ), esc_url( $file ), $dependency, esc_html( $version ) ); 60 | 61 | } 62 | 63 | } // End Style Enqueue 64 | 65 | // Scripts Enqueue 66 | if( is_array( $scripts['scripts'] ) && count( $scripts['scripts'] ) > 0 ){ 67 | 68 | foreach( $scripts['scripts'] as $script ){ 69 | 70 | // Check handler 71 | $handler = ''; 72 | if( !empty( $script['handler'] ) ){ 73 | $handler = $script['handler']; 74 | } 75 | 76 | // Check file 77 | $file = ''; 78 | if( !empty( $script['file'] ) ){ 79 | $file = $script['file']; 80 | } 81 | // Check dependency 82 | $dependency = array('jquery'); 83 | if( !empty( $script['dependency'] ) ){ 84 | $dependency = $script['dependency']; 85 | } 86 | // Check version 87 | $version = ''; 88 | if( !empty( $script['version'] ) ){ 89 | $version = $script['version']; 90 | } 91 | // Check in_footer 92 | $in_footer = ''; 93 | if( !empty( $script['in_footer'] ) ){ 94 | $in_footer = $script['in_footer']; 95 | } 96 | 97 | // wp enqueue script 98 | if( !empty( $script['register'] ) ){ 99 | wp_register_script( esc_html( $handler ), esc_url( $file ), $dependency, esc_html( $version ), esc_html( $in_footer ) ); 100 | }else{ 101 | wp_enqueue_script( esc_html( $handler ), esc_url( $file ), $dependency, esc_html( $version ), esc_html( $in_footer ) ); 102 | } 103 | 104 | // Condational Script 105 | if( !empty( $script['condation'] ) ){ 106 | wp_script_add_data( esc_html( $handler ), 'conditional', esc_html( $script['condation'] ) ); 107 | } 108 | 109 | } 110 | 111 | // Comment replay 112 | if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { 113 | wp_enqueue_script( 'comment-reply' ); 114 | } 115 | 116 | } // End Scripts Enqueue 117 | 118 | 119 | } // End variable type check 120 | 121 | } 122 | 123 | } 124 | 125 | 126 | 127 | 128 | ?> -------------------------------------------------------------------------------- /assets/css/nice-select.css: -------------------------------------------------------------------------------- 1 | .nice-select { 2 | -webkit-tap-highlight-color: transparent; 3 | background-color: #fff; 4 | border-radius: 5px; 5 | border: solid 1px #e8e8e8; 6 | box-sizing: border-box; 7 | clear: both; 8 | cursor: pointer; 9 | display: block; 10 | float: left; 11 | font-family: inherit; 12 | font-size: 14px; 13 | font-weight: normal; 14 | height: 42px; 15 | line-height: 40px; 16 | outline: none; 17 | padding-left: 18px; 18 | padding-right: 30px; 19 | position: relative; 20 | text-align: left !important; 21 | -webkit-transition: all 0.2s ease-in-out; 22 | transition: all 0.2s ease-in-out; 23 | -webkit-user-select: none; 24 | -moz-user-select: none; 25 | -ms-user-select: none; 26 | user-select: none; 27 | white-space: nowrap; 28 | width: auto; } 29 | .nice-select:hover { 30 | border-color: #dbdbdb; } 31 | .nice-select:active, .nice-select.open, .nice-select:focus { 32 | border-color: #999; } 33 | .nice-select:after { 34 | border-bottom: 2px solid #999; 35 | border-right: 2px solid #999; 36 | content: ''; 37 | display: block; 38 | height: 10px; 39 | margin-top: -4px; 40 | pointer-events: none; 41 | position: absolute; 42 | right: 12px; 43 | top: 50%; 44 | -webkit-transform-origin: 66% 66%; 45 | -ms-transform-origin: 66% 66%; 46 | transform-origin: 66% 66%; 47 | -webkit-transform: rotate(45deg); 48 | -ms-transform: rotate(45deg); 49 | transform: rotate(45deg); 50 | -webkit-transition: all 0.15s ease-in-out; 51 | transition: all 0.15s ease-in-out; 52 | width: 10px; } 53 | .nice-select.open:after { 54 | -webkit-transform: rotate(-135deg); 55 | -ms-transform: rotate(-135deg); 56 | transform: rotate(-135deg); } 57 | .nice-select.open .list { 58 | opacity: 1; 59 | pointer-events: auto; 60 | -webkit-transform: scale(1) translateY(0); 61 | -ms-transform: scale(1) translateY(0); 62 | transform: scale(1) translateY(0); } 63 | .nice-select.disabled { 64 | border-color: #ededed; 65 | color: #999; 66 | pointer-events: none; } 67 | .nice-select.disabled:after { 68 | border-color: #cccccc; } 69 | .nice-select.wide { 70 | width: 100%; } 71 | .nice-select.wide .list { 72 | left: 0 !important; 73 | right: 0 !important; } 74 | .nice-select.right { 75 | float: right; } 76 | .nice-select.right .list { 77 | left: auto; 78 | right: 0; } 79 | .nice-select.small { 80 | font-size: 12px; 81 | height: 36px; 82 | line-height: 34px; } 83 | .nice-select.small:after { 84 | height: 4px; 85 | width: 4px; } 86 | .nice-select.small .option { 87 | line-height: 34px; 88 | min-height: 34px; } 89 | .nice-select .list { 90 | background-color: #fff; 91 | border-radius: 5px; 92 | box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11); 93 | box-sizing: border-box; 94 | margin-top: 4px; 95 | opacity: 0; 96 | overflow: hidden; 97 | padding: 0; 98 | pointer-events: none; 99 | position: absolute; 100 | top: 100%; 101 | left: 0; 102 | -webkit-transform-origin: 50% 0; 103 | -ms-transform-origin: 50% 0; 104 | transform-origin: 50% 0; 105 | -webkit-transform: scale(0.75) translateY(-21px); 106 | -ms-transform: scale(0.75) translateY(-21px); 107 | transform: scale(0.75) translateY(-21px); 108 | -webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; 109 | transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; 110 | z-index: 9; } 111 | .nice-select .list:hover .option:not(:hover) { 112 | background-color: transparent !important; } 113 | .nice-select .option { 114 | cursor: pointer; 115 | font-weight: 400; 116 | line-height: 40px; 117 | list-style: none; 118 | min-height: 40px; 119 | outline: none; 120 | padding-left: 18px; 121 | padding-right: 29px; 122 | text-align: left; 123 | -webkit-transition: all 0.2s; 124 | transition: all 0.2s; } 125 | .nice-select .option:hover, .nice-select .option.focus, .nice-select .option.selected.focus { 126 | background-color: #f6f6f6; } 127 | .nice-select .option.selected { 128 | font-weight: bold; } 129 | .nice-select .option.disabled { 130 | background-color: transparent; 131 | color: #999; 132 | cursor: default; } 133 | 134 | .no-csspointerevents .nice-select .list { 135 | display: none; } 136 | 137 | .no-csspointerevents .nice-select.open .list { 138 | display: block; } 139 | -------------------------------------------------------------------------------- /assets/css/magnific-popup.css: -------------------------------------------------------------------------------- 1 | .mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:none !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-preloader{color:#CCC;position:absolute;top:50%;width:auto;text-align:center;margin-top:-0.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#CCC}.mfp-preloader a:hover{color:#FFF}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#FFF;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:hover,.mfp-close:focus{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#FFF;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#CCC;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1}.mfp-arrow:before,.mfp-arrow:after{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #FFF;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #FFF;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,0.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,0.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0 0;transform-origin:0 0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}} -------------------------------------------------------------------------------- /assets/css/elementor-default-element-style.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Common css 3 | */ 4 | 5 | .elementor-icon, 6 | .elementor-widget-counter .elementor-counter-number-wrapper, 7 | .elementor-widget-icon-list .elementor-icon-list-icon i { 8 | color: #4a7aec; 9 | } 10 | .elementor-widget-tabs .elementor-tab-title, 11 | .elementor-widget-accordion .elementor-accordion .elementor-tab-title { 12 | color: #222; 13 | } 14 | .elementor-accordion .elementor-tab-content, 15 | .elementor-accordion .elementor-accordion-item { 16 | border-color: #eee; 17 | } 18 | .elementor-widget-tabs .elementor-tab-content, 19 | .elementor-widget-tabs .elementor-tab-title:after, 20 | .elementor-widget-tabs .elementor-tab-title:before, 21 | .elementor-widget-tabs .elementor-tab-content { 22 | border-color: #eee; 23 | } 24 | .elementor-widget-tabs .elementor-tab-desktop-title.elementor-active{ 25 | border: 0px; 26 | background-color: #404551; 27 | } 28 | .elementor-widget .elementor-icon-list-item { 29 | margin-bottom: 8px; 30 | } 31 | .elementor-6 .elementor-element.elementor-element-a2d9792 .elementor-tab-content { 32 | color: #abadbe; 33 | font-size: 15px; 34 | } 35 | /** 36 | * Progress Css 37 | */ 38 | .elementor-widget-progress .elementor-title { 39 | color: #abadbe; 40 | margin-bottom: 8px; 41 | display: inline-block; 42 | font-weight: 500; 43 | font-size: 15px; 44 | } 45 | .elementor-progress-text { 46 | font-size: 0px; 47 | } 48 | .elementor-progress-wrapper { 49 | background-color: #eee; 50 | color: #222; 51 | -webkit-border-radius: 0px; 52 | height: 5px; 53 | line-height: 5px; 54 | border-radius: 0px; 55 | } 56 | .elementor-progress-bar { 57 | background-color: #4a7aec; 58 | position: relative; 59 | border-radius: 0px; 60 | height: 5px; 61 | } 62 | .elementor-progress-percentage { 63 | padding-right: 0px; 64 | position: absolute; 65 | right: 0; 66 | color: #4a7aec; 67 | top: -20px; 68 | font-size: 15px; 69 | font-weight: 500; 70 | } 71 | /** 72 | * Button Css 73 | */ 74 | .elementor-button.elementor-size-xs, 75 | .elementor-button.elementor-size-lg, 76 | .elementor-button.elementor-size-xl, 77 | .elementor-button.elementor-size-md, 78 | .elementor-button.elementor-size-sm { 79 | border-radius: 50px; 80 | background: #4a7aec; 81 | border: 1px solid #4a7aec; 82 | color: #fff; 83 | font-weight: 600; 84 | -webkit-transition: all 0.3s ease 0s; 85 | -moz-transition: all 0.3s ease 0s; 86 | -o-transition: all 0.3s ease 0s; 87 | transition: all 0.3s ease 0s; 88 | } 89 | .elementor-button.elementor-size-xs:hover, 90 | .elementor-button.elementor-size-lg:hover, 91 | .elementor-button.elementor-size-xl:hover, 92 | .elementor-button.elementor-size-md:hover, 93 | .elementor-button.elementor-size-sm:hover { 94 | background-color: #1a3c8d; 95 | color: #fff; 96 | } 97 | /** 98 | * Icon box and image box css 99 | * 100 | */ 101 | .elementor-image-box-title, 102 | .elementor-icon-box-title { 103 | font-size: 18px; 104 | margin-bottom: 10px; 105 | } 106 | /** 107 | * Testimonial css 108 | * 109 | */ 110 | .elementor-testimonial-wrapper .elementor-testimonial-content { 111 | font-size: 14px; 112 | } 113 | .elementor-testimonial-wrapper .elementor-testimonial-name { 114 | font-weight: 500; 115 | color: #222; 116 | } 117 | /** 118 | * Toggle css 119 | * 120 | */ 121 | .elementor-toggle .elementor-tab-title, 122 | .elementor-toggle .elementor-tab-content { 123 | border-color: #eee; 124 | 125 | } 126 | .elementor-toggle .elementor-tab-title { 127 | color: #222; 128 | } 129 | .elementor-toggle .elementor-tab-title { 130 | background-color: #4a7aec; 131 | color: #fff; 132 | font-size: 15px; 133 | font-weight: 400; 134 | } 135 | .elementor-toggle .elementor-tab-content { 136 | color: #abadbe; 137 | font-size: 15px; 138 | } 139 | /** 140 | * Image gallery 141 | * 142 | */ 143 | 144 | .gallery .gallery-item img { 145 | border: 0px !important; 146 | } 147 | .gallery .gallery-item { 148 | margin-top: 0px !important; 149 | } 150 | /** 151 | * Counter 152 | * 153 | */ 154 | .elementor-counter .elementor-counter-title { 155 | font-size: 15px; 156 | font-weight: 500; 157 | color: #292d4f; 158 | line-height: 1.9; 159 | } 160 | 161 | /** 162 | * Accordion 163 | * 164 | */ 165 | .elementor-widget-tabs .elementor-tab-title, 166 | .elementor-widget-accordion .elementor-accordion .elementor-tab-title { 167 | background-color: #4a7aec; 168 | color: #fff; 169 | font-size: 15px; 170 | font-weight: 400; 171 | } 172 | .elementor-accordion .elementor-tab-title .elementor-accordion-icon.elementor-accordion-icon-left { 173 | font-size: 10px; 174 | margin-top: 1px; 175 | } 176 | .elementor-accordion .elementor-accordion-item { 177 | margin-bottom: 15px; 178 | color: #abadbe; 179 | font-size: 15px; 180 | } 181 | /** 182 | * Icon 183 | */ 184 | .elementor-view-stacked .elementor-icon { 185 | background-color: #4a7aec; 186 | } 187 | .elementor-view-framed .elementor-icon { 188 | color: #4a7aec; 189 | border: 3px solid #4a7aec; 190 | } 191 | .elementor-icon:hover { 192 | color: #1a3c8d; 193 | } -------------------------------------------------------------------------------- /assets/js/jquery.ajaxchimp.min.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | 'use strict'; 3 | 4 | $.ajaxChimp = { 5 | responses: { 6 | 'We have sent you a confirmation email' : 0, 7 | 'Please enter a valid email' : 1, 8 | 'An email address must contain a single @' : 2, 9 | 'The domain portion of the email address is invalid (the portion after the @: )' : 3, 10 | 'The username portion of the email address is invalid (the portion before the @: )' : 4, 11 | 'This email address looks fake or invalid. Please enter a real email address' : 5 12 | }, 13 | translations: { 14 | 'en': null 15 | }, 16 | init: function (selector, options) { 17 | $(selector).ajaxChimp(options); 18 | } 19 | }; 20 | 21 | $.fn.ajaxChimp = function (options) { 22 | $(this).each(function(i, elem) { 23 | var form = $(elem); 24 | var email = form.find('input[type=email]'); 25 | var label = form.find('.info'); 26 | 27 | var settings = $.extend({ 28 | 'url': form.attr('action'), 29 | 'language': 'en' 30 | }, options); 31 | 32 | var url = settings.url.replace('/post?', '/post-json?').concat('&c=?'); 33 | 34 | form.attr('novalidate', 'true'); 35 | email.attr('name', 'EMAIL'); 36 | 37 | form.submit(function () { 38 | var msg; 39 | function successCallback(resp) { 40 | if (resp.result === 'success') { 41 | msg = 'We have sent you a confirmation email'; 42 | label.removeClass('error').addClass('valid'); 43 | email.removeClass('error').addClass('valid'); 44 | } else { 45 | email.removeClass('valid').addClass('error'); 46 | label.removeClass('valid').addClass('error'); 47 | var index = -1; 48 | try { 49 | var parts = resp.msg.split(' - ', 2); 50 | if (parts[1] === undefined) { 51 | msg = resp.msg; 52 | } else { 53 | var i = parseInt(parts[0], 10); 54 | if (i.toString() === parts[0]) { 55 | index = parts[0]; 56 | msg = parts[1]; 57 | } else { 58 | index = -1; 59 | msg = resp.msg; 60 | } 61 | } 62 | } 63 | catch (e) { 64 | index = -1; 65 | msg = resp.msg; 66 | } 67 | } 68 | 69 | // Translate and display message 70 | if ( 71 | settings.language !== 'en' 72 | && $.ajaxChimp.responses[msg] !== undefined 73 | && $.ajaxChimp.translations 74 | && $.ajaxChimp.translations[settings.language] 75 | && $.ajaxChimp.translations[settings.language][$.ajaxChimp.responses[msg]] 76 | ) { 77 | msg = $.ajaxChimp.translations[settings.language][$.ajaxChimp.responses[msg]]; 78 | } 79 | label.html(msg); 80 | 81 | label.show(2000); 82 | if (settings.callback) { 83 | settings.callback(resp); 84 | } 85 | } 86 | 87 | var data = {}; 88 | var dataArray = form.serializeArray(); 89 | $.each(dataArray, function (index, item) { 90 | data[item.name] = item.value; 91 | }); 92 | 93 | $.ajax({ 94 | url: url, 95 | data: data, 96 | success: successCallback, 97 | dataType: 'jsonp', 98 | error: function (resp, text) { 99 | console.log('mailchimp ajax submit error: ' + text); 100 | } 101 | }); 102 | 103 | // Translate and display submit message 104 | var submitMsg = 'Submitting...'; 105 | if( 106 | settings.language !== 'en' 107 | && $.ajaxChimp.translations 108 | && $.ajaxChimp.translations[settings.language] 109 | && $.ajaxChimp.translations[settings.language]['submit'] 110 | ) { 111 | submitMsg = $.ajaxChimp.translations[settings.language]['submit']; 112 | } 113 | label.html(submitMsg).show(2000); 114 | 115 | return false; 116 | }); 117 | }); 118 | return this; 119 | }; 120 | })(jQuery); -------------------------------------------------------------------------------- /inc/support-functions.php: -------------------------------------------------------------------------------- 1 | '; 24 | $categories .= ''; 31 | $categories .= ''; 32 | } 33 | 34 | return $categories; 35 | 36 | } 37 | 38 | // Blog categories 39 | function gilb_featured_post_cat(){ 40 | 41 | $categories = get_the_category(); 42 | 43 | if( is_array( $categories ) && count( $categories ) > 0 ){ 44 | $getCat = []; 45 | foreach ( $categories as $value ) { 46 | 47 | if( $value->slug != 'featured' && ! is_front_page() ){ 48 | $getCat[] = ' '.esc_html( $value->name ).''; 49 | }else{ 50 | $getCat[] = ''.esc_html( $value->name ); 51 | } 52 | } 53 | 54 | return implode( ', ', $getCat ); 55 | } 56 | 57 | } 58 | 59 | 60 | // Post Tags 61 | function gilb_post_tags() { 62 | 63 | $tags = get_the_tags(); 64 | 65 | $getTags = ''; 66 | 67 | if ( $tags ) { 68 | 69 | foreach ( $tags as $tag ) { 70 | $getTags .= '' . esc_html( $tag->name ) . ''; 71 | } 72 | 73 | } 74 | 75 | return $getTags; 76 | 77 | } 78 | 79 | 80 | // social media 81 | if ( ! function_exists( 'gilb_social' ) ) { 82 | function gilb_social( $args = array() ) { 83 | 84 | $default = array( 85 | 'wrapper_start' => '', 86 | 'wrapper_end' => '', 87 | 'class' => 'topbar-social', 88 | ); 89 | 90 | $args = wp_parse_args( $args, $default ); 91 | 92 | 93 | $url = gilb_opt( 'gilb_social_url' ); 94 | if ( is_array( $url ) && count( $url ) > 0 ): 95 | 96 | echo wp_kses_post( $args['wrapper_start'] ); 97 | 98 | echo '
    '; 99 | 100 | // Facebook 101 | if ( ! empty( $url['facebook_url'] ) ) { 102 | echo ''; 103 | } 104 | // Twitter 105 | if ( ! empty( $url['twitter_url'] ) ) { 106 | echo ''; 107 | } 108 | // Google 109 | if ( ! empty( $url['google_url'] ) ) { 110 | echo ''; 111 | } 112 | // Instagram 113 | if ( ! empty( $url['instagram_url'] ) ) { 114 | echo ''; 115 | } 116 | // Pinterest 117 | if ( ! empty( $url['pinterest_url'] ) ) { 118 | echo ''; 119 | } 120 | // Snapchat 121 | if ( ! empty( $url['snapchat_url'] ) ) { 122 | echo ''; 123 | } 124 | // Youtube 125 | if ( ! empty( $url['youtube_url'] ) ) { 126 | echo ''; 127 | } 128 | 129 | 130 | echo '
    '; 131 | echo wp_kses_post( $args['wrapper_end'] ); 132 | 133 | endif; 134 | } 135 | } 136 | // header cart count 137 | function gilb_cart_count( $class = '' ) { 138 | 139 | ?> 140 |
    141 | <?php esc_attr_e( 'ICON', 'gilb' ); ?> 142 | cart->cart_contents_count ); ?> 143 |
    144 | 145 |
    146 |
    147 |
    [textarea* your-message id:message class:form-control class:w-100 rows:9 cols:30 placeholder "Message"]
    [text* your-name id:name class:form-control placeholder "Enter your name"]
    [email* your-email id:email class:form-control placeholder "Enter your email"]
    [text your-subject id:subject class:form-control placeholder "Subject"]
    [submit class:button class:button-contactForm class:btn_1 "Send Message"]
    '; 158 | 159 | return $template; 160 | 161 | } else { 162 | return $template; 163 | } 164 | } 165 | add_filter( 'wpcf7_default_template', 'gilb_contact7_form_content', 10, 2 ); -------------------------------------------------------------------------------- /inc/class-epsilon-init-dashboard.php: -------------------------------------------------------------------------------- 1 | theme = $theme; 33 | 34 | $theme = wp_get_theme(); 35 | $arr = array( 36 | 'theme-name' => $theme->get( 'Name' ), 37 | 'theme-slug' => $theme->get( 'TextDomain' ), 38 | 'theme-version' => $theme->get( 'Version' ), 39 | ); 40 | 41 | $this->theme = wp_parse_args( $this->theme, $arr ); 42 | /** 43 | * If PHP Version is older than 5.3, we switch back to default theme 44 | */ 45 | add_action( 'admin_init', array( $this, 'php_version_check' ) ); 46 | 47 | /** 48 | * Add a notice for the MachoThemes feedback 49 | */ 50 | add_action( 'admin_init', array( $this, 'add_feedback_notice' ) ); 51 | 52 | /** 53 | * Init epsilon dashboard 54 | */ 55 | add_filter( 'epsilon-dashboard-setup', array( $this, 'epsilon_dashboard' ) ); 56 | 57 | add_filter( 'epsilon-onboarding-setup', array( $this, 'epsilon_onboarding' ) ); 58 | 59 | /** 60 | * Grab all class methods and initiate automatically 61 | */ 62 | $methods = get_class_methods( 'Epsilon_init_Dashboard' ); 63 | foreach ( $methods as $method ) { 64 | 65 | 66 | if ( false !== strpos( $method, 'init_' ) ) { 67 | $this->$method(); 68 | } 69 | } 70 | } 71 | 72 | /** 73 | * Gilb instance 74 | * 75 | * @param array $theme 76 | * 77 | * @return Gilb 78 | */ 79 | public static function get_instance( $theme = array() ) { 80 | static $inst; 81 | if ( ! $inst ) { 82 | $inst = new Epsilon_init_Dashboard( $theme ); 83 | } 84 | 85 | return $inst; 86 | } 87 | 88 | /** 89 | * Check PHP Version and switch theme 90 | */ 91 | public function php_version_check() { 92 | if ( version_compare( PHP_VERSION, '5.3.0' ) >= 0 ) { 93 | return true; 94 | } 95 | 96 | switch_theme( WP_DEFAULT_THEME ); 97 | 98 | return false; 99 | } 100 | 101 | /** 102 | * Adds a feedback notice if conditions are met 103 | */ 104 | public function add_feedback_notice() { 105 | if ( get_user_meta( get_current_user_id(), 'notification_feedback', true ) ) { 106 | return; 107 | } 108 | 109 | $page_on_front = 'page' == get_option( 'show_on_front' ) ? true : false; 110 | $id = absint( get_option( 'page_on_front', 0 ) ); 111 | 112 | if ( $page_on_front && 0 !== $id ) { 113 | $revisions = wp_get_post_revisions( $id ); 114 | 115 | if ( count( $revisions ) > 3 ) { 116 | /** 117 | * Revision keys are ID's, and it's not incremental 118 | */ 119 | $first = end( $revisions ); 120 | 121 | $revision_time = new DateTime( $first->post_modified ); 122 | $today = new DateTime( 'today' ); 123 | $interval = $today->diff( $revision_time )->format( '%d' ); 124 | 125 | if ( 2 <= absint( $interval ) ) { 126 | $this->_notify_feedback(); 127 | } 128 | } 129 | } 130 | } 131 | 132 | /** 133 | * Notify of feedback 134 | */ 135 | private function _notify_feedback() { 136 | if ( ! class_exists( 'Epsilon_Notifications' ) ) { 137 | return; 138 | } 139 | $html = '

    '; 140 | $html .= 141 | vsprintf( 142 | // Translators: 1 is Theme Name, 2 is opening Anchor, 3 is closing. 143 | __( 'We\'ve been working hard on making %1$s the best one out there. We\'re interested in hearing your thoughts about %1$s and what we could do to make it even better. %2$sSend your feedback our way%3$s.', 'gilb' ), 144 | array( 145 | 'Gilb', 146 | '', 147 | '', 148 | ) 149 | ); 150 | 151 | $notifications = Epsilon_Notifications::get_instance(); 152 | $notifications->add_notice( 153 | array( 154 | 'id' => 'gilb_notification_feedback', 155 | 'type' => 'notice epsilon-big', 156 | 'message' => $html, 157 | ) 158 | ); 159 | } 160 | 161 | /** 162 | * Initiate the epsilon framework 163 | */ 164 | public function init_epsilon() { 165 | //new Epsilon_Framework(); 166 | } 167 | 168 | /** 169 | * 170 | */ 171 | public function init_nav_menus() { 172 | new Epsilon_Section_Navigation_Menu( 'gilb_frontpage_sections_' ); 173 | } 174 | 175 | /** 176 | * Initiate the welcome screen 177 | */ 178 | public function init_dashboard() { 179 | Epsilon_Dashboard::get_instance( 180 | array( 181 | 'theme' => array( 182 | 'download-id' => '212499' 183 | ), 184 | 'tracking' => $this->theme['theme-slug'] . '_tracking_enable', 185 | ) 186 | ); 187 | 188 | $dashboard = Epsilon_Dashboard_Setup::get_instance(); 189 | $dashboard->add_admin_notice(); 190 | 191 | $upsells = get_option( $this->theme['theme-slug'] . '_theme_upsells', false ); 192 | if ( $upsells ) { 193 | add_filter( 'epsilon_upsell_control_display', '__return_false' ); 194 | } 195 | } 196 | 197 | /** 198 | * Separate setup from init 199 | * 200 | * @param array $setup 201 | * 202 | * @return array 203 | */ 204 | public function epsilon_dashboard( $setup = array() ) { 205 | $dashboard = new Epsilon_Dashboard_Setup(); 206 | 207 | $setup['actions'] = $dashboard->get_actions(); 208 | $setup['tabs'] = $dashboard->get_tabs( $setup ); 209 | $setup['plugins'] = $dashboard->get_plugins(); 210 | $setup['privacy'] = $dashboard->get_privacy_options(); 211 | 212 | $setup['edd'] = $dashboard->get_edd( $setup ); 213 | 214 | $tab = get_user_meta( get_current_user_id(), 'epsilon_active_tab', true ); 215 | 216 | $setup['activeTab'] = ! empty( $tab ) ? absint( $tab ) : 0; 217 | 218 | return $setup; 219 | } 220 | 221 | /** 222 | * Add steps to onboarding 223 | * 224 | * @param array $setup 225 | * 226 | * @return array 227 | */ 228 | public function epsilon_onboarding( $setup = array() ) { 229 | $dashboard = new Epsilon_Dashboard_Setup(); 230 | 231 | $setup['steps'] = $dashboard->get_steps(); 232 | $setup['plugins'] = $dashboard->get_plugins( true ); 233 | $setup['privacy'] = $dashboard->get_privacy_options(); 234 | 235 | return $setup; 236 | } 237 | 238 | 239 | } 240 | -------------------------------------------------------------------------------- /inc/customizer/js/customizer.js: -------------------------------------------------------------------------------- 1 | (function( $ , api){ 2 | 3 | // Customizer about page redirect 4 | api.section( 'gilb_fof_options_section' , function( section ){ 5 | 6 | section.expanded.bind( function( isExpanded ){ 7 | 8 | if( isExpanded ){ 9 | api.previewer.previewUrl.set( api.settings.url.home+'/maybe404page' ); 10 | }else{ 11 | api.previewer.previewUrl.set( api.settings.url.home ); 12 | } 13 | 14 | } ) 15 | 16 | } ); 17 | 18 | // Customizer blog page redirect 19 | api.section( 'gilb_blog_options_section' , function( section ){ 20 | 21 | section.expanded.bind( function( isExpanded ){ 22 | 23 | if( isExpanded ){ 24 | api.previewer.previewUrl.set( moahCustomizerdata.blog_page ); 25 | }else{ 26 | api.previewer.previewUrl.set( api.settings.url.home ); 27 | } 28 | 29 | 30 | 31 | } ) 32 | 33 | } ); 34 | 35 | // Customizer portfolio page redirect 36 | api.section( 'gilb_portfolio_section' , function( section ){ 37 | 38 | section.expanded.bind( function( isExpanded ){ 39 | 40 | if( isExpanded ){ 41 | api.previewer.previewUrl.set( moahCustomizerdata.portfolio_page ); 42 | }else{ 43 | api.previewer.previewUrl.set( api.settings.url.home ); 44 | } 45 | 46 | 47 | 48 | } ) 49 | 50 | } ); 51 | 52 | // General section 53 | api.section( 'gilb_general_options_section' , function( section ){ 54 | 55 | section.expanded.bind( function( isExpanded ){ 56 | 57 | 58 | // Preloader option show/hide 59 | 60 | var $preloader = $('#gilb-preloader-toggle-settings'), 61 | $preloaderbg = $( '#customize-control-gilb_preloaderbgcolor' ), 62 | $preloaderbordercolor = $( '#customize-control-gilb_loaderbordcolor' ), 63 | $preloaderactivebordercolor = $( '#customize-control-gilb_loaderbordactivecolor' ); 64 | 65 | 66 | // Default 67 | 68 | if( $preloader.is( ':checked' ) ){ 69 | $preloaderbg.show('slow'); 70 | $preloaderbordercolor.show('slow'); 71 | $preloaderactivebordercolor.show('slow'); 72 | }else{ 73 | $preloaderbg.hide('slow'); 74 | $preloaderbordercolor.hide('slow'); 75 | $preloaderactivebordercolor.hide('slow'); 76 | } 77 | 78 | 79 | // on click 80 | $preloader.on( 'click', function(){ 81 | 82 | var $this = $( this ); 83 | 84 | if( $this.is(':checked') ){ 85 | $preloaderbg.show('slow'); 86 | $preloaderbordercolor.show('slow'); 87 | $preloaderactivebordercolor.show('slow'); 88 | }else{ 89 | $preloaderbg.hide('slow'); 90 | $preloaderbordercolor.hide('slow'); 91 | $preloaderactivebordercolor.hide('slow'); 92 | } 93 | 94 | 95 | } ); 96 | 97 | } ); 98 | 99 | 100 | } ); 101 | 102 | // Footer section 103 | api.section( 'gilb_footer_options_section' , function( section ){ 104 | 105 | section.expanded.bind( function( isExpanded ){ 106 | 107 | 108 | // Footer Widget option show/hide 109 | var $widget_toggle = $('#gilb-widget-toggle-settings'), 110 | $widgetbg = $( '#customize-control-gilb_footer_bgColor_settings' ), 111 | $widgettext = $('#customize-control-gilb_footer_wtcolor_settings'), 112 | $widgettitle = $('#customize-control-gilb_footer_widgettitlecolor_settings'), 113 | $widgetanchor = $('#customize-control-gilb_footer_wanchorcolor_settings'), 114 | $widgetanchorhover = $('#customize-control-gilb_footer_wanchorhovcolor_settings'); 115 | 116 | 117 | // Default 118 | 119 | if( $widget_toggle.is( ':checked' ) ){ 120 | $widgetbg.show('slow'); 121 | $widgettext.show('slow'); 122 | $widgettitle.show('slow'); 123 | $widgetanchor.show('slow'); 124 | $widgetanchorhover.show('slow'); 125 | }else{ 126 | $widgetbg.hide('slow'); 127 | $widgettext.hide('slow'); 128 | $widgettitle.hide('slow'); 129 | $widgetanchor.hide('slow'); 130 | $widgetanchorhover.hide('slow'); 131 | } 132 | 133 | // on click 134 | $widget_toggle.on( 'click', function(){ 135 | 136 | var $this = $( this ); 137 | 138 | if( $this.is(':checked') ){ 139 | 140 | $widgetbg.show('slow'); 141 | $widgettext.show('slow'); 142 | $widgettitle.show('slow'); 143 | $widgetanchor.show('slow'); 144 | $widgetanchorhover.show('slow'); 145 | }else{ 146 | 147 | $widgetbg.hide('slow'); 148 | $widgettext.hide('slow'); 149 | $widgettitle.hide('slow'); 150 | $widgetanchor.hide('slow'); 151 | $widgetanchorhover.hide('slow'); 152 | } 153 | 154 | 155 | } ); 156 | 157 | /** 158 | * Footer bottom social media option show/hide 159 | * 160 | */ 161 | 162 | var $social_toggle = $('#gilb-footersocial-toggle-settings'), 163 | $socialcolor = $( '#customize-control-gilb_footer_socialiconcolor_settings' ), 164 | $socialhovercolor = $('#customize-control-gilb_footer_socialiconhovercolor_settings'); 165 | 166 | 167 | // Default 168 | 169 | if( $social_toggle.is( ':checked' ) ){ 170 | $socialcolor.show('slow'); 171 | $socialhovercolor.show('slow'); 172 | }else{ 173 | $socialcolor.hide('slow'); 174 | $socialhovercolor.hide('slow'); 175 | } 176 | 177 | // on click 178 | $social_toggle.on( 'click', function(){ 179 | 180 | var $this = $( this ); 181 | 182 | if( $this.is(':checked') ){ 183 | $socialcolor.show('slow'); 184 | $socialhovercolor.show('slow'); 185 | }else{ 186 | $socialcolor.hide('slow'); 187 | $socialhovercolor.hide('slow'); 188 | } 189 | 190 | 191 | } ); 192 | 193 | 194 | } ); 195 | 196 | } ); 197 | 198 | 199 | })( jQuery, wp.customize ); -------------------------------------------------------------------------------- /inc/gilb-breadcrumbs.php: -------------------------------------------------------------------------------- 1 | '', 26 | 'breadcrumbs_classes' => esc_html( 'breadcrumb' ), 27 | 'home_title' => esc_html__( 'Home', 'gilb' ) 28 | ); 29 | $args = apply_filters( 'gilb_breadcrumbs_args', wp_parse_args( $args, $defaults ) ); 30 | 31 | $args_el = array(); 32 | 33 | if( $args['breadcrumbs_id'] ){ 34 | 35 | $args_el[] = 'id="'.esc_attr( $args['breadcrumbs_id'] ).'"'; 36 | } 37 | 38 | if( $args['breadcrumbs_classes'] ){ 39 | 40 | $args_el[] = 'class="'.esc_attr( $args['breadcrumbs_classes'] ).'"'; 41 | 42 | } 43 | 44 | /* 45 | * Begin Markup 46 | */ 47 | 48 | // Open the breadcrumbs 49 | $html = '

    '; 116 | $html = apply_filters( 'gilb_breadcrumbs_filter', $html ); 117 | 118 | echo wp_kses_post( $html ); 119 | 120 | 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /inc/wp-html-helper.php: -------------------------------------------------------------------------------- 1 | '', 46 | 'alt' => '', 47 | 'class' => '', 48 | 'id' => '', 49 | 'width' => '', 50 | 'height' => '', 51 | 'srcset' => '', 52 | ); 53 | 54 | $args = wp_parse_args( $args, $default ); 55 | 56 | // Image URL 57 | $url = $args['url']; 58 | 59 | // image tag alter 60 | if ( ! empty( $args['alt'] ) ) { 61 | $alt = $args['alt']; 62 | } else { 63 | $alt = gilb_img_default_alt( $url ); 64 | } 65 | 66 | /** 67 | * Optional Attr 68 | */ 69 | 70 | $attr = ''; 71 | // Image class 72 | if ( ! empty( $args['class'] ) ) { 73 | $attr .= ' class="' . esc_attr( $args['class'] ) . '"'; 74 | } 75 | // Image id 76 | if ( ! empty( $args['id'] ) ) { 77 | $attr .= ' id="' . esc_attr( $args['id'] ) . '"'; 78 | } 79 | // Image width 80 | if ( ! empty( $args['width'] ) ) { 81 | $attr .= ' width="' . esc_attr( $args['width'] ) . '"'; 82 | } 83 | // Image height 84 | if ( ! empty( $args['height'] ) ) { 85 | $attr .= ' height="' . esc_attr( $args['height'] ) . '"'; 86 | } 87 | // Image srcset 88 | if ( ! empty( $args['srcset'] ) ) { 89 | $attr .= ' srcset="' . esc_attr( $args['srcset'] ) . '"'; 90 | } 91 | 92 | 93 | return '' . esc_attr( $alt ) . ''; 94 | } 95 | } 96 | 97 | // Anchor Tag 98 | if ( ! function_exists( 'gilb_anchor_tag' ) ) { 99 | function gilb_anchor_tag( array $args ) { 100 | 101 | $default = array( 102 | 'url' => '', 103 | 'text' => 'Click Here', 104 | 'target' => '', 105 | 'title' => '', 106 | 'class' => '', 107 | 'id' => '', 108 | 'wrap_before' => '', 109 | 'wrap_after' => '', 110 | ); 111 | 112 | $args = wp_parse_args( $args, $default ); 113 | 114 | // Anchor url 115 | $url = $args['url']; 116 | 117 | // Anchor Text 118 | $text = $args['text']; 119 | 120 | 121 | /** 122 | * Optional Attr 123 | */ 124 | 125 | $attr = ''; 126 | // class 127 | if ( ! empty( $args['class'] ) ) { 128 | $attr .= ' class="' . esc_attr( $args['class'] ) . '"'; 129 | } 130 | // id 131 | if ( ! empty( $args['id'] ) ) { 132 | $attr .= ' id="' . esc_attr( $args['id'] ) . '"'; 133 | } 134 | // target 135 | if ( ! empty( $args['target'] ) ) { 136 | $attr .= ' target="' . esc_attr( $args['target'] ) . '"'; 137 | } 138 | // Title 139 | if ( ! empty( $args['title'] ) ) { 140 | $attr .= ' title="' . esc_attr( $args['title'] ) . '"'; 141 | } 142 | 143 | $data = ''; 144 | 145 | // Wrapper Start 146 | if ( ! empty( $args['wrap_before'] ) ) { 147 | $data .= $args['wrap_before']; 148 | } 149 | $data .= '' . $text . ''; 150 | 151 | // Wrapper End 152 | if ( ! empty( $args['wrap_after'] ) ) { 153 | $data .= $args['wrap_after']; 154 | } 155 | 156 | return wp_kses_post( $data ); 157 | 158 | } 159 | } 160 | 161 | // Heading Tag 162 | if ( ! function_exists( 'gilb_heading_tag' ) ) { 163 | function gilb_heading_tag( array $args ) { 164 | 165 | $default = array( 166 | 'tag' => 'h1', 167 | 'text' => 'Write Something', 168 | 'class' => '', 169 | 'id' => '', 170 | 'wrap_before' => '', 171 | 'wrap_after' => '', 172 | ); 173 | 174 | $args = wp_parse_args( $args, $default ); 175 | 176 | // Tag 177 | $tag = $args['tag']; 178 | 179 | /** 180 | * Optional Attr 181 | */ 182 | 183 | $attr = ''; 184 | // class 185 | if ( ! empty( $args['class'] ) ) { 186 | $attr .= ' class="' . esc_attr( $args['class'] ) . '"'; 187 | } 188 | // id 189 | if ( ! empty( $args['id'] ) ) { 190 | $attr .= ' id="' . esc_attr( $args['id'] ) . '"'; 191 | } 192 | 193 | $data = ''; 194 | 195 | // Wrapper Start 196 | if ( ! empty( $args['wrap_before'] ) ) { 197 | $data .= $args['wrap_before']; 198 | } 199 | $data .= '<' . esc_attr( $tag ) . $attr . '>' . $args['text'] . ''; 200 | 201 | // Wrapper End 202 | if ( ! empty( $args['wrap_after'] ) ) { 203 | $data .= $args['wrap_after']; 204 | } 205 | 206 | return wp_kses_post( $data ); 207 | 208 | } 209 | } 210 | 211 | // Paragraph Tag 212 | if ( ! function_exists( 'gilb_paragraph_tag' ) ) { 213 | function gilb_paragraph_tag( array $args ) { 214 | 215 | $default = array( 216 | 'text' => 'Write Something', 217 | 'class' => '', 218 | 'id' => '', 219 | 'wrap_before' => '', 220 | 'wrap_after' => '', 221 | ); 222 | 223 | $args = wp_parse_args( $args, $default ); 224 | 225 | 226 | /** 227 | * Optional Attr 228 | */ 229 | 230 | $attr = ''; 231 | // class 232 | if ( ! empty( $args['class'] ) ) { 233 | $attr .= ' class="' . esc_attr( $args['class'] ) . '"'; 234 | } 235 | // id 236 | if ( ! empty( $args['id'] ) ) { 237 | $attr .= ' id="' . esc_attr( $args['id'] ) . '"'; 238 | } 239 | 240 | $pdata = ''; 241 | 242 | // Wrapper Start 243 | if ( ! empty( $args['wrap_before'] ) ) { 244 | $pdata .= $args['wrap_before']; 245 | } 246 | $pdata .= '' . $args['text'] . '

    '; 247 | // Wrapper End 248 | if ( ! empty( $args['wrap_after'] ) ) { 249 | $pdata .= $args['wrap_after']; 250 | } 251 | 252 | return wp_kses_post( $pdata ); 253 | 254 | } 255 | } 256 | 257 | // Other Tag 258 | if ( ! function_exists( 'gilb_other_tag' ) ) { 259 | function gilb_other_tag( array $args ) { 260 | 261 | $default = array( 262 | 'tag' => 'span', 263 | 'text' => 'Write Something', 264 | 'class' => '', 265 | 'id' => '', 266 | 'wrap_before' => '', 267 | 'wrap_after' => '', 268 | ); 269 | 270 | $args = wp_parse_args( $args, $default ); 271 | 272 | // Tag 273 | $tag = $args['tag']; 274 | 275 | /** 276 | * Optional Attr 277 | */ 278 | 279 | $attr = ''; 280 | // class 281 | if ( ! empty( $args['class'] ) ) { 282 | $attr .= ' class="' . esc_attr( $args['class'] ) . '"'; 283 | } 284 | // id 285 | if ( ! empty( $args['id'] ) ) { 286 | $attr .= ' id="' . esc_attr( $args['id'] ) . '"'; 287 | } 288 | 289 | $tagdata = ''; 290 | 291 | // Button Wrapper Start 292 | if ( ! empty( $args['wrap_before'] ) ) { 293 | $tagdata .= $args['wrap_before']; 294 | } 295 | $tagdata .= '<' . esc_attr( $tag ) . $attr . '>' . $args['text'] . '';; 296 | // Button Wrapper End 297 | if ( ! empty( $args['wrap_after'] ) ) { 298 | $tagdata .= $args['wrap_after']; 299 | } 300 | 301 | return wp_kses_post( $tagdata ); 302 | 303 | } 304 | } 305 | 306 | // Button Element 307 | if ( ! function_exists( 'gilb_button_element ' ) ) { 308 | function gilb_button_element( array $args ) { 309 | 310 | $default = array( 311 | 'text' => 'Button', 312 | 'type' => '', 313 | 'class' => '', 314 | 'id' => '', 315 | 'wrap_before' => '', 316 | 'wrap_after' => '', 317 | ); 318 | 319 | $args = wp_parse_args( $args, $default ); 320 | 321 | /** 322 | * Optional Attr 323 | */ 324 | 325 | $attr = ''; 326 | // class 327 | if ( ! empty( $args['class'] ) ) { 328 | $attr .= ' class="' . esc_attr( $args['class'] ) . '"'; 329 | } 330 | // id 331 | if ( ! empty( $args['id'] ) ) { 332 | $attr .= ' id="' . esc_attr( $args['id'] ) . '"'; 333 | } 334 | // type 335 | if ( ! empty( $args['type'] ) ) { 336 | $attr .= ' type="' . esc_attr( $args['type'] ) . '"'; 337 | } 338 | 339 | $btn = ''; 340 | 341 | // Button Wrapper Start 342 | if ( ! empty( $args['wrap_before'] ) ) { 343 | $btn .= $args['wrap_before']; 344 | } 345 | $btn .= ''; 346 | // Button Wrapper End 347 | if ( ! empty( $args['wrap_after'] ) ) { 348 | $btn .= $args['wrap_after']; 349 | } 350 | 351 | return wp_kses_post( $btn ); 352 | 353 | } 354 | } 355 | -------------------------------------------------------------------------------- /inc/wp_bootstrap_navwalker.php: -------------------------------------------------------------------------------- 1 | \n"; 24 | } 25 | 26 | /** 27 | * @see Walker::start_el() 28 | * @since 3.0.0 29 | * 30 | * @param string $output Passed by reference. Used to append additional content. 31 | * @param object $item Menu item data object. 32 | * @param int $depth Depth of menu item. Used for padding. 33 | * @param int $current_page Menu item ID. 34 | * @param object $args 35 | */ 36 | public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { 37 | $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; 38 | 39 | 40 | 41 | /** 42 | * Dividers, Headers or Disabled 43 | * ============================= 44 | * Determine whether the item is a Divider, Header, Disabled or regular 45 | * menu item. To prevent errors we use the strcasecmp() function to so a 46 | * comparison that is not case sensitive. The strcasecmp() function returns 47 | * a 0 if the strings are equal. 48 | */ 49 | if ( strcasecmp( $item->attr_title, 'divider' ) == 0 && $depth === 1 ) { 50 | $output .= $indent . ''; 205 | $fb_output .= ''; 206 | 207 | if ( $container ) 208 | $fb_output .= ''; 209 | 210 | echo wp_kses_post( $fb_output ); 211 | } 212 | } 213 | } 214 | 215 | // Social nav Walker 216 | class gilb_social_navwalker extends Walker_Nav_Menu { 217 | // Tell Walker where to inherit it's parent and id values 218 | var $db_fields = array( 219 | 'parent' => 'menu_item_parent', 220 | 'id' => 'db_id' 221 | ); 222 | 223 | /** 224 | * 225 | * 226 | * Note: Menu objects include url and title properties, so we will use those. 227 | */ 228 | function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { 229 | 230 | 231 | $class = $item->classes; 232 | 233 | $setClass = ''; 234 | 235 | if( !empty( $class['0'] ) ){ 236 | $setClass = $class['0']; 237 | } 238 | 239 | $output .= sprintf( "\n
  • \n", 240 | $item->url, 241 | $setClass 242 | ); 243 | 244 | } 245 | 246 | } 247 | -------------------------------------------------------------------------------- /inc/hooks/hooks-functions.php: -------------------------------------------------------------------------------- 1 | 19 |
    20 |
    21 |
    22 |
    '; 42 | 43 | // Footer personal info 44 | if( gilb_opt( 'gilb_personal_info_section' ) ){ 45 | get_template_part( 'templates/footer', 'personal-info' ); 46 | } 47 | 48 | // Footer widgets 49 | if( gilb_opt( 'gilb_footer_widget_toggle' ) ){ 50 | get_template_part( 'templates/footer', 'widgets' ); 51 | } 52 | 53 | // Footer bottom 54 | get_template_part( 'templates/footer', 'bottom' ); 55 | echo '
    '; 56 | } 57 | } 58 | 59 | 60 | // Blog, single, page, search, archive pages wrapper start hook function. 61 | if( !function_exists('gilb_wrp_start_cb') ){ 62 | function gilb_wrp_start_cb(){ 63 | $gilb_wrp_start_class = is_home() ? ' blog_area' : ' search-page'; 64 | echo '
    '; 65 | } 66 | } 67 | // Blog, single, page, search, archive pages wrapper end hook function. 68 | if( !function_exists('gilb_wrp_end_cb') ){ 69 | function gilb_wrp_end_cb(){ 70 | echo '
    '; 71 | } 72 | } 73 | // Blog, single, search, archive pages column start hook function. 74 | if( !function_exists('gilb_blog_col_start_cb') ){ 75 | function gilb_blog_col_start_cb(){ 76 | 77 | $sidebarOpt = gilb_sidebar_opt(); 78 | 79 | // 80 | if( !is_page() ){ 81 | $pullRight = gilb_pull_right( $sidebarOpt , '3' ); 82 | 83 | if( $sidebarOpt != '1' ){ 84 | $col = '8'.$pullRight; 85 | }else{ 86 | 87 | if( !is_single() ){ 88 | $col = '12'; 89 | }else{ 90 | $col = '10 offset-lg-1'; 91 | } 92 | 93 | } 94 | }else{ 95 | $col = '8'; 96 | 97 | } 98 | 99 | // single page should be p-b-80 100 | echo '
    '; 101 | } 102 | } 103 | // Blog, single, search, archive pages column end hook function. 104 | if( !function_exists('gilb_blog_col_end_cb') ){ 105 | function gilb_blog_col_end_cb(){ 106 | echo '
    '; 107 | } 108 | } 109 | 110 | // Blog post thumbnail hook function. 111 | if( !function_exists('gilb_blog_posts_thumb_cb') ){ 112 | function gilb_blog_posts_thumb_cb(){ 113 | // Thumbnail Show 114 | if( has_post_thumbnail() ){ 115 | 116 | if( !is_single() ){ 117 | 118 | $html = ''; 119 | $html .= ''; 130 | 131 | }else{ 132 | 133 | $html = ''; 134 | $html .= '
    '; 135 | $html .= gilb_img_tag( 136 | array( 137 | 'url' => esc_url( get_the_post_thumbnail_url() ), 138 | 'class' => 'card-img rounded-0 wp-post-image' 139 | ) 140 | ); 141 | $html .= '
    '; 142 | 143 | } 144 | echo wp_kses_post( $html ); 145 | 146 | 147 | } 148 | // Thumbnail check and video and audio thumb show 149 | if( !is_single() && !has_post_thumbnail() ){ 150 | $html = ''; 151 | if( has_post_format( array( 'video' ) ) ){ 152 | 153 | $html .= '
    '; 154 | $html .= gilb_embedded_media( array( 'video', 'iframe' ) ); 155 | $html .= '
    '; 156 | 157 | }else{ 158 | 159 | if( has_post_format( array( 'audio' ) ) ){ 160 | 161 | $html .= '
    '; 162 | $html .= gilb_embedded_media( array( 'audio', 'iframe' ) ); 163 | $html .= '
    '; 164 | } 165 | } 166 | 167 | echo apply_filters( 'gilb_audio_embedded_media', $html ); 168 | 169 | } 170 | } 171 | } 172 | 173 | // Blog details wrapper start hook function. 174 | if( !function_exists('gilb_blog_details_wrap_start_cb') ){ 175 | function gilb_blog_details_wrap_start_cb(){ 176 | 177 | echo '
    '; 178 | } 179 | } 180 | // Blog details wrapper end hook function. 181 | if( !function_exists('gilb_blog_details_wrap_end_cb') ){ 182 | function gilb_blog_details_wrap_end_cb(){ 183 | echo '
    '; 184 | } 185 | } 186 | 187 | // Blog post title hook function. 188 | if( !function_exists('gilb_blog_posts_title_cb') ){ 189 | function gilb_blog_posts_title_cb(){ 190 | if( get_the_title() ){ 191 | 192 | $html = ''; 193 | if( !is_single() ){ 194 | $html .= '

    '.esc_html( get_the_title() ).'

    '; 195 | }else{ 196 | $html .= '

    '.esc_html( get_the_title() ).'

    '; 197 | } 198 | 199 | echo wp_kses_post( $html ); 200 | 201 | } 202 | } 203 | } 204 | 205 | // Blog posts meta hook function. 206 | if( !function_exists('gilb_blog_posts_meta_cb') ){ 207 | function gilb_blog_posts_meta_cb(){ 208 | 209 | echo ''; 240 | 241 | 242 | 243 | } 244 | } 245 | 246 | // Blog posts excerpt hook function. 247 | if( !function_exists('gilb_blog_posts_excerpt_cb') ){ 248 | function gilb_blog_posts_excerpt_cb(){ 249 | ?> 250 |
    251 | 258 |
    259 | 267 | 268 | 269 | 270 | 280 | 284 | 305 |
    306 | 312 | 313 |
    314 | 341 | 363 | '; 378 | echo ''.esc_html__( 'Post Tags:', 'gilb' ).''; 379 | echo '
    '; 380 | // single post tag 381 | echo wp_kses_post( $tags ); 382 | 383 | echo '
    '; 384 | echo ''; 385 | } 386 | 387 | // Author biography 388 | if( '' !== get_the_author_meta('description') ){ 389 | get_template_part( 'templates/biography' ); 390 | } 391 | 392 | } 393 | } 394 | 395 | // Blog 404 page hook function. 396 | if( !function_exists('gilb_fof_cb') ){ 397 | function gilb_fof_cb(){ 398 | get_template_part( 'templates/404' ); 399 | } 400 | } 401 | 402 | 403 | 404 | ?> -------------------------------------------------------------------------------- /inc/classes/Class-Config.php: -------------------------------------------------------------------------------- 1 | init(); 41 | 42 | } 43 | // Theme init 44 | public function init() { 45 | 46 | $this->setup(); 47 | 48 | // customizer init Instantiate 49 | if( class_exists('Epsilon_Framework') ){ 50 | $this->customizer_init(); 51 | } 52 | 53 | // Instantiate Dashboard 54 | $Epsilon_init_Dashboard = Epsilon_init_Dashboard::get_instance(); 55 | 56 | } 57 | 58 | // Theme setup 59 | private function setup() { 60 | 61 | // Create enqueue class instance 62 | $enqueu = new gilb_Enqueue(); 63 | $enqueu->scripts = $this->enqueue(); 64 | $enqueu->gilb_scripts_enqueue_init(); 65 | 66 | 67 | } 68 | 69 | // Theme Support 70 | public function support() { 71 | // content width 72 | $GLOBALS['content_width'] = apply_filters( 'gilb_content_width', 751 ); 73 | 74 | 75 | // text domain for translation. 76 | load_theme_textdomain( 'gilb', GILB_DIR_PATH . '/languages' ); 77 | 78 | // support title tage 79 | add_theme_support( 'title-tag' ); 80 | 81 | // support logo 82 | add_theme_support( 'custom-logo', array( 83 | 'height' => 24, 84 | 'width' => 65, 85 | 'flex-height' => true, 86 | 'flex-width' => true, 87 | 'header-text' => array( 'site-title', 'site-description' ), 88 | ) ); 89 | 90 | // support post format 91 | add_theme_support( 'post-formats', array( 'video', 'audio' ) ); 92 | 93 | // support post-thumbnails 94 | add_theme_support( 'post-thumbnails', array( 'post' ) ); 95 | 96 | // Site logo size 97 | add_image_size( 'gilb_site_logo_65x24', 65, 24, true ); 98 | 99 | // Latest post thumbnail Widget thumbnail size 100 | add_image_size( 'gilb_widget_post_thumb', 70, 70, true ); 101 | 102 | // Portfolio image sizes 103 | add_image_size( 'gilb_portfolio_img_360x378', 360, 378, true ); 104 | add_image_size( 'gilb_portfolio_img_750x787', 750, 787, true ); 105 | add_image_size( 'gilb_portfolio_img_750x378', 750, 378, true ); 106 | add_image_size( 'gilb_portfolio_details_img_555x544', 555, 544, true ); 107 | 108 | // Review client thumbnail size 109 | add_image_size( 'gilb_review_client_thumb_90x90', 90, 90, true ); 110 | 111 | // About thumbnail size 112 | add_image_size( 'gilb_about_thumb_487x514', 487, 514, true ); 113 | 114 | // Latest post thumbnail Widget thumbnail size 115 | add_image_size( 'gilb_widget_post_thumb', 80, 80, true ); 116 | 117 | // Single blog post image size 118 | add_image_size( 'gilb_single_blog_750x375', 750, 375, true ); 119 | add_image_size( 'gilb_np_thumb', 60, 60, true ); 120 | 121 | // support custom background 122 | add_theme_support( 'custom-background', array( 123 | 'default-color' => '#fff', 124 | ) ); 125 | 126 | // support custom header 127 | add_theme_support( 'custom-header', array( 128 | 'default-image' => '', 129 | 'default-text-color' => '000', 130 | 'width' => 1920, 131 | 'height' => 500, 132 | 'flex-width' => true, 133 | 'flex-height' => true, 134 | ) ); 135 | 136 | // support automatic feed links 137 | add_theme_support( 'automatic-feed-links' ); 138 | 139 | // support html5 140 | add_theme_support( 'html5' ); 141 | 142 | // Add theme support for selective refresh for widgets. 143 | add_theme_support( 'customize-selective-refresh-widgets' ); 144 | 145 | // register nav menu 146 | register_nav_menus( array( 147 | 'primary-menu' => esc_html__( 'Primary Menu', 'gilb' ), 148 | 'footer-menu' => esc_html__( 'Footer Menu', 'gilb' ), 149 | ) ); 150 | 151 | // editor style 152 | add_editor_style( 'assets/css/editor-style.css' ); 153 | 154 | } // end support method 155 | 156 | // enqueue theme style and script 157 | private function enqueue() { 158 | 159 | $cssPath = GILB_DIR_CSS_URI; 160 | $jsPath = GILB_DIR_JS_URI; 161 | 162 | $scripts = array( 163 | 'style' => array( 164 | array( 165 | 'handler' => 'google-font', 166 | 'file' => $this->google_font(), 167 | ), 168 | array( 169 | 'handler' => 'bootstrap-css', 170 | 'file' => $cssPath . 'bootstrap.min.css', 171 | 'dependency' => array(), 172 | 'version' => '1.0', 173 | ), 174 | array( 175 | 'handler' => 'animate', 176 | 'file' => $cssPath . 'animate.css', 177 | 'dependency' => array(), 178 | 'version' => '1.0', 179 | ), 180 | array( 181 | 'handler' => 'owl-carousel-css', 182 | 'file' => $cssPath . 'owl.carousel.min.css', 183 | 'dependency' => array(), 184 | 'version' => '1.0', 185 | ), 186 | array( 187 | 'handler' => 'font-awesome', 188 | 'file' => $cssPath . 'font-awesome.min.css', 189 | 'dependency' => array(), 190 | 'version' => '1.0', 191 | ), 192 | array( 193 | 'handler' => 'themify-icons', 194 | 'file' => $cssPath . 'themify-icons.css', 195 | 'dependency' => array(), 196 | 'version' => '1.0', 197 | ), 198 | array( 199 | 'handler' => 'flaticon', 200 | 'file' => $cssPath . 'flaticon.css', 201 | 'dependency' => array(), 202 | 'version' => '1.0', 203 | ), 204 | array( 205 | 'handler' => 'magnific-popup-css', 206 | 'file' => $cssPath . 'magnific-popup.css', 207 | 'dependency' => array(), 208 | 'version' => '1.0', 209 | ), 210 | array( 211 | 'handler' => 'slick-css', 212 | 'file' => $cssPath . 'slick.css', 213 | 'dependency' => array(), 214 | 'version' => '1.0', 215 | ), 216 | array( 217 | 'handler' => 'gijgo-css', 218 | 'file' => $cssPath . 'gijgo.min.css', 219 | 'dependency' => array(), 220 | 'version' => '1.0', 221 | ), 222 | array( 223 | 'handler' => 'nice-select-css', 224 | 'file' => $cssPath . 'nice-select.css', 225 | 'dependency' => array(), 226 | 'version' => '1.0', 227 | ), 228 | array( 229 | 'handler' => 'main-style', 230 | 'file' => $cssPath . 'style.css', 231 | 'dependency' => array(), 232 | 'version' => $this->gilb_version, 233 | ), 234 | array( 235 | 'handler' => 'gilb-style', 236 | 'file' => get_stylesheet_uri(), 237 | ), 238 | ), 239 | 'scripts' => array( 240 | array( 241 | 'handler' => 'popper-js', 242 | 'file' => $jsPath . 'popper.min.js', 243 | 'dependency' => array( 'jquery' ), 244 | 'version' => '1.0', 245 | 'in_footer' => true, 246 | ), 247 | array( 248 | 'handler' => 'bootstrap-js', 249 | 'file' => $jsPath . 'bootstrap.min.js', 250 | 'dependency' => array( 'jquery' ), 251 | 'version' => '1.0', 252 | 'in_footer' => true, 253 | ), 254 | array( 255 | 'handler' => 'jquery-magnific-js', 256 | 'file' => $jsPath . 'jquery.magnific-popup.js', 257 | 'dependency' => array( 'jquery' ), 258 | 'version' => '1.0', 259 | 'in_footer' => true, 260 | ), 261 | array( 262 | 'handler' => 'jquery-instagramFeed-js', 263 | 'file' => $jsPath . 'jquery.instagramFeed.min.js', 264 | 'dependency' => array( 'jquery' ), 265 | 'version' => '1.0', 266 | 'in_footer' => true, 267 | ), 268 | array( 269 | 'handler' => 'jquery-ajaxchimp-js', 270 | 'file' => $jsPath . 'jquery.ajaxchimp.min.js', 271 | 'dependency' => array( 'jquery' ), 272 | 'version' => '1.0', 273 | 'in_footer' => true, 274 | ), 275 | array( 276 | 'handler' => 'masonry-pkgd-js', 277 | 'file' => $jsPath . 'masonry.pkgd.js', 278 | 'dependency' => array( 'jquery' ), 279 | 'version' => '1.0', 280 | 'in_footer' => true, 281 | ), 282 | array( 283 | 'handler' => 'owl-carousel-js', 284 | 'file' => $jsPath . 'owl.carousel.min.js', 285 | 'dependency' => array( 'jquery' ), 286 | 'version' => '1.0', 287 | 'in_footer' => true, 288 | ), 289 | array( 290 | 'handler' => 'post-like-js', 291 | 'file' => $jsPath.'post-likes.js', 292 | 'dependency' => array( 'jquery' ), 293 | 'version' => '1.0', 294 | 'in_footer' => true 295 | ), 296 | array( 297 | 'handler' => 'jquery-nice-select-js', 298 | 'file' => $jsPath . 'jquery.nice-select.min.js', 299 | 'dependency' => array( 'jquery' ), 300 | 'version' => '1.0', 301 | 'in_footer' => true, 302 | ), 303 | array( 304 | 'handler' => 'custom-js', 305 | 'file' => $jsPath . 'custom.js', 306 | 'dependency' => array( 'jquery' ), 307 | 'version' => $this->gilb_version, 308 | 'in_footer' => true, 309 | ), 310 | 311 | ), 312 | ); 313 | 314 | return $scripts; 315 | 316 | } // end enqueu method 317 | 318 | 319 | // Google Font 320 | private function google_font() { 321 | 322 | $fontUrl = ''; 323 | 324 | if ( 'off' !== _x( 'on', 'Google font: on or off', 'gilb' ) ) { 325 | 326 | $font_families = array( 327 | 'Montserrat:300,400,500,600,700', 328 | ); 329 | 330 | $familyArgs = array( 331 | 'family' => htmlentities( implode( '|', $font_families ) ), 332 | 'subset' => urlencode( 'latin, latin-text' ), 333 | ); 334 | 335 | $fontUrl = add_query_arg( $familyArgs, '//fonts.googleapis.com/css' ); 336 | } 337 | 338 | return esc_url_raw( $fontUrl ); 339 | 340 | } //End google_font method 341 | 342 | /** 343 | * Epsilon customizer 344 | * 345 | */ 346 | 347 | // epsilon customizer init 348 | private function customizer_init(){ 349 | 350 | // epsilon customizer quickie settings 351 | 352 | add_filter( 'epsilon_quickie_bar_shortcuts', array( $this, 'epsilon_quickie' ) ); 353 | 354 | // Instantiate Epsilon Framework object 355 | $Epsilon_Framework = new Epsilon_Framework(); 356 | 357 | 358 | // Instantiate gilb theme customizer 359 | $gilb_theme_customizer = new gilb_theme_customizer(); 360 | } 361 | 362 | public function epsilon_quickie(){ 363 | 364 | return array( 365 | 366 | 'links' => array( 367 | array( 368 | 'link_to' => 'gilb_options_panel', 369 | 'icon' => 'dashicons dashicons-admin-tools', 370 | 'link_type' => 'panel', 371 | ), 372 | array( 373 | 'link_to' => 'nav_menus', 374 | 'icon' => 'dashicons dashicons-menu', 375 | 'link_type' => 'panel', 376 | ), 377 | array( 378 | 'link_to' => 'widgets', 379 | 'icon' => 'dashicons dashicons-archive', 380 | 'link_type' => 'panel', 381 | ), 382 | array( 383 | 'link_to' => 'custom_css', 384 | 'icon' => 'dashicons dashicons-editor-code', 385 | 'link_type' => 'section', 386 | ), 387 | 388 | ), 389 | 'logo' => array( 390 | 'url' => EPSILON_URI . '/assets/img/epsilon-logo.png', 391 | 'alt' => 'Epsilon Builder Logo', 392 | ), 393 | ); 394 | 395 | } 396 | 397 | /** 398 | * Notice for Elementor default style 399 | * 400 | */ 401 | 402 | // Check elementor preview page 403 | public static function check_elementor_preview_page(){ 404 | 405 | if( ( isset( $_REQUEST['action'] ) && 'elementor' == $_REQUEST['action'] ) || isset( $_REQUEST['elementor-preview'] ) ){ 406 | return true; 407 | } 408 | 409 | return false; 410 | 411 | } 412 | // Set flag for elementor ( hooked in after switch theme ) 413 | public function set_elementor_flag(){ 414 | update_option( 'gilb_had_elementor', 'no' ); 415 | } 416 | // Elementor dsiable default style 417 | public function elementor_desiable_default_style(){ 418 | 419 | $nonce = $_POST['nonce']; 420 | if ( ! wp_verify_nonce( $nonce, 'gilb-elementor-notice-nonce' ) ) { 421 | return; 422 | } 423 | $reply = $_POST['reply']; 424 | if ( ! empty( $reply ) ) { 425 | if ( $reply == 'yes' ) { 426 | update_option( 'elementor_disable_color_schemes', 'yes' ); 427 | update_option( 'elementor_disable_typography_schemes', 'yes' ); 428 | } 429 | update_option( 'gilb_had_elementor', 'yes' ); 430 | } 431 | die(); 432 | 433 | } 434 | // Enqueue theme default style for elementor 435 | public function enqueue_elementor_theme_default_style(){ 436 | 437 | $disabled_color_schemes = get_option( 'elementor_disable_color_schemes' ); 438 | $disabled_typography_schemes = get_option( 'elementor_disable_typography_schemes' ); 439 | 440 | if ( $disabled_color_schemes === 'yes' && $disabled_typography_schemes === 'yes' ) { 441 | wp_enqueue_style( 'gilb-elementor-default-style', GILB_DIR_CSS_URI. 'elementor-default-element-style.css', array(), $this->gilb_version ); 442 | } 443 | } 444 | // Enqueue elementor notice scripts 445 | public function enqueue_elementor_notice_script(){ 446 | 447 | $had_elementor = get_option( 'gilb_had_elementor' ); 448 | 449 | if( $had_elementor == 'no' && self::check_elementor_preview_page() ){ 450 | wp_enqueue_script( 'gilb-elementor-notice', GILB_DIR_JS_URI.'gilb-elementor-notice.js', array('jquery'), '1.0', true ); 451 | wp_localize_script( 452 | 'gilb-elementor-notice', 453 | 'gilbElementorNotice', 454 | array( 455 | 'ajaxurl' => admin_url( 'admin-ajax.php' ), 456 | 'nonce' => wp_create_nonce( 'gilb-elementor-notice-nonce' ), 457 | ) 458 | ); 459 | } 460 | 461 | } 462 | 463 | 464 | } // End Gilb Class 465 | 466 | 467 | ?> -------------------------------------------------------------------------------- /inc/gilb-commoncss.php: -------------------------------------------------------------------------------- 1 | ol > li.breadcrumb-item > a.bread-link:hover, .banner-breadcrumb .breadcrumb-item a:hover, .blog_details a:hover, .blog_right_sidebar .widget_categories ul li:hover, .blog_right_sidebar .widget_categories ul li:hover a, .blog_right_sidebar .widget_categories ul li a:hover, .post_2 .category_post_img .category_btn:hover, .gallery_part .portfolio-filter .active, .our_service .single_offer_text .btn_1:hover, li.breadcrumb-item a:hover { 90 | color: {$themeColor}!important; 91 | } 92 | 93 | .review_part .intro_video_bg .video-play-button, .review_part .owl-prev span:after, .review_part .owl-next span:after, .review_part .intro_video_bg .video-play-button:after, .review_part .intro_video_bg .video-play-button:before, .review_part .intro_video_bg .video-play-button:hover:after, .blog_item_img .blog_item_date, .single_sidebar_widget .tagcloud a:hover, .pre_icon :after, .next_icon :after, section.cta_area, .service_part .single_service_part .line:after, .about_part .about_text .btn_2:hover, .section_tittle h2:after, .our_industries .single_industries h3:after, .faq_part .faq_content .active .accordion-header h2:before, .portfolio_part .card-columns .blockquote h2:after, .see_more_project .btn_1, .contact-section .btn_2:hover, .banner_part .banner_text .btn_1:hover:before, .banner_part .banner_text .btn_1:hover:after, .about_us .about_us_text .btn_2:hover, .our_service .single_offer_text .btn_1:hover:before, .our_service .single_offer_text .btn_1:hover:after, .main_menu nav .btn_1, .our_service .btn_3:hover:after, .blog_part .single-home-blog .card .card-body a:hover:after, .about_part .about_part_text .btn_1, .our_project .more_btn_iner:hover, .cta_part .btn_1, .search-page .backtohome .btn_1, .f0f-content .btn_1, .booking_part .form-row .btn_1:hover, .top_place .single_place:after, .top_place .btn_1:hover, .event_part .btn_1:hover, .client_review, .intro_video_bg .video-play-button:before, .intro_video_bg .video-play-button:after 94 | { 95 | background: {$themeColor} 96 | } 97 | 98 | .about_part .about_part_text .btn_1:hover, .our_service .single_service:hover, .creative .creative_part_text a i, .cta_part:after, .cta_part .btn_1:hover, .search-page .backtohome .btn_1, .contact-section .button-contactForm:hover, .f0f-content .btn_1, .top_place .single_place .hover_Text .place_btn, .top_place .btn_1, .event_part .btn_1, .about_part .about_text .btn_3:hover, .banner_part .banner_text .btn_1, .footer_Part .footer_btn .btn_1, .button:not(.wpcf7-submit), .blog_right_sidebar .single_sidebar_widget.widget_gilb_newsletter .btn, .form-contact .form-group .btn_1, .contact-section .button-contactForm 99 | { 100 | background: {$themeSecColor}; 101 | } 102 | 103 | .portfolio_part .btn_2, .blog_area a h2:hover 104 | { 105 | border-color: {$themeSecColor}; 106 | } 107 | 108 | .blog_area a h2:hover 109 | { 110 | color: {$themeSecColor} !important; 111 | } 112 | 113 | .btn_4, .our_Professional .single_industries_text:hover, .pricing_part .single_pricing_part .pricing_content .btn_2:hover, .comment-form .comment-respond .btn_2:hover{ 114 | border-color: {$themeColor}; 115 | background-color: {$themeColor}; 116 | } 117 | .btn_4:hover{ 118 | color: {$themeColor}!important; 119 | } 120 | .about_us .about_us_text .btn_2:hover, .blog_right_sidebar .widget_search .btn_2{ 121 | border-color: {$themeColor}!important; 122 | } 123 | 124 | .service_part .single_service_part:hover .single_service_part_iner span, .banner_part .banner_text .btn_1:hover, .footer_Part .footer_btn .btn_1:hover, .form-contact .form-group .btn_1:hover, .button:not(.wpcf7-submit):hover, .search-page .backtohome .btn_1:hover, .f0f-content .btn_1:hover, .contact-section .button-contactForm:hover 125 | { 126 | background: {$themeColor}!important; 127 | } 128 | 129 | .btn_2:hover, 130 | .copyright_part .footer-social a:hover 131 | { 132 | background: {$hoverColor}!important; 133 | } 134 | 135 | .blog_part .single-home-blog .card h5:hover 136 | { 137 | color: {$hoverColor}; 138 | } 139 | 140 | .about_part .about_img h2:after, .copyright_part .footer-social a, .contact-section .btn_2:hover, .our_project .more_btn_iner, .food_menu .single_food_item, .review_part .center .client_review_text p 141 | { 142 | border-color: {$themeColor} 143 | } 144 | 145 | .review_part .center .client_review_text p:after 146 | { 147 | border-top-color: {$themeColor} 148 | } 149 | 150 | .sub_header{ 151 | background: {$headerTop_bg} 152 | } 153 | .sub_header .sub_header_social_icon a, 154 | .sub_header .sub_header_social_icon .register_icon 155 | { 156 | color: {$headerTop_col} 157 | } 158 | 159 | .main_menu.menu_fixed 160 | { 161 | background: {$headerBg}; 162 | } 163 | .main_menu .main-menu-item ul li .nav-link, .main_menu .main-menu-item ul li.active .nav-link 164 | { 165 | color: {$menuColor} !important; 166 | } 167 | .main_menu .main-menu-item ul li .nav-link:not(.dropdown-item):hover 168 | { 169 | color: {$menuHoverColor} !important; 170 | } 171 | .main_menu.menu_fixed .main-menu-item ul li .nav-link:not(.dropdown-item):hover 172 | { 173 | color: {$menuFixedHoverColor} !important; 174 | } 175 | 176 | .main_menu .main-menu-item ul.dropdown-menu li .nav-link, .dropdown .dropdown-menu .dropdown-item 177 | { 178 | color: {$dropMenuColor}!important; 179 | } 180 | .main_menu .main-menu-item ul.dropdown-menu li .nav-link:hover, .dropdown .dropdown-menu .dropdown-item:hover 181 | { 182 | color: {$dropMenuHovColor}!important; 183 | } 184 | .main_menu .main-menu-item ul li .nav-link:not(.dropdown-item):before 185 | { 186 | background: {$headerBg}; 187 | } 188 | 189 | .footer-area, .footer_Part, .footer_Part:before, .footer_Part:after { 190 | background: {$footerwbgColor}; 191 | } 192 | 193 | .footer-area .single-footer-widget p, .footer-area .widget_gilb_newsletter .input-group input, .footer-area .copyright_part_text p, .footer_Part .copyright_part p, .footer-area .footer_2 .social_icon a, .footer_Part .footer_text h2 194 | { 195 | color: {$footerwTextColor} 196 | } 197 | .footer-area .copyright_part_text { 198 | border-color: {$footerwTextColor} 199 | } 200 | 201 | .footer-area .copyright_part_text a, .footer-area .social_icon a, .footer-area .single-footer-widget ul li a, .footer_Part .footer_menu a, .footer_Part .social_icon a 202 | { 203 | color: {$footerwanchorcolor}; 204 | } 205 | .footer_Part .footer_menu a:hover, .footer_Part .social_icon a:hover 206 | { 207 | color: {$footerwanchorhovcolor}; 208 | } 209 | .footer-area .copyright_part_text .footer-text > a, .footer_Part .copyright_part p > a 210 | { 211 | color: {$footerAncDefHovColor}; 212 | } 213 | .footer-area .btn{ 214 | background: {$footerwanchorcolor}; 215 | } 216 | .footer-area .single-footer-widget .btn 217 | { 218 | background: {$footerAncDefHovColor}; 219 | } 220 | .footer-area .social_icon a:hover, .footer-area .single-footer-widget ul li a:hover 221 | { 222 | color: {$footerAncDefHovColor}!important; 223 | } 224 | .footer-area .copyright_part_text a:hover, .footer-area .footer_2 .social_icon a:hover, .footer-area .single-footer-widget p span 225 | { 226 | color: {$footerAncDefHovColor}!important; 227 | } 228 | 229 | #f0f { 230 | background-color: {$fofbg}; 231 | } 232 | .f0f-content .h1 { 233 | color: {$foftonecolor}; 234 | } 235 | .f0f-content p { 236 | color: {$fofttwocolor}; 237 | } 238 | 239 | .comment_form .btn_1.button:hover, .search-page .button.button-contactForm:hover, .f0f-content .button.button-contactForm:hover{ 240 | background: #fff; 241 | } 242 | 243 | "; 244 | 245 | wp_add_inline_style( 'gilb-common', $customcss ); 246 | 247 | } 248 | add_action( 'wp_enqueue_scripts', 'gilb_common_custom_css', 50 ); -------------------------------------------------------------------------------- /inc/post-like.php: -------------------------------------------------------------------------------- 1 | admin_url( 'admin-ajax.php' ), 17 | 'unlike' => esc_html__( 'Unlike', 'gilb' ) 18 | ) ); 19 | } 20 | 21 | /** 22 | * Processes like/unlike 23 | * @since 0.5 24 | */ 25 | add_action( 'wp_ajax_nopriv_gilb_process_simple_like', 'gilb_process_simple_like' ); 26 | add_action( 'wp_ajax_gilb_process_simple_like', 'gilb_process_simple_like' ); 27 | function gilb_process_simple_like() { 28 | // Fitness 29 | $nonce = isset( $_REQUEST['nonce'] ) ? sanitize_text_field( $_REQUEST['nonce'] ) : 0; 30 | if ( !wp_verify_nonce( $nonce, 'simple-likes-nonce' ) ) { 31 | exit( esc_html__( 'Not permitted', 'gilb' ) ); 32 | } 33 | // Test if javascript is disabled 34 | $disabled = ( isset( $_REQUEST['disabled'] ) && $_REQUEST['disabled'] == true ) ? true : false; 35 | // Test if this is a comment 36 | $is_comment = ( isset( $_REQUEST['is_comment'] ) && $_REQUEST['is_comment'] == 1 ) ? 1 : 0; 37 | // Base variables 38 | $post_id = ( isset( $_REQUEST['post_id'] ) && is_numeric( $_REQUEST['post_id'] ) ) ? $_REQUEST['post_id'] : ''; 39 | $result = array(); 40 | $post_users = NULL; 41 | $like_count = 0; 42 | // Get plugin options 43 | if ( $post_id != '' ) { 44 | $count = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_comment_like_count", true ) : get_post_meta( $post_id, "_post_like_count", true ); // like count 45 | $count = ( isset( $count ) && is_numeric( $count ) ) ? $count : 0; 46 | if ( !already_liked( $post_id, $is_comment ) ) { // Like the post 47 | if ( is_user_logged_in() ) { // user is logged in 48 | $user_id = get_current_user_id(); 49 | $post_users = post_user_likes( $user_id, $post_id, $is_comment ); 50 | if ( $is_comment == 1 ) { 51 | // Update User & Comment 52 | $user_like_count = get_user_option( "_comment_like_count", $user_id ); 53 | $user_like_count = ( isset( $user_like_count ) && is_numeric( $user_like_count ) ) ? $user_like_count : 0; 54 | update_user_option( $user_id, "_comment_like_count", ++$user_like_count ); 55 | if ( $post_users ) { 56 | update_comment_meta( $post_id, "_user_comment_liked", $post_users ); 57 | } 58 | } else { 59 | // Update User & Post 60 | $user_like_count = get_user_option( "_user_like_count", $user_id ); 61 | $user_like_count = ( isset( $user_like_count ) && is_numeric( $user_like_count ) ) ? $user_like_count : 0; 62 | update_user_option( $user_id, "_user_like_count", ++$user_like_count ); 63 | if ( $post_users ) { 64 | update_post_meta( $post_id, "_user_liked", $post_users ); 65 | } 66 | } 67 | } else { // user is anonymous 68 | $user_ip = sl_get_ip(); 69 | $post_users = post_ip_likes( $user_ip, $post_id, $is_comment ); 70 | // Update Post 71 | if ( $post_users ) { 72 | if ( $is_comment == 1 ) { 73 | update_comment_meta( $post_id, "_user_comment_IP", $post_users ); 74 | } else { 75 | update_post_meta( $post_id, "_user_IP", $post_users ); 76 | } 77 | } 78 | } 79 | $like_count = ++$count; 80 | $response['status'] = "liked"; 81 | $response['icon'] = get_liked_icon(); 82 | } else { // Unlike the post 83 | if ( is_user_logged_in() ) { // user is logged in 84 | $user_id = get_current_user_id(); 85 | $post_users = post_user_likes( $user_id, $post_id, $is_comment ); 86 | // Update User 87 | if ( $is_comment == 1 ) { 88 | $user_like_count = get_user_option( "_comment_like_count", $user_id ); 89 | $user_like_count = ( isset( $user_like_count ) && is_numeric( $user_like_count ) ) ? $user_like_count : 0; 90 | if ( $user_like_count > 0 ) { 91 | update_user_option( $user_id, "_comment_like_count", --$user_like_count ); 92 | } 93 | } else { 94 | $user_like_count = get_user_option( "_user_like_count", $user_id ); 95 | $user_like_count = ( isset( $user_like_count ) && is_numeric( $user_like_count ) ) ? $user_like_count : 0; 96 | if ( $user_like_count > 0 ) { 97 | update_user_option( $user_id, '_user_like_count', --$user_like_count ); 98 | } 99 | } 100 | // Update Post 101 | if ( $post_users ) { 102 | $uid_key = array_search( $user_id, $post_users ); 103 | unset( $post_users[$uid_key] ); 104 | if ( $is_comment == 1 ) { 105 | update_comment_meta( $post_id, "_user_comment_liked", $post_users ); 106 | } else { 107 | update_post_meta( $post_id, "_user_liked", $post_users ); 108 | } 109 | } 110 | } else { // user is anonymous 111 | $user_ip = sl_get_ip(); 112 | $post_users = post_ip_likes( $user_ip, $post_id, $is_comment ); 113 | // Update Post 114 | if ( $post_users ) { 115 | $uip_key = array_search( $user_ip, $post_users ); 116 | unset( $post_users[$uip_key] ); 117 | if ( $is_comment == 1 ) { 118 | update_comment_meta( $post_id, "_user_comment_IP", $post_users ); 119 | } else { 120 | update_post_meta( $post_id, "_user_IP", $post_users ); 121 | } 122 | } 123 | } 124 | $like_count = ( $count > 0 ) ? --$count : 0; // Prevent negative number 125 | $response['status'] = "unliked"; 126 | $response['icon'] = get_unliked_icon(); 127 | } 128 | if ( $is_comment == 1 ) { 129 | update_comment_meta( $post_id, "_comment_like_count", $like_count ); 130 | update_comment_meta( $post_id, "_comment_like_modified", date( 'Y-m-d H:i:s' ) ); 131 | } else { 132 | update_post_meta( $post_id, "_post_like_count", $like_count ); 133 | update_post_meta( $post_id, "_post_like_modified", date( 'Y-m-d H:i:s' ) ); 134 | } 135 | $response['count'] = get_like_count( $like_count ); 136 | $response['testing'] = $is_comment; 137 | if ( $disabled == true ) { 138 | if ( $is_comment == 1 ) { 139 | wp_redirect( get_permalink( get_the_ID() ) ); 140 | exit(); 141 | } else { 142 | wp_redirect( get_permalink( $post_id ) ); 143 | exit(); 144 | } 145 | } else { 146 | wp_send_json( $response ); 147 | } 148 | } 149 | } 150 | 151 | /** 152 | * Utility to test if the post is already liked 153 | * @since 0.5 154 | */ 155 | function already_liked( $post_id, $is_comment ) { 156 | $post_users = NULL; 157 | $user_id = NULL; 158 | if ( is_user_logged_in() ) { // user is logged in 159 | $user_id = get_current_user_id(); 160 | $post_meta_users = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_user_comment_liked" ) : get_post_meta( $post_id, "_user_liked" ); 161 | if ( count( $post_meta_users ) != 0 ) { 162 | $post_users = $post_meta_users[0]; 163 | } 164 | } else { // user is anonymous 165 | $user_id = sl_get_ip(); 166 | $post_meta_users = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_user_comment_IP" ) : get_post_meta( $post_id, "_user_IP" ); 167 | if ( count( $post_meta_users ) != 0 ) { // meta exists, set up values 168 | $post_users = $post_meta_users[0]; 169 | } 170 | } 171 | if ( is_array( $post_users ) && in_array( $user_id, $post_users ) ) { 172 | return true; 173 | } else { 174 | return false; 175 | } 176 | } // already_liked() 177 | 178 | /** 179 | * Output the like button 180 | * @since 0.5 181 | */ 182 | function get_simple_likes_button( $post_id, $is_comment = NULL ) { 183 | $is_comment = ( NULL == $is_comment ) ? 0 : 1; 184 | $output = ''; 185 | $nonce = wp_create_nonce( 'simple-likes-nonce' ); // Fitness 186 | if ( $is_comment == 1 ) { 187 | $post_id_class = esc_attr( ' sl-comment-button-' . $post_id ); 188 | $comment_class = esc_attr( ' sl-comment' ); 189 | $like_count = get_comment_meta( $post_id, "_comment_like_count", true ); 190 | $like_count = ( isset( $like_count ) && is_numeric( $like_count ) ) ? $like_count : 0; 191 | } else { 192 | $post_id_class = esc_attr( ' sl-button-' . $post_id ); 193 | $comment_class = esc_attr( '' ); 194 | $like_count = get_post_meta( $post_id, "_post_like_count", true ); 195 | $like_count = ( isset( $like_count ) && is_numeric( $like_count ) ) ? $like_count : 0; 196 | } 197 | $count = get_like_count( $like_count ); 198 | $icon_empty = get_unliked_icon(); 199 | $icon_full = get_liked_icon(); 200 | // Loader 201 | $loader = ''; 202 | // Liked/Unliked Variables 203 | if ( already_liked( $post_id, $is_comment ) ) { 204 | $class = esc_attr( ' liked' ); 205 | $title = esc_html__( 'Unlike', 'gilb' ); 206 | $icon = $icon_full; 207 | } else { 208 | $class = ''; 209 | $title = esc_html__( 'Like', 'gilb' ); 210 | $icon = $icon_empty; 211 | } 212 | $output = ''. $icon . '' . $count . '' . $loader . ''; 213 | return $output; 214 | } // get_simple_likes_button() 215 | 216 | 217 | /** 218 | * Utility retrieves post meta user likes (user id array), 219 | * then adds new user id to retrieved array 220 | * @since 0.5 221 | */ 222 | function post_user_likes( $user_id, $post_id, $is_comment ) { 223 | $post_users = ''; 224 | $post_meta_users = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_user_comment_liked" ) : get_post_meta( $post_id, "_user_liked" ); 225 | if ( count( $post_meta_users ) != 0 ) { 226 | $post_users = $post_meta_users[0]; 227 | } 228 | if ( !is_array( $post_users ) ) { 229 | $post_users = array(); 230 | } 231 | if ( !in_array( $user_id, $post_users ) ) { 232 | $post_users['user-' . $user_id] = $user_id; 233 | } 234 | return $post_users; 235 | } // post_user_likes() 236 | 237 | /** 238 | * Utility retrieves post meta ip likes (ip array), 239 | * then adds new ip to retrieved array 240 | * @since 0.5 241 | */ 242 | function post_ip_likes( $user_ip, $post_id, $is_comment ) { 243 | $post_users = ''; 244 | $post_meta_users = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_user_comment_IP" ) : get_post_meta( $post_id, "_user_IP" ); 245 | // Retrieve post information 246 | if ( count( $post_meta_users ) != 0 ) { 247 | $post_users = $post_meta_users[0]; 248 | } 249 | if ( !is_array( $post_users ) ) { 250 | $post_users = array(); 251 | } 252 | if ( !in_array( $user_ip, $post_users ) ) { 253 | $post_users['ip-' . $user_ip] = $user_ip; 254 | } 255 | return $post_users; 256 | } // post_ip_likes() 257 | 258 | /** 259 | * Utility to retrieve IP address 260 | * @since 0.5 261 | */ 262 | function sl_get_ip() { 263 | if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) && ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) { 264 | $ip = $_SERVER['HTTP_CLIENT_IP']; 265 | } elseif ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) && ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { 266 | $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 267 | } else { 268 | $ip = ( isset( $_SERVER['REMOTE_ADDR'] ) ) ? $_SERVER['REMOTE_ADDR'] : '0.0.0.0'; 269 | } 270 | $ip = filter_var( $ip, FILTER_VALIDATE_IP ); 271 | $ip = ( $ip === false ) ? '0.0.0.0' : $ip; 272 | return $ip; 273 | } // sl_get_ip() 274 | 275 | /** 276 | * Utility returns the button icon for "like" action 277 | * @since 0.5 278 | */ 279 | function get_liked_icon() { 280 | /* If already using Font Awesome with your theme, replace svg with: */ 281 | $icon = ' '; 282 | return $icon; 283 | } // get_liked_icon() 284 | 285 | /** 286 | * Utility returns the button icon for "unlike" action 287 | * @since 0.5 288 | */ 289 | function get_unliked_icon() { 290 | /* If already using Font Awesome with your theme, replace svg with: */ 291 | $icon = ' '; 292 | return $icon; 293 | } // get_unliked_icon() 294 | 295 | /** 296 | * Utility function to format the button count, 297 | * appending "K" if one thousand or greater, 298 | * "M" if one million or greater, 299 | * and "B" if one billion or greater (unlikely). 300 | * $precision = how many decimal points to display (1.25K) 301 | * @since 0.5 302 | */ 303 | function sl_format_count( $number ) { 304 | $precision = 2; 305 | if ( $number >= 1000 && $number < 1000000 ) { 306 | $formatted = number_format( $number/1000, $precision ).'K'; 307 | } else if ( $number >= 1000000 && $number < 1000000000 ) { 308 | $formatted = number_format( $number/1000000, $precision ).'M'; 309 | } else if ( $number >= 1000000000 ) { 310 | $formatted = number_format( $number/1000000000, $precision ).'B'; 311 | } else { 312 | $formatted = $number; // Number is less than 1000 313 | } 314 | $formatted = str_replace( '.00', '', $formatted ); 315 | return $formatted; 316 | } // sl_format_count() 317 | 318 | /** 319 | * Utility retrieves count plus count options, 320 | * returns appropriate format based on options 321 | * @since 0.5 322 | */ 323 | function get_like_count( $like_count ) { 324 | $like_text = esc_html__( '', 'gilb' ); 325 | if ( is_numeric( $like_count ) && $like_count > 1 ) { 326 | $number = sl_format_count( $like_count ) . esc_html__( ' Likes', 'gilb' ); 327 | } else { 328 | $number = sl_format_count( $like_count ) . esc_html__( ' Like', 'gilb' ); 329 | } 330 | $count = ''. $number .''; 331 | return $count; 332 | } // get_like_count() 333 | 334 | // User Profile List 335 | add_action( 'show_user_profile', 'gilb_show_user_likes' ); 336 | add_action( 'edit_user_profile', 'gilb_show_user_likes' ); 337 | function gilb_show_user_likes( $user ) { ?> 338 | 339 | 340 | 341 | 374 | 375 |
    342 | true ) ); 344 | $args = array( 345 | 'numberposts' => -1, 346 | 'post_type' => $types, 347 | 'meta_query' => array ( 348 | array ( 349 | 'key' => '_user_liked', 350 | 'value' => $user->ID, 351 | 'compare' => 'LIKE' 352 | ) 353 | ) ); 354 | $sep = ''; 355 | $like_query = new WP_Query( $args ); 356 | if ( $like_query->have_posts() ) : ?> 357 |

    358 | have_posts() ) : $like_query->the_post(); 359 | echo wp_kses_post( $sep ); 360 | ?> 361 | 362 | 366 |

    367 | 368 |

    369 | 373 |
    376 |