├── inc
├── demo-data
│ ├── screen-image.jpg
│ ├── css
│ │ └── demo-import.css
│ ├── applab-widgets-demo.wie
│ ├── applab-customizer.dat
│ └── demo-import.php
├── elementor-widgets
│ ├── assets
│ │ ├── css
│ │ │ ├── elementor-edit.css
│ │ │ ├── utility.css
│ │ │ ├── owl.carousel.min.css
│ │ │ └── magnific-popup.css
│ │ ├── fonts
│ │ │ └── themify-icon
│ │ │ │ └── fonts
│ │ │ │ ├── themify.eot
│ │ │ │ ├── themify.ttf
│ │ │ │ └── themify.woff
│ │ └── js
│ │ │ ├── map-active.js
│ │ │ ├── progress-loader-canvas.js
│ │ │ ├── jquery.counterup.js
│ │ │ ├── imagesLoaded.js
│ │ │ ├── applab-companion-main.js
│ │ │ ├── barfiller.js
│ │ │ ├── waypoints.js
│ │ │ └── jquery.youtubebackground.js
│ └── widgets
│ │ ├── business-expert-item.php
│ │ ├── home-contact.php
│ │ ├── contact.php
│ │ ├── business-expert.php
│ │ ├── clients.php
│ │ ├── home-appointment.php
│ │ ├── facilities.php
│ │ ├── single-event.php
│ │ ├── hero-section.php
│ │ ├── countdown.php
│ │ ├── faq-section.php
│ │ └── app-section.php
├── applab-metabox.php
├── sidebar-widgets
│ ├── instagram.php
│ ├── blog-widget.php
│ ├── newsletter-widget.php
│ ├── social-links.php
│ └── about-widget.php
├── instagram-api.php
└── functions.php
├── js
├── common.js
└── loadmore-ajax.js
├── applab-init.php
├── applab-companion.php
└── readme.txt
/inc/demo-data/screen-image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ColorlibHQ/applab-companion/master/inc/demo-data/screen-image.jpg
--------------------------------------------------------------------------------
/inc/elementor-widgets/assets/css/elementor-edit.css:
--------------------------------------------------------------------------------
1 | .elementor-choices-label i {
2 | font-size: 18px !important;
3 | padding: 5px 0;
4 | }
--------------------------------------------------------------------------------
/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ColorlibHQ/applab-companion/master/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.eot
--------------------------------------------------------------------------------
/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ColorlibHQ/applab-companion/master/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.ttf
--------------------------------------------------------------------------------
/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ColorlibHQ/applab-companion/master/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.woff
--------------------------------------------------------------------------------
/inc/demo-data/css/demo-import.css:
--------------------------------------------------------------------------------
1 | .ocdi__demo-import-notice:not(:empty) {
2 | background-color: transparent !important;
3 | border-left: 0px !important;
4 | box-shadow: none !important;
5 | padding: 0px !important;
6 | }
7 | .ocdi__demo-import-notice img {
8 | border: 4px solid #dbe3ea;
9 | width: auto;
10 | }
11 | .about-wrap .ocdi__demo-import-notice img {
12 | width: auto;
13 | }
14 | .about-wrap img {
15 | width: auto;
16 | }
--------------------------------------------------------------------------------
/inc/applab-metabox.php:
--------------------------------------------------------------------------------
1 | 'page_single_metaboxs',
7 | 'title' => esc_html__( 'Page Footer Options', 'applab-companion' ),
8 | 'post_types'=> array( 'page' ),
9 | 'priority' => 'high',
10 | 'autosave' => 'false',
11 | 'fields' => array(
12 | array(
13 | 'id' => $applab_prefix . 'footer-background',
14 | 'type' => 'background',
15 | 'name' => esc_html__( 'Set The Footer Background', 'applab-companion' ),
16 | ),
17 | ),
18 | );
19 |
20 |
21 | return $meta_boxes;
22 | }
23 | add_filter( 'rwmb_meta_boxes', 'applab_page_metabox' );
--------------------------------------------------------------------------------
/js/common.js:
--------------------------------------------------------------------------------
1 | (function ($) {
2 | "use strict";
3 | /*-------------------------------------
4 | Instagram Photos
5 | -------------------------------------*/
6 | function cp_instagram_photos() {
7 | $('.cp-instagram-photos').each(function(){
8 | $.instagramFeed({
9 | 'username': $(this).data('username'),
10 | 'container': $(this),
11 | 'display_profile': false,
12 | 'display_biography': false,
13 | 'items': $(this).data('items'),
14 | 'margin': 0
15 | });
16 | console.log( $(this) );
17 | });
18 |
19 | }
20 | cp_instagram_photos();
21 | })(jQuery);
--------------------------------------------------------------------------------
/inc/elementor-widgets/assets/css/utility.css:
--------------------------------------------------------------------------------
1 | /* -------------------------
2 | :: utility Class
3 | ---------------------------- */
4 | .applab-pt-100 {
5 | padding-top: 100px;
6 | }
7 | .applab-pt-80 {
8 | padding-top: 80px;
9 | }
10 | .applab-pt-70 {
11 | padding-top: 70px;
12 | }
13 | .applab-pt-60 {
14 | padding-top: 60px;
15 | }
16 | .applab-pt-50 {
17 | padding-top: 50px;
18 | }
19 | .applab-pt-30 {
20 | padding-top: 30px;
21 | }
22 | .applab-pb-100 {
23 | padding-bottom: 100px;
24 | }
25 | .applab-pb-80 {
26 | padding-bottom: 80px;
27 | }
28 | .applab-pb-70 {
29 | padding-bottom: 70px;
30 | }
31 | .applab-pb-60 {
32 | padding-bottom: 60px;
33 | }
34 | .applab-pb-50 {
35 | padding-bottom: 50px;
36 | }
37 | .applab-pb-30 {
38 | padding-bottom: 30px;
39 | }
40 |
--------------------------------------------------------------------------------
/inc/demo-data/applab-widgets-demo.wie:
--------------------------------------------------------------------------------
1 | {"applab-post-sidebar":{"search-2":{"title":""},"categories-3":{"title":"Category","count":1,"hierarchical":0,"dropdown":0},"applab_blog_widget-2":{"sectiontitle":"Recent Post","postnumber":"4","style":"1"},"tag_cloud-2":{"title":"Tag Clouds","count":0,"taxonomy":"post_tag"},"applab_instagram_photo-2":{"title":"Instagram Feeds","insta_user":"hasanfardousrubel","insta_items":"6"},"applab_newsletter-2":{"title":"Newsletter","actionurl":"https:\/\/spondonit.us12.list-manage.com\/subscribe\/post?u=1462626880ade1ac87bd9c93a&id=92a4423d01","desc":""}},"footer-2":{"nav_menu-2":{"title":"Departments","nav_menu":16}},"footer-3":{"nav_menu-3":{"title":"Useful Links","nav_menu":17}},"footer-4":{"text-2":{"title":"Address","text":"
\r\n 200, D-block, Green lane USA
\r\n +10 367 467 8934
\r\n applab@contact.com\r\n <\/p>","filter":true,"visual":true}}}
--------------------------------------------------------------------------------
/applab-init.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/inc/demo-data/applab-customizer.dat:
--------------------------------------------------------------------------------
1 | a:4:{s:8:"template";s:6:"applab";s:4:"mods";a:16:{i:0;b:0;s:18:"nav_menu_locations";a:3:{s:12:"primary-menu";i:2;s:11:"departments";i:16;s:12:"useful-links";i:17;}s:18:"custom_css_post_id";i:-1;s:11:"custom_logo";i:37;s:27:"applab_footer_widget_toggle";b:1;s:16:"applab_blog_meta";b:1;s:15:"applab_like_btn";b:1;s:17:"applab_blog_share";b:1;s:15:"footer_logo_img";i:38;s:28:"applab_social_profile_toggle";b:1;s:22:"applab_social_profiles";a:3:{i:0;a:4:{s:17:"social_link_title";s:9:"Facebook ";s:10:"social_url";s:1:"#";s:11:"social_icon";s:14:"fa fa-facebook";s:5:"index";i:0;}i:1;a:4:{s:17:"social_link_title";s:7:"Twitter";s:10:"social_url";s:1:"#";s:11:"social_icon";s:13:"fa fa-twitter";s:5:"index";i:1;}i:2;a:4:{s:17:"social_link_title";s:9:"Instagram";s:10:"social_url";s:1:"#";s:11:"social_icon";s:15:"fa fa-instagram";s:5:"index";i:2;}}s:18:"applab_footer_text";s:65:"Firmament morning sixth subdue darkness creeping gathered divide.";s:22:"applab_header_btn_text";s:19:"Make an Appointment";s:21:"applab_header_btn_url";s:1:"#";s:23:"applab_header_top_email";s:15:"info@applab.com";s:23:"applab_header_top_phone";s:6:"160160";}s:7:"options";a:2:{s:9:"site_icon";s:2:"51";s:23:"nav_menus_created_posts";a:0:{}}s:6:"wp_css";s:0:"";}
--------------------------------------------------------------------------------
/inc/elementor-widgets/assets/js/map-active.js:
--------------------------------------------------------------------------------
1 | (function ($) {
2 | 'use strict';
3 |
4 | var map,
5 | $lat = $('[data-lat]').data('lat'),
6 | $lng = $('[data-lng]').data('lng'),
7 | $address = $('[data-address]').data('address');
8 |
9 | var latlng = new google.maps.LatLng( parseFloat($lat), parseFloat($lng));
10 | var stylez = [{
11 | featureType: "all",
12 | elementType: "all",
13 | stylers: [{
14 | saturation: -10
15 | }]
16 | }];
17 | var mapOptions = {
18 | zoom: 15,
19 | center: latlng,
20 | scrollwheel: false,
21 | scaleControl: false,
22 | disableDefaultUI: true,
23 | mapTypeControlOptions: {
24 | mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'gMap']
25 | }
26 | };
27 | map = new google.maps.Map(document.getElementById("googleMap"), mapOptions);
28 | var geocoder_map = new google.maps.Geocoder();
29 | geocoder_map.geocode({
30 | 'address': $address
31 | }, function (results, status) {
32 | if (status == google.maps.GeocoderStatus.OK) {
33 | map.setCenter(results[0].geometry.location);
34 | var marker = new google.maps.Marker({
35 | map: map,
36 | position: map.getCenter()
37 | });
38 | } else {
39 | alert("Geocode was not successful for the following reason: " + status);
40 | }
41 | });
42 | var mapType = new google.maps.StyledMapType(stylez, {
43 | name: "Grayscale"
44 | });
45 | map.mapTypes.set('gMap', mapType);
46 | map.setMapTypeId('gMap');
47 |
48 | })(jQuery);
--------------------------------------------------------------------------------
/js/loadmore-ajax.js:
--------------------------------------------------------------------------------
1 | (function ($) {
2 | 'use strict';
3 |
4 | // Portfolio load more button Ajax
5 |
6 | var $loadbutton = $( '.loadAjax' );
7 |
8 | if( $loadbutton.length ){
9 |
10 | var postNumber = portfolioloadajax.postNumber,
11 | Incr = 0;
12 | //
13 | $loadbutton.on( 'click', function(){
14 |
15 |
16 | Incr = Incr + parseInt( postNumber) ;
17 |
18 | var $button = $( this ),
19 | $data;
20 |
21 | $data = {
22 | 'action' : 'applab_portfolio_ajax',
23 | 'postNumber' : postNumber,
24 | 'postIncrNumber' : Incr,
25 | 'elsettings' : portfolioloadajax.elsettings
26 | };
27 |
28 | $.ajax({
29 |
30 | url : portfolioloadajax.action_url,
31 | data : $data,
32 | type : 'POST',
33 |
34 |
35 | success: function( data ){
36 |
37 | $( '.applab-portfolio-load' ).html(data);
38 |
39 | var $container = $('.applab-portfolio');
40 |
41 | $container.isotope('reloadItems').isotope({
42 | itemSelector: '.single_gallery_item',
43 | percentPosition: true,
44 | masonry: {
45 | columnWidth: '.single_gallery_item'
46 | }
47 | });
48 |
49 | var loaditems = parseInt( Incr ) + parseInt( postNumber );
50 |
51 | if( portfolioloadajax.totalitems == loaditems ){
52 | $button.hide();
53 | }
54 |
55 | }
56 |
57 | });
58 |
59 | return false;
60 |
61 | } );
62 |
63 |
64 | }
65 |
66 |
67 | })(jQuery);
--------------------------------------------------------------------------------
/applab-companion.php:
--------------------------------------------------------------------------------
1 | parent();
58 |
59 |
60 |
61 | if( ( 'Applab' == $current_theme->get( 'Name' ) ) || ( $is_parent && 'Applab' == $is_parent->get( 'Name' ) ) ){
62 | require_once APPLAB_COMPANION_DIR_PATH . 'applab-init.php';
63 | }else{
64 |
65 | add_action( 'admin_notices', 'applab_companion_admin_notice', 99 );
66 | function applab_companion_admin_notice() {
67 | $url = 'https://demo.colorlib.com/applab/';
68 | ?>
69 |
70 |
Applab Companion plugin you have to also install the %1$sApplab Theme%2$s', 'applab-companion' ), '', '' ); ?>
71 |
72 |
--------------------------------------------------------------------------------
/inc/elementor-widgets/assets/css/owl.carousel.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Owl Carousel v2.2.1
3 | * Copyright 2013-2017 David Deutsch
4 | * Licensed under ()
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;-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;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.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{-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 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/elementor-widgets/assets/js/progress-loader-canvas.js:
--------------------------------------------------------------------------------
1 | /* Credits:
2 | * https://www.developphp.com/video/JavaScript/Circular-Progress-Loader-Canvas-JavaScript-Programming-Tutorial
3 | */
4 |
5 | (function() {
6 | var Progress = function( element ) {
7 | this.context = element.getContext( "2d" );
8 | this.refElement = element.parentNode;
9 | this.loaded = 0;
10 | this.start = 4.72;
11 | this.width = this.context.canvas.width;
12 | this.height = this.context.canvas.height;
13 | this.total = parseInt( this.refElement.dataset.percent, 10 );
14 | this.timer = null;
15 | this.diff = 0;
16 | this.init();
17 | };
18 | Progress.prototype = {
19 | init: function() {
20 | var self = this;
21 | self.timer = setInterval(function() {
22 | self.run();
23 | }, 25);
24 | },
25 | run: function() {
26 | var self = this;
27 | self.diff = ( ( self.loaded / 100 ) * Math.PI * 2 * 10 ).toFixed( 2 );
28 | self.context.clearRect( 0, 0, self.width, self.height );
29 | self.context.lineWidth = 5;
30 | self.context.fillStyle = "#000";
31 | self.context.strokeStyle = "#4a7aec";
32 | self.context.textAlign = "center";
33 | self.context.fillText( self.loaded + "%", self.width * .5, self.height * .5 + 2, self.width );
34 | self.context.beginPath();
35 | self.context.arc( 35, 35, 30, self.start, self.diff / 10 + self.start, false );
36 | self.context.stroke();
37 | if( self.loaded >= self.total ) {
38 | clearInterval( self.timer );
39 | }
40 | self.loaded++;
41 | }
42 | };
43 | var CircularSkillBar = function( elements ) {
44 | this.bars = document.querySelectorAll( elements );
45 | if( this.bars.length > 0 ) {
46 | this.init();
47 | }
48 | };
49 | CircularSkillBar.prototype = {
50 | init: function() {
51 | this.tick = 25;
52 | this.progress();
53 | },
54 | progress: function() {
55 | var self = this;
56 | var index = 0;
57 | var firstCanvas = self.bars[0].querySelector( "canvas" );
58 | var firstProg = new Progress( firstCanvas );
59 | var timer = setInterval(function() {
60 | index++;
61 | var canvas = self.bars[index].querySelector('canvas');
62 |
63 | var prog = new Progress( canvas );
64 |
65 | if( index +1 == self.bars.length ) {
66 | clearInterval( timer );
67 | }
68 |
69 | }, self.tick * 100);
70 |
71 | }
72 | };
73 | document.addEventListener( "DOMContentLoaded", function() {
74 | var circularBars = new CircularSkillBar( ".single-pie-bar" );
75 | });
76 | })();
77 |
--------------------------------------------------------------------------------
/readme.txt:
--------------------------------------------------------------------------------
1 | === Plugin Name ===
2 | Contributors: colorlibplugins, silkalns
3 | Tags: woocommerce, widgets, plugin, demo, companion, home page, one page, parallax, social, portfolio, projects
4 | Requires at least: 5.2
5 | Tested up to: 5.6
6 | Stable tag: trunk
7 | License: GPLv3 or later
8 | License URI: http://www.gnu.org/licenses/gpl-3.0.html
9 |
10 | Applab Companion is a companion plugin for Companion WordPress theme by Colorlib.com.
11 | == Description ==
12 |
13 | Companion Companion is a companion for Companion One Page WordPress theme by Colorlib.com. This plugin won't do anything for other free or premium WordPress themes and you need to download and install Companion. If you are having problems with Companion theme or its companion plugin the fastest way to receive help is via our theme support forum.
14 |
15 | This plugin will add necessary WordPress widgets and allow to import demo content which will help you to with website setup.
16 |
17 | While Companion is a great one page WordPress theme it might not be for everyone therefore you might want to check other free WordPress themes that are created by Colorlib.
18 |
19 | = Plugin Options =
20 |
21 | * Creates required WordPress widgets to be used in theme
22 | * Creates demo(dummy) content for widgets to make them easier to use and understand how they work
23 | * Provides an option to import demo(dummy) content.
24 |
25 | = About Colorlib =
26 |
27 | Colorlib is the best and by far the most popular source for free and premium WordPress themes. Our themes has been downloaded over 1,5 million times and are used by developers, webmasters and regular users all over the world. We believe in open source and that's why we have made our themes free to use for private and commercial use.
28 |
29 | = Further Reading =
30 |
31 | If you are new to WordPress but are dedicated to make a website on your own Colorlib is the right place to start. Usually the trickiest part is to choose the right hosting because all hosting providers are not equal. We have outlined the best WordPress hosting providers and we hope you'll find them useful.
32 |
33 |
34 | == Installation ==
35 |
36 | This section describes how to install the plugin and get it working.
37 |
38 | 1. Upload the whole contents of the folder `applab-companion` to the `/wp-content/plugins/` directory
39 | 2. Activate the plugin through the 'Plugins' menu in WordPress dashboard
40 | 3. Enjoy using it :)
41 |
42 |
43 | == Frequently Asked Questions ==
44 |
45 | = What themes this plugin supports? =
46 |
47 | Currently it works only with Companion theme.
48 |
49 | = Am I obligated to use it? =
50 |
51 | You can still use Companion theme without this plugin but you won't be able to import demo content and use theme specific widgets that you see on front page of theme demo.
52 |
53 | == Changelog ==
54 |
55 | = 1.0.0 =
56 | * Initial release.
57 |
--------------------------------------------------------------------------------
/inc/demo-data/demo-import.php:
--------------------------------------------------------------------------------
1 | ';
17 |
18 | return array(
19 | array(
20 | 'import_file_name' => 'Applab Demo',
21 | 'local_import_file' => APPLAB_COMPANION_DEMO_DIR_PATH .'applab-demo.xml',
22 | 'local_import_widget_file' => APPLAB_COMPANION_DEMO_DIR_PATH .'applab-widgets-demo.wie',
23 | 'import_customizer_file_url' => plugins_url( 'applab-customizer.dat', __FILE__ ),
24 | 'import_notice' => $demoImg,
25 | ),
26 | );
27 | }
28 | add_filter( 'pt-ocdi/import_files', 'applab_import_files' );
29 |
30 |
31 | // demo import setup
32 | function applab_after_import_setup() {
33 | // Assign menus to their locations.
34 | $main_menu = get_term_by( 'name', 'Main Menu', 'nav_menu' );
35 | $departments = get_term_by( 'name', 'Departments', 'nav_menu' );
36 | $useful_links = get_term_by( 'name', 'Useful Links', 'nav_menu' );
37 |
38 | set_theme_mod( 'nav_menu_locations', array(
39 | 'primary-menu' => $main_menu->term_id,
40 | 'departments' => $departments->term_id,
41 | 'useful-links' => $useful_links->term_id,
42 | )
43 | );
44 |
45 | // Assign front page and posts page (blog page).
46 | $front_page_id = get_page_by_title( 'Homepage' );
47 | $blog_page_id = get_page_by_title( 'Blog' );
48 |
49 | update_option( 'show_on_front', 'page' );
50 | update_option( 'page_on_front', $front_page_id->ID );
51 | update_option( 'page_for_posts', $blog_page_id->ID );
52 | update_option( 'posts_per_page', 3 );
53 |
54 | // Update the post to draft after import is done
55 | applab_update_the_followed_post_page_status();
56 |
57 | // Add an option to check after import is done
58 | update_option( 'applab-import-data', true );
59 |
60 | }
61 | add_action( 'pt-ocdi/after_import', 'applab_after_import_setup' );
62 |
63 | //disable the branding notice after successful demo import
64 | add_filter( 'pt-ocdi/disable_pt_branding', '__return_true' );
65 |
66 | //change the location, title and other parameters of the plugin page
67 | function applab_import_plugin_page_setup( $default_settings ) {
68 | $default_settings['parent_slug'] = 'themes.php';
69 | $default_settings['page_title'] = esc_html__( 'One Click Demo Import' , 'applab-companion' );
70 | $default_settings['menu_title'] = esc_html__( 'Import Demo Data' , 'applab-companion' );
71 | $default_settings['capability'] = 'import';
72 | $default_settings['menu_slug'] = 'applab-demo-import';
73 |
74 | return $default_settings;
75 | }
76 | add_filter( 'pt-ocdi/plugin_page_setup', 'applab_import_plugin_page_setup' );
77 |
78 | // Enqueue scripts
79 | function applab_demo_import_custom_scripts(){
80 |
81 |
82 | if( isset( $_GET['page'] ) && $_GET['page'] == 'applab-demo-import' ){
83 | // style
84 | wp_enqueue_style( 'applab-demo-import', plugins_url( 'css/demo-import.css', __FILE__ ), array(), '1.0', false );
85 | }
86 |
87 |
88 | }
89 | add_action( 'admin_enqueue_scripts', 'applab_demo_import_custom_scripts' );
90 |
--------------------------------------------------------------------------------
/inc/elementor-widgets/assets/js/jquery.counterup.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * jquery.counterup.js 1.0
3 | *
4 | * Copyright 2013, Benjamin Intal http://gambit.ph @bfintal
5 | * Released under the GPL v2 License
6 | *
7 | * Date: Nov 26, 2013
8 | */
9 | (function( $ ){
10 | "use strict";
11 |
12 | $.fn.counterUp = function( options ) {
13 |
14 | // Defaults
15 | var settings = $.extend({
16 | 'time': 400,
17 | 'delay': 10
18 | }, options);
19 |
20 | return this.each(function(){
21 |
22 | // Store the object
23 | var $this = $(this);
24 | var $settings = settings;
25 |
26 | var counterUpper = function() {
27 | var nums = [];
28 | var divisions = $settings.time / $settings.delay;
29 | var num = $this.text();
30 | var isComma = /[0-9]+,[0-9]+/.test(num);
31 | num = num.replace(/,/g, '');
32 | var isInt = /^[0-9]+$/.test(num);
33 | var isFloat = /^[0-9]+\.[0-9]+$/.test(num);
34 | var decimalPlaces = isFloat ? (num.split('.')[1] || []).length : 0;
35 |
36 | // Generate list of incremental numbers to display
37 | for (var i = divisions; i >= 1; i--) {
38 |
39 | // Preserve as int if input was int
40 | var newNum = parseInt(num / divisions * i);
41 |
42 | // Preserve float if input was float
43 | if (isFloat) {
44 | newNum = parseFloat(num / divisions * i).toFixed(decimalPlaces);
45 | }
46 |
47 | // Preserve commas if input had commas
48 | if (isComma) {
49 | while (/(\d+)(\d{3})/.test(newNum.toString())) {
50 | newNum = newNum.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
51 | }
52 | }
53 |
54 | nums.unshift(newNum);
55 | }
56 |
57 | $this.data('counterup-nums', nums);
58 | $this.text('0');
59 |
60 | // Updates the number until we're done
61 | // var f = function() {
62 | // $this.text($this.data('counterup-nums').shift());
63 | // if ($this.data('counterup-nums').length) {
64 | // setTimeout($this.data('counterup-func'), $settings.delay);
65 | // } else {
66 | // delete $this.data('counterup-nums');
67 | // $this.data('counterup-nums', null);
68 | // $this.data('counterup-func', null);
69 | // }
70 | // };
71 | var f = function () {
72 | if (!$this.data('counterup-nums')) {
73 | return;
74 | }
75 | $this.text($this.data('counterup-nums').shift());
76 | if ($this.data('counterup-nums').length) {
77 | setTimeout($this.data('counterup-func'), $settings.delay);
78 | } else {
79 | delete $this.data('counterup-nums');
80 | $this.data('counterup-nums', null);
81 | $this.data('counterup-func', null);
82 | }
83 | };
84 | $this.data('counterup-func', f);
85 |
86 | // Start the count up
87 | setTimeout($this.data('counterup-func'), $settings.delay);
88 | };
89 |
90 | // Perform counts when the element gets into view
91 | $this.waypoint(counterUpper, { offset: '100%', triggerOnce: true });
92 | });
93 |
94 | };
95 |
96 | })( jQuery );
--------------------------------------------------------------------------------
/inc/sidebar-widgets/instagram.php:
--------------------------------------------------------------------------------
1 | esc_html__('Applab Instagram Photo Widget','applab-companion'),
10 | ));
11 | }
12 |
13 | // Output======================
14 | public function widget($args, $instance){
15 |
16 | $title = apply_filters( 'widget_title', $instance['title'] );
17 | $insta_user = apply_filters( 'widget_insta_user', $instance['insta_user'] );
18 | $insta_items = apply_filters( 'widget_insta_items', $instance['insta_items'] );
19 |
20 |
21 | echo wp_kses_post( $args['before_widget'] );
22 | if ( ! empty( $title ) )
23 | echo wp_kses_post( $args['before_title'] . $title . $args['after_title'] ); ?>
24 |
25 |
29 |
30 |
31 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | start_controls_section(
48 | 'core_feature_tab_content',
49 | [
50 | 'label' => __( 'Business Expert Tab Item', 'applab-companion' ),
51 | ]
52 | );
53 |
54 | $this->add_control(
55 | 'feature_items', [
56 | 'label' => __( 'Create New', 'applab-companion' ),
57 | 'type' => Controls_Manager::REPEATER,
58 | 'title_field' => '{{{ item_title }}}',
59 | 'fields' => [
60 | [
61 | 'name' => 'business_img',
62 | 'label' => __( 'Business Image', 'applab-companion' ),
63 | 'label_block' => true,
64 | 'type' => Controls_Manager::MEDIA,
65 | 'default' => [
66 | 'url' => Utils::get_placeholder_image_src()
67 | ]
68 | ],
69 | [
70 | 'name' => 'item_title',
71 | 'label' => __( 'Item Title', 'applab-companion' ),
72 | 'label_block' => true,
73 | 'type' => Controls_Manager::TEXT,
74 | 'default' => __( 'Leading edge care for Your family', 'applab-companion' ),
75 | ],
76 | [
77 | 'name' => 'item_text',
78 | 'label' => __( 'Item Text', 'applab-companion' ),
79 | 'label_block' => true,
80 | 'type' => Controls_Manager::TEXTAREA,
81 | 'default' => __( 'Esteem spirit temper too say adieus who direct esteem. It esteems luckily picture placing drawing. Apartments frequently or motionless on reasonable projecting expression.', 'applab-companion' ),
82 | ],
83 | ],
84 | 'default' => [
85 | [
86 | 'business_img' => [
87 | 'url' => Utils::get_placeholder_image_src()
88 | ],
89 | 'item_title' => __( 'Leading edge care for Your family', 'applab-companion' ),
90 | 'item_text' => __( 'Esteem spirit temper too say adieus who direct esteem. It esteems luckily picture placing drawing. Apartments frequently or motionless on reasonable projecting expression.', 'applab-companion' ),
91 | ],
92 | ]
93 | ]
94 | );
95 | $this->end_controls_section(); // End service content
96 |
97 | }
98 |
99 | protected function render() {
100 | $settings = $this->get_settings();
101 | $feature_items = !empty( $settings['feature_items'] ) ? $settings['feature_items'] : '';
102 |
103 | // echo '';
104 | if( is_array( $feature_items ) && count( $feature_items ) > 0 ) {
105 | foreach( $feature_items as $item ) {
106 | $item_title = ( !empty( $item['item_title'] ) ) ? esc_html($item['item_title']) : '';
107 | $item_text = ( !empty( $item['item_text'] ) ) ? esc_html($item['item_text']) : '';
108 | $business_img = !empty( $item['business_img']['id'] ) ? wp_get_attachment_image( $item['business_img']['id'], 'applab_business_expert_thumb_558x330', '', array('alt' => $item_title . ' image' ) ) : '';
109 | ?>
110 |
111 |
112 |
113 |
114 |
115 |
116 | {$item_title}";
119 | }
120 | if ( $item_text ) {
121 | echo "
{$item_text}
";
122 | }
123 | ?>
124 |
125 |
126 |
127 | ';
129 | if ( $business_img ) {
130 | echo $business_img;
131 | }
132 | echo '
';
133 | ?>
134 |
135 |
136 | ';
140 | }
141 | }
--------------------------------------------------------------------------------
/inc/instagram-api.php:
--------------------------------------------------------------------------------
1 | access_token = applab_opt( 'applab_igaccess_token' );
42 | }
43 |
44 | /**
45 | * @param $screen_name string Instagram username
46 | * @param $image_limit int Number of images to retrieve
47 | * @param $image_width int Desired image width to retrieve
48 | *
49 | * @return array|bool Array of tweets or false if method fails
50 | */
51 | public function get_items( $image_limit, $image_width ) {
52 |
53 | $transient = 'zoom_instagram_is_configured';
54 |
55 | $response = wp_remote_get( sprintf( 'https://api.instagram.com/v1/users/self/media/recent/?access_token=%s&count=%s', $this->access_token, $image_limit ) );
56 |
57 |
58 | if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
59 | set_transient( $transient, false, MINUTE_IN_SECONDS );
60 |
61 | return false;
62 | }
63 |
64 |
65 |
66 | $data = json_decode( wp_remote_retrieve_body( $response ) );
67 |
68 | $result = array();
69 | $username = '';
70 |
71 | foreach ( $data->data as $item ) {
72 |
73 | if(empty($username)){
74 | $username = $item->user->username;
75 | }
76 |
77 | $result[] = array(
78 | 'link' => $item->link,
79 | 'image-url' => $item->images->{ $this->get_best_size( $image_width ) }->url,
80 | 'likes' => $item->likes->count,
81 | 'comments' => $item->comments->count,
82 | 'location' => !empty( $item->location->name ) ? $item->location->name : ''
83 | );
84 | }
85 |
86 | $result = array('items' => $result, 'username'=> $username );
87 | set_transient( $transient, $result, 30 * MINUTE_IN_SECONDS );
88 |
89 | return $result;
90 | }
91 |
92 | /**
93 | * @param $screen_name string Instagram username
94 | *
95 | * @return bool|int Instagram user id or false on error
96 | */
97 | protected function get_user_id( $screen_name ) {
98 | $user_id_option = 'zoom_instagram_uid_' . $screen_name;
99 |
100 | if ( false !== ( $user_id = get_option( $user_id_option ) ) ) {
101 | return $user_id;
102 | }
103 |
104 | $response = wp_remote_get( sprintf( 'https://api.instagram.com/v1/users/search?q=%s&access_token=%s', $screen_name, $this->access_token ) );
105 |
106 | if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
107 | return false;
108 | }
109 |
110 | $result = json_decode( wp_remote_retrieve_body( $response ) );
111 |
112 | if ( ! isset( $result->data ) ) {
113 | return false;
114 | }
115 |
116 | $user_id = false;
117 |
118 | foreach ( $result->data as $user ) {
119 | if ( $user->username === $screen_name ) {
120 | $user_id = $user->id;
121 |
122 | break;
123 | }
124 | }
125 |
126 | update_option( $user_id_option, $user_id );
127 |
128 | return $user_id;
129 | }
130 |
131 | /**
132 | * @param $desired_width int Desired image width in pixels
133 | *
134 | * @return string Image size for Instagram API
135 | */
136 | protected function get_best_size( $desired_width ) {
137 | $size = 'thumbnail';
138 | $sizes = array(
139 | 'thumbnail' => 137,
140 | 'low_resolution' => 150,
141 | 'standard_resolution' => 640
142 | );
143 |
144 | $diff = PHP_INT_MAX;
145 |
146 | foreach ( $sizes as $key => $value ) {
147 | if ( abs( $desired_width - $value ) < $diff ) {
148 | $size = $key;
149 | $diff = abs( $desired_width - $value );
150 | }
151 | }
152 |
153 | return $size;
154 | }
155 |
156 | /**
157 | * Check if given access token is valid for Instagram Api.
158 | */
159 | public static function is_access_token_valid( $access_token ) {
160 | $response = wp_remote_get( sprintf( 'https://api.instagram.com/v1/users/self/?access_token=%s', $access_token ) );
161 |
162 | if ( is_wp_error( $response ) ) {
163 | return $response;
164 | }
165 |
166 | if ( 200 != wp_remote_retrieve_response_code( $response ) ) {
167 | return false;
168 | }
169 |
170 | return true;
171 | }
172 |
173 | public function is_configured() {
174 | $transient = 'zoom_instagram_is_configured';
175 |
176 | if ( false !== ( $result = get_transient( $transient ) ) ) {
177 | if ( 'yes' === $result ) {
178 | return true;
179 | }
180 |
181 | if ( 'no' === $result ) {
182 | return false;
183 | }
184 | }
185 |
186 | $condition = $this->is_access_token_valid( $this->access_token );
187 |
188 | if ( true === $condition ) {
189 | set_transient( $transient, 'yes', DAY_IN_SECONDS );
190 |
191 | return true;
192 | }
193 |
194 | set_transient( $transient, 'no', DAY_IN_SECONDS );
195 |
196 | return false;
197 | }
198 |
199 | public static function reset_cache() {
200 | delete_transient( 'zoom_instagram_is_configured' );
201 | }
202 |
203 | public function get_access_token() {
204 | return $this->access_token;
205 | }
206 |
207 | public function set_access_token( $access_token ) {
208 | $this->access_token = $access_token;
209 | }
210 | }
211 | ?>
--------------------------------------------------------------------------------
/inc/sidebar-widgets/blog-widget.php:
--------------------------------------------------------------------------------
1 | esc_html__( 'Show most latest blog post.', 'applab-companion' ), )
34 | );
35 |
36 | }
37 |
38 | // This is where the action happens
39 | public function widget( $args, $instance ) {
40 | $title = apply_filters( 'applab_blog_sectiontitle', $instance['sectiontitle'] );
41 | $postnumber = apply_filters( 'applab_blog_postnumber', $instance['postnumber'] );
42 | $style = apply_filters( 'applab_blog_style', $instance['style'] );
43 |
44 | // before and after widget arguments are defined by themes
45 | echo wp_kses_post( $args['before_widget'] );
46 | if ( ! empty( $title ) )
47 | echo wp_kses_post( $args['before_title'] . $title . $args['after_title'] );
48 |
49 |
50 | ?>
51 |
52 |
53 | 'post',
56 | 'posts_per_page' => esc_html( $postnumber ),
57 | );
58 |
59 | $query = new WP_Query( $blogargs );
60 |
61 | if( $query->have_posts() ):
62 | while( $query->have_posts() ):
63 | $query->the_post();
64 | ?>
65 |
69 |
72 |
73 | 'img-fluid']); ?>
74 |
75 |
81 |
82 |
85 |
88 |
96 |
102 |
103 |
104 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
150 |
151 |
152 | esc_html__( 'Add footer newsletter signup form.', 'applab-companion' ), )
28 | );
29 |
30 | }
31 |
32 | // This is where the action happens
33 | public function widget( $args, $instance ) {
34 |
35 | $title = apply_filters( 'widget_title', $instance['title'] );
36 | $actionurl = apply_filters( 'widget_actionurl', $instance['actionurl'] );
37 | $desc = apply_filters( 'widget_desc', $instance['desc'] );
38 |
39 | // before and after widget arguments are defined by themes
40 | echo wp_kses_post( $args['before_widget'] );
41 | if ( ! empty( $title ) )
42 | echo wp_kses_post( $args['before_title'] . $title . $args['after_title'] );
43 | if( $desc ){
44 | echo ''.esc_html( $desc ).'
';
45 | }
46 | ?>
47 |
65 |
66 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 | ', '']
14 | });
15 | }
16 |
17 | if ($.fn.owlCarousel) {
18 | $(".applab-service-slides").owlCarousel({
19 | items: 3,
20 | loop: true,
21 | autoplay: true,
22 | smartSpeed: 800,
23 | margin: 30,
24 | center: true,
25 | dots: false,
26 | nav: true,
27 | startPosition: 1,
28 | navText: ['', ''],
29 | responsive: {
30 | 0: {
31 | items: 1
32 | },
33 | 576: {
34 | items: 2
35 | },
36 | 768: {
37 | items: 3
38 | }
39 | }
40 | });
41 | }
42 |
43 | if ($.fn.owlCarousel) {
44 | $(".applab-workflow-slides").owlCarousel({
45 | items: 3,
46 | loop: true,
47 | autoplay: true,
48 | smartSpeed: 800,
49 | margin: 30,
50 | center: true,
51 | dots: true,
52 | startPosition: 1,
53 | responsive: {
54 | 0: {
55 | items: 1
56 | },
57 | 576: {
58 | items: 2
59 | },
60 | 768: {
61 | items: 3
62 | }
63 | }
64 | });
65 | }
66 |
67 | if ($.fn.owlCarousel) {
68 | $(".applab-team-slides").owlCarousel({
69 | items: 3,
70 | loop: true,
71 | autoplay: true,
72 | smartSpeed: 800,
73 | margin: 50,
74 | center: true,
75 | nav: true,
76 | navText: ['', ''],
77 | responsive: {
78 | 0: {
79 | items: 1
80 | },
81 | 576: {
82 | items: 2
83 | },
84 | 768: {
85 | items: 3
86 | }
87 | }
88 | });
89 | }
90 |
91 | if ($.fn.owlCarousel) {
92 | $(".testimonials-slides").owlCarousel({
93 | items: 3,
94 | loop: true,
95 | autoplay: true,
96 | smartSpeed: 1500,
97 | margin: 0,
98 | center: true,
99 | nav: true,
100 | navText: ['', ''],
101 | responsive: {
102 | 0: {
103 | items: 1
104 | },
105 | 576: {
106 | items: 2
107 | },
108 | 768: {
109 | items: 3
110 | }
111 | }
112 | });
113 | }
114 |
115 | if ($.fn.barfiller) {
116 |
117 | $('.bar').each( function(){
118 | var $this = $(this),
119 | $color = $this.data('color');
120 |
121 | $this.barfiller({
122 | tooltip: true,
123 | duration: 1000,
124 | barColor: $color,
125 | animateOnResize: true
126 | });
127 |
128 |
129 | })
130 |
131 | }
132 | if ($.fn.imagesLoaded) {
133 | $('.applab-portfolio').imagesLoaded(function () {
134 | // filter items on button click
135 | $('.portfolio-menu').on('click', 'p', function () {
136 | var filterValue = $(this).attr('data-filter');
137 | $grid.isotope({
138 | filter: filterValue
139 | });
140 | });
141 | // init Isotope
142 | var $grid = $('.applab-portfolio').isotope({
143 | itemSelector: '.single_gallery_item',
144 | percentPosition: true,
145 | masonry: {
146 | columnWidth: '.single_gallery_item'
147 | }
148 | });
149 | });
150 | }
151 |
152 | $('.portfolio-menu button.btn').on('click', function () {
153 | $('.portfolio-menu button.btn').removeClass('active');
154 | $(this).addClass('active');
155 | })
156 | if ($.fn.scrollUp) {
157 | $.scrollUp({
158 | scrollSpeed: 1500,
159 | scrollText: ''
160 | });
161 | }
162 |
163 | if ($.fn.counterUp) {
164 | $('.counter').counterUp({
165 | delay: 10,
166 | time: 2000
167 | });
168 | }
169 |
170 |
171 | if ( $('#clock').length > 0 ) {
172 | var clock = $('#clock');
173 | var eventTime = clock.data('event-time');
174 | clock.countdown(eventTime, function (event) {
175 | $(this).html(event.strftime(
176 | '%D
Days%H
Hours%M
Minutes%S
Seconds '
177 | ));
178 | });
179 | }
180 |
181 | // Background video
182 | var $selector = $('[data-videoid]');
183 |
184 | if( $selector.length ){
185 | $selector.each( function(){
186 | var $this = $(this);
187 | $this.YTPlayer({
188 | fitToBackground: true,
189 | videoId: $this.data('videoid')
190 | });
191 | });
192 | }
193 |
194 | // MC Scripts
195 | var $subscribe = $( '.applab-subscribe-newsletter-area' );
196 | if( $subscribe.length ){
197 | window.fnames = new Array();
198 | window.ftypes = new Array();
199 | fnames[0]='EMAIL';
200 | ftypes[0]='email';
201 | fnames[1]='FNAME';
202 | ftypes[1]='text';
203 | fnames[2]='LNAME';
204 | ftypes[2]='text';
205 | fnames[3]='ADDRESS';
206 | ftypes[3]='address';
207 | fnames[4]='PHONE';
208 | ftypes[4]='phone';
209 | fnames[5]='BIRTHDAY';
210 | ftypes[5]='birthday';
211 | }
212 |
213 |
214 |
215 | })(jQuery);
--------------------------------------------------------------------------------
/inc/elementor-widgets/assets/js/barfiller.js:
--------------------------------------------------------------------------------
1 | /*
2 | * File: jquery.barfiller.js
3 | * Version: 1.0.1
4 | * Description: A plugin that fills bars with a percentage you set.
5 | * Author: 9bit Studios
6 | * Copyright 2012, 9bit Studios
7 | * http://www.9bitstudios.com
8 | * Free to use and abuse under the MIT license.
9 | * http://www.opensource.org/licenses/mit-license.php
10 | */
11 |
12 | (function ($) {
13 |
14 | $.fn.barfiller = function (options) {
15 |
16 | var defaults = $.extend({
17 | barColor: '#16b597',
18 | tooltip: true,
19 | duration: 1000,
20 | animateOnResize: true,
21 | symbol: "%"
22 | }, options);
23 |
24 |
25 | /******************************
26 | Private Variables
27 | *******************************/
28 |
29 | var object = $(this);
30 | var settings = $.extend(defaults, options);
31 | var barWidth = object.width();
32 | var fill = object.find('.fill');
33 | var toolTip = object.find('.tip');
34 | var fillPercentage = fill.attr('data-percentage');
35 | var resizeTimeout;
36 | var transitionSupport = false;
37 | var transitionPrefix;
38 |
39 | /******************************
40 | Public Methods
41 | *******************************/
42 |
43 | var methods = {
44 |
45 | init: function() {
46 | return this.each(function () {
47 | if(methods.getTransitionSupport()) {
48 | transitionSupport = true;
49 | transitionPrefix = methods.getTransitionPrefix();
50 | }
51 |
52 | methods.appendHTML();
53 | methods.setEventHandlers();
54 | methods.initializeItems();
55 | });
56 | },
57 |
58 | /******************************
59 | Append HTML
60 | *******************************/
61 |
62 | appendHTML: function() {
63 | fill.css('background', settings.barColor);
64 |
65 | if(!settings.tooltip) {
66 | toolTip.css('display', 'none');
67 | }
68 | toolTip.text(fillPercentage + settings.symbol);
69 | },
70 |
71 |
72 | /******************************
73 | Set Event Handlers
74 | *******************************/
75 | setEventHandlers: function() {
76 | if(settings.animateOnResize) {
77 | $(window).on("resize", function(event){
78 | clearTimeout(resizeTimeout);
79 | resizeTimeout = setTimeout(function() {
80 | methods.refill();
81 | }, 300);
82 | });
83 | }
84 | },
85 |
86 | /******************************
87 | Initialize
88 | *******************************/
89 |
90 | initializeItems: function() {
91 | var pctWidth = methods.calculateFill(fillPercentage);
92 | object.find('.tipWrap').css({ display: 'inline' });
93 |
94 | if(transitionSupport)
95 | methods.transitionFill(pctWidth);
96 | else
97 | methods.animateFill(pctWidth);
98 | },
99 |
100 | getTransitionSupport: function() {
101 |
102 | var thisBody = document.body || document.documentElement,
103 | thisStyle = thisBody.style;
104 | var support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined;
105 | return support;
106 | },
107 |
108 | getTransitionPrefix: function() {
109 | if(/mozilla/.test(navigator.userAgent.toLowerCase()) && !/webkit/.test(navigator.userAgent.toLowerCase())) {
110 | return '-moz-transition';
111 | }
112 | if(/webkit/.test(navigator.userAgent.toLowerCase())) {
113 | return '-webkit-transition';
114 | }
115 | if(/opera/.test(navigator.userAgent.toLowerCase())) {
116 | return '-o-transition';
117 | }
118 | if (/msie/.test(navigator.userAgent.toLowerCase())) {
119 | return '-ms-transition';
120 | }
121 | else {
122 | return 'transition';
123 | }
124 | },
125 |
126 | getTransition: function(val, time, type) {
127 |
128 | var CSSObj;
129 | if(type === 'width') {
130 | CSSObj = { width : val };
131 | }
132 | else if (type === 'left') {
133 | CSSObj = { left: val };
134 | }
135 |
136 | time = time/1000;
137 | CSSObj[transitionPrefix] = type+' '+time+'s ease-in-out';
138 | return CSSObj;
139 |
140 | },
141 |
142 | refill: function() {
143 | fill.css('width', 0);
144 | toolTip.css('left', 0);
145 | barWidth = object.width();
146 | methods.initializeItems();
147 | },
148 |
149 | calculateFill: function(percentage) {
150 | percentage = percentage * 0.01;
151 | var finalWidth = barWidth * percentage;
152 | return finalWidth;
153 | },
154 |
155 | transitionFill: function(barWidth) {
156 |
157 | var toolTipOffset = barWidth - toolTip.width();
158 | fill.css( methods.getTransition(barWidth, settings.duration, 'width'));
159 | toolTip.css( methods.getTransition(toolTipOffset, settings.duration, 'left'));
160 |
161 | },
162 |
163 | animateFill: function(barWidth) {
164 | var toolTipOffset = barWidth - toolTip.width();
165 | fill.stop().animate({width: '+=' + barWidth}, settings.duration);
166 | toolTip.stop().animate({left: '+=' + toolTipOffset}, settings.duration);
167 | }
168 |
169 | };
170 |
171 | if (methods[options]) { // $("#element").pluginName('methodName', 'arg1', 'arg2');
172 | return methods[options].apply(this, Array.prototype.slice.call(arguments, 1));
173 | } else if (typeof options === 'object' || !options) { // $("#element").pluginName({ option: 1, option:2 });
174 | return methods.init.apply(this);
175 | } else {
176 | $.error( 'Method "' + method + '" does not exist in barfiller plugin!');
177 | }
178 | };
179 |
180 | })(jQuery);
--------------------------------------------------------------------------------
/inc/sidebar-widgets/social-links.php:
--------------------------------------------------------------------------------
1 | esc_html__( 'Add footer social links.', 'applab-companion' ), )
28 | );
29 |
30 | }
31 |
32 | // This is where the action happens
33 | public function widget( $args, $instance ) {
34 |
35 | $title = apply_filters( 'widget_title', $instance['title'] );
36 | $desc = apply_filters( 'widget_text', $instance['desc'] );
37 | $facebook = apply_filters( 'widget_text', $instance['facebook'] );
38 | $twitter = apply_filters( 'widget_text', $instance['twitter'] );
39 | $linkedin = apply_filters( 'widget_text', $instance['linkedin'] );
40 | $instagram = apply_filters( 'widget_text', $instance['instagram'] );
41 | $dribbble = apply_filters( 'widget_text', $instance['dribbble'] );
42 |
43 | // before and after widget arguments are defined by themes
44 | echo wp_kses_post( $args['before_widget'] );
45 | if ( ! empty( $title ) )
46 | echo wp_kses_post( $args['before_title'] . $title . $args['after_title'] );
47 |
48 |
49 | if( $desc ){
50 | echo ''.esc_html( $desc ).'
';
51 | } ?>
52 |
53 |
54 |
';
57 | }
58 | if( $twitter ){
59 | echo '
';
60 | }
61 | if( $dribbble ){
62 | echo '
';
63 | }
64 | if( $linkedin ){
65 | echo '
';
66 | }
67 | if( $instagram ){
68 | echo '
';
69 | }
70 | ?>
71 |
72 |
73 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 | =0;s={horizontal:{},vertical:{}};f=1;a={};u="waypoints-context-id";p="resize.waypoints";y="scroll.waypoints";v=1;w="waypoints-waypoint-ids";g="waypoint";m="waypoints";o=function(){function t(t){var e=this;this.$element=t;this.element=t[0];this.didResize=false;this.didScroll=false;this.id="context"+f++;this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()};this.waypoints={horizontal:{},vertical:{}};t.data(u,this.id);a[this.id]=this;t.bind(y,function(){var t;if(!(e.didScroll||c)){e.didScroll=true;t=function(){e.doScroll();return e.didScroll=false};return r.setTimeout(t,n[m].settings.scrollThrottle)}});t.bind(p,function(){var t;if(!e.didResize){e.didResize=true;t=function(){n[m]("refresh");return e.didResize=false};return r.setTimeout(t,n[m].settings.resizeThrottle)}})}t.prototype.doScroll=function(){var t,e=this;t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};if(c&&(!t.vertical.oldScroll||!t.vertical.newScroll)){n[m]("refresh")}n.each(t,function(t,r){var i,o,l;l=[];o=r.newScroll>r.oldScroll;i=o?r.forward:r.backward;n.each(e.waypoints[t],function(t,e){var n,i;if(r.oldScroll<(n=e.offset)&&n<=r.newScroll){return l.push(e)}else if(r.newScroll<(i=e.offset)&&i<=r.oldScroll){return l.push(e)}});l.sort(function(t,e){return t.offset-e.offset});if(!o){l.reverse()}return n.each(l,function(t,e){if(e.options.continuous||t===l.length-1){return e.trigger([i])}})});return this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}};t.prototype.refresh=function(){var t,e,r,i=this;r=n.isWindow(this.element);e=this.$element.offset();this.doScroll();t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};return n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,f;i=r.options.offset;l=r.offset;o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp];if(n.isFunction(i)){i=i.apply(r.element)}else if(typeof i==="string"){i=parseFloat(i);if(r.options.offset.indexOf("%")>-1){i=Math.ceil(e.contextDimension*i/100)}}r.offset=o-e.contextOffset+e.contextScroll-i;if(r.options.onlyOnScroll&&l!=null||!r.enabled){return}if(l!==null&&l<(s=e.oldScroll)&&s<=r.offset){return r.trigger([e.backward])}else if(l!==null&&l>(f=e.oldScroll)&&f>=r.offset){return r.trigger([e.forward])}else if(l===null&&e.oldScroll>=r.offset){return r.trigger([e.forward])}})})};t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)){this.$element.unbind([p,y].join(" "));return delete a[this.id]}};return t}();l=function(){function t(t,e,r){var i,o;r=n.extend({},n.fn[g].defaults,r);if(r.offset==="bottom-in-view"){r.offset=function(){var t;t=n[m]("viewportHeight");if(!n.isWindow(e.element)){t=e.$element.height()}return t-n(this).outerHeight()}}this.$element=t;this.element=t[0];this.axis=r.horizontal?"horizontal":"vertical";this.callback=r.handler;this.context=e;this.enabled=r.enabled;this.id="waypoints"+v++;this.offset=null;this.options=r;e.waypoints[this.axis][this.id]=this;s[this.axis][this.id]=this;i=(o=t.data(w))!=null?o:[];i.push(this.id);t.data(w,i)}t.prototype.trigger=function(t){if(!this.enabled){return}if(this.callback!=null){this.callback.apply(this.element,t)}if(this.options.triggerOnce){return this.destroy()}};t.prototype.disable=function(){return this.enabled=false};t.prototype.enable=function(){this.context.refresh();return this.enabled=true};t.prototype.destroy=function(){delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty()};t.getWaypointsByElement=function(t){var e,r;r=n(t).data(w);if(!r){return[]}e=n.extend({},s.horizontal,s.vertical);return n.map(r,function(t){return e[t]})};return t}();d={init:function(t,e){var r;if(e==null){e={}}if((r=e.handler)==null){e.handler=t}this.each(function(){var t,r,i,s;t=n(this);i=(s=e.context)!=null?s:n.fn[g].defaults.context;if(!n.isWindow(i)){i=t.closest(i)}i=n(i);r=a[i.data(u)];if(!r){r=new o(i)}return new l(t,r,e)});n[m]("refresh");return this},disable:function(){return d._invoke(this,"disable")},enable:function(){return d._invoke(this,"enable")},destroy:function(){return d._invoke(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0){return t.push(n[e-1])}})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(et.oldScroll.y})},left:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;e=n.extend({},s.vertical,s.horizontal);return n.each(e,function(e,n){n[t]();return true})},_filter:function(t,e,r){var i,o;i=a[n(t).data(u)];if(!i){return[]}o=[];n.each(i.waypoints[e],function(t,e){if(r(i,e)){return o.push(e)}});o.sort(function(t,e){return t.offset-e.offset});return n.map(o,function(t){return t.element})}};n[m]=function(){var t,n;n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(h[n]){return h[n].apply(null,t)}else{return h.aggregate.call(null,n)}};n[m].settings={resizeThrottle:100,scrollThrottle:30};return i.load(function(){return n[m]("refresh")})})}).call(this);
10 |
--------------------------------------------------------------------------------
/inc/elementor-widgets/widgets/home-contact.php:
--------------------------------------------------------------------------------
1 | start_controls_section(
48 | 'home_contact_content',
49 | [
50 | 'label' => __( 'Home Contact Settings', 'applab-companion' ),
51 | ]
52 | );
53 | $this->add_control(
54 | 'sec_title',
55 | [
56 | 'label' => esc_html__( 'Section Title', 'applab-companion' ),
57 | 'type' => Controls_Manager::TEXT,
58 | 'label_block' => true,
59 | 'default' => esc_html__( 'Do you Have any Project?', 'applab-companion' ),
60 | ]
61 | );
62 | $this->add_control(
63 | 'sub_title',
64 | [
65 | 'label' => esc_html__( 'Sub Title', 'applab-companion' ),
66 | 'type' => Controls_Manager::TEXTAREA,
67 | 'label_block' => true,
68 | 'default' => 'Nam libero tempore, cum soluta nobis est eligendi optio
cumque nihil impedit quo minus.',
69 | ]
70 | );
71 | $this->add_control(
72 | 'btn_label',
73 | [
74 | 'label' => esc_html__( 'Button Label', 'applab-companion' ),
75 | 'type' => Controls_Manager::TEXT,
76 | 'label_block' => true,
77 | 'default' => esc_html__( 'Contact Us', 'applab-companion' ),
78 | ]
79 | );
80 | $this->add_control(
81 | 'btn_url',
82 | [
83 | 'label' => esc_html__( 'Button URL', 'applab-companion' ),
84 | 'type' => Controls_Manager::URL,
85 | 'label_block' => true,
86 | 'default' => [
87 | 'url' => '#'
88 | ],
89 | ]
90 | );
91 |
92 | $this->end_controls_section(); // End left content
93 |
94 | //------------------------------ Style title ------------------------------
95 |
96 | // Top Section Styles
97 | $this->start_controls_section(
98 | 'about_sec_style', [
99 | 'label' => __( 'About Section Styles', 'applab-companion' ),
100 | 'tab' => Controls_Manager::TAB_STYLE,
101 | ]
102 | );
103 |
104 | $this->add_control(
105 | 'sub_title_col', [
106 | 'label' => __( 'Sub Title Color', 'applab-companion' ),
107 | 'type' => Controls_Manager::COLOR,
108 | 'selectors' => [
109 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info h2' => 'color: {{VALUE}};',
110 | ],
111 | ]
112 | );
113 | $this->add_control(
114 | 'sec_title_col', [
115 | 'label' => __( 'Sec Title Color', 'applab-companion' ),
116 | 'type' => Controls_Manager::COLOR,
117 | 'selectors' => [
118 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info h3' => 'color: {{VALUE}};',
119 | ],
120 | ]
121 | );
122 | $this->add_control(
123 | 'sec_text_col', [
124 | 'label' => __( 'Sec Text Color', 'applab-companion' ),
125 | 'type' => Controls_Manager::COLOR,
126 | 'selectors' => [
127 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info p' => 'color: {{VALUE}};',
128 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info ul li' => 'color: {{VALUE}};',
129 | ],
130 | ]
131 | );
132 | $this->add_control(
133 | 'list_circle_col', [
134 | 'label' => __( 'List Item Icon Color', 'applab-companion' ),
135 | 'type' => Controls_Manager::COLOR,
136 | 'selectors' => [
137 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info ul li::before' => 'color: {{VALUE}};',
138 | ],
139 | ]
140 | );
141 |
142 | $this->add_control(
143 | 'btn_styles_seperator',
144 | [
145 | 'label' => esc_html__( 'Button Styles', 'applab-companion' ),
146 | 'type' => Controls_Manager::HEADING,
147 | 'separator' => 'after'
148 | ]
149 | );
150 | $this->add_control(
151 | 'btn_txt_col', [
152 | 'label' => __( 'Button Text & Border Color', 'applab-companion' ),
153 | 'type' => Controls_Manager::COLOR,
154 | 'selectors' => [
155 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info .boxed-btn3-white-2' => 'color: {{VALUE}} !important; border-color: {{VALUE}}',
156 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info .boxed-btn3-white-2:hover' => 'background: {{VALUE}} !important; border-color: transparent',
157 | ],
158 | ]
159 | );
160 | $this->add_control(
161 | 'btn_hvr_col', [
162 | 'label' => __( 'Button Hover Color', 'applab-companion' ),
163 | 'type' => Controls_Manager::COLOR,
164 | 'selectors' => [
165 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info .boxed-btn3-white-2:hover' => 'color: {{VALUE}} !important',
166 | ],
167 | ]
168 | );
169 |
170 | $this->end_controls_section();
171 |
172 | }
173 |
174 |
175 | protected function render() {
176 | $settings = $this->get_settings();
177 | $sec_title = !empty( $settings['sec_title'] ) ? $settings['sec_title'] : '';
178 | $sub_title = !empty( $settings['sub_title'] ) ? $settings['sub_title'] : '';
179 | $btn_label = !empty( $settings['btn_label'] ) ? $settings['btn_label'] : '';
180 | $btn_url = !empty( $settings['btn_url']['url'] ) ? $settings['btn_url']['url'] : '';
181 | ?>
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 | '.esc_html( $sec_title ).'';
192 | }
193 | if ( $sub_title ) {
194 | echo '
'.wp_kses_post( nl2br( $sub_title ) ).'
';
195 | }
196 | if ( $btn_label ) {
197 | echo '
'.esc_html( $btn_label ).'';
198 | }
199 | ?>
200 |
201 |
202 |
203 |
204 |
205 |
206 | esc_html__( 'Add footer about content', 'applab-companion' ), )
34 | );
35 |
36 | }
37 |
38 | // This is where the action happens
39 | public function widget( $args, $instance ) {
40 |
41 | $title = apply_filters( 'widget_title', $instance['title'] );
42 | $image = apply_filters( 'widget_image', $instance['image'] );
43 | $textarea = apply_filters( 'widget_textarea', $instance['textarea'] );
44 |
45 | // before and after widget arguments are defined by themes
46 | echo wp_kses_post( $args['before_widget'] );
47 | if ( ! empty( $title ) )
48 | echo wp_kses_post( $args['before_title'] . $title . $args['after_title'] );
49 |
50 |
51 | ?>
52 |
70 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
128 |
129 |
162 |
230 | start_controls_section(
49 | 'contact_info',
50 | [
51 | 'label' => __( 'Contact Info', 'applab-companion' ),
52 | ]
53 | );
54 |
55 | $this->add_control(
56 | 'info', [
57 | 'label' => __( 'Create Contact Info', 'applab-companion' ),
58 | 'type' => Controls_Manager::REPEATER,
59 | 'title_field' => '{{{ label }}}',
60 | 'fields' => [
61 | [
62 | 'name' => 'label',
63 | 'label' => __( 'Contact Info', 'applab-companion' ),
64 | 'label_block' => true,
65 | 'type' => Controls_Manager::TEXT,
66 | 'default' => esc_html__( 'Dhaka, Bangladesh', 'applab-companion' )
67 | ],
68 | [
69 | 'name' => 'desc',
70 | 'label' => __( 'Contact Descriptions', 'applab-companion' ),
71 | 'type' => Controls_Manager::TEXTAREA,
72 | 'default' => esc_html__( 'Write something...', 'applab-companion' )
73 | ],
74 | [
75 | 'name' => 'icon',
76 | 'label' => __( 'Icon', 'applab-companion' ),
77 | 'type' => Controls_Manager::ICON,
78 | ]
79 |
80 | ],
81 | 'default' => [
82 | [
83 | 'label' => esc_html__( 'Buttonwood, California.', 'applab-companion' ),
84 | 'desc' => esc_html__( 'Rosemead, CA 91770', 'applab-companion' ),
85 | 'icon' => 'fa fa-home',
86 | ],
87 | [
88 | 'label' => esc_html__( '00 (440) 9865 562', 'applab-companion' ),
89 | 'desc' => esc_html__( 'Mon to Fri 9am to 6pm', 'applab-companion' ),
90 | 'icon' => 'fa fa-tablet',
91 | ],
92 | [
93 | 'label' => esc_html__( 'support@colorlib.com', 'applab-companion' ),
94 | 'desc' => esc_html__( 'Send us your query anytime!', 'applab-companion' ),
95 | 'icon' => 'fa fa-envelope-o',
96 | ],
97 | ]
98 | ]
99 | );
100 |
101 | $this->end_controls_section(); // End Contact Info
102 |
103 | // ---------------------------------------- Contact Form ------------------------------
104 | $this->start_controls_section(
105 | 'contact_form',
106 | [
107 | 'label' => __( 'Contact Form', 'applab-companion' ),
108 | ]
109 | );
110 | $this->add_control(
111 | 'contact_form_title',
112 | [
113 | 'label' => esc_html__( 'Contact Form Title', 'applab-companion' ),
114 | 'type' => Controls_Manager::TEXT,
115 | 'label_block' => true,
116 | 'default' => esc_html__('Get in Touch', 'applab-companion')
117 | ]
118 | );
119 | $this->add_control(
120 | 'contact_formshortcode',
121 | [
122 | 'label' => esc_html__( 'Form Shortcode', 'applab-companion' ),
123 | 'type' => Controls_Manager::TEXT,
124 | 'label_block' => true
125 | ]
126 | );
127 | $this->end_controls_section(); // End Contact Form
128 |
129 |
130 | /**
131 | * Style Tab
132 | * ------------------------------ Style ------------------------------
133 | *
134 | */
135 | $this->start_controls_section(
136 | 'style_content_color', [
137 | 'label' => __( 'Style Content Color', 'applab-companion' ),
138 | 'tab' => Controls_Manager::TAB_STYLE,
139 | ]
140 | );
141 |
142 | $this->add_control(
143 | 'color_title', [
144 | 'label' => __( 'Right Text Title Color', 'applab-companion' ),
145 | 'type' => Controls_Manager::COLOR,
146 | 'default' => '#2a2a2a',
147 | 'selectors' => [
148 | '{{WRAPPER}} .contact-info .media-body h3' => 'color: {{VALUE}};',
149 | ],
150 | ]
151 | );
152 | $this->add_control(
153 | 'color_desc', [
154 | 'label' => __( 'Right Text Sub Title Color', 'applab-companion' ),
155 | 'type' => Controls_Manager::COLOR,
156 | 'default' => '#8a8a8a',
157 | 'selectors' => [
158 | '{{WRAPPER}} .contact-info .media-body p' => 'color: {{VALUE}};',
159 | ],
160 | ]
161 | );
162 | $this->add_control(
163 | 'color_icon', [
164 | 'label' => __( 'Icon Color', 'applab-companion' ),
165 | 'type' => Controls_Manager::COLOR,
166 | 'default' => '#8f9195',
167 | 'selectors' => [
168 | '{{WRAPPER}} .contact-info__icon i, .contact-info__icon span' => 'color: {{VALUE}};',
169 | ],
170 | ]
171 | );
172 |
173 | $this->end_controls_section();
174 |
175 |
176 | }
177 |
178 | protected function render() {
179 |
180 | $settings = $this->get_settings();
181 |
182 |
183 | ?>
184 |
223 |
224 | start_controls_section(
48 | 'business_expert_content',
49 | [
50 | 'label' => __( 'Business Expert content', 'applab-companion' ),
51 | ]
52 | );
53 | $this->add_control(
54 | 'tab_content', [
55 | 'label' => __( 'Create New', 'applab-companion' ),
56 | 'type' => Controls_Manager::REPEATER,
57 | 'title_field' => '{{{ tab_title }}}',
58 | 'fields' => [
59 | [
60 | 'name' => 'tab_title',
61 | 'label' => __( 'Tab Title', 'applab-companion' ),
62 | 'label_block' => true,
63 | 'type' => Controls_Manager::TEXT,
64 | 'default' => __( 'Excellent Services', 'applab-companion' ),
65 | ],
66 | [
67 | 'name' => 'template_id',
68 | 'label' => __( 'Select Elementor Template', 'applab-companion' ),
69 | 'label_block' => true,
70 | 'type' => Controls_Manager::SELECT,
71 | 'options' => get_elementor_templates(),
72 | 'default' => array_key_first( get_elementor_templates() ),
73 | ],
74 | ],
75 | 'default' => [
76 | [
77 | 'tab_title' => __( 'Excellent Services', 'applab-companion' ),
78 | ],
79 | [
80 | 'tab_title' => __( 'Qualified Doctors', 'applab-companion' ),
81 | ],
82 | [
83 | 'tab_title' => __( 'Emergency Departments', 'applab-companion' ),
84 | ],
85 | ]
86 | ]
87 | );
88 | $this->end_controls_section(); // End service content
89 |
90 | /**
91 | * Style Tab
92 | * ------------------------------ Style Section Heading ------------------------------
93 | *
94 | */
95 |
96 | $this->start_controls_section(
97 | 'style_room_section', [
98 | 'label' => __( 'Style Business Expert Section', 'applab-companion' ),
99 | 'tab' => Controls_Manager::TAB_STYLE,
100 | ]
101 | );
102 | $this->add_control(
103 | 'section_head_bg_col', [
104 | 'label' => __( 'Section Head Bg Color', 'applab-companion' ),
105 | 'type' => Controls_Manager::COLOR,
106 | 'selectors' => [
107 | '{{WRAPPER}} .business_expert_area .business_tabs_area' => 'background: {{VALUE}};',
108 | ],
109 | ]
110 | );
111 |
112 | $this->add_control(
113 | 'tab_content_styles_separator', [
114 | 'label' => __( 'Tab Content Styles', 'applab-companion' ),
115 | 'type' => Controls_Manager::HEADING,
116 | 'separator' => 'after'
117 | ]
118 | );
119 | $this->add_control(
120 | 'icon_col', [
121 | 'label' => __( 'Icon Color', 'applab-companion' ),
122 | 'type' => Controls_Manager::COLOR,
123 | 'selectors' => [
124 | '{{WRAPPER}} .business_expert_area .business_info .icon i' => 'color: {{VALUE}};',
125 | ],
126 | ]
127 | );
128 | $this->add_control(
129 | 'icon_bg_col', [
130 | 'label' => __( 'Icon Bg Color', 'applab-companion' ),
131 | 'type' => Controls_Manager::COLOR,
132 | 'selectors' => [
133 | '{{WRAPPER}} .business_expert_area .business_info .icon i' => 'background: {{VALUE}};',
134 | ],
135 | ]
136 | );
137 | $this->add_control(
138 | 'title_col', [
139 | 'label' => __( 'Title Color', 'applab-companion' ),
140 | 'type' => Controls_Manager::COLOR,
141 | 'selectors' => [
142 | '{{WRAPPER}} .business_expert_area .business_info h3' => 'color: {{VALUE}};',
143 | ],
144 | ]
145 | );
146 | $this->add_control(
147 | 'text_col', [
148 | 'label' => __( 'Text Color', 'applab-companion' ),
149 | 'type' => Controls_Manager::COLOR,
150 | 'selectors' => [
151 | '{{WRAPPER}} .business_expert_area .business_info p' => 'color: {{VALUE}};',
152 | ],
153 | ]
154 | );
155 |
156 | $this->end_controls_section();
157 |
158 | }
159 |
160 | protected function render() {
161 | $settings = $this->get_settings();
162 | $tab_items = !empty( $settings['tab_content'] ) ? $settings['tab_content'] : '';
163 | ?>
164 |
165 |
166 |
167 |
200 |
201 |
202 |
203 |
210 |
211 | frontend->get_builder_content( $template_id, false );
213 | ?>
214 |
215 |
219 |
220 |
221 |
222 |
223 |
224 | start_controls_section(
48 | 'clients_content',
49 | [
50 | 'label' => __( 'Client Contents', 'applab-companion' ),
51 | ]
52 | );
53 |
54 | $this->add_control(
55 | 'clients', [
56 | 'label' => __( 'Create New', 'applab-companion' ),
57 | 'type' => Controls_Manager::REPEATER,
58 | 'title_field' => '{{{ client_name }}}',
59 | 'fields' => [
60 | [
61 | 'name' => 'client_name',
62 | 'label' => __( 'Client Name', 'applab-companion' ),
63 | 'label_block' => true,
64 | 'type' => Controls_Manager::TEXT,
65 | 'default' => __( 'Client 1', 'applab-companion' ),
66 | ],
67 | [
68 | 'name' => 'client_logo',
69 | 'label' => __( 'Client Logo', 'applab-companion' ),
70 | 'label_block' => true,
71 | 'type' => Controls_Manager::MEDIA,
72 | 'default' => [
73 | 'url' => Utils::get_placeholder_image_src()
74 | ]
75 | ],
76 | ],
77 | 'default' => [
78 | [
79 | 'client_name' => __( 'Client 1', 'applab-companion' ),
80 | 'client_logo' => [
81 | 'url' => Utils::get_placeholder_image_src(),
82 | ],
83 | ],
84 | [
85 | 'client_name' => __( 'Client 2', 'applab-companion' ),
86 | 'client_logo' => [
87 | 'url' => Utils::get_placeholder_image_src(),
88 | ],
89 | ],
90 | [
91 | 'client_name' => __( 'Client 3', 'applab-companion' ),
92 | 'client_logo' => [
93 | 'url' => Utils::get_placeholder_image_src(),
94 | ],
95 | ],
96 | [
97 | 'client_name' => __( 'Client 4', 'applab-companion' ),
98 | 'client_logo' => [
99 | 'url' => Utils::get_placeholder_image_src(),
100 | ],
101 | ],
102 | [
103 | 'client_name' => __( 'Client 5', 'applab-companion' ),
104 | 'client_logo' => [
105 | 'url' => Utils::get_placeholder_image_src(),
106 | ],
107 | ],
108 | [
109 | 'client_name' => __( 'Client 6', 'applab-companion' ),
110 | 'client_logo' => [
111 | 'url' => Utils::get_placeholder_image_src(),
112 | ],
113 | ],
114 | ]
115 | ]
116 | );
117 | $this->end_controls_section(); // End Hero content
118 |
119 | /**
120 | * Style Tab
121 | * ------------------------------ Style Title ------------------------------
122 | *
123 | */
124 | $this->start_controls_section(
125 | 'style_title', [
126 | 'label' => __( 'Style Client Section', 'applab-companion' ),
127 | 'tab' => Controls_Manager::TAB_STYLE,
128 | ]
129 | );
130 |
131 | $this->add_control(
132 | 'rev_txt_col', [
133 | 'label' => __( 'Review Text Color', 'applab-companion' ),
134 | 'type' => Controls_Manager::COLOR,
135 | 'selectors' => [
136 | '{{WRAPPER}} .testmonial_area .testmonial_info p' => 'color: {{VALUE}};',
137 | ],
138 | ]
139 | );
140 | $this->add_control(
141 | 'rev_name_col', [
142 | 'label' => __( 'Reviewer Name Color', 'applab-companion' ),
143 | 'type' => Controls_Manager::COLOR,
144 | 'selectors' => [
145 | '{{WRAPPER}} .testmonial_area .testmonial_info .author_name h4' => 'color: {{VALUE}};',
146 | ],
147 | ]
148 | );
149 | $this->add_control(
150 | 'rev_desig_col', [
151 | 'label' => __( 'Reviewer Designation Color', 'applab-companion' ),
152 | 'type' => Controls_Manager::COLOR,
153 | 'selectors' => [
154 | '{{WRAPPER}} .testmonial_area .testmonial_info .author_name span' => 'color: {{VALUE}};',
155 | ],
156 | ]
157 | );
158 | $this->end_controls_section();
159 |
160 | }
161 |
162 | protected function render() {
163 |
164 | // call load widget script
165 | $this->load_widget_script();
166 | $settings = $this->get_settings();
167 | $clients = !empty( $settings['clients'] ) ? $settings['clients'] : '';
168 | ?>
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 | 0 ){
178 | foreach ( $clients as $client ) {
179 | $client_name = !empty( $client['client_name'] ) ? $client['client_name'] : '';
180 | $client_logo = !empty( $client['client_logo']['id'] ) ? wp_get_attachment_image( $client['client_logo']['id'], 'applab_client_logo_145x70', '', array('alt' => $client_name . ' image' ) ) : '';
181 | ?>
182 |
183 |
188 |
189 |
193 |
194 |
195 |
196 |
197 |
198 |
199 | editor->is_edit_mode() === true ) {
205 | ?>
206 |
245 | 'elementor_library',
21 | 'posts_per_page' => -1,
22 | ];
23 |
24 | $page_templates = get_posts($args);
25 |
26 | if (!empty($page_templates) && !is_wp_error($page_templates)) {
27 | foreach ($page_templates as $post) {
28 | $options[$post->ID] = $post->post_title;
29 | }
30 | }
31 | return $options;
32 | }
33 |
34 | // Section Heading
35 | function applab_section_heading( $title = '', $subtitle = '' ) {
36 | if( $title || $subtitle ) :
37 | ?>
38 |
39 |
40 |
41 |
42 | ' . esc_html( $subtitle ) . '';
46 | }
47 | // Title
48 | if ( $title ) {
49 | echo '
' . esc_html( $title ) . '
';
50 | }
51 | ?>
52 |
53 |
54 |
55 |
56 |
87 |
88 | ';
91 | }
92 | ?>
93 |
94 |
95 | 'h4',
100 | 'text' => esc_html( $val['title'] )
101 | )
102 | );
103 | }
104 |
105 | if( !empty( $val['sub-title-url'] ) && !empty( $val['sub-title'] ) ){
106 | echo '
'.esc_html( $val['sub-title'] ).'';
107 | }else{
108 | echo '
'.esc_html( $val['sub-title'] ).'
';
109 | }
110 | ?>
111 |
112 |
113 |
114 |
115 |
116 | $target_post_id->ID,
139 | 'post_status' => $type,
140 | );
141 |
142 | if ( $message == true ) {
143 | // Update the post/page
144 | $update_status = wp_update_post( $target_post, true );
145 | } else {
146 | // Update the post/page
147 | $update_status = wp_update_post( $target_post, false );
148 | }
149 |
150 | return $update_status;
151 | }
152 |
153 |
154 |
155 | // Portfolio - Custom Post Type
156 | function applab_custom_posts() {
157 | $labels = array(
158 | 'name' => _x( 'Portfolios', 'post type general name', 'applab-companion' ),
159 | 'singular_name' => _x( 'Portfolio', 'post type singular name', 'applab-companion' ),
160 | 'menu_name' => _x( 'Portfolios', 'admin menu', 'applab-companion' ),
161 | 'name_admin_bar' => _x( 'Portfolio', 'add new on admin bar', 'applab-companion' ),
162 | 'add_new' => _x( 'Add New', 'portfolio', 'applab-companion' ),
163 | 'add_new_item' => __( 'Add New Portfolio', 'applab-companion' ),
164 | 'new_item' => __( 'New Portfolio', 'applab-companion' ),
165 | 'edit_item' => __( 'Edit Portfolio', 'applab-companion' ),
166 | 'view_item' => __( 'View Portfolio', 'applab-companion' ),
167 | 'all_items' => __( 'All Portfolios', 'applab-companion' ),
168 | 'search_items' => __( 'Search Portfolios', 'applab-companion' ),
169 | 'parent_item_colon' => __( 'Parent Portfolios:', 'applab-companion' ),
170 | 'not_found' => __( 'No portfolios found.', 'applab-companion' ),
171 | 'not_found_in_trash' => __( 'No portfolios found in Trash.', 'applab-companion' )
172 | );
173 |
174 | $args = array(
175 | 'labels' => $labels,
176 | 'description' => __( 'Description.', 'applab-companion' ),
177 | 'public' => true,
178 | 'publicly_queryable' => true,
179 | 'show_ui' => true,
180 | 'show_in_menu' => true,
181 | 'query_var' => true,
182 | 'rewrite' => array( 'slug' => 'portfolio' ),
183 | 'capability_type' => 'post',
184 | 'has_archive' => true,
185 | 'hierarchical' => false,
186 | 'menu_position' => null,
187 | 'supports' => array( 'title', 'editor', 'thumbnail' )
188 | );
189 |
190 | register_post_type( 'portfolio', $args );
191 |
192 | }
193 | add_action( 'init', 'applab_custom_posts' );
194 |
195 |
196 |
197 | /*=========================================================
198 | Courses Section
199 | ========================================================*/
200 | function applab_portfolio_section( $pNumber = 3 ){
201 | $portfolios = new WP_Query( array(
202 | 'post_type' => 'portfolio',
203 | 'posts_per_page'=> $pNumber,
204 |
205 | ) );
206 |
207 | if( $portfolios->have_posts() ) {
208 | while ( $portfolios->have_posts() ) {
209 | $portfolios->the_post();
210 | $portfolio_img = get_the_post_thumbnail( get_the_id(), 'applab_order_thumb_360x300', '', array( 'alt' => get_the_title() ) );
211 | $portfolio_fee = ! empty( applab_meta( 'portfolio_fee') ) ? applab_meta( 'portfolio_fee') : 'N/A';
212 | ?>
213 |
214 |
215 |
220 |
221 |
222 |
223 |
224 |
225 | 'course',
239 | 'posts_per_page' => $pnumber,
240 |
241 | ) );
242 |
243 | ?>
244 |
245 |
278 | start_controls_section(
48 | 'home_appointment_content',
49 | [
50 | 'label' => __( 'Home Appointment Section', 'applab-companion' ),
51 | ]
52 | );
53 | $this->add_control(
54 | 'top_img',
55 | [
56 | 'label' => esc_html__( 'Top Image', 'applab-companion' ),
57 | 'type' => Controls_Manager::MEDIA,
58 | 'label_block' => true,
59 | 'default' => [
60 | 'url' => Utils::get_placeholder_image_src(),
61 | ]
62 | ]
63 | );
64 | $this->add_control(
65 | 'bottom_img',
66 | [
67 | 'label' => esc_html__( 'Bottom Image', 'applab-companion' ),
68 | 'type' => Controls_Manager::MEDIA,
69 | 'label_block' => true,
70 | 'default' => [
71 | 'url' => Utils::get_placeholder_image_src(),
72 | ]
73 | ]
74 | );
75 |
76 | $this->add_control(
77 | 'form_section_separator',
78 | [
79 | 'label' => esc_html__( 'Form Contents Section', 'applab-companion' ),
80 | 'type' => Controls_Manager::HEADING,
81 | 'separator' => 'after'
82 | ]
83 | );
84 | $this->add_control(
85 | 'sec_title',
86 | [
87 | 'label' => esc_html__( 'Section Title', 'applab-companion' ),
88 | 'type' => Controls_Manager::TEXT,
89 | 'label_block' => true,
90 | 'default' => esc_html__( 'Are You Attending?', 'applab-companion' ),
91 | ]
92 | );
93 | $this->add_control(
94 | 'sub_title',
95 | [
96 | 'label' => esc_html__( 'Sub Title', 'applab-companion' ),
97 | 'type' => Controls_Manager::TEXTAREA,
98 | 'label_block' => true,
99 | 'default' => esc_html__( 'Kindly respond before 30 August', 'applab-companion' ),
100 | ]
101 | );
102 |
103 | $this->add_control(
104 | 'form_shortcode',
105 | [
106 | 'label' => esc_html__( 'Form Shortcode', 'applab-companion' ),
107 | 'type' => Controls_Manager::TEXT,
108 | 'label_block' => true,
109 | ]
110 | );
111 |
112 |
113 | $this->end_controls_section(); // End about us content
114 |
115 | //------------------------------ Style title ------------------------------
116 |
117 | // Home Contact Section Styles
118 | $this->start_controls_section(
119 | 'home_contact_sec_style', [
120 | 'label' => __( 'Home Contact Section Styles', 'applab-companion' ),
121 | 'tab' => Controls_Manager::TAB_STYLE,
122 | ]
123 | );
124 | $this->add_control(
125 | 'sub_title_col', [
126 | 'label' => __( 'Sub title Color', 'applab-companion' ),
127 | 'type' => Controls_Manager::COLOR,
128 | 'selectors' => [
129 | '{{WRAPPER}} .messege_area .section_title .sub_heading' => 'color: {{VALUE}};',
130 | ],
131 | ]
132 | );
133 | $this->add_control(
134 | 'sec_title_col', [
135 | 'label' => __( 'Big Title Color', 'applab-companion' ),
136 | 'type' => Controls_Manager::COLOR,
137 | 'selectors' => [
138 | '{{WRAPPER}} .messege_area .section_title h3' => 'color: {{VALUE}};',
139 | '{{WRAPPER}} .messege_area .section_title .seperator' => 'background: {{VALUE}};',
140 | ],
141 | ]
142 | );
143 |
144 | $this->add_control(
145 | 'btn_styles_seperator',
146 | [
147 | 'label' => esc_html__( 'Button Styles', 'applab-companion' ),
148 | 'type' => Controls_Manager::HEADING,
149 | 'separator' => 'after'
150 | ]
151 | );
152 | $this->add_control(
153 | 'btn_border_txt_col', [
154 | 'label' => __( 'Button Border & Text Color', 'applab-companion' ),
155 | 'type' => Controls_Manager::COLOR,
156 | 'selectors' => [
157 | '{{WRAPPER}} .messege_area .messege .boxed-btn' => 'color: {{VALUE}} !important; border-color: {{VALUE}};',
158 | ],
159 | ]
160 | );
161 | $this->add_control(
162 | 'btn_hvr_border_bg_col', [
163 | 'label' => __( 'Button Hover Border & Bg Color', 'applab-companion' ),
164 | 'type' => Controls_Manager::COLOR,
165 | 'selectors' => [
166 | '{{WRAPPER}} .messege_area .messege .boxed-btn:hover' => 'background: {{VALUE}}; border-color: {{VALUE}};',
167 | ],
168 | ]
169 | );
170 | $this->add_control(
171 | 'btn_hvr_txt_col', [
172 | 'label' => __( 'Button Hover Text Color', 'applab-companion' ),
173 | 'type' => Controls_Manager::COLOR,
174 | 'selectors' => [
175 | '{{WRAPPER}} .messege_area .messege .boxed-btn:hover' => 'color: {{VALUE}} !important;;',
176 | ],
177 | ]
178 | );
179 | $this->end_controls_section();
180 |
181 | }
182 |
183 | protected function render() {
184 | $settings = $this->get_settings();
185 | $top_img = !empty( $settings['top_img']['id'] ) ? wp_get_attachment_image( $settings['top_img']['id'], 'applab_wedding_counter_left_img_471x280', '', array('alt' => 'home appointment top image' ) ) : '';
186 | $bottom_img = !empty( $settings['bottom_img']['id'] ) ? wp_get_attachment_image( $settings['bottom_img']['id'], 'applab_attending_bottom_thumb_350x346', '', array('alt' => 'home appointment bottom image' ) ) : '';
187 | $sec_title = !empty( $settings['sec_title'] ) ? $settings['sec_title'] : '';
188 | $sub_title = !empty( $settings['sub_title'] ) ? $settings['sub_title'] : '';
189 | $form_shortcode = !empty( $settings['form_shortcode'] ) ? $settings['form_shortcode'] : '';
190 | $inner_page_class = is_front_page() ? 'attending_area' : 'attending_area plus_padding';
191 | ?>
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 | ';
202 | echo $top_img;
203 | echo '
';
204 | }
205 | if ( $bottom_img ) {
206 | echo '
';
207 | echo $bottom_img;
208 | echo '
';
209 | }
210 | ?>
211 |
232 |
233 |
234 |
235 |
236 |
237 |
238 | start_controls_section(
48 | 'facilities_content',
49 | [
50 | 'label' => __( 'Facilities content', 'applab-companion' ),
51 | ]
52 | );
53 | $this->add_control(
54 | 'sec_title',
55 | [
56 | 'label' => esc_html__( 'Section Title', 'applab-companion' ),
57 | 'type' => Controls_Manager::TEXT,
58 | 'label_block' => true,
59 | 'default' => 'Save your time to
using applab',
60 | ]
61 | );
62 |
63 | $this->add_control(
64 | 'facilities_settings_seperator',
65 | [
66 | 'label' => esc_html__( 'Facilities', 'applab-companion' ),
67 | 'type' => Controls_Manager::HEADING,
68 | 'separator' => 'after'
69 | ]
70 | );
71 |
72 | $this->add_control(
73 | 'facilities', [
74 | 'label' => __( 'Create New', 'applab-companion' ),
75 | 'type' => Controls_Manager::REPEATER,
76 | 'title_field' => '{{{ item_title }}}',
77 | 'fields' => [
78 | [
79 | 'name' => 'item_icon',
80 | 'label' => __( 'Select Icon', 'applab-companion' ),
81 | 'label_block' => true,
82 | 'type' => Controls_Manager::SELECT,
83 | 'default' => 'facility-icon-1',
84 | 'options' => applab_themify_icon()
85 | ],
86 | [
87 | 'name' => 'item_title',
88 | 'label' => __( 'Title', 'applab-companion' ),
89 | 'label_block' => true,
90 | 'type' => Controls_Manager::TEXT,
91 | 'default' => 'Manage team in
One Place',
92 | ],
93 | ],
94 | 'default' => [
95 | [
96 | 'item_icon' => 'facility-icon-2',
97 | 'item_title' => 'Manage team in
One Place',
98 | ],
99 | [
100 | 'item_icon' => 'facility-icon-1',
101 | 'item_title' => 'All-powerful Pointing
has no control',
102 | ],
103 | [
104 | 'item_icon' => 'facility-icon-3',
105 | 'item_title' => 'Establish a solid online
presence',
106 | ],
107 | ]
108 | ]
109 | );
110 | $this->end_controls_section(); // End facilities content
111 |
112 | /**
113 | * Style Tab
114 | * ------------------------------ Style Section Heading ------------------------------
115 | *
116 | */
117 |
118 | $this->start_controls_section(
119 | 'style_room_section', [
120 | 'label' => __( 'Style Service Section', 'applab-companion' ),
121 | 'tab' => Controls_Manager::TAB_STYLE,
122 | ]
123 | );
124 | $this->add_control(
125 | 'big_title_col', [
126 | 'label' => __( 'Section Title Color', 'applab-companion' ),
127 | 'type' => Controls_Manager::COLOR,
128 | 'selectors' => [
129 | '{{WRAPPER}} .expert_doctors_area .doctors_title h3' => 'color: {{VALUE}};',
130 | ],
131 | ]
132 | );
133 |
134 | $this->add_control(
135 | 'single_item_styles_seperator',
136 | [
137 | 'label' => esc_html__( 'Single Item Styles', 'applab-companion' ),
138 | 'type' => Controls_Manager::HEADING,
139 | 'separator' => 'after'
140 | ]
141 | );
142 | $this->add_control(
143 | 'member_name_col', [
144 | 'label' => __( 'Member Name Color', 'applab-companion' ),
145 | 'type' => Controls_Manager::COLOR,
146 | 'selectors' => [
147 | '{{WRAPPER}} .expert_doctors_area .single_expert .experts_name h3' => 'color: {{VALUE}};',
148 | ],
149 | ]
150 | );
151 | $this->add_control(
152 | 'member_desig_color', [
153 | 'label' => __( 'Member Designation Color', 'applab-companion' ),
154 | 'type' => Controls_Manager::COLOR,
155 | 'selectors' => [
156 | '{{WRAPPER}} .expert_doctors_area .single_expert .experts_name span' => 'color: {{VALUE}};',
157 | ],
158 | ]
159 | );
160 |
161 | $this->add_control(
162 | 'single_item_bg_styles_seperator',
163 | [
164 | 'label' => esc_html__( 'Single Item Bg Styles', 'applab-companion' ),
165 | 'type' => Controls_Manager::HEADING,
166 | 'separator' => 'after'
167 | ]
168 | );
169 | $this->add_control(
170 | 'member_bg_color', [
171 | 'label' => __( 'Bg Color', 'applab-companion' ),
172 | 'type' => Controls_Manager::COLOR,
173 | 'selectors' => [
174 | '{{WRAPPER}} .expert_doctors_area .single_expert .experts_name' => 'background: {{VALUE}};',
175 | ],
176 | ]
177 | );
178 | $this->add_control(
179 | 'hover_member_bg_color', [
180 | 'label' => __( 'Item Hover Bg Color', 'applab-companion' ),
181 | 'type' => Controls_Manager::COLOR,
182 | 'selectors' => [
183 | '{{WRAPPER}} .expert_doctors_area .single_expert:hover .experts_name' => 'background: {{VALUE}};',
184 | ],
185 | ]
186 | );
187 | $this->end_controls_section();
188 |
189 | }
190 |
191 | protected function render() {
192 | $settings = $this->get_settings();
193 | $sec_title = !empty( $settings['sec_title'] ) ? $settings['sec_title'] : '';
194 | $facilities = !empty( $settings['facilities'] ) ? $settings['facilities'] : '';
195 | ?>
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 | '.wp_kses_post( nl2br( $sec_title ) ).'';
206 | }
207 | ?>
208 |
209 |
210 |
211 |
212 | 0 ) {
214 | foreach( $facilities as $item ) {
215 | $item_icon = ( !empty( $item['item_icon'] ) ) ? APPLAB_DIR_ICON_IMG_URI . $item['item_icon'] : '';
216 | $item_title = ( !empty( $item['item_title'] ) ) ? $item['item_title'] : '';
217 | $item_text = ( !empty( $item['item_text'] ) ) ? $item['item_text'] : '';
218 | ?>
219 |
220 |
221 |
222 | ';
225 | }
226 | ?>
227 |
228 | '.wp_kses_post( nl2br( $item_title ) ).'';
231 | }
232 | ?>
233 |
234 |
235 |
239 |
240 |
241 |
242 |
243 | start_controls_section(
48 | 'single_event_content',
49 | [
50 | 'label' => __( 'Event content', 'applab-companion' ),
51 | ]
52 | );
53 |
54 | $this->add_control(
55 | 'speakers', [
56 | 'label' => __( 'Create New', 'applab-companion' ),
57 | 'type' => Controls_Manager::REPEATER,
58 | 'title_field' => '{{{ member_name }}}',
59 | 'fields' => [
60 | [
61 | 'name' => 'member_img',
62 | 'label' => __( 'Speaker Image', 'applab-companion' ),
63 | 'label_block' => true,
64 | 'type' => Controls_Manager::MEDIA,
65 | 'default' => [
66 | 'url' => Utils::get_placeholder_image_src(),
67 | ]
68 | ],
69 | [
70 | 'name' => 'member_name',
71 | 'label' => __( 'Speaker Name', 'applab-companion' ),
72 | 'label_block' => true,
73 | 'type' => Controls_Manager::TEXT,
74 | 'default' => __( 'Jonson Miller', 'applab-companion' ),
75 | ],
76 | [
77 | 'name' => 'text',
78 | 'label' => __( 'Some Text', 'applab-companion' ),
79 | 'label_block' => true,
80 | 'type' => Controls_Manager::TEXTAREA,
81 | 'default' => __( 'Our set he for firmament morning sixth subdue darkness creeping gathered divide our let god moving. Moving in fourth air night bring upon you’re it beast let you dominion', 'applab-companion' ),
82 | ],
83 | [
84 | 'name' => 'event_time',
85 | 'label' => __( 'Event Time', 'applab-companion' ),
86 | 'label_block' => true,
87 | 'type' => Controls_Manager::TEXT,
88 | 'default' => __( '10-11 am', 'applab-companion' ),
89 | ],
90 | ],
91 | 'default' => [
92 | [
93 | 'member_img' => [
94 | 'url' => Utils::get_placeholder_image_src(),
95 | ],
96 | 'member_name' => __( 'Jonson Miller', 'applab-companion' ),
97 | 'text' => __( 'Our set he for firmament morning sixth subdue darkness creeping gathered divide our let god moving. Moving in fourth air night bring upon you’re it beast let you dominion', 'applab-companion' ),
98 | 'event_time' => __( '10-11 am', 'applab-companion' ),
99 | ],
100 | [
101 | 'member_img' => [
102 | 'url' => Utils::get_placeholder_image_src(),
103 | ],
104 | 'member_name' => __( 'Albert Jackey', 'applab-companion' ),
105 | 'text' => __( 'Our set he for firmament morning sixth subdue darkness creeping gathered divide our let god moving. Moving in fourth air night bring upon you’re it beast let you dominion', 'applab-companion' ),
106 | 'event_time' => __( '12-1.00 pm', 'applab-companion' ),
107 | ],
108 | [
109 | 'member_img' => [
110 | 'url' => Utils::get_placeholder_image_src(),
111 | ],
112 | 'member_name' => __( 'Alvi Nourin', 'applab-companion' ),
113 | 'text' => __( 'Our set he for firmament morning sixth subdue darkness creeping gathered divide our let god moving. Moving in fourth air night bring upon you’re it beast let you dominion', 'applab-companion' ),
114 | 'event_time' => __( '2.30-4.00 pm', 'applab-companion' ),
115 | ],
116 | ]
117 | ]
118 | );
119 | $this->end_controls_section(); // End service content
120 |
121 | /**
122 | * Style Tab
123 | * ------------------------------ Style Section Heading ------------------------------
124 | *
125 | */
126 |
127 | $this->start_controls_section(
128 | 'style_room_section', [
129 | 'label' => __( 'Style Service Section', 'applab-companion' ),
130 | 'tab' => Controls_Manager::TAB_STYLE,
131 | ]
132 | );
133 | $this->add_control(
134 | 'sub_title_col', [
135 | 'label' => __( 'Sub Title Color', 'applab-companion' ),
136 | 'type' => Controls_Manager::COLOR,
137 | 'selectors' => [
138 | '{{WRAPPER}} .team_area .section_title .sub_heading' => 'color: {{VALUE}};',
139 | ],
140 | ]
141 | );
142 | $this->add_control(
143 | 'big_title_col', [
144 | 'label' => __( 'Big Title Color', 'applab-companion' ),
145 | 'type' => Controls_Manager::COLOR,
146 | 'selectors' => [
147 | '{{WRAPPER}} .team_area .section_title h3' => 'color: {{VALUE}};',
148 | ],
149 | ]
150 | );
151 |
152 | $this->add_control(
153 | 'member_styles_seperator',
154 | [
155 | 'label' => esc_html__( 'Member Styles', 'applab-companion' ),
156 | 'type' => Controls_Manager::HEADING,
157 | 'separator' => 'after'
158 | ]
159 | );
160 | $this->add_control(
161 | 'member_name_col', [
162 | 'label' => __( 'Member Name Color', 'applab-companion' ),
163 | 'type' => Controls_Manager::COLOR,
164 | 'selectors' => [
165 | '{{WRAPPER}} .team_area .single_team h3' => 'color: {{VALUE}};',
166 | ],
167 | ]
168 | );
169 | $this->add_control(
170 | 'member_desig_color', [
171 | 'label' => __( 'Member Designation Color', 'applab-companion' ),
172 | 'type' => Controls_Manager::COLOR,
173 | 'selectors' => [
174 | '{{WRAPPER}} .team_area .single_team p' => 'color: {{VALUE}};',
175 | ],
176 | ]
177 | );
178 | $this->end_controls_section();
179 |
180 | }
181 |
182 | protected function render() {
183 | $settings = $this->get_settings();
184 | $speakers = !empty( $settings['speakers'] ) ? $settings['speakers'] : '';
185 |
186 | if( is_array( $speakers ) && count( $speakers ) > 0 ) {
187 | foreach( $speakers as $member ) {
188 | $member_name = ( !empty( $member['member_name'] ) ) ? $member['member_name'] : '';
189 | $member_img = !empty( $member['member_img']['id'] ) ? wp_get_attachment_image( $member['member_img']['id'], 'applab_speaker_small_thumb_90x90', '', array( 'alt' => $member_name. ' image' ) ) : '';
190 | $text = ( !empty( $member['text'] ) ) ? $member['text'] : '';
191 | $event_time = ( !empty( $member['event_time'] ) ) ? $member['event_time'] : '';
192 | ?>
193 |
194 |
199 |
200 |
201 | '.esc_html( $member_name ).'';
204 | }
205 | if ( $event_time ) {
206 | echo '
'.esc_html( $event_time ).'
';
207 | }
208 | ?>
209 |
210 | '.esc_html( $text ).'';
213 | }
214 | ?>
215 |
216 |
217 | start_controls_section(
49 | 'hero_content',
50 | [
51 | 'label' => __( 'Hero section content', 'applab-companion' ),
52 | ]
53 | );
54 |
55 | $this->add_control(
56 | 'bg_img',
57 | [
58 | 'label' => esc_html__( 'BG Image', 'applab-companion' ),
59 | 'description' => esc_html__( 'Best size is 1920x900', 'applab-companion' ),
60 | 'type' => Controls_Manager::MEDIA,
61 | 'label_block' => true,
62 | 'default' => [
63 | 'url' => Utils::get_placeholder_image_src(),
64 | ]
65 | ]
66 | );
67 | $this->add_control(
68 | 'big_text',
69 | [
70 | 'label' => esc_html__( 'Big Title', 'applab-companion' ),
71 | 'type' => Controls_Manager::TEXT,
72 | 'label_block' => true,
73 | 'default' => 'Promote your app
with applab',
74 | ]
75 | );
76 | $this->add_control(
77 | 'sub_title',
78 | [
79 | 'label' => esc_html__( 'Sub Title', 'applab-companion' ),
80 | 'type' => Controls_Manager::TEXTAREA,
81 | 'label_block' => true,
82 | 'default' => esc_html__( 'Get more users to promote your app with this template', 'applab-companion' ),
83 | ]
84 | );
85 | $this->add_control(
86 | 'btn_label',
87 | [
88 | 'label' => esc_html__( 'Button Label', 'applab-companion' ),
89 | 'type' => Controls_Manager::TEXT,
90 | 'label_block' => true,
91 | 'default' => esc_html__( 'Get Start Now', 'applab-companion' ),
92 | ]
93 | );
94 | $this->add_control(
95 | 'btn_url',
96 | [
97 | 'label' => esc_html__( 'Button URL', 'applab-companion' ),
98 | 'type' => Controls_Manager::URL,
99 | 'label_block' => true,
100 | 'default' => [
101 | 'url' => '#'
102 | ],
103 | ]
104 | );
105 | $this->add_control(
106 | 'phone_img',
107 | [
108 | 'label' => esc_html__( 'Phone Image', 'applab-companion' ),
109 | 'description' => esc_html__( 'Best size is 464x680', 'applab-companion' ),
110 | 'type' => Controls_Manager::MEDIA,
111 | 'label_block' => true,
112 | 'default' => [
113 | 'url' => Utils::get_placeholder_image_src(),
114 | ]
115 | ]
116 | );
117 | $this->end_controls_section(); // End Hero content
118 |
119 |
120 | /**
121 | * Style Tab
122 | * ------------------------------ Style Title ------------------------------
123 | *
124 | */
125 | $this->start_controls_section(
126 | 'style_title', [
127 | 'label' => __( 'Style Hero Section', 'applab-companion' ),
128 | 'tab' => Controls_Manager::TAB_STYLE,
129 | ]
130 | );
131 | $this->add_control(
132 | 'big_title_col', [
133 | 'label' => __( 'Title Color', 'applab-companion' ),
134 | 'type' => Controls_Manager::COLOR,
135 | 'selectors' => [
136 | '{{WRAPPER}} .slider_area .single_slider .slider_text h3' => 'color: {{VALUE}};',
137 | ],
138 | ]
139 | );
140 | $this->add_control(
141 | 'text_col', [
142 | 'label' => __( 'Text Color', 'applab-companion' ),
143 | 'type' => Controls_Manager::COLOR,
144 | 'selectors' => [
145 | '{{WRAPPER}} .slider_area .single_slider .slider_text p' => 'color: {{VALUE}};',
146 | ],
147 | ]
148 | );
149 |
150 | $this->add_control(
151 | 'button_section_separator',
152 | [
153 | 'label' => __( 'Button Styles', 'applab-companion' ),
154 | 'type' => Controls_Manager::HEADING,
155 | 'separator' => 'after',
156 | ]
157 | );
158 | $this->add_control(
159 | 'button_col', [
160 | 'label' => __( 'Button Color', 'applab-companion' ),
161 | 'type' => Controls_Manager::COLOR,
162 | 'selectors' => [
163 | '{{WRAPPER}} .slider_area .single_slider .slider_text .boxed-btn3' => 'color: {{VALUE}} !important',
164 | ],
165 | ]
166 | );
167 | $this->add_group_control(
168 | Group_Control_Background::get_type(),
169 | [
170 | 'name' => 'btn_bg_color',
171 | 'label' => __( 'Button BG Color', 'applab-companion' ),
172 | 'types' => [ 'gradient' ],
173 | 'selector' => '{{WRAPPER}} .slider_area .single_slider .slider_text .boxed-btn3',
174 | ]
175 | );
176 |
177 | $this->add_control(
178 | 'button_hover_section_separator',
179 | [
180 | 'label' => __( 'Button Hover Styles', 'applab-companion' ),
181 | 'type' => Controls_Manager::HEADING,
182 | 'separator' => 'after',
183 | ]
184 | );
185 | $this->add_control(
186 | 'button_hover_col', [
187 | 'label' => __( 'Button Hover Color', 'applab-companion' ),
188 | 'type' => Controls_Manager::COLOR,
189 | 'selectors' => [
190 | '{{WRAPPER}} .slider_area .single_slider .slider_text .boxed-btn3:hover' => 'color: {{VALUE}} !important; border-color: {{VALUE}};',
191 | ],
192 | ]
193 | );
194 | $this->add_control(
195 | 'button_hover_bg_col', [
196 | 'label' => __( 'Button Hover Bg Color', 'applab-companion' ),
197 | 'type' => Controls_Manager::COLOR,
198 | 'selectors' => [
199 | '{{WRAPPER}} .slider_area .single_slider .slider_text .boxed-btn3:hover' => 'background: {{VALUE}};',
200 | ],
201 | ]
202 | );
203 |
204 | $this->end_controls_section();
205 | }
206 |
207 | protected function render() {
208 | $settings = $this->get_settings();
209 | $bg_img = !empty( $settings['bg_img']['url'] ) ? $settings['bg_img']['url'] : '';
210 | $big_text = !empty( $settings['big_text'] ) ? $settings['big_text'] : '';
211 | $sub_title = !empty( $settings['sub_title'] ) ? $settings['sub_title'] : '';
212 | $btn_label = !empty( $settings['btn_label'] ) ? $settings['btn_label'] : '';
213 | $btn_url = !empty( $settings['btn_url']['url'] ) ? $settings['btn_url']['url'] : '';
214 | $phone_img = !empty( $settings['phone_img']['id'] ) ? wp_get_attachment_image( $settings['phone_img']['id'], 'applab_hero_right_thumb_464x680', '', array( 'alt' => 'hero phone image' ) ) : '';
215 | ?>
216 |
217 |
218 |
219 |
>
220 |
221 |
222 |
223 |
224 | '.wp_kses_post( nl2br( $big_text ) ).'';
227 | }
228 | if ( $sub_title ) {
229 | echo '
'.esc_html( $sub_title ).'
';
230 | }
231 | if ( $btn_label ) {
232 | echo '
';
233 | }
234 | ?>
235 |
236 |
237 |
246 |
247 |
248 |
249 |
250 |
251 | start_controls_section(
48 | 'countdown_content',
49 | [
50 | 'label' => __( 'Countdown Settings', 'applab-companion' ),
51 | ]
52 | );
53 | $this->add_control(
54 | 'counters', [
55 | 'label' => __( 'Create New', 'applab-companion' ),
56 | 'type' => Controls_Manager::REPEATER,
57 | 'title_field' => '{{{ counter_label }}}',
58 | 'fields' => [
59 | [
60 | 'name' => 'counter_val',
61 | 'label' => __( 'Counter Value', 'applab-companion' ),
62 | 'label_block' => true,
63 | 'type' => Controls_Manager::TEXT,
64 | 'default' => __( '520', 'applab-companion' ),
65 | ],
66 | [
67 | 'name' => 'counter_suffix',
68 | 'label' => __( 'Counter Suffix', 'applab-companion' ),
69 | 'label_block' => true,
70 | 'type' => Controls_Manager::TEXT,
71 | 'default' => __( '+', 'applab-companion' ),
72 | ],
73 | [
74 | 'name' => 'counter_label',
75 | 'label' => __( 'Counter Label', 'applab-companion' ),
76 | 'label_block' => true,
77 | 'type' => Controls_Manager::TEXT,
78 | 'default' => __( 'Total Projects', 'applab-companion' ),
79 | ],
80 | ],
81 | 'default' => [
82 | [
83 | 'counter_val' => __( '520', 'applab-companion' ),
84 | 'counter_suffix' => __( '+', 'applab-companion' ),
85 | 'counter_label' => __( 'Total Projects', 'applab-companion' ),
86 | ],
87 | [
88 | 'counter_val' => __( '244', 'applab-companion' ),
89 | 'counter_suffix' => __( '', 'applab-companion' ),
90 | 'counter_label' => __( 'On Going Projects', 'applab-companion' ),
91 | ],
92 | [
93 | 'counter_val' => __( '95', 'applab-companion' ),
94 | 'counter_suffix' => __( '%', 'applab-companion' ),
95 | 'counter_label' => __( 'Job Success', 'applab-companion' ),
96 | ],
97 | ],
98 | ]
99 | );
100 |
101 | $this->end_controls_section(); // End left content
102 |
103 | //------------------------------ Style title ------------------------------
104 |
105 | // Top Section Styles
106 | $this->start_controls_section(
107 | 'about_sec_style', [
108 | 'label' => __( 'About Section Styles', 'applab-companion' ),
109 | 'tab' => Controls_Manager::TAB_STYLE,
110 | ]
111 | );
112 |
113 | $this->add_control(
114 | 'sub_title_col', [
115 | 'label' => __( 'Sub Title Color', 'applab-companion' ),
116 | 'type' => Controls_Manager::COLOR,
117 | 'selectors' => [
118 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info h2' => 'color: {{VALUE}};',
119 | ],
120 | ]
121 | );
122 | $this->add_control(
123 | 'sec_title_col', [
124 | 'label' => __( 'Sec Title Color', 'applab-companion' ),
125 | 'type' => Controls_Manager::COLOR,
126 | 'selectors' => [
127 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info h3' => 'color: {{VALUE}};',
128 | ],
129 | ]
130 | );
131 | $this->add_control(
132 | 'sec_text_col', [
133 | 'label' => __( 'Sec Text Color', 'applab-companion' ),
134 | 'type' => Controls_Manager::COLOR,
135 | 'selectors' => [
136 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info p' => 'color: {{VALUE}};',
137 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info ul li' => 'color: {{VALUE}};',
138 | ],
139 | ]
140 | );
141 | $this->add_control(
142 | 'list_circle_col', [
143 | 'label' => __( 'List Item Icon Color', 'applab-companion' ),
144 | 'type' => Controls_Manager::COLOR,
145 | 'selectors' => [
146 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info ul li::before' => 'color: {{VALUE}};',
147 | ],
148 | ]
149 | );
150 |
151 | $this->add_control(
152 | 'btn_styles_seperator',
153 | [
154 | 'label' => esc_html__( 'Button Styles', 'applab-companion' ),
155 | 'type' => Controls_Manager::HEADING,
156 | 'separator' => 'after'
157 | ]
158 | );
159 | $this->add_control(
160 | 'btn_txt_col', [
161 | 'label' => __( 'Button Text & Border Color', 'applab-companion' ),
162 | 'type' => Controls_Manager::COLOR,
163 | 'selectors' => [
164 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info .boxed-btn3-white-2' => 'color: {{VALUE}} !important; border-color: {{VALUE}}',
165 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info .boxed-btn3-white-2:hover' => 'background: {{VALUE}} !important; border-color: transparent',
166 | ],
167 | ]
168 | );
169 | $this->add_control(
170 | 'btn_hvr_col', [
171 | 'label' => __( 'Button Hover Color', 'applab-companion' ),
172 | 'type' => Controls_Manager::COLOR,
173 | 'selectors' => [
174 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info .boxed-btn3-white-2:hover' => 'color: {{VALUE}} !important',
175 | ],
176 | ]
177 | );
178 |
179 | $this->end_controls_section();
180 |
181 | }
182 |
183 |
184 | protected function render() {
185 |
186 | // call load widget script
187 | $this->load_widget_script();
188 |
189 | $settings = $this->get_settings();
190 | $counters = !empty( $settings['counters'] ) ? $settings['counters'] : '';
191 | ?>
192 |
193 |
194 |
195 |
196 |
197 | 0 ) {
199 | foreach( $counters as $item ) {
200 | $counter_val = ( !empty( $item['counter_val'] ) ) ? $item['counter_val'] : '';
201 | $counter_suffix = ( !empty( $item['counter_suffix'] ) ) ? '
'.$item['counter_suffix'].'' : '';
202 | $counter_label = ( !empty( $item['counter_label'] ) ) ? $item['counter_label'] : '';
203 | ?>
204 |
205 |
206 |
208 |
209 | '.esc_html( $counter_val ).' '.wp_kses_post( $counter_suffix ).' ';
212 | }
213 | if ( $counter_label ) {
214 | echo ''.esc_html( $counter_label ).' ';
215 | }
216 | ?>
217 |
218 |
219 |
223 |
224 |
225 |
226 |
227 | editor->is_edit_mode() === true ) {
232 | ?>
233 |
242 | start_controls_section(
48 | 'faq_contents',
49 | [
50 | 'label' => __( 'Faq content', 'applab-companion' ),
51 | ]
52 | );
53 | $this->add_control(
54 | 'sec_title',
55 | [
56 | 'label' => esc_html__( 'Section Title', 'applab-companion' ),
57 | 'type' => Controls_Manager::TEXT,
58 | 'label_block' => true,
59 | 'default' => esc_html__( 'Frequently Ask Question', 'applab-companion' )
60 | ]
61 | );
62 |
63 | $this->add_control(
64 | 'faq_settings_seperator',
65 | [
66 | 'label' => esc_html__( 'Faq Items', 'applab-companion' ),
67 | 'type' => Controls_Manager::HEADING,
68 | 'separator' => 'after'
69 | ]
70 | );
71 |
72 | $this->add_control(
73 | 'faq_items', [
74 | 'label' => __( 'Create New', 'applab-companion' ),
75 | 'type' => Controls_Manager::REPEATER,
76 | 'title_field' => '{{{ faq_title }}}',
77 | 'fields' => [
78 | [
79 | 'name' => 'faq_title',
80 | 'label' => __( 'Faq Title', 'applab-companion' ),
81 | 'label_block' => true,
82 | 'type' => Controls_Manager::TEXTAREA,
83 | 'default' => 'Is WordPress hosting worth it?',
84 | ],
85 | [
86 | 'name' => 'faq_text',
87 | 'label' => __( 'Faq Text', 'applab-companion' ),
88 | 'label_block' => true,
89 | 'type' => Controls_Manager::TEXTAREA,
90 | 'default' => 'Our set he for firmament morning sixth subdue darkness creeping gathered divide our
91 | let god moving. Moving in fourth air night bring upon',
92 | ],
93 | ],
94 | 'default' => [
95 | [
96 | 'faq_title' => 'Is WordPress hosting worth it?',
97 | 'faq_text' => 'Our set he for firmament morning sixth subdue darkness creeping gathered divide our
98 | let god moving. Moving in fourth air night bring upon',
99 | ],
100 | [
101 | 'faq_title' => 'What are the advantages of WordPress hosting over shared?',
102 | 'faq_text' => 'Our set he for firmament morning sixth subdue darkness creeping gathered divide our
103 | let god moving. Moving in fourth air night bring upon',
104 | ],
105 | [
106 | 'faq_title' => 'Where the Venue?',
107 | 'faq_text' => 'Our set he for firmament morning sixth subdue darkness creeping gathered divide our
108 | let god moving. Moving in fourth air night bring upon',
109 | ],
110 | [
111 | 'faq_title' => 'How can I attend the Event from Asia?',
112 | 'faq_text' => 'Our set he for firmament morning sixth subdue darkness creeping gathered divide our
113 | let god moving. Moving in fourth air night bring upon',
114 | ],
115 | ]
116 | ]
117 | );
118 | $this->end_controls_section(); // End service content
119 |
120 | /**
121 | * Style Tab
122 | * ------------------------------ Style Section Heading ------------------------------
123 | *
124 | */
125 |
126 | $this->start_controls_section(
127 | 'style_room_section', [
128 | 'label' => __( 'Style Service Section', 'applab-companion' ),
129 | 'tab' => Controls_Manager::TAB_STYLE,
130 | ]
131 | );
132 | $this->add_control(
133 | 'sec_title_col', [
134 | 'label' => __( 'Section Title Color', 'applab-companion' ),
135 | 'type' => Controls_Manager::COLOR,
136 | 'selectors' => [
137 | '{{WRAPPER}} .faq_area .accordion_heading h3' => 'color: {{VALUE}};',
138 | ],
139 | ]
140 | );
141 |
142 | $this->add_control(
143 | 'inner_styles_seperator',
144 | [
145 | 'label' => esc_html__( 'Inner Styles', 'applab-companion' ),
146 | 'type' => Controls_Manager::HEADING,
147 | 'separator' => 'after'
148 | ]
149 | );
150 | $this->add_control(
151 | 'item_icon_col', [
152 | 'label' => __( 'Item Icon Color', 'applab-companion' ),
153 | 'type' => Controls_Manager::COLOR,
154 | 'selectors' => [
155 | '{{WRAPPER}} .faq_area #accordion .card h5 button i' => 'color: {{VALUE}};',
156 | ],
157 | ]
158 | );
159 | $this->add_control(
160 | 'item_title_col', [
161 | 'label' => __( 'Item Title Color', 'applab-companion' ),
162 | 'type' => Controls_Manager::COLOR,
163 | 'selectors' => [
164 | '{{WRAPPER}} .faq_area #accordion .card h5 button' => 'color: {{VALUE}};',
165 | ],
166 | ]
167 | );
168 | $this->add_control(
169 | 'item_text_col', [
170 | 'label' => __( 'Item Text Color', 'applab-companion' ),
171 | 'type' => Controls_Manager::COLOR,
172 | 'selectors' => [
173 | '{{WRAPPER}} .faq_area #accordion .card .card-body' => 'color: {{VALUE}};',
174 | ],
175 | ]
176 | );
177 | $this->end_controls_section();
178 |
179 | }
180 |
181 | protected function render() {
182 | $settings = $this->get_settings();
183 | $sec_title = !empty( $settings['sec_title'] ) ? $settings['sec_title'] : '';
184 | $faq_items = !empty( $settings['faq_items'] ) ? $settings['faq_items'] : '';
185 | $info_icon = APPLAB_DIR_IMGS_URI . 'info-icon.png';
186 | ?>
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 | {$sec_title}";
197 | }
198 | ?>
199 |
200 |
201 |
202 |
203 |
204 |
205 | 0 ) {
207 | foreach( $faq_items as $item ) {
208 | $faq_id = ( !empty( $item['_id'] ) ) ? esc_attr($item['_id']) : '';
209 | $faq_title = ( !empty( $item['faq_title'] ) ) ? wp_kses_post( nl2br($item['faq_title']) ) : '';
210 | $faq_text = ( !empty( $item['faq_text'] ) ) ? wp_kses_post( nl2br($item['faq_text']) ) : '';
211 | ?>
212 |
226 |
230 |
231 |
232 |
233 |
234 |
235 |
236 | start_controls_section(
48 | 'apps_content',
49 | [
50 | 'label' => __( 'App Section Settings', 'applab-companion' ),
51 | ]
52 | );
53 | $this->add_control(
54 | 'sec_img',
55 | [
56 | 'label' => esc_html__( 'Section Image', 'applab-companion' ),
57 | 'description' => esc_html__( 'Best size is 1920x456', 'applab-companion' ),
58 | 'type' => Controls_Manager::MEDIA,
59 | 'label_block' => true,
60 | 'default' => [
61 | 'url' => Utils::get_placeholder_image_src(),
62 | ]
63 | ]
64 | );
65 | $this->add_control(
66 | 'sec_title',
67 | [
68 | 'label' => esc_html__( 'Section Title', 'applab-companion' ),
69 | 'type' => Controls_Manager::TEXTAREA,
70 | 'label_block' => true,
71 | 'default' => 'Get start from now
and increase productivity',
72 | ]
73 | );
74 | $this->add_control(
75 | 'ios_url',
76 | [
77 | 'label' => esc_html__( 'IOS App URL', 'applab-companion' ),
78 | 'type' => Controls_Manager::URL,
79 | 'label_block' => true,
80 | 'default' => [
81 | 'url' => '#'
82 | ],
83 | ]
84 | );
85 | $this->add_control(
86 | 'android_url',
87 | [
88 | 'label' => esc_html__( 'Android App URL', 'applab-companion' ),
89 | 'type' => Controls_Manager::URL,
90 | 'label_block' => true,
91 | 'default' => [
92 | 'url' => '#'
93 | ],
94 | ]
95 | );
96 |
97 | $this->end_controls_section(); // End left content
98 |
99 | //------------------------------ Style title ------------------------------
100 |
101 | // Top Section Styles
102 | $this->start_controls_section(
103 | 'about_sec_style', [
104 | 'label' => __( 'About Section Styles', 'applab-companion' ),
105 | 'tab' => Controls_Manager::TAB_STYLE,
106 | ]
107 | );
108 |
109 | $this->add_control(
110 | 'sub_title_col', [
111 | 'label' => __( 'Sub Title Color', 'applab-companion' ),
112 | 'type' => Controls_Manager::COLOR,
113 | 'selectors' => [
114 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info h2' => 'color: {{VALUE}};',
115 | ],
116 | ]
117 | );
118 | $this->add_control(
119 | 'sec_title_col', [
120 | 'label' => __( 'Sec Title Color', 'applab-companion' ),
121 | 'type' => Controls_Manager::COLOR,
122 | 'selectors' => [
123 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info h3' => 'color: {{VALUE}};',
124 | ],
125 | ]
126 | );
127 | $this->add_control(
128 | 'sec_text_col', [
129 | 'label' => __( 'Sec Text Color', 'applab-companion' ),
130 | 'type' => Controls_Manager::COLOR,
131 | 'selectors' => [
132 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info p' => 'color: {{VALUE}};',
133 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info ul li' => 'color: {{VALUE}};',
134 | ],
135 | ]
136 | );
137 | $this->add_control(
138 | 'list_circle_col', [
139 | 'label' => __( 'List Item Icon Color', 'applab-companion' ),
140 | 'type' => Controls_Manager::COLOR,
141 | 'selectors' => [
142 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info ul li::before' => 'color: {{VALUE}};',
143 | ],
144 | ]
145 | );
146 |
147 | $this->add_control(
148 | 'btn_styles_seperator',
149 | [
150 | 'label' => esc_html__( 'Button Styles', 'applab-companion' ),
151 | 'type' => Controls_Manager::HEADING,
152 | 'separator' => 'after'
153 | ]
154 | );
155 | $this->add_control(
156 | 'btn_txt_col', [
157 | 'label' => __( 'Button Text & Border Color', 'applab-companion' ),
158 | 'type' => Controls_Manager::COLOR,
159 | 'selectors' => [
160 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info .boxed-btn3-white-2' => 'color: {{VALUE}} !important; border-color: {{VALUE}}',
161 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info .boxed-btn3-white-2:hover' => 'background: {{VALUE}} !important; border-color: transparent',
162 | ],
163 | ]
164 | );
165 | $this->add_control(
166 | 'btn_hvr_col', [
167 | 'label' => __( 'Button Hover Color', 'applab-companion' ),
168 | 'type' => Controls_Manager::COLOR,
169 | 'selectors' => [
170 | '{{WRAPPER}} .welcome_applab_area .welcome_applab_info .boxed-btn3-white-2:hover' => 'color: {{VALUE}} !important',
171 | ],
172 | ]
173 | );
174 |
175 | $this->end_controls_section();
176 |
177 | }
178 |
179 | public function applab_left_contents( $sec_title, $sec_text, $btn_label, $btn_url, $style_type ) {
180 | $dynamic_class = ( $style_type == 'style_1' ) ? 'features_info2' : 'features_info';
181 | $col_class = ( $style_type == 'style_1' ) ? 'col-xl-5 col-lg-5 col-md-6' : 'col-xl-6 col-lg-6 col-md-6';
182 | ?>
183 |
184 |
185 | '.wp_kses_post( nl2br($sec_title) ).'';
188 | }
189 | if ( $sec_text ) {
190 | echo wpautop( $sec_text );
191 | }
192 | if ( $btn_label ) {
193 | echo '
';
196 | }
197 | ?>
198 |
199 |
200 |
207 |
216 | get_settings();
222 | $sec_img = !empty( $settings['sec_img']['url'] ) ? $settings['sec_img']['url'] : '';
223 | $sec_title = !empty( $settings['sec_title'] ) ? $settings['sec_title'] : '';
224 | $ios_url = !empty( $settings['ios_url']['url'] ) ? $settings['ios_url']['url'] : '';
225 | $android_url = !empty( $settings['android_url']['url'] ) ? $settings['android_url']['url'] : '';
226 | $ios_app_path = APPLAB_DIR_ICON_IMG_URI . 'ios-app.svg';
227 | $android_app_path = APPLAB_DIR_ICON_IMG_URI . 'android-app.svg';
228 | ?>
229 |
230 |
231 | >
232 |
233 |
234 |
235 | '.wp_kses_post( nl2br($sec_title) ).'';
238 | }
239 | ?>
240 |
241 |
242 |
243 |
.')
';
246 | }
247 | if ( $android_url ) {
248 | echo '
.')
';
249 | }
250 | ?>
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 | \
189 | \
190 | \
191 | ');
192 |
193 | self.$node.append($YTPlayerString);
194 | self.$YTPlayerString = $YTPlayerString;
195 | $YTPlayerString = null;
196 | },
197 |
198 | /**
199 | * @function createBackgroundVideo
200 | * Adds HTML for video background
201 | */
202 | createBackgroundVideo: function createBackgroundVideo() {
203 | /*jshint multistr: true */
204 | var self = this,
205 | $YTPlayerString = $('\
208 | ');
209 |
210 | self.$node.append($YTPlayerString);
211 | self.$YTPlayerString = $YTPlayerString;
212 | $YTPlayerString = null;
213 | },
214 |
215 | /**
216 | * @function resize
217 | * Resize event to change video size
218 | */
219 | resize: function resize(self) {
220 | //var self = this;
221 | var container = $(window);
222 |
223 | if (!self.options.fitToBackground) {
224 | container = self.$node;
225 | }
226 |
227 | var width = container.width(),
228 | pWidth, // player width, to be defined
229 | height = container.height(),
230 | pHeight, // player height, tbd
231 | $YTPlayerPlayer = $('#' + self.holderID);
232 |
233 | // when screen aspect ratio differs from video, video must center and underlay one dimension
234 | if (width / self.options.ratio < height) {
235 | pWidth = Math.ceil(height * self.options.ratio); // get new player width
236 | $YTPlayerPlayer.width(pWidth).height(height).css({
237 | left: (width - pWidth) / 2,
238 | top: 0
239 | }); // player width is greater, offset left; reset top
240 | } else { // new video width < window width (gap to right)
241 | pHeight = Math.ceil(width / self.options.ratio); // get new player height
242 | $YTPlayerPlayer.width(width).height(pHeight).css({
243 | left: 0,
244 | top: (height - pHeight) / 2
245 | }); // player height is greater, offset top; reset left
246 | }
247 |
248 | $YTPlayerPlayer = null;
249 | container = null;
250 | },
251 |
252 | /**
253 | * @function onYouTubeIframeAPIReady
254 | * @ params {object} YTPlayer object for access to options
255 | * Youtube API calls this function when the player is ready.
256 | */
257 | onYouTubeIframeAPIReady: function onYouTubeIframeAPIReady() {
258 | var self = this;
259 | self.player = new window.YT.Player(self.holderID, self.options);
260 | },
261 |
262 | /**
263 | * @function onPlayerReady
264 | * @ params {event} window event from youtube player
265 | */
266 | onPlayerReady: function onPlayerReady(e) {
267 | if (this.options.mute) {
268 | e.target.mute();
269 | }
270 | e.target.playVideo();
271 | },
272 |
273 | /**
274 | * @function getPlayer
275 | * returns youtube player
276 | */
277 | getPlayer: function getPlayer() {
278 | return this.player;
279 | },
280 |
281 | /**
282 | * @function destroy
283 | * destroys all!
284 | */
285 | destroy: function destroy() {
286 | var self = this;
287 |
288 | self.$node
289 | .removeData('yt-init')
290 | .removeData('ytPlayer')
291 | .removeClass('loaded');
292 |
293 | self.$YTPlayerString.remove();
294 |
295 | $(window).off('resize.YTplayer' + self.ID);
296 | $(window).off('scroll.YTplayer' + self.ID);
297 | self.$body = null;
298 | self.$node = null;
299 | self.$YTPlayerString = null;
300 | self.player.destroy();
301 | self.player = null;
302 | }
303 | };
304 |
305 | // Scroll Stopped event.
306 | $.fn.scrollStopped = function(callback) {
307 | var $this = $(this), self = this;
308 | $this.scroll(function(){
309 | if ($this.data('scrollTimeout')) {
310 | clearTimeout($this.data('scrollTimeout'));
311 | }
312 | $this.data('scrollTimeout', setTimeout(callback,250,self));
313 | });
314 | };
315 |
316 | // Create plugin
317 | $.fn.YTPlayer = function(options) {
318 |
319 | return this.each(function() {
320 | var el = this;
321 |
322 | $(el).data("yt-init", true);
323 | var player = Object.create(YTPlayer);
324 | player.init(el, options);
325 | $.data(el, "ytPlayer", player);
326 | });
327 | };
328 |
329 | })(jQuery, window, document);
--------------------------------------------------------------------------------