BlossomThemes Toolkit - Version 2.2.2

Version Description

Released on: 28th July, 2021

Enhancements: * WordPress 5.8 compatibility fixes for widgets.

Fixes: * Minor bug fixes.

Download this release

Release Info

Developer blossomthemes
Plugin Icon 128x128 BlossomThemes Toolkit
Version 2.2.2
Comparing to
See all releases

Code changes from version 2.2.1 to 2.2.2

README.txt CHANGED
@@ -1,228 +1,237 @@
1
- === BlossomThemes Toolkit ===
2
- Contributors: blossomthemes
3
- Donate link: https://blossomthemes.com
4
- Tags: toolkit, blossom
5
- Requires at least: 4.4.0
6
- Tested up to: 5.7
7
- Requires PHP: 5.6
8
- Stable tag: 2.2.1
9
- License: GPLv2 or later
10
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
-
12
- BlossomThemes Toolkit provides you necessary widgets for better and effective blogging.
13
-
14
- == Description ==
15
-
16
- BlossomThemes Toolkit is a lightweight and safe plugin that generates 12 much-necessary custom widgets. This plugin is optimized for BlossomTheme’s themes but also works great with other themes.
17
-
18
- = Widgets included in BlossomThemes Toolkit =
19
-
20
- * Blossom: Advertisement-- This widget lets you add advertisements on your website.
21
- * Blossom: Author Bio-- You can place the author bio on sidebars using this widget.
22
- * Blossom: Custom Categories-- You can add images to the categories and also display post counts of the selected category using this widget.
23
- * Blossom: Facebook Page-- This widget allows you to show your Facebook page on your WordPress website.
24
- * Blossom: Image Text-- You can add your favorite image with caption and link with this widget.
25
- * Blossom: Pinterest-- This widget lets you show your latest pins on your WordPress website.
26
- * Blossom: Popular Post- This widget helps you show popular posts of your website.
27
- * Blossom: Posts Category Slider-- You can display the posts of selected category in a slider using this widget.
28
- * Blossom: Recent Post-- This widget helps you display recent posts of your website.
29
- * Blossom: Snapchat Snapcode-- You can show your Snapchat’s snapcode using this widget.
30
- * Blossom: Social Media-- This widget allows you to add social media links on your website.
31
- * Blossom: Twitter Feed-- You can now show your twitter news feed right on your website using this widget
32
-
33
-
34
-
35
- == Installation ==
36
- **From your WordPress dashboard**
37
-
38
- 1. Visit 'Plugins > Add New',
39
- 2. Search for 'BlossomThemes Toolkit' and install the plugin.
40
- 3. Activate ‘BlossomThemes Toolkit’ from your Plugins page.
41
-
42
-
43
- == Screenshots ==
44
-
45
- 1. Widgets
46
-
47
- == Changelog ==
48
-
49
- = 2.2.1 =
50
-
51
- Released on: 24th March, 2021
52
-
53
- Enhancements:
54
-
55
- * WordPress 5.7 compatibility test added.
56
- * Flush rewrite conditional added.
57
- * rel noopener noexternal support added to external widget links.
58
- * Admin JS support added for Posts and Pages in favor of Elementor.
59
-
60
- Fixes:
61
-
62
- * Featured Page widget conflict resolved with Elementor.
63
- * jQuery deprication warning fixes.
64
- * Minor bug fixes.
65
-
66
- = 2.2.0 =
67
-
68
- Released on: 20th August, 2020
69
-
70
- Fixes:
71
-
72
- * Social Media widget icon issue resolved.
73
- * Client Logo widget issue resolved.
74
- * Minor bug fixes.
75
-
76
- = 2.1.9 =
77
-
78
- Released on: 9th July, 2020
79
-
80
- Fixes:
81
-
82
- * Thumbnail image for posts category issue resolved.
83
- * Minor bug fixes.
84
-
85
- = 2.1.8 =
86
-
87
- Released on: 2nd July, 2020
88
-
89
- Fixes:
90
-
91
- * FontAwesome assets loaded on Blossomthemes Toolkit admin pages.
92
- * Minor bug fixes.
93
-
94
- = 2.1.7 =
95
-
96
- Released on: 3rd May, 2020
97
-
98
- Enhancements:
99
-
100
- * Plugin registered Post type and Taxonomy strings translated
101
-
102
- Fixes:
103
-
104
- * Plugin registered Page Template update failed issue in Gutenberg fixed.
105
- * Minor bug fixes.
106
-
107
- = 2.1.6 =
108
-
109
- Released on: 7th January, 2020
110
-
111
- Fixes:
112
-
113
- * Changes for Elementor Compatibility.
114
- * Minor bug fixes.
115
-
116
- = 2.1.5 =
117
-
118
- Released on: 18th November, 2019
119
-
120
- Fixes:
121
-
122
- * Image Alignmnet issue in Featured Page Widget fixed
123
- * Minor bug fixes.
124
-
125
- = 2.1.4 =
126
-
127
- Released on: 15th November, 2019
128
-
129
- Enhancements:
130
-
131
- * Posts date format specified to the default date_format option
132
- * Compatibility testing WordPress 5.3.
133
- * Added Rest API support for Portfolio post type and categories.
134
-
135
- Fixes:
136
-
137
- * Icons List issue in Elementor fixed
138
- * Fixed JS error in Customizer.
139
- * Minor Bug Fixes
140
-
141
- = 2.1.3 =
142
-
143
- Released on: 26th September, 2019
144
-
145
- Fixes:
146
-
147
- * Popular and Recent Post thumbnail issue fixed.
148
- * Minor bug fixes.
149
-
150
- Enhancement:
151
-
152
- * Enqueued widget scripts in elementor edit screen Interface.
153
- * SVG updated for no featured images.
154
- * Filters added for theme support.
155
-
156
- = 2.1.2 =
157
- * CSS conflict issue fixed
158
- * Assets handler corrected
159
-
160
- = 2.1.1 =
161
- * Fontawesome 5.6.3 updated
162
- * Portfolio responsive design issue fixed
163
-
164
- = 2.1.0 =
165
- * Featured Page Widget Issue fixed
166
-
167
- = 2.0.9 =
168
- * Images optimized for lazy-loading
169
- * Portfolio locate template path updated
170
-
171
- = 2.0.8 =
172
- * Ad widget issue fixed
173
-
174
- = 2.0.7 =
175
- * Call-to-Action Bgcolor issue fixed
176
- * Twitter Syndication js issue fixed
177
-
178
- = 2.0.6 =
179
- * Filter for all the widgets
180
- * Client Logo issue fixed
181
-
182
- = 2.0.5 =
183
- * Fixed Featured Page widget issue
184
-
185
- = 2.0.4 =
186
- * Anchor link target set in featured page, image text and team member widget
187
- * Fixed empty twitter username issue
188
- * Fixed multiple widgets repeater conflicts in image text, call to action and client logo widget
189
- * Loading assets in active widget instances only
190
-
191
- = 2.0.3 =
192
- * Filter for frontend assets
193
-
194
- = 2.0.2 =
195
- * FontAwesome 5 integration issues fixed
196
-
197
- = 2.0.1 =
198
- * FontAwesome 5 plugin independent
199
-
200
- = 2.0.0 =
201
- * FontAwesome 5 integrated
202
-
203
- = 1.0.8 =
204
- * Author profile widget issues fix
205
-
206
- = 1.0.7 =
207
- * Widget image url changed to id
208
-
209
- = 1.0.6 =
210
- * Widget image url changed to id
211
-
212
- = 1.0.5 =
213
- * Minor design fixes
214
-
215
- = 1.0.4 =
216
- * More widget added
217
-
218
- = 1.0.3 =
219
- * Custom categories widget
220
-
221
- = 1.0.2 =
222
- * Compatibility test
223
-
224
- = 1.0.1 =
225
- * Compatibility test
226
-
227
- = 1.0.0 =
 
 
 
 
 
 
 
 
 
228
  * Initial release
1
+ === BlossomThemes Toolkit ===
2
+ Contributors: blossomthemes
3
+ Donate link: https://blossomthemes.com
4
+ Tags: toolkit, blossom
5
+ Requires at least: 4.4.0
6
+ Tested up to: 5.9
7
+ Requires PHP: 5.6
8
+ Stable tag: 2.2.2
9
+ License: GPLv2 or later
10
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
+
12
+ BlossomThemes Toolkit provides you necessary widgets for better and effective blogging.
13
+
14
+ == Description ==
15
+
16
+ BlossomThemes Toolkit is a lightweight and safe plugin that generates 12 much-necessary custom widgets. This plugin is optimized for BlossomTheme’s themes but also works great with other themes.
17
+
18
+ = Widgets included in BlossomThemes Toolkit =
19
+
20
+ * Blossom: Advertisement-- This widget lets you add advertisements on your website.
21
+ * Blossom: Author Bio-- You can place the author bio on sidebars using this widget.
22
+ * Blossom: Custom Categories-- You can add images to the categories and also display post counts of the selected category using this widget.
23
+ * Blossom: Facebook Page-- This widget allows you to show your Facebook page on your WordPress website.
24
+ * Blossom: Image Text-- You can add your favorite image with caption and link with this widget.
25
+ * Blossom: Pinterest-- This widget lets you show your latest pins on your WordPress website.
26
+ * Blossom: Popular Post- This widget helps you show popular posts of your website.
27
+ * Blossom: Posts Category Slider-- You can display the posts of selected category in a slider using this widget.
28
+ * Blossom: Recent Post-- This widget helps you display recent posts of your website.
29
+ * Blossom: Snapchat Snapcode-- You can show your Snapchat’s snapcode using this widget.
30
+ * Blossom: Social Media-- This widget allows you to add social media links on your website.
31
+ * Blossom: Twitter Feed-- You can now show your twitter news feed right on your website using this widget
32
+
33
+
34
+
35
+ == Installation ==
36
+ **From your WordPress dashboard**
37
+
38
+ 1. Visit 'Plugins > Add New',
39
+ 2. Search for 'BlossomThemes Toolkit' and install the plugin.
40
+ 3. Activate ‘BlossomThemes Toolkit’ from your Plugins page.
41
+
42
+
43
+ == Screenshots ==
44
+
45
+ 1. Widgets
46
+
47
+ == Changelog ==
48
+
49
+ = 2.2.2 =
50
+ Released on: 28th July, 2021
51
+
52
+ Enhancements:
53
+ * WordPress 5.8 compatibility fixes for widgets.
54
+
55
+ Fixes:
56
+ * Minor bug fixes.
57
+
58
+ = 2.2.1 =
59
+
60
+ Released on: 24th March, 2021
61
+
62
+ Enhancements:
63
+
64
+ * WordPress 5.7 compatibility test added.
65
+ * Flush rewrite conditional added.
66
+ * rel noopener noexternal support added to external widget links.
67
+ * Admin JS support added for Posts and Pages in favor of Elementor.
68
+
69
+ Fixes:
70
+
71
+ * Featured Page widget conflict resolved with Elementor.
72
+ * jQuery deprication warning fixes.
73
+ * Minor bug fixes.
74
+
75
+ = 2.2.0 =
76
+
77
+ Released on: 20th August, 2020
78
+
79
+ Fixes:
80
+
81
+ * Social Media widget icon issue resolved.
82
+ * Client Logo widget issue resolved.
83
+ * Minor bug fixes.
84
+
85
+ = 2.1.9 =
86
+
87
+ Released on: 9th July, 2020
88
+
89
+ Fixes:
90
+
91
+ * Thumbnail image for posts category issue resolved.
92
+ * Minor bug fixes.
93
+
94
+ = 2.1.8 =
95
+
96
+ Released on: 2nd July, 2020
97
+
98
+ Fixes:
99
+
100
+ * FontAwesome assets loaded on Blossomthemes Toolkit admin pages.
101
+ * Minor bug fixes.
102
+
103
+ = 2.1.7 =
104
+
105
+ Released on: 3rd May, 2020
106
+
107
+ Enhancements:
108
+
109
+ * Plugin registered Post type and Taxonomy strings translated
110
+
111
+ Fixes:
112
+
113
+ * Plugin registered Page Template update failed issue in Gutenberg fixed.
114
+ * Minor bug fixes.
115
+
116
+ = 2.1.6 =
117
+
118
+ Released on: 7th January, 2020
119
+
120
+ Fixes:
121
+
122
+ * Changes for Elementor Compatibility.
123
+ * Minor bug fixes.
124
+
125
+ = 2.1.5 =
126
+
127
+ Released on: 18th November, 2019
128
+
129
+ Fixes:
130
+
131
+ * Image Alignmnet issue in Featured Page Widget fixed
132
+ * Minor bug fixes.
133
+
134
+ = 2.1.4 =
135
+
136
+ Released on: 15th November, 2019
137
+
138
+ Enhancements:
139
+
140
+ * Posts date format specified to the default date_format option
141
+ * Compatibility testing WordPress 5.3.
142
+ * Added Rest API support for Portfolio post type and categories.
143
+
144
+ Fixes:
145
+
146
+ * Icons List issue in Elementor fixed
147
+ * Fixed JS error in Customizer.
148
+ * Minor Bug Fixes
149
+
150
+ = 2.1.3 =
151
+
152
+ Released on: 26th September, 2019
153
+
154
+ Fixes:
155
+
156
+ * Popular and Recent Post thumbnail issue fixed.
157
+ * Minor bug fixes.
158
+
159
+ Enhancement:
160
+
161
+ * Enqueued widget scripts in elementor edit screen Interface.
162
+ * SVG updated for no featured images.
163
+ * Filters added for theme support.
164
+
165
+ = 2.1.2 =
166
+ * CSS conflict issue fixed
167
+ * Assets handler corrected
168
+
169
+ = 2.1.1 =
170
+ * Fontawesome 5.6.3 updated
171
+ * Portfolio responsive design issue fixed
172
+
173
+ = 2.1.0 =
174
+ * Featured Page Widget Issue fixed
175
+
176
+ = 2.0.9 =
177
+ * Images optimized for lazy-loading
178
+ * Portfolio locate template path updated
179
+
180
+ = 2.0.8 =
181
+ * Ad widget issue fixed
182
+
183
+ = 2.0.7 =
184
+ * Call-to-Action Bgcolor issue fixed
185
+ * Twitter Syndication js issue fixed
186
+
187
+ = 2.0.6 =
188
+ * Filter for all the widgets
189
+ * Client Logo issue fixed
190
+
191
+ = 2.0.5 =
192
+ * Fixed Featured Page widget issue
193
+
194
+ = 2.0.4 =
195
+ * Anchor link target set in featured page, image text and team member widget
196
+ * Fixed empty twitter username issue
197
+ * Fixed multiple widgets repeater conflicts in image text, call to action and client logo widget
198
+ * Loading assets in active widget instances only
199
+
200
+ = 2.0.3 =
201
+ * Filter for frontend assets
202
+
203
+ = 2.0.2 =
204
+ * FontAwesome 5 integration issues fixed
205
+
206
+ = 2.0.1 =
207
+ * FontAwesome 5 plugin independent
208
+
209
+ = 2.0.0 =
210
+ * FontAwesome 5 integrated
211
+
212
+ = 1.0.8 =
213
+ * Author profile widget issues fix
214
+
215
+ = 1.0.7 =
216
+ * Widget image url changed to id
217
+
218
+ = 1.0.6 =
219
+ * Widget image url changed to id
220
+
221
+ = 1.0.5 =
222
+ * Minor design fixes
223
+
224
+ = 1.0.4 =
225
+ * More widget added
226
+
227
+ = 1.0.3 =
228
+ * Custom categories widget
229
+
230
+ = 1.0.2 =
231
+ * Compatibility test
232
+
233
+ = 1.0.1 =
234
+ * Compatibility test
235
+
236
+ = 1.0.0 =
237
  * Initial release
admin/class-blossomthemes-toolkit-admin.php CHANGED
@@ -1,521 +1,521 @@
1
- <?php
2
-
3
- /**
4
- * The admin-specific functionality of the plugin.
5
- *
6
- * @link http://wordpress.org/plugins/blossomthemes-toolkit/
7
- * @since 1.0.0
8
- *
9
- * @package Blossomthemes_Toolkit
10
- * @subpackage Blossomthemes_Toolkit/admin
11
- */
12
-
13
- /**
14
- * The admin-specific functionality of the plugin.
15
- *
16
- * Defines the plugin name, version, and two examples hooks for how to
17
- * enqueue the admin-specific stylesheet and JavaScript.
18
- *
19
- * @package Blossomthemes_Toolkit
20
- * @subpackage Blossomthemes_Toolkit/admin
21
- * @author blossomthemes <info@blossomthemes.com>
22
- */
23
- class Blossomthemes_Toolkit_Admin {
24
-
25
- /**
26
- * The ID of this plugin.
27
- *
28
- * @since 1.0.0
29
- * @access private
30
- * @var string $plugin_name The ID of this plugin.
31
- */
32
- private $plugin_name;
33
-
34
- /**
35
- * The version of this plugin.
36
- *
37
- * @since 1.0.0
38
- * @access private
39
- * @var string $version The current version of this plugin.
40
- */
41
- private $version;
42
-
43
- /**
44
- * Initialize the class and set its properties.
45
- *
46
- * @since 1.0.0
47
- * @param string $plugin_name The name of this plugin.
48
- * @param string $version The version of this plugin.
49
- */
50
- public function __construct( $plugin_name, $version ) {
51
-
52
- $this->plugin_name = $plugin_name;
53
- $this->version = BTTK_PLUGIN_VERSION;
54
-
55
- }
56
-
57
- /**
58
- * Register the stylesheets for the admin area.
59
- *
60
- * @since 1.0.0
61
- */
62
- public function enqueue_styles() {
63
-
64
- /**
65
- * This function is provided for demonstration purposes only.
66
- *
67
- * An instance of this class should be passed to the run() function
68
- * defined in Blossomthemes_Toolkit_Loader as all of the hooks are defined
69
- * in that particular class.
70
- *
71
- * The Blossomthemes_Toolkit_Loader will then create the relationship
72
- * between the defined hooks and the functions defined in this
73
- * class.
74
- */
75
-
76
- $screen = get_current_screen();
77
-
78
- $post_types = array( 'blossom-portfolio', 'post', 'page' );
79
- $page_ids = array( 'widgets', 'customize' );
80
-
81
- if ( in_array( $screen->post_type, $post_types ) || in_array( $screen->id, $page_ids ) ) {
82
- wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/blossomthemes-toolkit-admin.css', array(), $this->version, 'all' );
83
- wp_enqueue_style( 'chosen', plugin_dir_url( __FILE__ ) . 'css/chosen.min.css', array(), $this->version, 'all' );
84
- wp_enqueue_style( 'wp-color-picker' );
85
- wp_enqueue_style('thickbox');
86
- }
87
-
88
- }
89
-
90
- /**
91
- * Register the JavaScript for the admin area.
92
- *
93
- * @since 1.0.0
94
- */
95
- public function enqueue_scripts() {
96
-
97
- /**
98
- * This function is provided for demonstration purposes only.
99
- *
100
- * An instance of this class should be passed to the run() function
101
- * defined in Blossomthemes_Toolkit_Loader as all of the hooks are defined
102
- * in that particular class.
103
- *
104
- * The Blossomthemes_Toolkit_Loader will then create the relationship
105
- * between the defined hooks and the functions defined in this
106
- * class.
107
- */
108
- $screen = get_current_screen();
109
-
110
- $post_types = array( 'blossom-portfolio', 'post', 'page' );
111
- $page_ids = array( 'widgets', 'customize' );
112
-
113
- if ( in_array( $screen->post_type, $post_types ) || in_array( $screen->id, $page_ids ) ) {
114
- wp_enqueue_media();
115
- wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/blossomthemes-toolkit-admin.js', array( 'jquery','wp-color-picker' ), $this->version, true );
116
- wp_localize_script( $this->plugin_name, 'bttk_theme_toolkit_pro_uploader', array(
117
- 'upload' => __( 'Upload', 'blossomthemes-toolkit' ),
118
- 'change' => __( 'Change', 'blossomthemes-toolkit' ),
119
- 'msg' => __( 'Please upload valid image file.', 'blossomthemes-toolkit' )
120
- ));
121
- $confirming = array(
122
- 'msg' => __( 'Are you sure?', 'blossomthemes-toolkit' ),
123
- 'category' => __('Select Categories','blossomthemes-toolkit')
124
- );
125
- wp_localize_script( $this->plugin_name, 'sociconsmsg', $confirming );
126
-
127
- wp_localize_script( $this->plugin_name, 'sociconsmsg', array(
128
- 'msg' => __( 'Are you sure you want to delete this Social Media?', 'blossomthemes-toolkit' )));
129
-
130
- wp_enqueue_script( 'chosen', plugin_dir_url( __FILE__ ) . 'js/chosen.jquery.min.js', array( 'jquery' ), $this->version, true );
131
-
132
- wp_enqueue_script( 'font-awesome', plugin_dir_url( __FILE__ ) . 'js/fontawesome/all.js', array( 'jquery'), '5.6.3', true );
133
- wp_enqueue_script( 'v4-shims', plugin_dir_url( __FILE__ ) . 'js/fontawesome/v4-shims.js', array( 'jquery'), '5.6.3', true );
134
- }
135
- }
136
-
137
- public function bttk_icon_list_enqueue(){
138
- $obj = new BlossomThemes_Toolkit_Functions;
139
- $socicons = $obj->bttk_icon_list();
140
- echo '<div class="bttk-icons-wrap-template"><div class="bttk-icons-wrap"><ul class="bttk-icons-list">';
141
- foreach ($socicons as $socicon) {
142
- if($socicon == 'rss'){
143
- echo '<li><i class="fas fa-'.$socicon.'"></i></li>';
144
- }
145
- else{
146
- echo '<li><i class="fab fa-'.$socicon.'"></i></li>';
147
- }
148
-
149
- }
150
- echo'</ul></div></div>';
151
- echo '<style>
152
- .bttk-icons-wrap{
153
- display:none;
154
- }
155
- </style>';
156
- }
157
-
158
- /**
159
- * Portfolio template.
160
- */
161
- function bttk_get_portfolio_template( $template ) {
162
- $post = get_post();
163
- $page_template = get_post_meta( $post->ID, '_wp_page_template', true );
164
- if( $page_template == 'templates/blossom-portfolio.php' ){
165
- if ( $theme_file = locate_template( 'templates/blossom-portfolio.php' ) ) {
166
- return $theme_file;
167
- } else {
168
- return BTTK_BASE_PATH . '/includes/templates/blossom-portfolio.php';
169
- }
170
- }
171
- return $template;
172
- }
173
-
174
- /**
175
- * Portfolio template returned.
176
- */
177
- function bttk_filter_admin_page_templates( $templates ) {
178
- $templates['templates/blossom-portfolio.php'] = __( 'Portfolio Template', 'blossomthemes-toolkit' );
179
- return $templates;
180
- }
181
-
182
- /**
183
- * Portfolio template added.
184
- */
185
- function wpte_add_portfolio_templates() {
186
-
187
- // If REST_REQUEST is defined (by WordPress) and is a TRUE, then it's a REST API request.
188
- $is_rest_route = (defined('REST_REQUEST') && REST_REQUEST);
189
- if (
190
- (is_admin() && !$is_rest_route) || // admin and AJAX (via admin-ajax.php) requests
191
- (!is_admin() && $is_rest_route) // REST requests only
192
- ) {
193
- add_filter('theme_page_templates', array($this, 'bttk_filter_admin_page_templates'));
194
- } else {
195
- add_filter('page_template', array($this, 'bttk_get_portfolio_template'));
196
- }
197
-
198
- }
199
-
200
- /**
201
- * Template over-ride for single trip.
202
- *
203
- * @since 1.0.0
204
- */
205
- function bttk_include_template_function( $template_path ) {
206
- if ( is_singular( 'blossom-portfolio' ) )
207
- {
208
- if ( $theme_file = locate_template( 'single-blossom-portfolio.php' ) ) {
209
- $template_path = $theme_file;
210
- } else {
211
- $template_path = BTTK_BASE_PATH . '/includes/templates/single-blossom-portfolio.php';
212
- }
213
- }
214
- return $template_path;
215
- }
216
- /*
217
- * Add a form field in the new category page
218
- * @since 1.0.0
219
- */
220
- public function bttk_add_category_image ( $taxonomy ) { ?>
221
- <div class="form-field term-group">
222
- <label for="category-image-id"><?php _e('Image', 'blossomthemes-toolkit'); ?></label>
223
- <input type="hidden" id="category-image-id" name="category-image-id" class="custom_media_url" value="">
224
- <div id="category-image-wrapper"></div>
225
- <p>
226
- <input type="button" class="button button-secondary bttk_tax_media_button" id="bttk_tax_media_button" name="bttk_tax_media_button" value="<?php _e( 'Add Image', 'blossomthemes-toolkit' ); ?>" />
227
- <input type="button" class="button button-secondary bttk_tax_media_remove" id="bttk_tax_media_remove" name="bttk_tax_media_remove" value="<?php _e( 'Remove Image', 'blossomthemes-toolkit' ); ?>" />
228
- </p>
229
- </div>
230
- <?php
231
- }
232
-
233
- /*
234
- * Save the form field
235
- * @since 1.0.0
236
- */
237
- public function bttk_save_category_image ( $term_id ) {
238
- if( isset( $_POST['category-image-id'] ) && '' !== $_POST['category-image-id'] ){
239
- $image = $_POST['category-image-id'];
240
- add_term_meta( $term_id, 'category-image-id', $image, true );
241
- }
242
- }
243
-
244
- /*
245
- * Edit the form field
246
- * @since 1.0.0
247
- */
248
- public function bttk_update_category_image ( $term, $taxonomy='' ) { ?>
249
- <tr class="form-field term-group-wrap">
250
- <th scope="row">
251
- <label for="category-image-id"><?php _e( 'Image', 'blossomthemes-toolkit' ); ?></label>
252
- </th>
253
- <td>
254
- <?php $image_id = get_term_meta ( $term -> term_id, 'category-image-id', true ); ?>
255
- <input type="hidden" id="category-image-id" name="category-image-id" value="<?php echo $image_id; ?>">
256
- <div id="category-image-wrapper">
257
- <?php if ( isset( $image_id ) && $image_id!='' ) { ?>
258
- <?php echo wp_get_attachment_image ( $image_id, 'thumbnail' ); ?>
259
- <?php } ?>
260
- </div>
261
- <p>
262
- <input type="button" class="button button-secondary bttk_tax_media_button" id="bttk_tax_media_button" name="bttk_tax_media_button" value="<?php _e( 'Add Image', 'blossomthemes-toolkit' ); ?>" />
263
- <input type="button" class="button button-secondary bttk_tax_media_remove" id="bttk_tax_media_remove" name="bttk_tax_media_remove" value="<?php _e( 'Remove Image', 'blossomthemes-toolkit' ); ?>" />
264
- </p>
265
- </td>
266
- </tr>
267
- <?php
268
- }
269
-
270
- /*
271
- * Update the form field value
272
- * @since 1.0.0
273
- */
274
- public function bttk_updated_category_image ( $term_id ) {
275
- if( isset( $_POST['category-image-id'] ) && '' !== $_POST['category-image-id'] ){
276
- $image = $_POST['category-image-id'];
277
- update_term_meta ( $term_id, 'category-image-id', $image );
278
- } else {
279
- update_term_meta ( $term_id, 'category-image-id', '' );
280
- }
281
- }
282
-
283
- /*
284
- * Add script
285
- * @since 1.0.0
286
- */
287
- public function bttk_add_script() { ?>
288
- <script>
289
- jQuery(document).ready( function($) {
290
- function ct_media_upload(button_class) {
291
- var _custom_media = true,
292
- _orig_send_attachment = wp.media.editor.send.attachment;
293
- $('body').on('click', button_class, function(e) {
294
- var button_id = '#'+$(this).attr('id');
295
- var send_attachment_bkp = wp.media.editor.send.attachment;
296
- var button = $(button_id);
297
- _custom_media = true;
298
- wp.media.editor.send.attachment = function(props, attachment){
299
- if ( _custom_media ) {
300
- $('#category-image-id').val(attachment.id);
301
- $('#category-image-wrapper').html('<img class="custom_media_image" src="" style="margin:0;padding:0;max-height:100px;float:none;" />');
302
- $('#category-image-wrapper .custom_media_image').attr('src',attachment.url).css('display','block');
303
- } else {
304
- return _orig_send_attachment.apply( button_id, [props, attachment] );
305
- }
306
- }
307
- wp.media.editor.open(button);
308
- return false;
309
- });
310
- }
311
- ct_media_upload('.bttk_tax_media_button.button');
312
- $('body').on('click','.bttk_tax_media_remove',function(){
313
- $('#category-image-id').val('');
314
- $('#category-image-wrapper').html('<img class="custom_media_image" src="" style="margin:0;padding:0;max-height:100px;float:none;" />');
315
- });
316
- // Thanks: http://stackoverflow.com/questions/15281995/wordpress-create-category-ajax-response
317
- $(document).ajaxComplete(function(event, xhr, settings) {
318
- var queryStringArr = settings.data.split('&');
319
- if( $.inArray('action=add-tag', queryStringArr) !== -1 ){
320
- var xml = xhr.responseXML;
321
- $response = $(xml).find('term_id').text();
322
- if($response!=""){
323
- // Clear the thumb image
324
- $('#category-image-wrapper').html('');
325
- }
326
- }
327
- });
328
- });
329
- </script>
330
- <?php
331
- }
332
-
333
- function bttk_custom_column_header( $columns ){
334
- $columns['header_name'] = 'Thumbnail';
335
- return $columns;
336
- }
337
-
338
-
339
- // To show the column value
340
- function bttk_custom_column_content( $value, $column_name, $tax_id ){
341
- $img = get_term_meta( $tax_id, 'category-image-id', false );
342
- $ret = '';
343
- if(isset($img[0]) && $img[0]!='')
344
- {
345
- $url = wp_get_attachment_image_url($img[0],'thumbnail');
346
- $ret = '<img src="'.esc_url($url).'" class="tax-img">';
347
- }
348
- return $ret;
349
- }
350
-
351
- function bttk_client_logo_template()
352
- { ?>
353
- <div class="bttk-client-logo-template">
354
- <div class="link-image-repeat"><span class="cross"><a href="#"><i class="fa fa-times"></i></a></span>
355
- <div class="widget-client-logo-repeater" id="widget-bttktheme_client_logo_widget-2-bttkthemecompanion-logo-repeater">
356
- <div class="widget-upload">
357
- <label for="widget-bttktheme_client_logo_widget-2-image"><?php _e('Upload Image','blossomthemes-toolkit');?></label><br>
358
- <input id="widget-bttktheme_client_logo_widget-2-image" class="bttk-upload link" type="hidden" name="widget-bttktheme_client_logo_widget[2][image][]" value="" placeholder="No file chosen">
359
- <input id="upload-widget-bttktheme_client_logo_widget-2-image" class="bttk-upload-button button" type="button" value="Upload">
360
- <div class="bttk-screenshot" id="widget-bttktheme_client_logo_widget-2-image-image"></div>
361
- </div>
362
- <div class="widget-feat-link">
363
- <label for="widget-bttktheme_client_logo_widget-2-link"><?php _e('Featured Link','blossomthemes-toolkit');?></label>
364
- <input class="widefat featured-link" id="widget-bttktheme_client_logo_widget-2-link" name="widget-bttktheme_client_logo_widget[2][link][]" type="text" value="">
365
- </div>
366
- </div>
367
- </div>
368
- </div>
369
- <?php
370
- echo '<style>.bttk-client-logo-template{display:none;}</style>';
371
- }
372
-
373
- function bttk_faq_template()
374
- {?>
375
- <div class="bttk-faq-template">
376
- <div class="faqs-repeat" data-id=""><span class="fa fa-times cross"></span>
377
- <label for="widget-raratheme_companion_faqs_widget-2-question-1"><?php _e('Question','blossomthemes-toolkit');?></label>
378
- <input class="widefat question" id="widget-raratheme_companion_faqs_widget-2-question-1" name="widget-raratheme_companion_faqs_widget[2][question][1]" type="text" value="">
379
- <label for="widget-raratheme_companion_faqs_widget-2-answer-1"><?php _e('Answer','blossomthemes-toolkit');?></label>
380
- <textarea class="answer" id="widget-raratheme_companion_faqs_widget-2-answer-1" name="widget-raratheme_companion_faqs_widget[2][answer][1]"></textarea>
381
- </div>
382
- </div>
383
- <?php
384
- echo '<style>.bttk-faq-template{display:none;}</style>';
385
- }
386
-
387
- /**
388
- * Get post types for templates
389
- *
390
- * @return array of default settings
391
- */
392
- public function bttk_get_posttype_array() {
393
-
394
- $posts = array(
395
- 'blossom-portfolio' => array(
396
- 'label' => __( 'Portfolio', 'blossomthemes-toolkit' ),
397
- 'description' => __( 'Portfolio Post Type', 'blossomthemes-toolkit' ),
398
- 'labels' => array(
399
- 'name' => _x( 'Portfolios', 'Post Type General Name', 'blossomthemes-toolkit' ),
400
- 'singular_name' => _x( 'Portfolio', 'Post Type Singular Name', 'blossomthemes-toolkit' ),
401
- 'menu_name' => _x( 'Portfolios', 'admin menu', 'blossomthemes-toolkit' ),
402
- 'name_admin_bar' => _x( 'Portfolio', 'add new on admin bar', 'blossomthemes-toolkit' ),
403
- 'add_new' => _x( 'Add New', 'Portfolio', 'blossomthemes-toolkit' ),
404
- 'add_new_item' => __( 'Add New Portfolio', 'blossomthemes-toolkit' ),
405
- 'archives' => __( 'Portfolio Archives', 'blossomthemes-toolkit' ),
406
- 'attributes' => __( 'Portfolio Attributes', 'blossomthemes-toolkit' ),
407
- 'parent_item_colon' => __( 'Parent Portfolio:', 'blossomthemes-toolkit' ),
408
- 'all_items' => __( 'All Portfolios', 'blossomthemes-toolkit' ),
409
- 'new_item' => __( 'New Portfolio', 'blossomthemes-toolkit' ),
410
- 'edit_item' => __( 'Edit Portfolio', 'blossomthemes-toolkit' ),
411
- 'update_item' => __( 'Update Portfolio', 'blossomthemes-toolkit' ),
412
- 'view_item' => __( 'View Portfolio', 'blossomthemes-toolkit' ),
413
- 'view_items' => __( 'View Portfolios', 'blossomthemes-toolkit' ),
414
- 'search_items' => __( 'Search Portfolio', 'blossomthemes-toolkit' ),
415
- 'not_found' => __( 'Not found', 'blossomthemes-toolkit' ),
416
- 'not_found_in_trash' => __( 'Not found in Trash', 'blossomthemes-toolkit' ),
417
- 'featured_image' => __( 'Featured Image', 'blossomthemes-toolkit' ),
418
- 'set_featured_image' => __( 'Set featured image', 'blossomthemes-toolkit' ),
419
- 'remove_featured_image' => __( 'Remove featured image', 'blossomthemes-toolkit' ),
420
- 'use_featured_image' => __( 'Use as featured image', 'blossomthemes-toolkit' ),
421
- 'insert_into_item' => __( 'Insert into Portfolio', 'blossomthemes-toolkit' ),
422
- 'uploaded_to_this_item' => __( 'Uploaded to this Portfolio', 'blossomthemes-toolkit' ),
423
- 'items_list' => __( 'Portfolios list', 'blossomthemes-toolkit' ),
424
- 'items_list_navigation' => __( 'Portfolios list navigation', 'blossomthemes-toolkit' ),
425
- 'filter_items_list' => __( 'Filter Portfolios list', 'blossomthemes-toolkit' ),
426
- ),
427
- 'dashicon' => 'dashicons-portfolio',
428
- 'taxonomy' => 'blossom_portfolio_categories',
429
- 'taxonomy_slug' => 'portfolio-category',
430
- 'has_archive' => false,
431
- 'exclude_from_search' => false,
432
- 'show_in_nav_menus' => true,
433
- 'show_in_rest' => true,
434
- 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt' ),
435
- 'rewrite' => array( 'slug' => 'portfolio' ),
436
- 'tax_general_name' => _x( 'Portfolios Categories', 'taxonomy general name', 'blossomthemes-toolkit' ),
437
- 'tax_singular_name' => _x( 'Portfolio Category', 'taxonomy singular name', 'blossomthemes-toolkit' ),
438
- 'tax_menu_name' => __( 'Portfolios Categories', 'blossomthemes-toolkit')
439
- ),
440
- );
441
- $posts = apply_filters( 'bttk_get_posttype_array', $posts );
442
- return $posts;
443
- }
444
-
445
- /**
446
- * Register post types.
447
- *
448
- * @link http://codex.wordpress.org/Function_Reference/register_post_type
449
- */
450
- function bttk_register_post_types() {
451
- $myarray = $this->bttk_get_posttype_array();
452
- foreach ($myarray as $key => $value) {
453
-
454
- $args = array(
455
- 'label' => $value['label'],
456
- 'description' => $value['description'],
457
- 'labels' => $value['labels'],
458
- 'supports' => $value['supports'],
459
- 'hierarchical' => false,
460
- 'public' => true,
461
- 'show_ui' => true,
462
- 'show_in_menu' => true,
463
- 'show_in_rest' => $value['show_in_rest'],
464
- 'menu_icon' => $value['dashicon'],
465
- 'show_in_admin_bar' => true,
466
- 'show_in_nav_menus' => $value['show_in_nav_menus'],
467
- 'can_export' => true,
468
- 'has_archive' => $value['has_archive'],
469
- 'exclude_from_search' => $value['exclude_from_search'],
470
- 'publicly_queryable' => true,
471
- 'capability_type' => 'page',
472
- 'rewrite' => $value['rewrite'],
473
- );
474
- register_post_type( $key, $args );
475
- if ( 'yes' === get_option( 'bttk_queue_flush_rewrite_rules' ) ) {
476
- update_option( 'bttk_queue_flush_rewrite_rules', 'no' );
477
- flush_rewrite_rules();
478
- }
479
- }
480
- }
481
-
482
- /**
483
- * Register a taxonomy, post_types_categories for the post types.
484
- *
485
- * @link https://codex.wordpress.org/Function_Reference/register_taxonomy
486
- */
487
- function bttk_create_post_type_taxonomies() {
488
- // Add new taxonomy, make it hierarchical
489
- $myarray = $this->bttk_get_posttype_array();
490
- foreach ($myarray as $key => $value) {
491
- if(isset($value['taxonomy']))
492
- {
493
- $labels = array(
494
- 'name' => $value['tax_general_name'],
495
- 'singular_name' => $value['tax_singular_name'],
496
- 'search_items' => __( 'Search Categories', 'blossomthemes-toolkit' ),
497
- 'all_items' => __( 'All Categories', 'blossomthemes-toolkit' ),
498
- 'parent_item' => __( 'Parent Categories', 'blossomthemes-toolkit' ),
499
- 'parent_item_colon' => __( 'Parent Categories:', 'blossomthemes-toolkit' ),
500
- 'edit_item' => __( 'Edit Categories', 'blossomthemes-toolkit' ),
501
- 'update_item' => __( 'Update Categories', 'blossomthemes-toolkit' ),
502
- 'add_new_item' => __( 'Add New Categories', 'blossomthemes-toolkit' ),
503
- 'new_item_name' => __( 'New Categories Name', 'blossomthemes-toolkit' ),
504
- 'menu_name' => $value['tax_menu_name'],
505
- );
506
-
507
- $args = array(
508
- 'hierarchical' => true,
509
- 'labels' => $labels,
510
- 'show_ui' => true,
511
- 'show_admin_column' => true,
512
- 'show_in_nav_menus' => true,
513
- 'show_in_rest' => true,
514
- 'rewrite' => array( 'slug' => $value['taxonomy_slug'], 'hierarchical' => true ),
515
- );
516
- register_taxonomy( $value['taxonomy'], array( $key ), $args );
517
- }
518
- }
519
- }
520
- }
521
 
1
+ <?php
2
+
3
+ /**
4
+ * The admin-specific functionality of the plugin.
5
+ *
6
+ * @link http://wordpress.org/plugins/blossomthemes-toolkit/
7
+ * @since 1.0.0
8
+ *
9
+ * @package Blossomthemes_Toolkit
10
+ * @subpackage Blossomthemes_Toolkit/admin
11
+ */
12
+
13
+ /**
14
+ * The admin-specific functionality of the plugin.
15
+ *
16
+ * Defines the plugin name, version, and two examples hooks for how to
17
+ * enqueue the admin-specific stylesheet and JavaScript.
18
+ *
19
+ * @package Blossomthemes_Toolkit
20
+ * @subpackage Blossomthemes_Toolkit/admin
21
+ * @author blossomthemes <info@blossomthemes.com>
22
+ */
23
+ class Blossomthemes_Toolkit_Admin {
24
+
25
+ /**
26
+ * The ID of this plugin.
27
+ *
28
+ * @since 1.0.0
29
+ * @access private
30
+ * @var string $plugin_name The ID of this plugin.
31
+ */
32
+ private $plugin_name;
33
+
34
+ /**
35
+ * The version of this plugin.
36
+ *
37
+ * @since 1.0.0
38
+ * @access private
39
+ * @var string $version The current version of this plugin.
40
+ */
41
+ private $version;
42
+
43
+ /**
44
+ * Initialize the class and set its properties.
45
+ *
46
+ * @since 1.0.0
47
+ * @param string $plugin_name The name of this plugin.
48
+ * @param string $version The version of this plugin.
49
+ */
50
+ public function __construct( $plugin_name, $version ) {
51
+
52
+ $this->plugin_name = $plugin_name;
53
+ $this->version = BTTK_PLUGIN_VERSION;
54
+
55
+ }
56
+
57
+ /**
58
+ * Register the stylesheets for the admin area.
59
+ *
60
+ * @since 1.0.0
61
+ */
62
+ public function enqueue_styles() {
63
+
64
+ /**
65
+ * This function is provided for demonstration purposes only.
66
+ *
67
+ * An instance of this class should be passed to the run() function
68
+ * defined in Blossomthemes_Toolkit_Loader as all of the hooks are defined
69
+ * in that particular class.
70
+ *
71
+ * The Blossomthemes_Toolkit_Loader will then create the relationship
72
+ * between the defined hooks and the functions defined in this
73
+ * class.
74
+ */
75
+
76
+ $screen = get_current_screen();
77
+
78
+ $post_types = array( 'blossom-portfolio', 'post', 'page' );
79
+ $page_ids = array( 'widgets', 'customize' );
80
+
81
+ if ( in_array( $screen->post_type, $post_types ) || in_array( $screen->id, $page_ids ) ) {
82
+ wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/blossomthemes-toolkit-admin.css', array(), $this->version, 'all' );
83
+ wp_enqueue_style( 'chosen', plugin_dir_url( __FILE__ ) . 'css/chosen.min.css', array(), $this->version, 'all' );
84
+ wp_enqueue_style( 'wp-color-picker' );
85
+ wp_enqueue_style('thickbox');
86
+ }
87
+
88
+ }
89
+
90
+ /**
91
+ * Register the JavaScript for the admin area.
92
+ *
93
+ * @since 1.0.0
94
+ */
95
+ public function enqueue_scripts() {
96
+
97
+ /**
98
+ * This function is provided for demonstration purposes only.
99
+ *
100
+ * An instance of this class should be passed to the run() function
101
+ * defined in Blossomthemes_Toolkit_Loader as all of the hooks are defined
102
+ * in that particular class.
103
+ *
104
+ * The Blossomthemes_Toolkit_Loader will then create the relationship
105
+ * between the defined hooks and the functions defined in this
106
+ * class.
107
+ */
108
+ $screen = get_current_screen();
109
+
110
+ $post_types = array( 'blossom-portfolio', 'post', 'page' );
111
+ $page_ids = array( 'widgets', 'customize' );
112
+
113
+ if ( in_array( $screen->post_type, $post_types ) || in_array( $screen->id, $page_ids ) ) {
114
+ wp_enqueue_media();
115
+ wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/blossomthemes-toolkit-admin.js', array( 'jquery','wp-color-picker' ), $this->version, true );
116
+ wp_localize_script( $this->plugin_name, 'bttk_theme_toolkit_pro_uploader', array(
117
+ 'upload' => __( 'Upload', 'blossomthemes-toolkit' ),
118
+ 'change' => __( 'Change', 'blossomthemes-toolkit' ),
119
+ 'msg' => __( 'Please upload valid image file.', 'blossomthemes-toolkit' )
120
+ ));
121
+ $confirming = array(
122
+ 'msg' => __( 'Are you sure?', 'blossomthemes-toolkit' ),
123
+ 'category' => __('Select Categories','blossomthemes-toolkit')
124
+ );
125
+ wp_localize_script( $this->plugin_name, 'sociconsmsg', $confirming );
126
+
127
+ wp_localize_script( $this->plugin_name, 'sociconsmsg', array(
128
+ 'msg' => __( 'Are you sure you want to delete this Social Media?', 'blossomthemes-toolkit' )));
129
+
130
+ wp_enqueue_script( 'chosen', plugin_dir_url( __FILE__ ) . 'js/chosen.jquery.min.js', array( 'jquery' ), $this->version, true );
131
+
132
+ wp_enqueue_script( 'font-awesome', plugin_dir_url( __FILE__ ) . 'js/fontawesome/all.js', array( 'jquery'), '5.6.3', true );
133
+ wp_enqueue_script( 'v4-shims', plugin_dir_url( __FILE__ ) . 'js/fontawesome/v4-shims.js', array( 'jquery'), '5.6.3', true );
134
+ }
135
+ }
136
+
137
+ public function bttk_icon_list_enqueue(){
138
+ $obj = new BlossomThemes_Toolkit_Functions;
139
+ $socicons = $obj->bttk_icon_list();
140
+ echo '<div class="bttk-icons-wrap-template"><div class="bttk-icons-wrap"><ul class="bttk-icons-list">';
141
+ foreach ($socicons as $socicon) {
142
+ if($socicon == 'rss'){
143
+ echo '<li><i class="fas fa-'.$socicon.'"></i></li>';
144
+ }
145
+ else{
146
+ echo '<li><i class="fab fa-'.$socicon.'"></i></li>';
147
+ }
148
+
149
+ }
150
+ echo'</ul></div></div>';
151
+ echo '<style>
152
+ .bttk-icons-wrap{
153
+ display:none;
154
+ }
155
+ </style>';
156
+ }
157
+
158
+ /**
159
+ * Portfolio template.
160
+ */
161
+ function bttk_get_portfolio_template( $template ) {
162
+ $post = get_post();
163
+ $page_template = get_post_meta( $post->ID, '_wp_page_template', true );
164
+ if( $page_template == 'templates/blossom-portfolio.php' ){
165
+ if ( $theme_file = locate_template( 'templates/blossom-portfolio.php' ) ) {
166
+ return $theme_file;
167
+ } else {
168
+ return BTTK_BASE_PATH . '/includes/templates/blossom-portfolio.php';
169
+ }
170
+ }
171
+ return $template;
172
+ }
173
+
174
+ /**
175
+ * Portfolio template returned.
176
+ */
177
+ function bttk_filter_admin_page_templates( $templates ) {
178
+ $templates['templates/blossom-portfolio.php'] = __( 'Portfolio Template', 'blossomthemes-toolkit' );
179
+ return $templates;
180
+ }
181
+
182
+ /**
183
+ * Portfolio template added.
184
+ */
185
+ function wpte_add_portfolio_templates() {
186
+
187
+ // If REST_REQUEST is defined (by WordPress) and is a TRUE, then it's a REST API request.
188
+ $is_rest_route = (defined('REST_REQUEST') && REST_REQUEST);
189
+ if (
190
+ (is_admin() && !$is_rest_route) || // admin and AJAX (via admin-ajax.php) requests
191
+ (!is_admin() && $is_rest_route) // REST requests only
192
+ ) {
193
+ add_filter('theme_page_templates', array($this, 'bttk_filter_admin_page_templates'));
194
+ } else {
195
+ add_filter('page_template', array($this, 'bttk_get_portfolio_template'));
196
+ }
197
+
198
+ }
199
+
200
+ /**
201
+ * Template over-ride for single trip.
202
+ *
203
+ * @since 1.0.0
204
+ */
205
+ function bttk_include_template_function( $template_path ) {
206
+ if ( is_singular( 'blossom-portfolio' ) )
207
+ {
208
+ if ( $theme_file = locate_template( 'single-blossom-portfolio.php' ) ) {
209
+ $template_path = $theme_file;
210
+ } else {
211
+ $template_path = BTTK_BASE_PATH . '/includes/templates/single-blossom-portfolio.php';
212
+ }
213
+ }
214
+ return $template_path;
215
+ }
216
+ /*
217
+ * Add a form field in the new category page
218
+ * @since 1.0.0
219
+ */
220
+ public function bttk_add_category_image ( $taxonomy ) { ?>
221
+ <div class="form-field term-group">
222
+ <label for="category-image-id"><?php _e('Image', 'blossomthemes-toolkit'); ?></label>
223
+ <input type="hidden" id="category-image-id" name="category-image-id" class="custom_media_url" value="">
224
+ <div id="category-image-wrapper"></div>
225
+ <p>
226
+ <input type="button" class="button button-secondary bttk_tax_media_button" id="bttk_tax_media_button" name="bttk_tax_media_button" value="<?php _e( 'Add Image', 'blossomthemes-toolkit' ); ?>" />
227
+ <input type="button" class="button button-secondary bttk_tax_media_remove" id="bttk_tax_media_remove" name="bttk_tax_media_remove" value="<?php _e( 'Remove Image', 'blossomthemes-toolkit' ); ?>" />
228
+ </p>
229
+ </div>
230
+ <?php
231
+ }
232
+
233
+ /*
234
+ * Save the form field
235
+ * @since 1.0.0
236
+ */
237
+ public function bttk_save_category_image ( $term_id ) {
238
+ if( isset( $_POST['category-image-id'] ) && '' !== $_POST['category-image-id'] ){
239
+ $image = $_POST['category-image-id'];
240
+ add_term_meta( $term_id, 'category-image-id', $image, true );
241
+ }
242
+ }
243
+
244
+ /*
245
+ * Edit the form field
246
+ * @since 1.0.0
247
+ */
248
+ public function bttk_update_category_image ( $term, $taxonomy='' ) { ?>
249
+ <tr class="form-field term-group-wrap">
250
+ <th scope="row">
251
+ <label for="category-image-id"><?php _e( 'Image', 'blossomthemes-toolkit' ); ?></label>
252
+ </th>
253
+ <td>
254
+ <?php $image_id = get_term_meta ( $term -> term_id, 'category-image-id', true ); ?>
255
+ <input type="hidden" id="category-image-id" name="category-image-id" value="<?php echo $image_id; ?>">
256
+ <div id="category-image-wrapper">
257
+ <?php if ( isset( $image_id ) && $image_id!='' ) { ?>
258
+ <?php echo wp_get_attachment_image ( $image_id, 'thumbnail' ); ?>
259
+ <?php } ?>
260
+ </div>
261
+ <p>
262
+ <input type="button" class="button button-secondary bttk_tax_media_button" id="bttk_tax_media_button" name="bttk_tax_media_button" value="<?php _e( 'Add Image', 'blossomthemes-toolkit' ); ?>" />
263
+ <input type="button" class="button button-secondary bttk_tax_media_remove" id="bttk_tax_media_remove" name="bttk_tax_media_remove" value="<?php _e( 'Remove Image', 'blossomthemes-toolkit' ); ?>" />
264
+ </p>
265
+ </td>
266
+ </tr>
267
+ <?php
268
+ }
269
+
270
+ /*
271
+ * Update the form field value
272
+ * @since 1.0.0
273
+ */
274
+ public function bttk_updated_category_image ( $term_id ) {
275
+ if( isset( $_POST['category-image-id'] ) && '' !== $_POST['category-image-id'] ){
276
+ $image = $_POST['category-image-id'];
277
+ update_term_meta ( $term_id, 'category-image-id', $image );
278
+ } else {
279
+ update_term_meta ( $term_id, 'category-image-id', '' );
280
+ }
281
+ }
282
+
283
+ /*
284
+ * Add script
285
+ * @since 1.0.0
286
+ */
287
+ public function bttk_add_script() { ?>
288
+ <script>
289
+ jQuery(document).ready( function($) {
290
+ function ct_media_upload(button_class) {
291
+ var _custom_media = true,
292
+ _orig_send_attachment = wp.media.editor.send.attachment;
293
+ $('body').on('click', button_class, function(e) {
294
+ var button_id = '#'+$(this).attr('id');
295
+ var send_attachment_bkp = wp.media.editor.send.attachment;
296
+ var button = $(button_id);
297
+ _custom_media = true;
298
+ wp.media.editor.send.attachment = function(props, attachment){
299
+ if ( _custom_media ) {
300
+ $('#category-image-id').val(attachment.id);
301
+ $('#category-image-wrapper').html('<img class="custom_media_image" src="" style="margin:0;padding:0;max-height:100px;float:none;" />');
302
+ $('#category-image-wrapper .custom_media_image').attr('src',attachment.url).css('display','block');
303
+ } else {
304
+ return _orig_send_attachment.apply( button_id, [props, attachment] );
305
+ }
306
+ }
307
+ wp.media.editor.open(button);
308
+ return false;
309
+ });
310
+ }
311
+ ct_media_upload('.bttk_tax_media_button.button');
312
+ $('body').on('click','.bttk_tax_media_remove',function(){
313
+ $('#category-image-id').val('');
314
+ $('#category-image-wrapper').html('<img class="custom_media_image" src="" style="margin:0;padding:0;max-height:100px;float:none;" />');
315
+ });
316
+ // Thanks: http://stackoverflow.com/questions/15281995/wordpress-create-category-ajax-response
317
+ $(document).ajaxComplete(function(event, xhr, settings) {
318
+ var queryStringArr = settings.data.split('&');
319
+ if( $.inArray('action=add-tag', queryStringArr) !== -1 ){
320
+ var xml = xhr.responseXML;
321
+ $response = $(xml).find('term_id').text();
322
+ if($response!=""){
323
+ // Clear the thumb image
324
+ $('#category-image-wrapper').html('');
325
+ }
326
+ }
327
+ });
328
+ });
329
+ </script>
330
+ <?php
331
+ }
332
+
333
+ function bttk_custom_column_header( $columns ){
334
+ $columns['header_name'] = 'Thumbnail';
335
+ return $columns;
336
+ }
337
+
338
+
339
+ // To show the column value
340
+ function bttk_custom_column_content( $value, $column_name, $tax_id ){
341
+ $img = get_term_meta( $tax_id, 'category-image-id', false );
342
+ $ret = '';
343
+ if(isset($img[0]) && $img[0]!='')
344
+ {
345
+ $url = wp_get_attachment_image_url($img[0],'thumbnail');
346
+ $ret = '<img src="'.esc_url($url).'" class="tax-img">';
347
+ }
348
+ return $ret;
349
+ }
350
+
351
+ function bttk_client_logo_template()
352
+ { ?>
353
+ <div class="bttk-client-logo-template">
354
+ <div class="link-image-repeat"><span class="cross"><a href="#"><i class="fa fa-times"></i></a></span>
355
+ <div class="widget-client-logo-repeater" id="widget-bttktheme_client_logo_widget-2-bttkthemecompanion-logo-repeater">
356
+ <div class="widget-upload">
357
+ <label for="widget-bttktheme_client_logo_widget-2-image"><?php _e('Upload Image','blossomthemes-toolkit');?></label><br>
358
+ <input id="widget-bttktheme_client_logo_widget-2-image" class="bttk-upload link" type="hidden" name="widget-bttktheme_client_logo_widget[2][image][]" value="" placeholder="No file chosen">
359
+ <input id="upload-widget-bttktheme_client_logo_widget-2-image" class="bttk-upload-button button" type="button" value="Upload">
360
+ <div class="bttk-screenshot" id="widget-bttktheme_client_logo_widget-2-image-image"></div>
361
+ </div>
362
+ <div class="widget-feat-link">
363
+ <label for="widget-bttktheme_client_logo_widget-2-link"><?php _e('Featured Link','blossomthemes-toolkit');?></label>
364
+ <input class="widefat featured-link" id="widget-bttktheme_client_logo_widget-2-link" name="widget-bttktheme_client_logo_widget[2][link][]" type="text" value="">
365
+ </div>
366
+ </div>
367
+ </div>
368
+ </div>
369
+ <?php
370
+ echo '<style>.bttk-client-logo-template{display:none;}</style>';
371
+ }
372
+
373
+ function bttk_faq_template()
374
+ {?>
375
+ <div class="bttk-faq-template">
376
+ <div class="faqs-repeat" data-id=""><span class="fa fa-times cross"></span>
377
+ <label for="widget-raratheme_companion_faqs_widget-2-question-1"><?php _e('Question','blossomthemes-toolkit');?></label>
378
+ <input class="widefat question" id="widget-raratheme_companion_faqs_widget-2-question-1" name="widget-raratheme_companion_faqs_widget[2][question][1]" type="text" value="">
379
+ <label for="widget-raratheme_companion_faqs_widget-2-answer-1"><?php _e('Answer','blossomthemes-toolkit');?></label>
380
+ <textarea class="answer" id="widget-raratheme_companion_faqs_widget-2-answer-1" name="widget-raratheme_companion_faqs_widget[2][answer][1]"></textarea>
381
+ </div>
382
+ </div>
383
+ <?php
384
+ echo '<style>.bttk-faq-template{display:none;}</style>';
385
+ }
386
+
387
+ /**
388
+ * Get post types for templates
389
+ *
390
+ * @return array of default settings
391
+ */
392
+ public function bttk_get_posttype_array() {
393
+
394
+ $posts = array(
395
+ 'blossom-portfolio' => array(
396
+ 'label' => __( 'Portfolio', 'blossomthemes-toolkit' ),
397
+ 'description' => __( 'Portfolio Post Type', 'blossomthemes-toolkit' ),
398
+ 'labels' => array(
399
+ 'name' => _x( 'Portfolios', 'Post Type General Name', 'blossomthemes-toolkit' ),
400
+ 'singular_name' => _x( 'Portfolio', 'Post Type Singular Name', 'blossomthemes-toolkit' ),
401
+ 'menu_name' => _x( 'Portfolios', 'admin menu', 'blossomthemes-toolkit' ),
402
+ 'name_admin_bar' => _x( 'Portfolio', 'add new on admin bar', 'blossomthemes-toolkit' ),
403
+ 'add_new' => _x( 'Add New', 'Portfolio', 'blossomthemes-toolkit' ),
404
+ 'add_new_item' => __( 'Add New Portfolio', 'blossomthemes-toolkit' ),
405
+ 'archives' => __( 'Portfolio Archives', 'blossomthemes-toolkit' ),
406
+ 'attributes' => __( 'Portfolio Attributes', 'blossomthemes-toolkit' ),
407
+ 'parent_item_colon' => __( 'Parent Portfolio:', 'blossomthemes-toolkit' ),
408
+ 'all_items' => __( 'All Portfolios', 'blossomthemes-toolkit' ),
409
+ 'new_item' => __( 'New Portfolio', 'blossomthemes-toolkit' ),
410
+ 'edit_item' => __( 'Edit Portfolio', 'blossomthemes-toolkit' ),
411
+ 'update_item' => __( 'Update Portfolio', 'blossomthemes-toolkit' ),
412
+ 'view_item' => __( 'View Portfolio', 'blossomthemes-toolkit' ),
413
+ 'view_items' => __( 'View Portfolios', 'blossomthemes-toolkit' ),
414
+ 'search_items' => __( 'Search Portfolio', 'blossomthemes-toolkit' ),
415
+ 'not_found' => __( 'Not found', 'blossomthemes-toolkit' ),
416
+ 'not_found_in_trash' => __( 'Not found in Trash', 'blossomthemes-toolkit' ),
417
+ 'featured_image' => __( 'Featured Image', 'blossomthemes-toolkit' ),
418
+ 'set_featured_image' => __( 'Set featured image', 'blossomthemes-toolkit' ),
419
+ 'remove_featured_image' => __( 'Remove featured image', 'blossomthemes-toolkit' ),
420
+ 'use_featured_image' => __( 'Use as featured image', 'blossomthemes-toolkit' ),
421
+ 'insert_into_item' => __( 'Insert into Portfolio', 'blossomthemes-toolkit' ),
422
+ 'uploaded_to_this_item' => __( 'Uploaded to this Portfolio', 'blossomthemes-toolkit' ),
423
+ 'items_list' => __( 'Portfolios list', 'blossomthemes-toolkit' ),
424
+ 'items_list_navigation' => __( 'Portfolios list navigation', 'blossomthemes-toolkit' ),
425
+ 'filter_items_list' => __( 'Filter Portfolios list', 'blossomthemes-toolkit' ),
426
+ ),
427
+ 'dashicon' => 'dashicons-portfolio',
428
+ 'taxonomy' => 'blossom_portfolio_categories',
429
+ 'taxonomy_slug' => 'portfolio-category',
430
+ 'has_archive' => false,
431
+ 'exclude_from_search' => false,
432
+ 'show_in_nav_menus' => true,
433
+ 'show_in_rest' => true,
434
+ 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt' ),
435
+ 'rewrite' => array( 'slug' => 'portfolio' ),
436
+ 'tax_general_name' => _x( 'Portfolios Categories', 'taxonomy general name', 'blossomthemes-toolkit' ),
437
+ 'tax_singular_name' => _x( 'Portfolio Category', 'taxonomy singular name', 'blossomthemes-toolkit' ),
438
+ 'tax_menu_name' => __( 'Portfolios Categories', 'blossomthemes-toolkit')
439
+ ),
440
+ );
441
+ $posts = apply_filters( 'bttk_get_posttype_array', $posts );
442
+ return $posts;
443
+ }
444
+
445
+ /**
446
+ * Register post types.
447
+ *
448
+ * @link http://codex.wordpress.org/Function_Reference/register_post_type
449
+ */
450
+ function bttk_register_post_types() {
451
+ $myarray = $this->bttk_get_posttype_array();
452
+ foreach ($myarray as $key => $value) {
453
+
454
+ $args = array(
455
+ 'label' => $value['label'],
456
+ 'description' => $value['description'],
457
+ 'labels' => $value['labels'],
458
+ 'supports' => $value['supports'],
459
+ 'hierarchical' => false,
460
+ 'public' => true,
461
+ 'show_ui' => true,
462
+ 'show_in_menu' => true,
463
+ 'show_in_rest' => $value['show_in_rest'],
464
+ 'menu_icon' => $value['dashicon'],
465
+ 'show_in_admin_bar' => true,
466
+ 'show_in_nav_menus' => $value['show_in_nav_menus'],
467
+ 'can_export' => true,
468
+ 'has_archive' => $value['has_archive'],
469
+ 'exclude_from_search' => $value['exclude_from_search'],
470
+ 'publicly_queryable' => true,
471
+ 'capability_type' => 'page',
472
+ 'rewrite' => $value['rewrite'],
473
+ );
474
+ register_post_type( $key, $args );
475
+ if ( 'yes' === get_option( 'bttk_queue_flush_rewrite_rules' ) ) {
476
+ update_option( 'bttk_queue_flush_rewrite_rules', 'no' );
477
+ flush_rewrite_rules();
478
+ }
479
+ }
480
+ }
481
+
482
+ /**
483
+ * Register a taxonomy, post_types_categories for the post types.
484
+ *
485
+ * @link https://codex.wordpress.org/Function_Reference/register_taxonomy
486
+ */
487
+ function bttk_create_post_type_taxonomies() {
488
+ // Add new taxonomy, make it hierarchical
489
+ $myarray = $this->bttk_get_posttype_array();
490
+ foreach ($myarray as $key => $value) {
491
+ if(isset($value['taxonomy']))
492
+ {
493
+ $labels = array(
494
+ 'name' => $value['tax_general_name'],
495
+ 'singular_name' => $value['tax_singular_name'],
496
+ 'search_items' => __( 'Search Categories', 'blossomthemes-toolkit' ),
497
+ 'all_items' => __( 'All Categories', 'blossomthemes-toolkit' ),
498
+ 'parent_item' => __( 'Parent Categories', 'blossomthemes-toolkit' ),
499
+ 'parent_item_colon' => __( 'Parent Categories:', 'blossomthemes-toolkit' ),
500
+ 'edit_item' => __( 'Edit Categories', 'blossomthemes-toolkit' ),
501
+ 'update_item' => __( 'Update Categories', 'blossomthemes-toolkit' ),
502
+ 'add_new_item' => __( 'Add New Categories', 'blossomthemes-toolkit' ),
503
+ 'new_item_name' => __( 'New Categories Name', 'blossomthemes-toolkit' ),
504
+ 'menu_name' => $value['tax_menu_name'],
505
+ );
506
+
507
+ $args = array(
508
+ 'hierarchical' => true,
509
+ 'labels' => $labels,
510
+ 'show_ui' => true,
511
+ 'show_admin_column' => true,
512
+ 'show_in_nav_menus' => true,
513
+ 'show_in_rest' => true,
514
+ 'rewrite' => array( 'slug' => $value['taxonomy_slug'], 'hierarchical' => true ),
515
+ );
516
+ register_taxonomy( $value['taxonomy'], array( $key ), $args );
517
+ }
518
+ }
519
+ }
520
+ }
521
 
admin/js/blossomthemes-toolkit-admin.js CHANGED
@@ -1,777 +1,786 @@
1
- jQuery(document).ready(function ($) {
2
- $("body").on("click", "#add-faq:visible", function (e) {
3
- e.preventDefault();
4
- da = $(this).siblings(".widget-client-faq-repeater").attr("id");
5
- if ($("body").hasClass("elementor-editor-active")) {
6
- suffix = "REPLACE_TO_ID";
7
- } else {
8
- suffix = da.match(/\d+/);
9
- }
10
- len = 0;
11
- $(".faqs-repeat:visible").each(function () {
12
- var value = $(this).attr("data-id");
13
- if (!isNaN(value)) {
14
- value = parseInt(value);
15
- len = value > len ? value : len;
16
- }
17
- });
18
- var newinput = $(".bttk-faq-template").clone();
19
- len++;
20
- // newinput.html(function(i, oldHTML) {
21
- // });
22
- newinput.find(".faqs-repeat").attr("data-id", len);
23
- newinput
24
- .find(".question")
25
- .attr(
26
- "name",
27
- "widget-bttk_faqs_widget[" + suffix + "][question][" + len + "]"
28
- );
29
- newinput
30
- .find(".answer")
31
- .attr(
32
- "name",
33
- "widget-bttk_faqs_widget[" + suffix + "][answer][" + len + "]"
34
- );
35
- // newinput.html(function(i, oldHTML) {
36
- // return oldHTML.replace(/{{indexes}}/g, len);
37
- // });
38
- $(".cl-faq-holder").before(newinput.html()).focus().trigger("change");
39
- });
40
-
41
- var file_frame;
42
- $(".user-signature-image").on("click", function (event) {
43
- event.preventDefault();
44
-
45
- // If the media frame already exists, reopen it.
46
- if (file_frame) {
47
- file_frame.open();
48
- return;
49
- }
50
- // Create the media frame.
51
- file_frame = wp.media.frames.file_frame = wp.media({
52
- title: $(this).data("uploader_title"),
53
- button: {
54
- text: $(this).data("uploader_button_text"),
55
- },
56
- multiple: false, // Set to true to allow multiple files to be selected
57
- });
58
-
59
- // When an image is selected, run a callback.
60
- file_frame.on("select", function () {
61
- // We set multiple to false so only get one image from the uploader
62
- attachment = file_frame.state().get("selection").first().toJSON();
63
- $("#user_signature_image").val(attachment.url);
64
- // Do something with attachment.id and/or attachment.url here
65
- });
66
-
67
- // Finally, open the modal
68
- file_frame.open();
69
- });
70
-
71
- $("body").on("click", ".del-user-social-links", function (e) {
72
- var confirmation = confirm(sociconsmsg.msg);
73
- if (!confirmation) {
74
- return false;
75
- }
76
- $(this)
77
- .parent()
78
- .fadeOut("slow", function () {
79
- $(this).remove();
80
- $("#add-user-socicon").focus().trigger("change");
81
- });
82
- return;
83
- });
84
-
85
- $(document).on("focus", ".user-contact-social-profile", function () {
86
- // if($(this).val()=='')
87
- // {
88
- // if( $(this).siblings('.bttk-icons-list').length < 1 )
89
- // {
90
- var $iconlist = $(".bttk-icons-wrap").clone();
91
- $(this).after($iconlist.html());
92
- $(this).siblings(".bttk-icons-list").fadeIn("slow");
93
- // }
94
-
95
- // if ( $(this).siblings('.bttk-icons-list').find('#remove-icon-list').length < 1 )
96
- // {
97
- var input = '<span id="remove-icon-list" class="fas fa-times"></span>';
98
- $(this).siblings(".bttk-icons-list:visible").prepend(input);
99
- // }
100
- // }
101
- });
102
-
103
- $(document).on("blur", ".user-contact-social-profile", function (e) {
104
- e.preventDefault();
105
- $(this)
106
- .siblings(".bttk-icons-list")
107
- .fadeOut("slow", function () {
108
- $(this).remove();
109
- });
110
- });
111
-
112
- $(document).on("click", ".bttk-icons-list li", function (event) {
113
- var prefix = $(this).children("svg").attr("data-prefix");
114
- var icon = $(this).children("svg").attr("data-icon");
115
- var val = prefix + " fa-" + icon;
116
-
117
- $(this).parent().siblings(".user-social-profile").val(icon);
118
- $(this).parent().siblings(".user-contact-social-profile").val(icon);
119
-
120
- $(this)
121
- .parent()
122
- .parent()
123
- .siblings(".bttk-contact-social-length")
124
- .attr("value", "https://" + icon + ".com");
125
- $(this)
126
- .parent()
127
- .parent()
128
- .siblings(".bttk-social-length")
129
- .attr("value", "https://" + icon + ".com");
130
- $(this)
131
- .parent()
132
- .siblings(".user-social-links")
133
- .attr("value", "https://" + icon + ".com");
134
-
135
- $(this).siblings(".bttk-icons-wrap-search").remove("slow");
136
- $(this)
137
- .parent()
138
- .fadeOut("slow", function () {
139
- $(this).remove();
140
- });
141
-
142
- $(this).parent().siblings(".user-social-profile").trigger("change");
143
- $(this).parent().siblings(".user-social-links").trigger("change");
144
- $(this).parent().siblings(".user-contact-social-profile").trigger("change");
145
- $(this).parent().siblings(".bttk-contact-social-length").trigger("change");
146
- $(this).parent().siblings(".bttk-social-length").trigger("change");
147
-
148
- event.preventDefault();
149
- });
150
-
151
- $(document).on("keyup", ".user-contact-social-profile", function () {
152
- var value = $(this).val();
153
- var matcher = new RegExp(value, "gi");
154
- $(this)
155
- .siblings(".bttk-icons-list")
156
- .children("li")
157
- .show()
158
- .not(function () {
159
- return matcher.test($(this).find("svg").attr("data-icon"));
160
- })
161
- .hide();
162
- });
163
-
164
- $(document).on("keyup", ".search-itw-icons", function () {
165
- var value = $(this).val();
166
- var matcher = new RegExp(value, "gi");
167
- $(this)
168
- .siblings(".bttk-font-awesome-list")
169
- .find("li")
170
- .show()
171
- .not(function () {
172
- return matcher.test($(this).find("svg").attr("data-icon"));
173
- })
174
- .hide();
175
- });
176
-
177
- $(document).on("keyup", ".bttk-sc-icons", function () {
178
- var value = $(this).val();
179
- var matcher = new RegExp(value, "gi");
180
- $(this)
181
- .siblings(".bttk-font-awesome-list")
182
- .find("li")
183
- .show()
184
- .not(function () {
185
- return matcher.test($(this).find("svg").attr("data-icon"));
186
- })
187
- .hide();
188
- });
189
-
190
- $(document).on("keyup", ".bttk-icons-wrap-search", function () {
191
- var value = $(this).val();
192
- var matcher = new RegExp(value, "gi");
193
- $(this)
194
- .parent(".bttk-icons-list")
195
- .children("li")
196
- .show()
197
- .not(function () {
198
- return matcher.test($(this).find("svg").attr("data-icon"));
199
- })
200
- .hide();
201
- });
202
-
203
- $(document).on("keyup", ".user-social-profile", function () {
204
- var value = $(this).val();
205
- var matcher = new RegExp(value, "gi");
206
- $(this)
207
- .siblings(".bttk-icons-list")
208
- .children("li")
209
- .show()
210
- .not(function () {
211
- return matcher.test($(this).find("svg").attr("data-icon"));
212
- })
213
- .hide();
214
- });
215
-
216
- $(document).on("focus", ".user-social-profile", function () {
217
- // if( $(this).siblings('.bttk-icons-list').length < 1 )
218
- // {
219
- var $iconlist = $(".bttk-icons-wrap").clone();
220
- $(this).after($iconlist.html());
221
- $(this).siblings(".bttk-icons-list").fadeIn("slow");
222
- // }
223
-
224
- // if ( $(this).siblings('.bttk-icons-list').find('#remove-icon-list').length < 1 )
225
- // {
226
- var input = '<span id="remove-icon-list" class="fas fa-times"></span>';
227
- $(this).siblings(".bttk-icons-list:visible").prepend(input);
228
- // }
229
- });
230
-
231
- $(document).on("blur", ".user-social-profile", function (e) {
232
- e.preventDefault();
233
- $(this)
234
- .siblings(".bttk-icons-list")
235
- .fadeOut("slow", function () {
236
- $(this).remove();
237
- });
238
- });
239
-
240
- // $(document).on('click', function (e) {
241
- // if( $(event.target).attr('class') == 'user-social-links' || $(event.target).attr('class') == 'bttk-social-length' || $(event.target).attr('class') == 'bttk-icons-wrap-search')
242
- // {
243
- // return;
244
- // }
245
- // $('.bttk-icons-list:visible').fadeOut('slow',function(){
246
- // $(this).remove();
247
- // });
248
- // $('.bttk-icons-wrap-search:visible').fadeOut('slow',function(){
249
- // $(this).remove();
250
- // });
251
- // });
252
-
253
- var frame;
254
-
255
- // ADD IMAGE LINK
256
- $("body").on("click", ".bttk-upload-button", function (e) {
257
- e.preventDefault();
258
- var clicked = $(this).closest("div");
259
- var custom_uploader = wp
260
- .media({
261
- title: "RARA Image Uploader",
262
- // button: {
263
- // text: 'Custom Button Text',
264
- // },
265
- multiple: false, // Set this to true to allow multiple files to be selected
266
- })
267
- .on("select", function () {
268
- var attachment = custom_uploader
269
- .state()
270
- .get("selection")
271
- .first()
272
- .toJSON();
273
- var str = attachment.url.split(".").pop();
274
- var strarray = ["jpg", "gif", "png", "jpeg"];
275
- if ($.inArray(str, strarray) != -1) {
276
- clicked
277
- .find(".bttk-screenshot")
278
- .empty()
279
- .hide()
280
- .append(
281
- '<img src="' +
282
- attachment.url +
283
- '"><a class="bttk-remove-image"></a>'
284
- )
285
- .slideDown("fast");
286
- } else {
287
- clicked
288
- .find(".bttk-screenshot")
289
- .empty()
290
- .hide()
291
- .append(
292
- "<small>" + bttk_theme_toolkit_pro_uploader.msg + "</small>"
293
- )
294
- .slideDown("fast");
295
- }
296
-
297
- clicked.find(".bttk-upload").val(attachment.id).trigger("change");
298
- clicked
299
- .find(".bttk-upload-button")
300
- .val(bttk_theme_toolkit_pro_uploader.change);
301
- })
302
- .open();
303
- });
304
-
305
- $("body").on("click", ".bttk-remove-image", function (e) {
306
- var selector = $(this).parent("div").parent("div");
307
- selector.find(".bttk-upload").val("").trigger("change");
308
- selector.find(".bttk-remove-image").hide();
309
- selector.find(".bttk-screenshot").slideUp();
310
- selector
311
- .find(".bttk-upload-button")
312
- .val(bttk_theme_toolkit_pro_uploader.upload);
313
-
314
- return false;
315
- });
316
-
317
- // Upload / Change Image
318
- function bttk_image_upload(button_class) {
319
- var _custom_media = true,
320
- _orig_send_attachment = wp.media.editor.send.attachment;
321
-
322
- jQuery("body").on("click", button_class, function (e) {
323
- var button_id = "#" + jQuery(this).attr("id"),
324
- self = jQuery(button_id),
325
- send_attachment_bkp = wp.media.editor.send.attachment,
326
- button = jQuery(button_id),
327
- id = button.attr("id").replace("-button", "");
328
-
329
- _custom_media = true;
330
-
331
- wp.media.editor.send.attachment = function (props, attachment) {
332
- if (_custom_media) {
333
- jQuery("#" + id + "-preview")
334
- .attr("src", attachment.url)
335
- .css("display", "block");
336
- jQuery("#" + id + "-remove").css("display", "inline-block");
337
- jQuery("#" + id + "-noimg").css("display", "none");
338
- jQuery("#" + id)
339
- .val(attachment.url)
340
- .trigger("change");
341
- } else {
342
- return _orig_send_attachment.apply(button_id, [props, attachment]);
343
- }
344
- };
345
-
346
- wp.media.editor.open(button);
347
-
348
- return false;
349
- });
350
- }
351
- bttk_image_upload(".bttk-media-upload");
352
-
353
- // set var
354
- var in_customizer = false;
355
-
356
- // check for wp.customize return boolean
357
- if (typeof wp !== "undefined") {
358
- in_customizer = typeof wp.customize !== "undefined" ? true : false;
359
- }
360
-
361
- // Remove Image
362
- function bttk_image_remove(button_class) {
363
- jQuery("body").on("click", button_class, function (e) {
364
- var button = jQuery(this),
365
- id = button.attr("id").replace("-remove", "");
366
- jQuery("#" + id + "-preview").css("display", "none");
367
- jQuery("#" + id + "-noimg").css("display", "block");
368
- button.css("display", "none");
369
- jQuery("#" + id)
370
- .val("")
371
- .trigger("change");
372
- });
373
- }
374
- bttk_image_remove(".bttk-media-remove");
375
-
376
- $("body").on("click", "#add-user-socicon", function (e) {
377
- e.preventDefault();
378
- da = $(this).siblings(".bttk-sortable-icons").attr("id");
379
- if ($("body").hasClass("elementor-editor-active")) {
380
- suffix = "REPLACE_TO_ID";
381
- } else {
382
- suffix = da.match(/\d+/);
383
- }
384
- var maximum = 0;
385
- $(".social-share-list").each(function () {
386
- var value = $(this).attr("data-id");
387
- if (!isNaN(value)) {
388
- value = parseInt(value);
389
- maximum = value > maximum ? value : maximum;
390
- }
391
- });
392
- var newField = $(".bttk-socicon-template").clone();
393
- maximum++;
394
- var name =
395
- "widget-bttk_author_bio[" + suffix + "][socicon][" + maximum + "]";
396
- newField.find(".user-social-links").attr("name", name);
397
-
398
- var profile =
399
- "widget-bttk_author_bio[" +
400
- suffix +
401
- "][socicon_profile][" +
402
- maximum +
403
- "]";
404
- newField.find(".user-social-profile").attr("name", profile);
405
-
406
- newField.html(function (i, oldHTML) {
407
- return oldHTML.replace(/{{socicon_index}}/g, maximum);
408
- });
409
- $(".bttk-socicon-holder").before(newField.html());
410
- });
411
-
412
- $("body").on("click", ".bttk-social-add", function (e) {
413
- e.preventDefault();
414
- da = $(this).siblings(".bttk-sortable-links").attr("id");
415
- if ($("body").hasClass("elementor-editor-active")) {
416
- suffix = "REPLACE_TO_ID";
417
- } else {
418
- suffix = da.match(/\d+/);
419
- }
420
- var maximum = 0;
421
- $(".bttk-social-icon-wrap:visible").each(function () {
422
- var value = $(this).attr("data-id");
423
- if (!isNaN(value)) {
424
- value = parseInt(value);
425
- maximum = value > maximum ? value : maximum;
426
- }
427
- });
428
- var newinput = $(".bttk-social-template").clone();
429
- maximum++;
430
- newinput
431
- .find(".bttk-social-length")
432
- .attr(
433
- "name",
434
- "widget-bttk_social_links[" + suffix + "][social][" + maximum + "]"
435
- );
436
- newinput
437
- .find(".user-social-profile")
438
- .attr(
439
- "name",
440
- "widget-bttk_social_links[" +
441
- suffix +
442
- "][social_profile][" +
443
- maximum +
444
- "]"
445
- );
446
- newinput.html(function (i, oldHTML) {
447
- return oldHTML.replace(/{{indexes}}/g, maximum);
448
- });
449
-
450
- $(this)
451
- .siblings(".bttk-sortable-links")
452
- .find(".bttk-social-icon-holder")
453
- .before(newinput.html());
454
- });
455
-
456
- $("body").on("click", ".del-bttk-icon", function () {
457
- var con = confirm(sociconsmsg.msg);
458
- if (!con) {
459
- return false;
460
- }
461
- $(this)
462
- .parent()
463
- .fadeOut("slow", function () {
464
- $(this).remove();
465
- $(".bttk-social-title-test").focus().trigger("change");
466
- });
467
- return;
468
- });
469
-
470
- $("body").on("click", ".del-contact-bttk-icon", function () {
471
- var con = confirm(sociconsmsg.msg);
472
- if (!con) {
473
- return false;
474
- }
475
- $(this)
476
- .parent()
477
- .fadeOut("slow", function () {
478
- $(this).remove();
479
- $(".bttk-contact-social-title-test").focus().trigger("change");
480
- });
481
- return;
482
- });
483
-
484
- $("body").on("click", ".bttk-contact-social-add:visible", function (e) {
485
- e.preventDefault();
486
- da = $(this).siblings(".bttk-contact-sortable-links").attr("id");
487
- if ($("body").hasClass("elementor-editor-active")) {
488
- suffix = "REPLACE_TO_ID";
489
- } else {
490
- suffix = da.match(/\d+/);
491
- }
492
- var maximum = 0;
493
- $(".bttk-contact-social-icon-wrap:visible").each(function () {
494
- var value = $(this).attr("data-id");
495
- if (!isNaN(value)) {
496
- value = parseInt(value);
497
- maximum = value > maximum ? value : maximum;
498
- }
499
- });
500
- var newinput = $(".bttk-contact-social-template").clone();
501
- maximum++;
502
- newinput
503
- .find(".bttk-contact-social-length")
504
- .attr(
505
- "name",
506
- "widget-bttk_contact_social_links[" +
507
- suffix +
508
- "][social][" +
509
- maximum +
510
- "]"
511
- );
512
- newinput
513
- .find(".user-contact-social-profile")
514
- .attr(
515
- "name",
516
- "widget-bttk_contact_social_links[" +
517
- suffix +
518
- "][social_profile][" +
519
- maximum +
520
- "]"
521
- );
522
- newinput.html(function (i, oldHTML) {
523
- return oldHTML.replace(/{{ind}}/g, maximum);
524
- });
525
- $(this)
526
- .siblings(".bttk-contact-sortable-links")
527
- .find(".bttk-contact-social-icon-holder")
528
- .before(newinput.html())
529
- .trigger("change");
530
- });
531
- // $(document).on('click','.bttk-icons-wrap-search',function() {
532
- // if($(this).val()=='')
533
- // {
534
- // if( $(this).siblings('.bttk-icons-list').length < 1 )
535
- // {
536
- // var $iconlist = $('.bttk-icons-wrap').clone();
537
- // $(this).after($iconlist.html());
538
- // $(this).siblings('.bttk-icons-list').fadeIn('slow');
539
- // }
540
-
541
- // if ( $(this).siblings('.bttk-icons-list').find('.bttk-icons-wrap-search').length < 1 )
542
- // {
543
- // // var input = '<span id="remove-icon-list" class="dashicons dashicons-no"></span>';
544
- // // $(this).siblings('.bttk-icons-list:visible').prepend(input);
545
- // $('.bttk-icons-wrap-search').attr('value','');
546
- // }
547
- // }
548
- // });
549
-
550
- $("body").on("click", ".bttk-itw-add", function (e) {
551
- e.preventDefault();
552
- da = $(this).siblings(".bttk-img-text-outer").attr("id");
553
- if ($("body").hasClass("elementor-editor-active")) {
554
- suffix = "REPLACE_TO_ID";
555
- } else {
556
- suffix = da.match(/\d+/);
557
- }
558
- var maximum = 0;
559
- $(".image-text-widget-wrap:visible").each(function () {
560
- var value = $(this).attr("data-id");
561
- if (!isNaN(value)) {
562
- value = parseInt(value);
563
- maximum = value > maximum ? value : maximum;
564
- }
565
- });
566
- var newinput = $(".bttk-itw-template").clone();
567
-
568
- newinput.html(function (i, oldHTML) {
569
- maximum++;
570
-
571
- newinput.find(".image-text-widget-wrap").attr("data-id", maximum);
572
- newinput
573
- .find(".text input")
574
- .attr(
575
- "name",
576
- "widget-bttk_image_text_widget[" + suffix + "][link_text][]"
577
- );
578
- newinput
579
- .find(".link input")
580
- .attr("name", "widget-bttk_image_text_widget[" + suffix + "][link][]");
581
- newinput
582
- .find(".widget-upload input")
583
- .attr("name", "widget-bttk_image_text_widget[" + suffix + "][image][]");
584
-
585
- newinput
586
- .find(".text input")
587
- .attr(
588
- "id",
589
- "widget-bttk_image_text_widget[" + suffix + "][link_text][]"
590
- );
591
- newinput
592
- .find(".link input")
593
- .attr("id", "widget-bttk_image_text_widget[" + suffix + "][link][]");
594
- newinput
595
- .find(".widget-upload input")
596
- .attr("id", "widget-bttk_image_text_widget[" + suffix + "][image][]");
597
-
598
- newinput
599
- .find(".text label")
600
- .attr(
601
- "for",
602
- "widget-bttk_image_text_widget[" + suffix + "][link_text][]"
603
- );
604
- newinput
605
- .find(".link label")
606
- .attr("for", "widget-bttk_image_text_widget[" + suffix + "][link][]");
607
- newinput
608
- .find(".widget-upload label")
609
- .attr("for", "widget-bttk_image_text_widget[" + suffix + "][image][]");
610
-
611
- // newinput.find( '.bttk-screenshot' ).attr('id','widget-bttk_image_text_widget-'+suffix+'-image');
612
-
613
- // oldHTML.replace(/{{indexes}}/g, maximum);
614
- });
615
-
616
- $(this)
617
- .siblings(".bttk-img-text-outer")
618
- .find(".itw-holder")
619
- .before(newinput.html());
620
- // $(this).siblings('.bttk-sortable-links').find('.bttk-social-icon-holder').before(newinput.html());
621
- });
622
- $("body").on("click", ".image-text-cancel", function (e) {
623
- e.preventDefault();
624
- $(this)
625
- .parent()
626
- .fadeOut("slow", function () {
627
- $(this).remove();
628
- });
629
- });
630
- $("body").on("click", "#remove-icon-list", function (e) {
631
- e.preventDefault();
632
- $(this)
633
- .parent()
634
- .fadeOut("slow", function () {
635
- $(this).remove();
636
- });
637
- });
638
-
639
- $("body").on("click", ".add-logo:visible", function (e) {
640
- e.preventDefault();
641
- da = $(this).siblings(".widget-client-logo-repeater").attr("id");
642
- if ($("body").hasClass("elementor-editor-active")) {
643
- suffix = "REPLACE_TO_ID";
644
- } else {
645
- suffix = da.match(/\d+/);
646
- }
647
- var len = $(".link-image-repeat:visible").length;
648
- len++;
649
- var newinput = $(".bttk-client-logo-template").clone();
650
- newinput.html(function (i, oldHTML) {
651
- newinput
652
- .find(".featured-link")
653
- .attr(
654
- "name",
655
- "widget-blossom_client_logo_widget[" + suffix + "][link][" + len + "]"
656
- );
657
- newinput
658
- .find(".widget-upload .link")
659
- .attr(
660
- "name",
661
- "widget-blossom_client_logo_widget[" +
662
- suffix +
663
- "][image][" +
664
- len +
665
- "]"
666
- );
667
- $(".widget-client-logo-repeater").trigger("change");
668
- });
669
- $(this)
670
- .siblings(".widget-client-logo-repeater")
671
- .find(".cl-repeater-holder")
672
- .before(newinput.html());
673
- });
674
- $("body").on("click", ".cross", function (e) {
675
- e.preventDefault();
676
- $(this)
677
- .parent()
678
- .fadeOut("slow", function () {
679
- $(this).remove();
680
- $(".widget-client-logo-repeater").trigger("change");
681
- });
682
- });
683
-
684
- $(document).on("click", ".bttk-font-group li", function () {
685
- var id = $(this).parents(".widget").attr("id");
686
- $("#" + id)
687
- .find(".bttk-font-group li")
688
- .removeClass();
689
- $("#" + id)
690
- .find(".icon-receiver")
691
- .children("a")
692
- .remove(".bttk-remove-icon");
693
- $(this).addClass("selected");
694
- var prefix = $(this)
695
- .parents(".bttk-font-awesome-list")
696
- .find(".bttk-font-group li.selected")
697
- .children("svg")
698
- .attr("data-prefix");
699
- var icon = $(this)
700
- .parents(".bttk-font-awesome-list")
701
- .find(".bttk-font-group li.selected")
702
- .children("svg")
703
- .attr("data-icon");
704
- var aa = prefix + " fa-" + icon;
705
- $(this)
706
- .parents(".bttk-font-awesome-list")
707
- .siblings("p")
708
- .find(".hidden-icon-input")
709
- .val(aa);
710
- $(this)
711
- .parents(".bttk-font-awesome-list")
712
- .siblings("p")
713
- .find(".icon-receiver")
714
- .html('<i class="' + aa + '"></i>');
715
- $("#" + id)
716
- .find(".icon-receiver")
717
- .children("i")
718
- .after('<a class="bttk-remove-icon"></a>');
719
-
720
- if (in_customizer) {
721
- $(".hidden-icon-input").trigger("change");
722
- }
723
- return $(this).focus().trigger("change");
724
- });
725
- $(document).on("click", ".bttk-remove-icon", function () {
726
- var id = $(this).parents(".widget").attr("id");
727
- $("#" + id)
728
- .find(".bttk-font-group li")
729
- .removeClass();
730
- $("#" + id)
731
- .find(".hidden-icon-input")
732
- .val("");
733
- $("#" + id)
734
- .find(".icon-receiver")
735
- .html('<i class=""></i>')
736
- .children("a")
737
- .remove(".bttk-remove-icon");
738
- if (in_customizer) {
739
- $(".hidden-icon-input").trigger("change");
740
- }
741
- return $("#" + id)
742
- .find(".icon-receiver")
743
- .trigger("change");
744
- });
745
-
746
- /** To add remove button if icon is selected in widget update event */
747
- $(document).on("widget-updated", function (e, widget) {
748
- // "widget" represents jQuery object of the affected widget's DOM element
749
- var $this = $("#" + widget[0].id).find(".yes");
750
- $this.append('<a class="bttk-remove-icon"></a>');
751
- });
752
-
753
- bttktheme_pro_check_icon();
754
-
755
- /** function to check if icon is selected and saved when loading in widget.php */
756
- function bttktheme_pro_check_icon() {
757
- $(".icon-receiver").each(function () {
758
- // var id = $(this).parents('.widget').attr('id');
759
- if ($(this).hasClass("yes")) {
760
- $(this).append('<a class="bttk-remove-icon"></a>');
761
- }
762
- });
763
- }
764
- function initColorPicker(widget) {
765
- widget.find(".my-widget-color-field").wpColorPicker({
766
- change: _.throttle(function () {
767
- // For Customizer
768
- jQuery(this).trigger("change");
769
- }, 3000),
770
- });
771
- }
772
- function onFormUpdate(event, widget) {
773
- initColorPicker(widget);
774
- }
775
-
776
- jQuery(document).on("widget-added widget-updated", onFormUpdate);
777
- });
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function ($) {
2
+ $("body").on("click", "#add-faq:visible", function (e) {
3
+ e.preventDefault();
4
+ da = $(this).siblings(".widget-client-faq-repeater").attr("id");
5
+ if ($("body").hasClass("elementor-editor-active")) {
6
+ suffix = "REPLACE_TO_ID";
7
+ } else {
8
+ suffix = da.match(/\d+/);
9
+ }
10
+ len = 0;
11
+ $(".faqs-repeat:visible").each(function () {
12
+ var value = $(this).attr("data-id");
13
+ if (!isNaN(value)) {
14
+ value = parseInt(value);
15
+ len = value > len ? value : len;
16
+ }
17
+ });
18
+ var newinput = $(".bttk-faq-template").clone();
19
+ len++;
20
+ // newinput.html(function(i, oldHTML) {
21
+ // });
22
+ newinput.find(".faqs-repeat").attr("data-id", len);
23
+ newinput
24
+ .find(".question")
25
+ .attr(
26
+ "name",
27
+ "widget-bttk_faqs_widget[" + suffix + "][question][" + len + "]"
28
+ );
29
+ newinput
30
+ .find(".answer")
31
+ .attr(
32
+ "name",
33
+ "widget-bttk_faqs_widget[" + suffix + "][answer][" + len + "]"
34
+ );
35
+ // newinput.html(function(i, oldHTML) {
36
+ // return oldHTML.replace(/{{indexes}}/g, len);
37
+ // });
38
+ $(".cl-faq-holder").before(newinput.html()).focus().trigger("change");
39
+ });
40
+
41
+ var file_frame;
42
+ $(".user-signature-image").on("click", function (event) {
43
+ event.preventDefault();
44
+
45
+ // If the media frame already exists, reopen it.
46
+ if (file_frame) {
47
+ file_frame.open();
48
+ return;
49
+ }
50
+ // Create the media frame.
51
+ file_frame = wp.media.frames.file_frame = wp.media({
52
+ title: $(this).data("uploader_title"),
53
+ button: {
54
+ text: $(this).data("uploader_button_text"),
55
+ },
56
+ multiple: false, // Set to true to allow multiple files to be selected
57
+ });
58
+
59
+ // When an image is selected, run a callback.
60
+ file_frame.on("select", function () {
61
+ // We set multiple to false so only get one image from the uploader
62
+ attachment = file_frame.state().get("selection").first().toJSON();
63
+ $("#user_signature_image").val(attachment.url);
64
+ // Do something with attachment.id and/or attachment.url here
65
+ });
66
+
67
+ // Finally, open the modal
68
+ file_frame.open();
69
+ });
70
+
71
+ $("body").on("click", ".del-user-social-links", function (e) {
72
+ var confirmation = confirm(sociconsmsg.msg);
73
+ if (!confirmation) {
74
+ return false;
75
+ }
76
+ $(this)
77
+ .parent()
78
+ .fadeOut("slow", function () {
79
+ $(this).remove();
80
+ $("#add-user-socicon").focus().trigger("change");
81
+ });
82
+ return;
83
+ });
84
+
85
+ $(document).on("focus", ".user-contact-social-profile", function () {
86
+ // if($(this).val()=='')
87
+ // {
88
+ // if( $(this).siblings('.bttk-icons-list').length < 1 )
89
+ // {
90
+ var $iconlist = $(".bttk-icons-wrap").clone();
91
+ $(this).after($iconlist.html());
92
+ $(this).siblings(".bttk-icons-list").fadeIn("slow");
93
+ // }
94
+
95
+ // if ( $(this).siblings('.bttk-icons-list').find('#remove-icon-list').length < 1 )
96
+ // {
97
+ var input = '<span id="remove-icon-list" class="fas fa-times"></span>';
98
+ $(this).siblings(".bttk-icons-list:visible").prepend(input);
99
+ // }
100
+ // }
101
+ });
102
+
103
+ $(document).on("blur", ".user-contact-social-profile", function (e) {
104
+ e.preventDefault();
105
+ $(this)
106
+ .siblings(".bttk-icons-list")
107
+ .fadeOut("slow", function () {
108
+ $(this).remove();
109
+ });
110
+ });
111
+
112
+ $(document).on("click", ".bttk-icons-list li", function (event) {
113
+ var prefix = $(this).children("svg").attr("data-prefix");
114
+ var icon = $(this).children("svg").attr("data-icon");
115
+ var val = prefix + " fa-" + icon;
116
+
117
+ $(this).parent().siblings(".user-social-profile").val(icon);
118
+ $(this).parent().siblings(".user-contact-social-profile").val(icon);
119
+
120
+ $(this)
121
+ .parent()
122
+ .parent()
123
+ .siblings(".bttk-contact-social-length")
124
+ .attr("value", "https://" + icon + ".com");
125
+ $(this)
126
+ .parent()
127
+ .parent()
128
+ .siblings(".bttk-social-length")
129
+ .attr("value", "https://" + icon + ".com");
130
+ $(this)
131
+ .parent()
132
+ .siblings(".user-social-links")
133
+ .attr("value", "https://" + icon + ".com");
134
+
135
+ $(this).siblings(".bttk-icons-wrap-search").remove("slow");
136
+ $(this)
137
+ .parent()
138
+ .fadeOut("slow", function () {
139
+ $(this).remove();
140
+ });
141
+
142
+ $(this).parent().siblings(".user-social-profile").trigger("change");
143
+ $(this).parent().siblings(".user-social-links").trigger("change");
144
+ $(this).parent().siblings(".user-contact-social-profile").trigger("change");
145
+ $(this).parent().siblings(".bttk-contact-social-length").trigger("change");
146
+ $(this).parent().siblings(".bttk-social-length").trigger("change");
147
+
148
+ event.preventDefault();
149
+ });
150
+
151
+ $(document).on("keyup", ".user-contact-social-profile", function () {
152
+ var value = $(this).val();
153
+ var matcher = new RegExp(value, "gi");
154
+ $(this)
155
+ .siblings(".bttk-icons-list")
156
+ .children("li")
157
+ .show()
158
+ .not(function () {
159
+ return matcher.test($(this).find("svg").attr("data-icon"));
160
+ })
161
+ .hide();
162
+ });
163
+
164
+ $(document).on("keyup", ".search-itw-icons", function () {
165
+ var value = $(this).val();
166
+ var matcher = new RegExp(value, "gi");
167
+ $(this)
168
+ .siblings(".bttk-font-awesome-list")
169
+ .find("li")
170
+ .show()
171
+ .not(function () {
172
+ return matcher.test($(this).find("svg").attr("data-icon"));
173
+ })
174
+ .hide();
175
+ });
176
+
177
+ $(document).on("keyup", ".bttk-sc-icons", function () {
178
+ var value = $(this).val();
179
+ var matcher = new RegExp(value, "gi");
180
+ $(this)
181
+ .siblings(".bttk-font-awesome-list")
182
+ .find("li")
183
+ .show()
184
+ .not(function () {
185
+ return matcher.test($(this).find("svg").attr("data-icon"));
186
+ })
187
+ .hide();
188
+ });
189
+
190
+ $(document).on("keyup", ".bttk-icons-wrap-search", function () {
191
+ var value = $(this).val();
192
+ var matcher = new RegExp(value, "gi");
193
+ $(this)
194
+ .parent(".bttk-icons-list")
195
+ .children("li")
196
+ .show()
197
+ .not(function () {
198
+ return matcher.test($(this).find("svg").attr("data-icon"));
199
+ })
200
+ .hide();
201
+ });
202
+
203
+ $(document).on("keyup", ".user-social-profile", function () {
204
+ var value = $(this).val();
205
+ var matcher = new RegExp(value, "gi");
206
+ $(this)
207
+ .siblings(".bttk-icons-list")
208
+ .children("li")
209
+ .show()
210
+ .not(function () {
211
+ return matcher.test($(this).find("svg").attr("data-icon"));
212
+ })
213
+ .hide();
214
+ });
215
+
216
+ $(document).on("focus", ".user-social-profile", function () {
217
+ // if( $(this).siblings('.bttk-icons-list').length < 1 )
218
+ // {
219
+ var $iconlist = $(".bttk-icons-wrap").clone();
220
+ $(this).after($iconlist.html());
221
+ $(this).siblings(".bttk-icons-list").fadeIn("slow");
222
+ // }
223
+
224
+ // if ( $(this).siblings('.bttk-icons-list').find('#remove-icon-list').length < 1 )
225
+ // {
226
+ var input = '<span id="remove-icon-list" class="fas fa-times"></span>';
227
+ $(this).siblings(".bttk-icons-list:visible").prepend(input);
228
+ // }
229
+ });
230
+
231
+ $(document).on("blur", ".user-social-profile", function (e) {
232
+ e.preventDefault();
233
+ $(this)
234
+ .siblings(".bttk-icons-list")
235
+ .fadeOut("slow", function () {
236
+ $(this).remove();
237
+ });
238
+ });
239
+
240
+ // $(document).on('click', function (e) {
241
+ // if( $(event.target).attr('class') == 'user-social-links' || $(event.target).attr('class') == 'bttk-social-length' || $(event.target).attr('class') == 'bttk-icons-wrap-search')
242
+ // {
243
+ // return;
244
+ // }
245
+ // $('.bttk-icons-list:visible').fadeOut('slow',function(){
246
+ // $(this).remove();
247
+ // });
248
+ // $('.bttk-icons-wrap-search:visible').fadeOut('slow',function(){
249
+ // $(this).remove();
250
+ // });
251
+ // });
252
+
253
+ var frame;
254
+
255
+ // ADD IMAGE LINK
256
+ $("body").on("click", ".bttk-upload-button", function (e) {
257
+ e.preventDefault();
258
+ var clicked = $(this).closest("div");
259
+ var custom_uploader = wp
260
+ .media({
261
+ title: "RARA Image Uploader",
262
+ // button: {
263
+ // text: 'Custom Button Text',
264
+ // },
265
+ multiple: false, // Set this to true to allow multiple files to be selected
266
+ })
267
+ .on("select", function () {
268
+ var attachment = custom_uploader
269
+ .state()
270
+ .get("selection")
271
+ .first()
272
+ .toJSON();
273
+ var str = attachment.url.split(".").pop();
274
+ var strarray = ["jpg", "gif", "png", "jpeg"];
275
+ if ($.inArray(str, strarray) != -1) {
276
+ clicked
277
+ .find(".bttk-screenshot")
278
+ .empty()
279
+ .hide()
280
+ .append(
281
+ '<img src="' +
282
+ attachment.url +
283
+ '"><a class="bttk-remove-image"></a>'
284
+ )
285
+ .slideDown("fast");
286
+ } else {
287
+ clicked
288
+ .find(".bttk-screenshot")
289
+ .empty()
290
+ .hide()
291
+ .append(
292
+ "<small>" + bttk_theme_toolkit_pro_uploader.msg + "</small>"
293
+ )
294
+ .slideDown("fast");
295
+ }
296
+
297
+ clicked.find(".bttk-upload").val(attachment.id).trigger("change");
298
+ clicked
299
+ .find(".bttk-upload-button")
300
+ .val(bttk_theme_toolkit_pro_uploader.change);
301
+ })
302
+ .open();
303
+ });
304
+
305
+ $("body").on("click", ".bttk-remove-image", function (e) {
306
+ var selector = $(this).parent("div").parent("div");
307
+ selector.find(".bttk-upload").val("").trigger("change");
308
+ selector.find(".bttk-remove-image").hide();
309
+ selector.find(".bttk-screenshot").slideUp();
310
+ selector
311
+ .find(".bttk-upload-button")
312
+ .val(bttk_theme_toolkit_pro_uploader.upload);
313
+
314
+ return false;
315
+ });
316
+
317
+ // Upload / Change Image
318
+ function bttk_image_upload(button_class) {
319
+ var _custom_media = true,
320
+ _orig_send_attachment = wp.media.editor.send.attachment;
321
+
322
+ jQuery("body").on("click", button_class, function (e) {
323
+ var button_id = "#" + jQuery(this).attr("id"),
324
+ self = jQuery(button_id),
325
+ send_attachment_bkp = wp.media.editor.send.attachment,
326
+ button = jQuery(button_id),
327
+ id = button.attr("id").replace("-button", "");
328
+
329
+ _custom_media = true;
330
+
331
+ wp.media.editor.send.attachment = function (props, attachment) {
332
+ if (_custom_media) {
333
+ jQuery("#" + id + "-preview")
334
+ .attr("src", attachment.url)
335
+ .css("display", "block");
336
+ jQuery("#" + id + "-remove").css("display", "inline-block");
337
+ jQuery("#" + id + "-noimg").css("display", "none");
338
+ jQuery("#" + id)
339
+ .val(attachment.url)
340
+ .trigger("change");
341
+ } else {
342
+ return _orig_send_attachment.apply(button_id, [props, attachment]);
343
+ }
344
+ };
345
+
346
+ wp.media.editor.open(button);
347
+
348
+ return false;
349
+ });
350
+ }
351
+ bttk_image_upload(".bttk-media-upload");
352
+
353
+ // set var
354
+ var in_customizer = false;
355
+
356
+ // check for wp.customize return boolean
357
+ if (typeof wp !== "undefined") {
358
+ in_customizer = typeof wp.customize !== "undefined" ? true : false;
359
+ }
360
+
361
+ // Remove Image
362
+ function bttk_image_remove(button_class) {
363
+ jQuery("body").on("click", button_class, function (e) {
364
+ var button = jQuery(this),
365
+ id = button.attr("id").replace("-remove", "");
366
+ jQuery("#" + id + "-preview").css("display", "none");
367
+ jQuery("#" + id + "-noimg").css("display", "block");
368
+ button.css("display", "none");
369
+ jQuery("#" + id)
370
+ .val("")
371
+ .trigger("change");
372
+ });
373
+ }
374
+ bttk_image_remove(".bttk-media-remove");
375
+
376
+ $("body").on("click", "#add-user-socicon", function (e) {
377
+ e.preventDefault();
378
+ da = $(this).siblings(".bttk-sortable-icons").attr("id");
379
+ if ($("body").hasClass("elementor-editor-active")) {
380
+ suffix = "REPLACE_TO_ID";
381
+ } else {
382
+ suffix = da.match(/\d+/);
383
+ }
384
+ var maximum = 0;
385
+ $(".social-share-list").each(function () {
386
+ var value = $(this).attr("data-id");
387
+ if (!isNaN(value)) {
388
+ value = parseInt(value);
389
+ maximum = value > maximum ? value : maximum;
390
+ }
391
+ });
392
+ var newField = $(".bttk-socicon-template").clone();
393
+ maximum++;
394
+ var name =
395
+ "widget-bttk_author_bio[" + suffix + "][socicon][" + maximum + "]";
396
+ newField.find(".user-social-links").attr("name", name);
397
+
398
+ var profile =
399
+ "widget-bttk_author_bio[" +
400
+ suffix +
401
+ "][socicon_profile][" +
402
+ maximum +
403
+ "]";
404
+ newField.find(".user-social-profile").attr("name", profile);
405
+
406
+ newField.html(function (i, oldHTML) {
407
+ return oldHTML.replace(/{{socicon_index}}/g, maximum);
408
+ });
409
+ $(".bttk-socicon-holder").before(newField.html());
410
+ });
411
+
412
+ $("body").on("click", ".bttk-social-add", function (e) {
413
+ e.preventDefault();
414
+ da = $(this).siblings(".bttk-sortable-links").attr("id");
415
+ if ($("body").hasClass("elementor-editor-active")) {
416
+ suffix = "REPLACE_TO_ID";
417
+ } else {
418
+ suffix = da.match(/\d+/);
419
+ }
420
+ var maximum = 0;
421
+ $(".bttk-social-icon-wrap:visible").each(function () {
422
+ var value = $(this).attr("data-id");
423
+ if (!isNaN(value)) {
424
+ value = parseInt(value);
425
+ maximum = value > maximum ? value : maximum;
426
+ }
427
+ });
428
+ var newinput = $(".bttk-social-template").clone();
429
+ maximum++;
430
+ newinput
431
+ .find(".bttk-social-length")
432
+ .attr(
433
+ "name",
434
+ "widget-bttk_social_links[" + suffix + "][social][" + maximum + "]"
435
+ );
436
+ newinput
437
+ .find(".user-social-profile")
438
+ .attr(
439
+ "name",
440
+ "widget-bttk_social_links[" +
441
+ suffix +
442
+ "][social_profile][" +
443
+ maximum +
444
+ "]"
445
+ );
446
+ newinput.html(function (i, oldHTML) {
447
+ return oldHTML.replace(/{{indexes}}/g, maximum);
448
+ });
449
+
450
+ $(this)
451
+ .siblings(".bttk-sortable-links")
452
+ .find(".bttk-social-icon-holder")
453
+ .before(newinput.html());
454
+ });
455
+
456
+ $("body").on("click", ".del-bttk-icon", function () {
457
+ var con = confirm(sociconsmsg.msg);
458
+ if (!con) {
459
+ return false;
460
+ }
461
+ $(this)
462
+ .parent()
463
+ .fadeOut("slow", function () {
464
+ $(this).remove();
465
+ $(".bttk-social-title-test").focus().trigger("change");
466
+ });
467
+ return;
468
+ });
469
+
470
+ $("body").on("click", ".del-contact-bttk-icon", function () {
471
+ var con = confirm(sociconsmsg.msg);
472
+ if (!con) {
473
+ return false;
474
+ }
475
+ $(this)
476
+ .parent()
477
+ .fadeOut("slow", function () {
478
+ $(this).remove();
479
+ $(".bttk-contact-social-title-test").focus().trigger("change");
480
+ });
481
+ return;
482
+ });
483
+
484
+ $("body").on("click", ".bttk-contact-social-add:visible", function (e) {
485
+ e.preventDefault();
486
+ da = $(this).siblings(".bttk-contact-sortable-links").attr("id");
487
+ if ($("body").hasClass("elementor-editor-active")) {
488
+ suffix = "REPLACE_TO_ID";
489
+ } else {
490
+ suffix = da.match(/\d+/);
491
+ }
492
+ var maximum = 0;
493
+ $(".bttk-contact-social-icon-wrap:visible").each(function () {
494
+ var value = $(this).attr("data-id");
495
+ if (!isNaN(value)) {
496
+ value = parseInt(value);
497
+ maximum = value > maximum ? value : maximum;
498
+ }
499
+ });
500
+ var newinput = $(".bttk-contact-social-template").clone();
501
+ maximum++;
502
+ newinput
503
+ .find(".bttk-contact-social-length")
504
+ .attr(
505
+ "name",
506
+ "widget-bttk_contact_social_links[" +
507
+ suffix +
508
+ "][social][" +
509
+ maximum +
510
+ "]"
511
+ );
512
+ newinput
513
+ .find(".user-contact-social-profile")
514
+ .attr(
515
+ "name",
516
+ "widget-bttk_contact_social_links[" +
517
+ suffix +
518
+ "][social_profile][" +
519
+ maximum +
520
+ "]"
521
+ );
522
+ newinput.html(function (i, oldHTML) {
523
+ return oldHTML.replace(/{{ind}}/g, maximum);
524
+ });
525
+ $(this)
526
+ .siblings(".bttk-contact-sortable-links")
527
+ .find(".bttk-contact-social-icon-holder")
528
+ .before(newinput.html())
529
+ .trigger("change");
530
+ });
531
+ // $(document).on('click','.bttk-icons-wrap-search',function() {
532
+ // if($(this).val()=='')
533
+ // {
534
+ // if( $(this).siblings('.bttk-icons-list').length < 1 )
535
+ // {
536
+ // var $iconlist = $('.bttk-icons-wrap').clone();
537
+ // $(this).after($iconlist.html());
538
+ // $(this).siblings('.bttk-icons-list').fadeIn('slow');
539
+ // }
540
+
541
+ // if ( $(this).siblings('.bttk-icons-list').find('.bttk-icons-wrap-search').length < 1 )
542
+ // {
543
+ // // var input = '<span id="remove-icon-list" class="dashicons dashicons-no"></span>';
544
+ // // $(this).siblings('.bttk-icons-list:visible').prepend(input);
545
+ // $('.bttk-icons-wrap-search').attr('value','');
546
+ // }
547
+ // }
548
+ // });
549
+
550
+ $("body").on("click", ".bttk-itw-add", function (e) {
551
+ e.preventDefault();
552
+ da = $(this).siblings(".bttk-img-text-outer").attr("id");
553
+ if ($("body").hasClass("elementor-editor-active")) {
554
+ suffix = "REPLACE_TO_ID";
555
+ } else {
556
+ suffix = da.match(/\d+/);
557
+ }
558
+ var maximum = 0;
559
+ $(".image-text-widget-wrap:visible").each(function () {
560
+ var value = $(this).attr("data-id");
561
+ if (!isNaN(value)) {
562
+ value = parseInt(value);
563
+ maximum = value > maximum ? value : maximum;
564
+ }
565
+ });
566
+ var newinput = $(".bttk-itw-template").clone();
567
+
568
+ newinput.html(function (i, oldHTML) {
569
+ maximum++;
570
+
571
+ newinput.find(".image-text-widget-wrap").attr("data-id", maximum);
572
+ newinput
573
+ .find(".text input")
574
+ .attr(
575
+ "name",
576
+ "widget-bttk_image_text_widget[" + suffix + "][link_text][]"
577
+ );
578
+ newinput
579
+ .find(".link input")
580
+ .attr("name", "widget-bttk_image_text_widget[" + suffix + "][link][]");
581
+ newinput
582
+ .find(".widget-upload input")
583
+ .attr("name", "widget-bttk_image_text_widget[" + suffix + "][image][]");
584
+
585
+ newinput
586
+ .find(".text input")
587
+ .attr(
588
+ "id",
589
+ "widget-bttk_image_text_widget[" + suffix + "][link_text][]"
590
+ );
591
+ newinput
592
+ .find(".link input")
593
+ .attr("id", "widget-bttk_image_text_widget[" + suffix + "][link][]");
594
+ newinput
595
+ .find(".widget-upload input")
596
+ .attr("id", "widget-bttk_image_text_widget[" + suffix + "][image][]");
597
+
598
+ newinput
599
+ .find(".text label")
600
+ .attr(
601
+ "for",
602
+ "widget-bttk_image_text_widget[" + suffix + "][link_text][]"
603
+ );
604
+ newinput
605
+ .find(".link label")
606
+ .attr("for", "widget-bttk_image_text_widget[" + suffix + "][link][]");
607
+ newinput
608
+ .find(".widget-upload label")
609
+ .attr("for", "widget-bttk_image_text_widget[" + suffix + "][image][]");
610
+
611
+ // newinput.find( '.bttk-screenshot' ).attr('id','widget-bttk_image_text_widget-'+suffix+'-image');
612
+
613
+ // oldHTML.replace(/{{indexes}}/g, maximum);
614
+ });
615
+
616
+ $(this)
617
+ .siblings(".bttk-img-text-outer")
618
+ .find(".itw-holder")
619
+ .before(newinput.html());
620
+ // $(this).siblings('.bttk-sortable-links').find('.bttk-social-icon-holder').before(newinput.html());
621
+ });
622
+ $("body").on("click", ".image-text-cancel", function (e) {
623
+ e.preventDefault();
624
+ $(this)
625
+ .parent()
626
+ .fadeOut("slow", function () {
627
+ $(this).remove();
628
+ });
629
+ });
630
+ $("body").on("click", "#remove-icon-list", function (e) {
631
+ e.preventDefault();
632
+ $(this)
633
+ .parent()
634
+ .fadeOut("slow", function () {
635
+ $(this).remove();
636
+ });
637
+ });
638
+
639
+ $("body").on("click", ".add-logo:visible", function (e) {
640
+ e.preventDefault();
641
+ da = $(this).siblings(".widget-client-logo-repeater").attr("id");
642
+ if ($("body").hasClass("elementor-editor-active")) {
643
+ suffix = "REPLACE_TO_ID";
644
+ } else {
645
+ suffix = da.match(/\d+/);
646
+ }
647
+ var len = $(".link-image-repeat:visible").length;
648
+ len++;
649
+ var newinput = $(".bttk-client-logo-template").clone();
650
+ newinput.html(function (i, oldHTML) {
651
+ newinput
652
+ .find(".featured-link")
653
+ .attr(
654
+ "name",
655
+ "widget-blossom_client_logo_widget[" + suffix + "][link][" + len + "]"
656
+ );
657
+ newinput
658
+ .find(".widget-upload .link")
659
+ .attr(
660
+ "name",
661
+ "widget-blossom_client_logo_widget[" +
662
+ suffix +
663
+ "][image][" +
664
+ len +
665
+ "]"
666
+ );
667
+ $(".widget-client-logo-repeater").trigger("change");
668
+ });
669
+ $(this)
670
+ .siblings(".widget-client-logo-repeater")
671
+ .find(".cl-repeater-holder")
672
+ .before(newinput.html());
673
+ });
674
+ $("body").on("click", ".cross", function (e) {
675
+ e.preventDefault();
676
+ $(this)
677
+ .parent()
678
+ .fadeOut("slow", function () {
679
+ $(this).remove();
680
+ $(".widget-client-logo-repeater").trigger("change");
681
+ });
682
+ });
683
+
684
+ $(document).on("click", ".bttk-font-group li", function () {
685
+ var id = $(this).parents(".widget").attr("id");
686
+ $("#" + id)
687
+ .find(".bttk-font-group li")
688
+ .removeClass();
689
+ $("#" + id)
690
+ .find(".icon-receiver")
691
+ .children("a")
692
+ .remove(".bttk-remove-icon");
693
+ $(this).addClass("selected");
694
+ var prefix = $(this)
695
+ .parents(".bttk-font-awesome-list")
696
+ .find(".bttk-font-group li.selected")
697
+ .children("svg")
698
+ .attr("data-prefix");
699
+ var icon = $(this)
700
+ .parents(".bttk-font-awesome-list")
701
+ .find(".bttk-font-group li.selected")
702
+ .children("svg")
703
+ .attr("data-icon");
704
+ var aa = prefix + " fa-" + icon;
705
+ $(this)
706
+ .parents(".bttk-font-awesome-list")
707
+ .siblings("p")
708
+ .find(".hidden-icon-input")
709
+ .val(aa);
710
+ $(this)
711
+ .parents(".bttk-font-awesome-list")
712
+ .siblings("p")
713
+ .find(".icon-receiver")
714
+ .html('<i class="' + aa + '"></i>');
715
+ $("#" + id)
716
+ .find(".icon-receiver")
717
+ .children("i")
718
+ .after('<a class="bttk-remove-icon"></a>');
719
+
720
+ if (in_customizer) {
721
+ $(".hidden-icon-input").trigger("change");
722
+ }
723
+ return $(this).focus().trigger("change");
724
+ });
725
+ $(document).on("click", ".bttk-remove-icon", function () {
726
+ var id = $(this).parents(".widget").attr("id");
727
+ $("#" + id)
728
+ .find(".bttk-font-group li")
729
+ .removeClass();
730
+ $("#" + id)
731
+ .find(".hidden-icon-input")
732
+ .val("");
733
+ $("#" + id)
734
+ .find(".icon-receiver")
735
+ .html('<i class=""></i>')
736
+ .children("a")
737
+ .remove(".bttk-remove-icon");
738
+ if (in_customizer) {
739
+ $(".hidden-icon-input").trigger("change");
740
+ }
741
+ return $("#" + id)
742
+ .find(".icon-receiver")
743
+ .trigger("change");
744
+ });
745
+
746
+ /** To add remove button if icon is selected in widget update event */
747
+ $(document).on("widget-updated", function (e, widget) {
748
+ // "widget" represents jQuery object of the affected widget's DOM element
749
+ var $this = $("#" + widget[0].id).find(".yes");
750
+ $this.append('<a class="bttk-remove-icon"></a>');
751
+ });
752
+
753
+ bttktheme_pro_check_icon();
754
+
755
+ /** function to check if icon is selected and saved when loading in widget.php */
756
+ function bttktheme_pro_check_icon() {
757
+ $(".icon-receiver").each(function () {
758
+ // var id = $(this).parents('.widget').attr('id');
759
+ if ($(this).hasClass("yes")) {
760
+ $(this).append('<a class="bttk-remove-icon"></a>');
761
+ }
762
+ });
763
+ }
764
+ function initColorPicker(widget) {
765
+ widget.find(".my-widget-color-field").wpColorPicker({
766
+ change: _.throttle(function () {
767
+ // For Customizer
768
+ jQuery(this).trigger("change");
769
+ }, 3000),
770
+ });
771
+ }
772
+ function onFormUpdate(event, widget) {
773
+ initColorPicker(widget);
774
+ }
775
+
776
+ jQuery(document).on("widget-added widget-updated", onFormUpdate);
777
+
778
+ $(document).on("change", ".cta-button-number", function (e) {
779
+ if ($(this).val() == 2) {
780
+ $(this).parent().siblings(".button-one-info, .button-two-info").show();
781
+ }
782
+ else {
783
+ $(this).parent().siblings(".button-two-info").fadeOut();
784
+ }
785
+ });
786
+ });
blossomthemes-toolkit.php CHANGED
@@ -1,82 +1,82 @@
1
- <?php
2
-
3
- /**
4
- * The plugin bootstrap file
5
- *
6
- * This file is read by WordPress to generate the plugin information in the plugin
7
- * admin area. This file also includes all of the dependencies used by the plugin,
8
- * registers the activation and deactivation functions, and defines a function
9
- * that starts the plugin.
10
- *
11
- * @link http://wordpress.org/plugins/blossomthemes-toolkit/
12
- * @since 1.0.0
13
- * @package Blossomthemes_Toolkit
14
- *
15
- * @wordpress-plugin
16
- * Plugin Name: BlossomThemes Toolkit
17
- * Plugin URI: https://wordpress.org/plugins/blossomthemes-toolkit/
18
- * Description: BlossomThemes Toolkit provides you necessary widgets for better and effective blogging.
19
- * Version: 2.2.1
20
- * Author: blossomthemes
21
- * Author URI: https://blossomthemes.com/
22
- * License: GPL-2.0+
23
- * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
24
- * Text Domain: blossomthemes-toolkit
25
- * Domain Path: /languages
26
- */
27
-
28
- // If this file is called directly, abort.
29
- if ( ! defined( 'WPINC' ) ) {
30
- die;
31
- }
32
-
33
- define( 'BTTK_PLUGIN_VERSION', '2.2.1' );
34
- define( 'BTTK_BASE_PATH', dirname( __FILE__ ) );
35
- define( 'BTTK_FILE_PATH', __FILE__ );
36
- define( 'BTTK_FILE_URL', rtrim( plugin_dir_url( __FILE__ ), '/' ) );
37
- add_image_size( 'post-slider-thumb-size', 330, 190, true );
38
- add_image_size( 'post-category-slider-size', 330, 350, true );
39
-
40
- /**
41
- * The code that runs during plugin activation.
42
- * This action is documented in includes/class-blossomthemes-toolkit-activator.php
43
- */
44
- function activate_blossomthemes_toolkit() {
45
- require_once plugin_dir_path( __FILE__ ) . 'includes/class-blossomthemes-toolkit-activator.php';
46
- Blossomthemes_Toolkit_Activator::activate();
47
- }
48
-
49
- /**
50
- * The code that runs during plugin deactivation.
51
- * This action is documented in includes/class-blossomthemes-toolkit-deactivator.php
52
- */
53
- function deactivate_blossomthemes_toolkit() {
54
- require_once plugin_dir_path( __FILE__ ) . 'includes/class-blossomthemes-toolkit-deactivator.php';
55
- Blossomthemes_Toolkit_Deactivator::deactivate();
56
- }
57
-
58
- register_activation_hook( __FILE__, 'activate_blossomthemes_toolkit' );
59
- register_deactivation_hook( __FILE__, 'deactivate_blossomthemes_toolkit' );
60
-
61
- /**
62
- * The core plugin class that is used to define internationalization,
63
- * admin-specific hooks, and public-facing site hooks.
64
- */
65
- require plugin_dir_path( __FILE__ ) . 'includes/class-blossomthemes-toolkit.php';
66
-
67
- /**
68
- * Begins execution of the plugin.
69
- *
70
- * Since everything within the plugin is registered via hooks,
71
- * then kicking off the plugin from this point in the file does
72
- * not affect the page life cycle.
73
- *
74
- * @since 1.0.0
75
- */
76
- function run_blossomthemes_toolkit() {
77
-
78
- $plugin = new Blossomthemes_Toolkit();
79
- $plugin->run();
80
-
81
- }
82
- run_blossomthemes_toolkit();
1
+ <?php
2
+
3
+ /**
4
+ * The plugin bootstrap file
5
+ *
6
+ * This file is read by WordPress to generate the plugin information in the plugin
7
+ * admin area. This file also includes all of the dependencies used by the plugin,
8
+ * registers the activation and deactivation functions, and defines a function
9
+ * that starts the plugin.
10
+ *
11
+ * @link http://wordpress.org/plugins/blossomthemes-toolkit/
12
+ * @since 1.0.0
13
+ * @package Blossomthemes_Toolkit
14
+ *
15
+ * @wordpress-plugin
16
+ * Plugin Name: BlossomThemes Toolkit
17
+ * Plugin URI: https://wordpress.org/plugins/blossomthemes-toolkit/
18
+ * Description: BlossomThemes Toolkit provides you necessary widgets for better and effective blogging.
19
+ * Version: 2.2.2
20
+ * Author: blossomthemes
21
+ * Author URI: https://blossomthemes.com/
22
+ * License: GPL-2.0+
23
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
24
+ * Text Domain: blossomthemes-toolkit
25
+ * Domain Path: /languages
26
+ */
27
+
28
+ // If this file is called directly, abort.
29
+ if ( ! defined( 'WPINC' ) ) {
30
+ die;
31
+ }
32
+
33
+ define( 'BTTK_PLUGIN_VERSION', '2.2.2' );
34
+ define( 'BTTK_BASE_PATH', dirname( __FILE__ ) );
35
+ define( 'BTTK_FILE_PATH', __FILE__ );
36
+ define( 'BTTK_FILE_URL', rtrim( plugin_dir_url( __FILE__ ), '/' ) );
37
+ add_image_size( 'post-slider-thumb-size', 330, 190, true );
38
+ add_image_size( 'post-category-slider-size', 330, 350, true );
39
+
40
+ /**
41
+ * The code that runs during plugin activation.
42
+ * This action is documented in includes/class-blossomthemes-toolkit-activator.php
43
+ */
44
+ function activate_blossomthemes_toolkit() {
45
+ require_once plugin_dir_path( __FILE__ ) . 'includes/class-blossomthemes-toolkit-activator.php';
46
+ Blossomthemes_Toolkit_Activator::activate();
47
+ }
48
+
49
+ /**
50
+ * The code that runs during plugin deactivation.
51
+ * This action is documented in includes/class-blossomthemes-toolkit-deactivator.php
52
+ */
53
+ function deactivate_blossomthemes_toolkit() {
54
+ require_once plugin_dir_path( __FILE__ ) . 'includes/class-blossomthemes-toolkit-deactivator.php';
55
+ Blossomthemes_Toolkit_Deactivator::deactivate();
56
+ }
57
+
58
+ register_activation_hook( __FILE__, 'activate_blossomthemes_toolkit' );
59
+ register_deactivation_hook( __FILE__, 'deactivate_blossomthemes_toolkit' );
60
+
61
+ /**
62
+ * The core plugin class that is used to define internationalization,
63
+ * admin-specific hooks, and public-facing site hooks.
64
+ */
65
+ require plugin_dir_path( __FILE__ ) . 'includes/class-blossomthemes-toolkit.php';
66
+
67
+ /**
68
+ * Begins execution of the plugin.
69
+ *
70
+ * Since everything within the plugin is registered via hooks,
71
+ * then kicking off the plugin from this point in the file does
72
+ * not affect the page life cycle.
73
+ *
74
+ * @since 1.0.0
75
+ */
76
+ function run_blossomthemes_toolkit() {
77
+
78
+ $plugin = new Blossomthemes_Toolkit();
79
+ $plugin->run();
80
+
81
+ }
82
+ run_blossomthemes_toolkit();
includes/class-blossomthemes-toolkit-activator.php CHANGED
@@ -1,36 +1,36 @@
1
- <?php
2
-
3
- /**
4
- * Fired during plugin activation
5
- *
6
- * @link http://wordpress.org/plugins/blossomthemes-toolkit/
7
- * @since 1.0.0
8
- *
9
- * @package Blossomthemes_Toolkit
10
- * @subpackage Blossomthemes_Toolkit/includes
11
- */
12
-
13
- /**
14
- * Fired during plugin activation.
15
- *
16
- * This class defines all code necessary to run during the plugin's activation.
17
- *
18
- * @since 1.0.0
19
- * @package Blossomthemes_Toolkit
20
- * @subpackage Blossomthemes_Toolkit/includes
21
- * @author blossomthemes <info@blossomthemes.com>
22
- */
23
- class Blossomthemes_Toolkit_Activator {
24
-
25
- /**
26
- * Short Description. (use period)
27
- *
28
- * Long Description.
29
- *
30
- * @since 1.0.0
31
- */
32
- public static function activate() {
33
- update_option( 'bttk_queue_flush_rewrite_rules', 'yes' );
34
- }
35
-
36
- }
1
+ <?php
2
+
3
+ /**
4
+ * Fired during plugin activation
5
+ *
6
+ * @link http://wordpress.org/plugins/blossomthemes-toolkit/
7
+ * @since 1.0.0
8
+ *
9
+ * @package Blossomthemes_Toolkit
10
+ * @subpackage Blossomthemes_Toolkit/includes
11
+ */
12
+
13
+ /**
14
+ * Fired during plugin activation.
15
+ *
16
+ * This class defines all code necessary to run during the plugin's activation.
17
+ *
18
+ * @since 1.0.0
19
+ * @package Blossomthemes_Toolkit
20
+ * @subpackage Blossomthemes_Toolkit/includes
21
+ * @author blossomthemes <info@blossomthemes.com>
22
+ */
23
+ class Blossomthemes_Toolkit_Activator {
24
+
25
+ /**
26
+ * Short Description. (use period)
27
+ *
28
+ * Long Description.
29
+ *
30
+ * @since 1.0.0
31
+ */
32
+ public static function activate() {
33
+ update_option( 'bttk_queue_flush_rewrite_rules', 'yes' );
34
+ }
35
+
36
+ }
includes/class-blossomthemes-toolkit-deactivator.php CHANGED
@@ -1,36 +1,36 @@
1
- <?php
2
-
3
- /**
4
- * Fired during plugin deactivation
5
- *
6
- * @link http://wordpress.org/plugins/blossomthemes-toolkit/
7
- * @since 1.0.0
8
- *
9
- * @package Blossomthemes_Toolkit
10
- * @subpackage Blossomthemes_Toolkit/includes
11
- */
12
-
13
- /**
14
- * Fired during plugin deactivation.
15
- *
16
- * This class defines all code necessary to run during the plugin's deactivation.
17
- *
18
- * @since 1.0.0
19
- * @package Blossomthemes_Toolkit
20
- * @subpackage Blossomthemes_Toolkit/includes
21
- * @author blossomthemes <info@blossomthemes.com>
22
- */
23
- class Blossomthemes_Toolkit_Deactivator {
24
-
25
- /**
26
- * Short Description. (use period)
27
- *
28
- * Long Description.
29
- *
30
- * @since 1.0.0
31
- */
32
- public static function deactivate() {
33
- update_option( 'bttk_queue_flush_rewrite_rules', 'yes' );
34
- }
35
-
36
- }
1
+ <?php
2
+
3
+ /**
4
+ * Fired during plugin deactivation
5
+ *
6
+ * @link http://wordpress.org/plugins/blossomthemes-toolkit/
7
+ * @since 1.0.0
8
+ *
9
+ * @package Blossomthemes_Toolkit
10
+ * @subpackage Blossomthemes_Toolkit/includes
11
+ */
12
+
13
+ /**
14
+ * Fired during plugin deactivation.
15
+ *
16
+ * This class defines all code necessary to run during the plugin's deactivation.
17
+ *
18
+ * @since 1.0.0
19
+ * @package Blossomthemes_Toolkit
20
+ * @subpackage Blossomthemes_Toolkit/includes
21
+ * @author blossomthemes <info@blossomthemes.com>
22
+ */
23
+ class Blossomthemes_Toolkit_Deactivator {
24
+
25
+ /**
26
+ * Short Description. (use period)
27
+ *
28
+ * Long Description.
29
+ *
30
+ * @since 1.0.0
31
+ */
32
+ public static function deactivate() {
33
+ update_option( 'bttk_queue_flush_rewrite_rules', 'yes' );
34
+ }
35
+
36
+ }
includes/widgets/widget-author-bio.php CHANGED
@@ -181,12 +181,15 @@ class Bttk_Author_Bio extends WP_Widget {
181
  <?php echo wpautop( wp_kses_post( $content ) ); ?>
182
  </div>
183
  <?php
184
- if( $signature_option == 'photo' && $attachment_id != '' ){ ?>
185
- <div class="signature-holder">
186
- <?php echo wp_get_attachment_image( $attachment_id, $author_bio_img_size, false, array( 'alt' => esc_html( $title ))); ?>
187
- </div>
188
- <?php }
189
- else{ echo '<div class="text-signature">'.esc_html( $signaturetext ).'</div>';}?>
 
 
 
190
  <?php if( $link && $label ){ ?>
191
  <a <?php if( isset( $instance['target'] ) && $instance['target']=='1' ){ echo "rel=noopener target=_blank"; } ?> href="<?php echo esc_url( $link ); ?>" class="readmore"><?php echo esc_html( $label );?></a>
192
  <?php } ?>
181
  <?php echo wpautop( wp_kses_post( $content ) ); ?>
182
  </div>
183
  <?php
184
+ if( $signature_option == 'photo' && $attachment_id != '' ){ ?>
185
+ <div class="signature-holder">
186
+ <?php echo wp_get_attachment_image( $attachment_id, $author_bio_img_size, false, array( 'alt' => esc_html( $title ))); ?>
187
+ </div>
188
+ <?php }
189
+ elseif( $signaturetext ) {
190
+ echo '<div class="text-signature">'.esc_html( $signaturetext ).'</div>';
191
+ }
192
+ ?>
193
  <?php if( $link && $label ){ ?>
194
  <a <?php if( isset( $instance['target'] ) && $instance['target']=='1' ){ echo "rel=noopener target=_blank"; } ?> href="<?php echo esc_url( $link ); ?>" class="readmore"><?php echo esc_html( $label );?></a>
195
  <?php } ?>
includes/widgets/widget-client-logo.php CHANGED
@@ -1,212 +1,212 @@
1
- <?php
2
- /**
3
- * Icon Text Widget
4
- *
5
- * @package Rttk_Pro
6
- */
7
-
8
- // register Blossom_Client_Logo_Widget widget
9
- function blossom_register_client_logo_widget(){
10
- register_widget( 'Blossom_Client_Logo_Widget' );
11
- }
12
- add_action('widgets_init', 'blossom_register_client_logo_widget');
13
-
14
- /**
15
- * Adds Blossom_Client_Logo_Widget widget.
16
- */
17
- class Blossom_Client_Logo_Widget extends WP_Widget {
18
-
19
- /**
20
- * Register widget with WordPress.
21
- */
22
- public function __construct() {
23
- parent::__construct(
24
- 'blossom_client_logo_widget', // Base ID
25
- __( 'Blossom: Client Logo Widget', 'blossomthemes-toolkit' ), // Name
26
- array( 'description' => __( 'A Client Logo Widget.', 'blossomthemes-toolkit' ), ) // Args
27
- );
28
- }
29
-
30
- /**
31
- * Front-end display of widget.
32
- *
33
- * @see WP_Widget::widget()
34
- *
35
- * @param array $args Widget arguments.
36
- * @param array $instance Saved values from database.
37
- */
38
- public function widget( $args, $instance ) {
39
-
40
- $obj = new BlossomThemes_Toolkit_Functions();
41
-
42
- $title = ! empty( $instance['title'] ) ? $instance['title'] : '' ;
43
- $image = ! empty( $instance['image'] ) ? $instance['image'] : '';
44
- $link = ! empty( $instance['link'] ) ? $instance['link'] : '';
45
- $display_bw = ! empty( $instance['display_bw'] ) ? $instance['display_bw'] : '' ;
46
- $target = ! empty( $instance['target'] ) ? $instance['target'] : '';
47
-
48
- $class = '';
49
- if( isset( $display_bw ) && $display_bw != '' ){
50
- $class = "black-white";
51
- }
52
-
53
- $target = 'rel="noopener noexternal" target="_blank"';
54
- if( isset( $instance['target'] ) && $instance['target'] != '' ){
55
- $target = 'target="_self"';
56
- }
57
-
58
- echo $args['before_widget'];
59
- ob_start();
60
- ?>
61
- <div class="blossom-iw-holder">
62
- <div class="blossom-iw-inner-holder">
63
- <?php
64
- if( $title ) echo $args['before_title'] . apply_filters( 'widget_title', $title, $instance, $this->id_base ) . $args['after_title'];
65
-
66
- if( isset( $image ) && $image !='' ){
67
-
68
- echo '<div class="blossom-inner-wrap">';
69
- foreach ( $instance['image'] as $key => $value ) {
70
- if( isset( $instance['image'][$key] ) && $instance['image'][$key] !='' )
71
- {
72
- $image_id = $instance['image'][$key];
73
-
74
- if ( !filter_var( $instance['image'][$key], FILTER_VALIDATE_URL ) === false ) {
75
- $image_id = $obj->bttk_get_attachment_id( $instance['image'][$key] );
76
- }
77
- // retrieve the thumbnail size of our image
78
- $cl_img_size = apply_filters('bttk_cl_img_size','full');
79
- ?>
80
- <div class="image-holder <?php echo esc_attr( $class ); ?>">
81
- <?php
82
- if( isset( $instance['link'][$key] ) && $instance['link'][$key]!='' )
83
- { ?>
84
- <a href="<?php echo esc_url( $instance['link'][$key] );?>" <?php echo $target;?>>
85
- <?php
86
- }
87
-
88
- echo wp_get_attachment_image( $image_id, $cl_img_size, false,
89
- array( 'alt' => esc_attr( $title )));
90
-
91
- if( isset( $instance['link'][$key] ) && $instance['link'][$key]!='' ){ echo '</a>'; }
92
- ?>
93
- </div>
94
- <?php
95
- }
96
- }
97
- echo '</div>';
98
- }
99
- ?>
100
- </div>
101
- </div>
102
- <?php
103
- $html = ob_get_clean();
104
- echo apply_filters( 'blossom_companion_iw', $html, $args, $title, $image, $link );
105
- echo $args['after_widget'];
106
- }
107
-
108
- /**
109
- * Back-end widget form.
110
- *
111
- * @see WP_Widget::form()
112
- *
113
- * @param array $instance Previously saved values from database.
114
- */
115
- public function form( $instance ) {
116
- $obj = new BlossomThemes_Toolkit_Functions();
117
- $title = ! empty( $instance['title'] ) ? $instance['title'] : '' ;
118
- $display_bw = ! empty( $instance['display_bw'] ) ? $instance['display_bw'] : '' ;
119
- $image = ! empty( $instance['image'] ) ? $instance['image'] : '';
120
- $target = ! empty( $instance['target'] ) ? $instance['target'] : '';
121
- $link = ! empty( $instance['link'] ) ? $instance['link'] : '';
122
- ?>
123
- <script type='text/javascript'>
124
- jQuery(document).ready(function($) {
125
- $('.widget-client-logo-repeater').sortable({
126
- cursor: 'move',
127
- update: function (event, ui) {
128
- $('.widget-client-logo-repeater .link-image-repeat input').trigger('change');
129
- }
130
- });
131
- $('.check-btn-wrap').on('click', function( event ){
132
- $(this).trigger('change');
133
- });
134
- });
135
- </script>
136
- <p>
137
- <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'blossomthemes-toolkit' ); ?></label>
138
- <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
139
- </p>
140
-
141
- <p>
142
- <label for="<?php echo esc_attr( $this->get_field_id( 'display_bw' ) ); ?>" class="check-btn-wrap">
143
- <input id="<?php echo esc_attr( $this->get_field_id( 'display_bw' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'display_bw' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $display_bw ); ?>/>
144
- <?php esc_html_e( 'Display logo in black and white', 'blossomthemes-toolkit' ); ?>
145
- </label>
146
- </p>
147
-
148
- <p>
149
- <label for="<?php echo esc_attr( $this->get_field_id( 'target' ) ); ?>">
150
- <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'target' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'target' ) ); ?>" type="checkbox" value="1" <?php echo checked($target,1);?> /><?php esc_html_e( 'Open in Same Tab', 'blossomthemes-toolkit' ); ?> </label>
151
- </p>
152
-
153
- <div class="widget-client-logo-repeater" id="<?php echo esc_attr( $this->get_field_id( 'blossomcompanion-logo-repeater' ) ); ?>">
154
- <?php
155
- if( isset( $image ) && $image !='' ){
156
- foreach ( $instance['image'] as $key => $value ) { ?>
157
- <div class="link-image-repeat"><span class="cross"><a href="javascript:void(0);"><i class="fa fa-times"></i></a></span>
158
-
159
- <?php $obj->bttk_get_image_field( $this->get_field_id( 'image['.$key.']' ), $this->get_field_name( 'image['.$key.']' ), $instance['image'][$key], __( 'Upload Image', 'blossomthemes-toolkit' ) ); ?>
160
-
161
- <div class="widget-feat-link">
162
- <label for="<?php echo esc_attr( $this->get_field_id( 'link['.$key.']' ) ); ?>"><?php esc_html_e( 'Featured Link', 'blossomthemes-toolkit' ); ?></label>
163
- <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'link['.$key.']' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'link['.$key.']' ) ); ?>" type="text" value="<?php echo esc_url( $instance['link'][$key] ); ?>" />
164
- </div>
165
-
166
- </div>
167
- <?php
168
- }
169
- }
170
- ?>
171
- <span class="cl-repeater-holder"></span>
172
- </div>
173
-
174
- <button class="add-logo button"><?php _e('Add Another Logo','blossomthemes-toolkit');?></button>
175
- <?php
176
- }
177
-
178
- /**
179
- * Sanitize widget form values as they are saved.
180
- *
181
- * @see WP_Widget::update()
182
- *
183
- * @param array $new_instance Values just sent to be saved.
184
- * @param array $old_instance Previously saved values from database.
185
- *
186
- * @return array Updated safe values to be saved.
187
- */
188
- public function update( $new_instance, $old_instance ) {
189
- $instance = array();
190
- $instance['title'] = ! empty( $new_instance['title'] ) ? sanitize_text_field( $new_instance['title'] ) : '' ;
191
- $instance['display_bw'] = ! empty( $new_instance['display_bw'] ) ? esc_attr( $new_instance['display_bw'] ) : '' ;
192
- $instance['target'] = ! empty( $new_instance['target'] ) ? esc_attr( $new_instance['target'] ) : '';
193
-
194
- if(isset($new_instance['image'])) {
195
- if( count( array_filter( $new_instance['image'] ) ) != 0 ) {
196
- foreach ( $new_instance['image'] as $key => $value ) {
197
- $instance['image'][$key] = $value;
198
- }
199
- }
200
- }
201
-
202
- if(isset($new_instance['link'])){
203
- if( count( array_filter( $new_instance['link'] ) ) != 0 ){
204
- foreach ( $new_instance['link'] as $key => $value ) {
205
- $instance['link'][$key] = $value;
206
- }
207
- }
208
- }
209
-
210
- return $instance;
211
- }
212
  } // class Blossom_Client_Logo_Widget
1
+ <?php
2
+ /**
3
+ * Icon Text Widget
4
+ *
5
+ * @package Rttk_Pro
6
+ */
7
+
8
+ // register Blossom_Client_Logo_Widget widget
9
+ function blossom_register_client_logo_widget(){
10
+ register_widget( 'Blossom_Client_Logo_Widget' );
11
+ }
12
+ add_action('widgets_init', 'blossom_register_client_logo_widget');
13
+
14
+ /**
15
+ * Adds Blossom_Client_Logo_Widget widget.
16
+ */
17
+ class Blossom_Client_Logo_Widget extends WP_Widget {
18
+
19
+ /**
20
+ * Register widget with WordPress.
21
+ */
22
+ public function __construct() {
23
+ parent::__construct(
24
+ 'blossom_client_logo_widget', // Base ID
25
+ __( 'Blossom: Client Logo Widget', 'blossomthemes-toolkit' ), // Name
26
+ array( 'description' => __( 'A Client Logo Widget.', 'blossomthemes-toolkit' ), ) // Args
27
+ );
28
+ }
29
+
30
+ /**
31
+ * Front-end display of widget.
32
+ *
33
+ * @see WP_Widget::widget()
34
+ *
35
+ * @param array $args Widget arguments.
36
+ * @param array $instance Saved values from database.
37
+ */
38
+ public function widget( $args, $instance ) {
39
+
40
+ $obj = new BlossomThemes_Toolkit_Functions();
41
+
42
+ $title = ! empty( $instance['title'] ) ? $instance['title'] : '' ;
43
+ $image = ! empty( $instance['image'] ) ? $instance['image'] : '';
44
+ $link = ! empty( $instance['link'] ) ? $instance['link'] : '';
45
+ $display_bw = ! empty( $instance['display_bw'] ) ? $instance['display_bw'] : '' ;
46
+ $target = ! empty( $instance['target'] ) ? $instance['target'] : '';
47
+
48
+ $class = '';
49
+ if( isset( $display_bw ) && $display_bw != '' ){
50
+ $class = "black-white";
51
+ }
52
+
53
+ $target = 'rel="noopener noexternal" target="_blank"';
54
+ if( isset( $instance['target'] ) && $instance['target'] != '' ){
55
+ $target = 'target="_self"';
56
+ }
57
+
58
+ echo $args['before_widget'];
59
+ ob_start();
60
+ ?>
61
+ <div class="blossom-iw-holder">
62
+ <div class="blossom-iw-inner-holder">
63
+ <?php
64
+ if( $title ) echo $args['before_title'] . apply_filters( 'widget_title', $title, $instance, $this->id_base ) . $args['after_title'];
65
+
66
+ if( isset( $image ) && $image !='' ){
67
+
68
+ echo '<div class="blossom-inner-wrap">';
69
+ foreach ( $instance['image'] as $key => $value ) {
70
+ if( isset( $instance['image'][$key] ) && $instance['image'][$key] !='' )
71
+ {
72
+ $image_id = $instance['image'][$key];
73
+
74
+ if ( !filter_var( $instance['image'][$key], FILTER_VALIDATE_URL ) === false ) {
75
+ $image_id = $obj->bttk_get_attachment_id( $instance['image'][$key] );
76
+ }
77
+ // retrieve the thumbnail size of our image
78
+ $cl_img_size = apply_filters('bttk_cl_img_size','full');
79
+ ?>
80
+ <div class="image-holder <?php echo esc_attr( $class ); ?>">
81
+ <?php
82
+ if( isset( $instance['link'][$key] ) && $instance['link'][$key]!='' )
83
+ { ?>
84
+ <a href="<?php echo esc_url( $instance['link'][$key] );?>" <?php echo $target;?>>
85
+ <?php
86
+ }
87
+
88
+ echo wp_get_attachment_image( $image_id, $cl_img_size, false,
89
+ array( 'alt' => esc_attr( $title )));
90
+
91
+ if( isset( $instance['link'][$key] ) && $instance['link'][$key]!='' ){ echo '</a>'; }
92
+ ?>
93
+ </div>
94
+ <?php
95
+ }
96
+ }
97
+ echo '</div>';
98
+ }
99
+ ?>
100
+ </div>
101
+ </div>
102
+ <?php
103
+ $html = ob_get_clean();
104
+ echo apply_filters( 'blossom_companion_iw', $html, $args, $title, $image, $link );
105
+ echo $args['after_widget'];
106
+ }
107
+
108
+ /**
109
+ * Back-end widget form.
110
+ *
111
+ * @see WP_Widget::form()
112
+ *
113
+ * @param array $instance Previously saved values from database.
114
+ */
115
+ public function form( $instance ) {
116
+ $obj = new BlossomThemes_Toolkit_Functions();
117
+ $title = ! empty( $instance['title'] ) ? $instance['title'] : '' ;
118
+ $display_bw = ! empty( $instance['display_bw'] ) ? $instance['display_bw'] : '' ;
119
+ $image = ! empty( $instance['image'] ) ? $instance['image'] : '';
120
+ $target = ! empty( $instance['target'] ) ? $instance['target'] : '';
121
+ $link = ! empty( $instance['link'] ) ? $instance['link'] : '';
122
+ ?>
123
+ <script type='text/javascript'>
124
+ jQuery(document).ready(function($) {
125
+ $('.widget-client-logo-repeater').sortable({
126
+ cursor: 'move',
127
+ update: function (event, ui) {
128
+ $('.widget-client-logo-repeater .link-image-repeat input').trigger('change');
129
+ }
130
+ });
131
+ $('.check-btn-wrap').on('click', function( event ){
132
+ $(this).trigger('change');
133
+ });
134
+ });
135
+ </script>
136
+ <p>
137
+ <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'blossomthemes-toolkit' ); ?></label>
138
+ <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
139
+ </p>
140
+
141
+ <p>
142
+ <label for="<?php echo esc_attr( $this->get_field_id( 'display_bw' ) ); ?>" class="check-btn-wrap">
143
+ <input id="<?php echo esc_attr( $this->get_field_id( 'display_bw' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'display_bw' ) ); ?>" type="checkbox" value="1" <?php checked( '1', $display_bw ); ?>/>
144
+ <?php esc_html_e( 'Display logo in black and white', 'blossomthemes-toolkit' ); ?>
145
+ </label>
146
+ </p>
147
+
148
+ <p>
149
+ <label for="<?php echo esc_attr( $this->get_field_id( 'target' ) ); ?>">
150
+ <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'target' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'target' ) ); ?>" type="checkbox" value="1" <?php echo checked($target,1);?> /><?php esc_html_e( 'Open in Same Tab', 'blossomthemes-toolkit' ); ?> </label>
151
+ </p>
152
+
153
+ <div class="widget-client-logo-repeater" id="<?php echo esc_attr( $this->get_field_id( 'blossomcompanion-logo-repeater' ) ); ?>">
154
+ <?php
155
+ if( isset( $image ) && $image !='' ){
156
+ foreach ( $instance['image'] as $key => $value ) { ?>
157
+ <div class="link-image-repeat"><span class="cross"><a href="javascript:void(0);"><i class="fa fa-times"></i></a></span>
158
+
159
+ <?php $obj->bttk_get_image_field( $this->get_field_id( 'image['.$key.']' ), $this->get_field_name( 'image['.$key.']' ), $instance['image'][$key], __( 'Upload Image', 'blossomthemes-toolkit' ) ); ?>
160
+
161
+ <div class="widget-feat-link">
162
+ <label for="<?php echo esc_attr( $this->get_field_id( 'link['.$key.']' ) ); ?>"><?php esc_html_e( 'Featured Link', 'blossomthemes-toolkit' ); ?></label>
163
+ <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'link['.$key.']' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'link['.$key.']' ) ); ?>" type="text" value="<?php echo esc_url( $instance['link'][$key] ); ?>" />
164
+ </div>
165
+
166
+ </div>
167
+ <?php
168
+ }
169
+ }
170
+ ?>
171
+ <span class="cl-repeater-holder"></span>
172
+ </div>
173
+
174
+ <button class="add-logo button"><?php _e('Add Another Logo','blossomthemes-toolkit');?></button>
175
+ <?php
176
+ }
177
+
178
+ /**
179
+ * Sanitize widget form values as they are saved.
180
+ *
181
+ * @see WP_Widget::update()
182
+ *
183
+ * @param array $new_instance Values just sent to be saved.
184
+ * @param array $old_instance Previously saved values from database.
185
+ *
186
+ * @return array Updated safe values to be saved.
187
+ */
188
+ public function update( $new_instance, $old_instance ) {
189
+ $instance = array();
190
+ $instance['title'] = ! empty( $new_instance['title'] ) ? sanitize_text_field( $new_instance['title'] ) : '' ;
191
+ $instance['display_bw'] = ! empty( $new_instance['display_bw'] ) ? esc_attr( $new_instance['display_bw'] ) : '' ;
192
+ $instance['target'] = ! empty( $new_instance['target'] ) ? esc_attr( $new_instance['target'] ) : '';
193
+
194
+ if(isset($new_instance['image'])) {
195
+ if( count( array_filter( $new_instance['image'] ) ) != 0 ) {
196
+ foreach ( $new_instance['image'] as $key => $value ) {
197
+ $instance['image'][$key] = $value;
198
+ }
199
+ }
200
+ }
201
+
202
+ if(isset($new_instance['link'])){
203
+ if( count( array_filter( $new_instance['link'] ) ) != 0 ){
204
+ foreach ( $new_instance['link'] as $key => $value ) {
205
+ $instance['link'][$key] = $value;
206
+ }
207
+ }
208
+ }
209
+
210
+ return $instance;
211
+ }
212
  } // class Blossom_Client_Logo_Widget
includes/widgets/widget-cta.php CHANGED
@@ -254,21 +254,7 @@ class BlossomThemes_Toolkit_Cta extends WP_Widget {
254
  Or,
255
  <?php
256
  $obj->bttk_get_image_field( $this->get_field_id( 'widget-bg-image' ), $this->get_field_name( 'widget-bg-image' ), $widget_bg_image, __( 'Upload Image', 'blossomthemes-toolkit' ) );
257
- echo
258
- '<script>
259
- jQuery(document).ready(function($){
260
- $(".cta-button-number").on("change",function() {
261
- if( $(this).val()== 2 )
262
- {
263
- $(this).parent().siblings(".button-one-info, .button-two-info").show();
264
- }
265
- else{
266
- $(this).parent().siblings(".button-two-info").fadeOut();
267
- }
268
- });
269
- });
270
 
271
- </script>';
272
  }
273
 
274
  /**
254
  Or,
255
  <?php
256
  $obj->bttk_get_image_field( $this->get_field_id( 'widget-bg-image' ), $this->get_field_name( 'widget-bg-image' ), $widget_bg_image, __( 'Upload Image', 'blossomthemes-toolkit' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
257
 
 
258
  }
259
 
260
  /**
includes/widgets/widget-snapchat.php CHANGED
@@ -45,6 +45,11 @@ class bttk_snapcode_widget extends WP_Widget {
45
  //* Merge with defaults
46
  $instance = wp_parse_args((array) $instance, $this->defaults);
47
 
 
 
 
 
 
48
  echo $args['before_widget'];
49
  ob_start();
50
  if (empty($instance['snapcode'])) {
45
  //* Merge with defaults
46
  $instance = wp_parse_args((array) $instance, $this->defaults);
47
 
48
+ if ( empty( $instance['snapcode'] ) ) {
49
+ // Display nothing if called in backend.
50
+ return;
51
+ }
52
+
53
  echo $args['before_widget'];
54
  ob_start();
55
  if (empty($instance['snapcode'])) {
includes/widgets/widget-socialmedia.php CHANGED
@@ -82,7 +82,10 @@ class Bttk_Social_Links extends WP_Widget {
82
  * @param array $instance Saved values from database.
83
  */
84
  public function widget( $args, $instance ) {
85
- // print_r($instance);
 
 
 
86
  $title = ! empty( $instance['title'] ) ? $instance['title'] : '';
87
  $size = isset($instance['size'])?esc_attr($instance['size']):'20';
88
  echo $args['before_widget'];
82
  * @param array $instance Saved values from database.
83
  */
84
  public function widget( $args, $instance ) {
85
+ if ( ! isset( $instance['social'] ) ) {
86
+ // Display nothing if called in backend.
87
+ return;
88
+ }
89
  $title = ! empty( $instance['title'] ) ? $instance['title'] : '';
90
  $size = isset($instance['size'])?esc_attr($instance['size']):'20';
91
  echo $args['before_widget'];
languages/blossomthemes-toolkit.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2021 blossomthemes
2
  # This file is distributed under the GPL-2.0+.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: BlossomThemes Toolkit 2.2.1\n"
6
  "Report-Msgid-Bugs-To: \n"
7
- "POT-Creation-Date: 2021-03-24 06:27:21+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2021-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: WP Travel Engine\n"
13
  "Language-Team: \n"
14
  "X-Poedit-KeywordsList: "
@@ -250,7 +250,7 @@ msgid "An Advertisement Widget."
250
  msgstr ""
251
 
252
  #: includes/widgets/widget-advertisement.php:117
253
- #: includes/widgets/widget-author-bio.php:338
254
  #: includes/widgets/widget-client-logo.php:137
255
  #: includes/widgets/widget-contact.php:242 includes/widgets/widget-cta.php:192
256
  #: includes/widgets/widget-facebook-page.php:107
@@ -258,7 +258,7 @@ msgstr ""
258
  #: includes/widgets/widget-image-text.php:153
259
  #: includes/widgets/widget-popular-post.php:218
260
  #: includes/widgets/widget-recent-post.php:149
261
- #: includes/widgets/widget-socialmedia.php:211
262
  #: includes/widgets/widget-stat-counter.php:131
263
  #: includes/widgets/widget-twitter-feeds.php:139
264
  msgid "Title"
@@ -274,8 +274,8 @@ msgid "Ad Code"
274
  msgstr ""
275
 
276
  #: includes/widgets/widget-advertisement.php:126
277
- #: includes/widgets/widget-author-bio.php:352
278
- #: includes/widgets/widget-author-bio.php:373
279
  msgid "Uploaded Photo"
280
  msgstr ""
281
 
@@ -297,11 +297,11 @@ msgid "An Author Bio Widget"
297
  msgstr ""
298
 
299
  #: includes/widgets/widget-author-bio.php:100
300
- #: includes/widgets/widget-author-bio.php:428
301
  #: includes/widgets/widget-contact.php:60
302
  #: includes/widgets/widget-contact.php:301
303
  #: includes/widgets/widget-socialmedia.php:60
304
- #: includes/widgets/widget-socialmedia.php:248
305
  msgid "Social Icon"
306
  msgstr ""
307
 
@@ -312,86 +312,86 @@ msgid "Search Social Icons"
312
  msgstr ""
313
 
314
  #: includes/widgets/widget-author-bio.php:103
315
- #: includes/widgets/widget-author-bio.php:431
316
  #: includes/widgets/widget-contact.php:63
317
  #: includes/widgets/widget-contact.php:304
318
  #: includes/widgets/widget-socialmedia.php:63
319
- #: includes/widgets/widget-socialmedia.php:251
320
  msgid "Link"
321
  msgstr ""
322
 
323
- #: includes/widgets/widget-author-bio.php:343
324
  msgid "Author Name"
325
  msgstr ""
326
 
327
- #: includes/widgets/widget-author-bio.php:348
328
  msgid "Display photo from:"
329
  msgstr ""
330
 
331
- #: includes/widgets/widget-author-bio.php:350
332
  msgid "Gravatar"
333
  msgstr ""
334
 
335
- #: includes/widgets/widget-author-bio.php:355
336
  msgid "Upload Author Image"
337
  msgstr ""
338
 
339
- #: includes/widgets/widget-author-bio.php:358
340
  msgid "Author Email"
341
  msgstr ""
342
 
343
- #: includes/widgets/widget-author-bio.php:361
344
  msgid ""
345
  "You can show your %1$s image instead of manually uploading your photo. Just "
346
  "add your gravatar registered email address here."
347
  msgstr ""
348
 
349
- #: includes/widgets/widget-author-bio.php:364
350
  #: includes/widgets/widget-contact.php:247 includes/widgets/widget-cta.php:197
351
  #: includes/widgets/widget-icon-text.php:117
352
  #: includes/widgets/widget-team-member.php:190
353
  msgid "Description"
354
  msgstr ""
355
 
356
- #: includes/widgets/widget-author-bio.php:369
357
  msgid "Display Signature from:"
358
  msgstr ""
359
 
360
- #: includes/widgets/widget-author-bio.php:371
361
  msgid "Text"
362
  msgstr ""
363
 
364
- #: includes/widgets/widget-author-bio.php:376
365
  msgid "Upload Signature Image"
366
  msgstr ""
367
 
368
- #: includes/widgets/widget-author-bio.php:380
369
  msgid "Signature Text"
370
  msgstr ""
371
 
372
- #: includes/widgets/widget-author-bio.php:384
373
  msgid "Button Label"
374
  msgstr ""
375
 
376
- #: includes/widgets/widget-author-bio.php:389
377
  msgid "Button Link"
378
  msgstr ""
379
 
380
- #: includes/widgets/widget-author-bio.php:396
381
  #: includes/widgets/widget-popular-post.php:260
382
  #: includes/widgets/widget-posts-category-slider.php:249
383
  #: includes/widgets/widget-recent-post.php:184
384
- #: includes/widgets/widget-socialmedia.php:216
385
  msgid "Open in New Tab"
386
  msgstr ""
387
 
388
- #: includes/widgets/widget-author-bio.php:445
389
  msgid "Add Social Profile"
390
  msgstr ""
391
 
392
- #: includes/widgets/widget-author-bio.php:446
393
  #: includes/widgets/widget-contact.php:320
394
- #: includes/widgets/widget-socialmedia.php:267
395
  msgid ""
396
  "Click on the above button to add social media icons. You can also change "
397
  "the order of the social icons."
@@ -438,7 +438,7 @@ msgid "Open Social Links in New Tab"
438
  msgstr ""
439
 
440
  #: includes/widgets/widget-contact.php:319
441
- #: includes/widgets/widget-socialmedia.php:266
442
  msgid "Add Social Icon"
443
  msgstr ""
444
 
@@ -514,7 +514,7 @@ msgstr ""
514
  #: includes/widgets/widget-custom-categories.php:116
515
  #: includes/widgets/widget-pinterest.php:69
516
  #: includes/widgets/widget-posts-category-slider.php:212
517
- #: includes/widgets/widget-snapchat.php:101
518
  msgid "Title:"
519
  msgstr ""
520
 
@@ -813,35 +813,35 @@ msgstr ""
813
  msgid "Display your Snapchat Snapcode."
814
  msgstr ""
815
 
816
- #: includes/widgets/widget-snapchat.php:52
817
  msgid "Please upload your Snapchat image."
818
  msgstr ""
819
 
820
- #: includes/widgets/widget-snapchat.php:71
821
  msgid "Follow <b>%s</b> on Snapchat!"
822
  msgstr ""
823
 
824
- #: includes/widgets/widget-snapchat.php:105
825
  msgid "Step 1. Download your Snapcode PNG image from"
826
  msgstr ""
827
 
828
- #: includes/widgets/widget-snapchat.php:105
829
  msgid "this link"
830
  msgstr ""
831
 
832
- #: includes/widgets/widget-snapchat.php:106
833
  msgid "Step 2. Upload your Snapcode PNG image using the button below."
834
  msgstr ""
835
 
836
- #: includes/widgets/widget-snapchat.php:118
837
  msgid "Upload Snapchat Image"
838
  msgstr ""
839
 
840
- #: includes/widgets/widget-snapchat.php:124
841
  msgid "Snapchat Account Name:"
842
  msgstr ""
843
 
844
- #: includes/widgets/widget-snapchat.php:125
845
  msgid "For example:"
846
  msgstr ""
847
 
@@ -853,7 +853,7 @@ msgstr ""
853
  msgid "A Social Links Widget"
854
  msgstr ""
855
 
856
- #: includes/widgets/widget-socialmedia.php:197
857
  msgid "Subscribe and Follow"
858
  msgstr ""
859
 
1
+ # Copyright (C) 2022 blossomthemes
2
  # This file is distributed under the GPL-2.0+.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: BlossomThemes Toolkit 2.2.2\n"
6
  "Report-Msgid-Bugs-To: \n"
7
+ "POT-Creation-Date: 2022-01-27 09:01:53+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2022-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: WP Travel Engine\n"
13
  "Language-Team: \n"
14
  "X-Poedit-KeywordsList: "
250
  msgstr ""
251
 
252
  #: includes/widgets/widget-advertisement.php:117
253
+ #: includes/widgets/widget-author-bio.php:341
254
  #: includes/widgets/widget-client-logo.php:137
255
  #: includes/widgets/widget-contact.php:242 includes/widgets/widget-cta.php:192
256
  #: includes/widgets/widget-facebook-page.php:107
258
  #: includes/widgets/widget-image-text.php:153
259
  #: includes/widgets/widget-popular-post.php:218
260
  #: includes/widgets/widget-recent-post.php:149
261
+ #: includes/widgets/widget-socialmedia.php:214
262
  #: includes/widgets/widget-stat-counter.php:131
263
  #: includes/widgets/widget-twitter-feeds.php:139
264
  msgid "Title"
274
  msgstr ""
275
 
276
  #: includes/widgets/widget-advertisement.php:126
277
+ #: includes/widgets/widget-author-bio.php:355
278
+ #: includes/widgets/widget-author-bio.php:376
279
  msgid "Uploaded Photo"
280
  msgstr ""
281
 
297
  msgstr ""
298
 
299
  #: includes/widgets/widget-author-bio.php:100
300
+ #: includes/widgets/widget-author-bio.php:431
301
  #: includes/widgets/widget-contact.php:60
302
  #: includes/widgets/widget-contact.php:301
303
  #: includes/widgets/widget-socialmedia.php:60
304
+ #: includes/widgets/widget-socialmedia.php:251
305
  msgid "Social Icon"
306
  msgstr ""
307
 
312
  msgstr ""
313
 
314
  #: includes/widgets/widget-author-bio.php:103
315
+ #: includes/widgets/widget-author-bio.php:434
316
  #: includes/widgets/widget-contact.php:63
317
  #: includes/widgets/widget-contact.php:304
318
  #: includes/widgets/widget-socialmedia.php:63
319
+ #: includes/widgets/widget-socialmedia.php:254
320
  msgid "Link"
321
  msgstr ""
322
 
323
+ #: includes/widgets/widget-author-bio.php:346
324
  msgid "Author Name"
325
  msgstr ""
326
 
327
+ #: includes/widgets/widget-author-bio.php:351
328
  msgid "Display photo from:"
329
  msgstr ""
330
 
331
+ #: includes/widgets/widget-author-bio.php:353
332
  msgid "Gravatar"
333
  msgstr ""
334
 
335
+ #: includes/widgets/widget-author-bio.php:358
336
  msgid "Upload Author Image"
337
  msgstr ""
338
 
339
+ #: includes/widgets/widget-author-bio.php:361
340
  msgid "Author Email"
341
  msgstr ""
342
 
343
+ #: includes/widgets/widget-author-bio.php:364
344
  msgid ""
345
  "You can show your %1$s image instead of manually uploading your photo. Just "
346
  "add your gravatar registered email address here."
347
  msgstr ""
348
 
349
+ #: includes/widgets/widget-author-bio.php:367
350
  #: includes/widgets/widget-contact.php:247 includes/widgets/widget-cta.php:197
351
  #: includes/widgets/widget-icon-text.php:117
352
  #: includes/widgets/widget-team-member.php:190
353
  msgid "Description"
354
  msgstr ""
355
 
356
+ #: includes/widgets/widget-author-bio.php:372
357
  msgid "Display Signature from:"
358
  msgstr ""
359
 
360
+ #: includes/widgets/widget-author-bio.php:374
361
  msgid "Text"
362
  msgstr ""
363
 
364
+ #: includes/widgets/widget-author-bio.php:379
365
  msgid "Upload Signature Image"
366
  msgstr ""
367
 
368
+ #: includes/widgets/widget-author-bio.php:383
369
  msgid "Signature Text"
370
  msgstr ""
371
 
372
+ #: includes/widgets/widget-author-bio.php:387
373
  msgid "Button Label"
374
  msgstr ""
375
 
376
+ #: includes/widgets/widget-author-bio.php:392
377
  msgid "Button Link"
378
  msgstr ""
379
 
380
+ #: includes/widgets/widget-author-bio.php:399
381
  #: includes/widgets/widget-popular-post.php:260
382
  #: includes/widgets/widget-posts-category-slider.php:249
383
  #: includes/widgets/widget-recent-post.php:184
384
+ #: includes/widgets/widget-socialmedia.php:219
385
  msgid "Open in New Tab"
386
  msgstr ""
387
 
388
+ #: includes/widgets/widget-author-bio.php:448
389
  msgid "Add Social Profile"
390
  msgstr ""
391
 
392
+ #: includes/widgets/widget-author-bio.php:449
393
  #: includes/widgets/widget-contact.php:320
394
+ #: includes/widgets/widget-socialmedia.php:270
395
  msgid ""
396
  "Click on the above button to add social media icons. You can also change "
397
  "the order of the social icons."
438
  msgstr ""
439
 
440
  #: includes/widgets/widget-contact.php:319
441
+ #: includes/widgets/widget-socialmedia.php:269
442
  msgid "Add Social Icon"
443
  msgstr ""
444
 
514
  #: includes/widgets/widget-custom-categories.php:116
515
  #: includes/widgets/widget-pinterest.php:69
516
  #: includes/widgets/widget-posts-category-slider.php:212
517
+ #: includes/widgets/widget-snapchat.php:106
518
  msgid "Title:"
519
  msgstr ""
520
 
813
  msgid "Display your Snapchat Snapcode."
814
  msgstr ""
815
 
816
+ #: includes/widgets/widget-snapchat.php:57
817
  msgid "Please upload your Snapchat image."
818
  msgstr ""
819
 
820
+ #: includes/widgets/widget-snapchat.php:76
821
  msgid "Follow <b>%s</b> on Snapchat!"
822
  msgstr ""
823
 
824
+ #: includes/widgets/widget-snapchat.php:110
825
  msgid "Step 1. Download your Snapcode PNG image from"
826
  msgstr ""
827
 
828
+ #: includes/widgets/widget-snapchat.php:110
829
  msgid "this link"
830
  msgstr ""
831
 
832
+ #: includes/widgets/widget-snapchat.php:111
833
  msgid "Step 2. Upload your Snapcode PNG image using the button below."
834
  msgstr ""
835
 
836
+ #: includes/widgets/widget-snapchat.php:123
837
  msgid "Upload Snapchat Image"
838
  msgstr ""
839
 
840
+ #: includes/widgets/widget-snapchat.php:129
841
  msgid "Snapchat Account Name:"
842
  msgstr ""
843
 
844
+ #: includes/widgets/widget-snapchat.php:130
845
  msgid "For example:"
846
  msgstr ""
847
 
853
  msgid "A Social Links Widget"
854
  msgstr ""
855
 
856
+ #: includes/widgets/widget-socialmedia.php:200
857
  msgid "Subscribe and Follow"
858
  msgstr ""
859
 
public/css/blossomthemes-toolkit-public.css CHANGED
@@ -1,915 +1,915 @@
1
- /*
2
- * All of the CSS for your public-facing functionality should be
3
- * included in this file.
4
- */
5
-
6
- /*===============================
7
- Author bio style
8
- ================================*/
9
- .widget_bttk_author_bio{
10
- text-align: center;
11
- }
12
-
13
- .widget_bttk_author_bio .image-holder img{
14
- vertical-align: top;
15
- }
16
-
17
- .widget_bttk_author_bio .image-holder{margin: 0 0 30px;}
18
-
19
- .widget_bttk_author_bio .title-holder{
20
- font-size: 28px;
21
- line-height: 32px;
22
- margin: 0 0 20px;
23
- }
24
-
25
- .widget_bttk_author_bio .text-signature {
26
- font-family: 'Dancing Script', cursive;
27
- font-size: 30px;
28
- color: #000;
29
- font-style: italic;
30
- line-height: 1.3;
31
- margin-bottom: 10px;
32
- }
33
-
34
- .widget_bttk_author_bio .signature-holder {
35
- margin-bottom: 10px;
36
- }
37
-
38
- .widget_bttk_author_bio .readmore{
39
- display: inline-block;
40
- padding: 10px 30px;
41
- background: #ccc;
42
- margin: 0 0 30px;
43
- }
44
-
45
- .widget_bttk_author_bio .author-socicons{
46
- margin: 0;
47
- padding: 0;
48
- list-style: none;
49
- }
50
-
51
- .widget_bttk_author_bio .author-socicons li{
52
- display: inline-block;
53
- margin: 0 3px;
54
- }
55
-
56
- /*==============================
57
- Custom category style
58
- ==============================*/
59
- .widget_bttk_custom_categories ul li{
60
- background-size: cover;
61
- width: 100%;
62
- height: 100%;
63
- position: relative;
64
- }
65
-
66
- .widget_bttk_custom_categories ul li:after{
67
- position: absolute;
68
- top: 0;
69
- left: 0;
70
- width: 100%;
71
- height: 100%;
72
- background: rgba(0, 0, 0, 0.25);
73
- content: '';
74
- }
75
-
76
- .widget_bttk_custom_categories ul li a{
77
- display: block;
78
- width: 100%;
79
- height: 100%;
80
- color: #fff;
81
- overflow: hidden;
82
- position: relative;
83
- z-index: 1;
84
- }
85
-
86
- .widget_bttk_custom_categories ul li .cat-title{
87
- float: left;
88
- font-size: 14px;
89
- text-transform: uppercase;
90
- }
91
-
92
- .widget_bttk_custom_categories ul li .post-count{
93
- float: right;
94
- font-size: 13px;
95
- width: 99px;
96
- height: 48px;
97
- background: #111;
98
- text-align: center;
99
- line-height: 48px;
100
- -webkit-transition: linear 0.2s;
101
- -moz-transition: linear 0.2s;
102
- transition: linear 0.2s;
103
- }
104
-
105
- .widget_bttk_custom_categories ul li a:hover .post-count,
106
- .widget_bttk_custom_categories ul li a:hover:focus .post-count{
107
- width: 124px;
108
- }
109
-
110
- /*================================
111
- Popular post style
112
- ================================*/
113
- .widget_bttk_popular_post ul li,
114
- .widget_bttk_pro_recent_post ul li{
115
- overflow: hidden;
116
- }
117
-
118
- .widget_bttk_popular_post ul li .post-thumbnail,
119
- .widget_bttk_pro_recent_post ul li .post-thumbnail{
120
- float: left;
121
- width: 80px;
122
- height: 80px;
123
- margin-right: 20px;
124
- }
125
-
126
- .widget_bttk_popular_post ul li .post-thumbnail img,
127
- .widget_bttk_pro_recent_post ul li .post-thumbnail img{
128
- vertical-align: top;
129
- width: 100%;
130
- height: 100%;
131
- object-fit: cover;
132
- }
133
-
134
- .widget_bttk_popular_post ul li .entry-header,
135
- .widget_bttk_pro_recent_post ul li .entry-header{
136
- overflow: hidden;
137
- }
138
-
139
- .widget_bttk_popular_post ul li .entry-header .entry-title,
140
- .widget_bttk_pro_recent_post ul li .entry-header .entry-title{
141
- font-size: 18px;
142
- line-height: 26px;
143
- margin: 0;
144
- }
145
-
146
- .widget_bttk_popular_post ul li .entry-header .entry-meta,
147
- .widget_bttk_pro_recent_post ul li .entry-header .entry-meta{
148
- font-size: 14px;
149
- line-height: 21px;
150
- }
151
-
152
- .widget_bttk_popular_post .style-two li .post-thumbnail,
153
- .widget_bttk_pro_recent_post .style-two li .post-thumbnail{
154
- width: 100%;
155
- margin-right: 0;
156
- margin-bottom: 20px;
157
- height: 190px;
158
- }
159
-
160
- .widget_bttk_popular_post .style-two li .entry-header,
161
- .widget_bttk_pro_recent_post .style-two li .entry-header{
162
- width: 100%;
163
- text-align: center;
164
- padding: 0 15px;
165
- }
166
-
167
- .widget_bttk_popular_post .style-three li .post-thumbnail,
168
- .widget_bttk_pro_recent_post .style-three li .post-thumbnail{
169
- height: 190px;
170
- margin: 0 0 -40px;
171
- width: 100%;
172
- }
173
-
174
- .widget_bttk_popular_post .style-three li .entry-header,
175
- .widget_bttk_pro_recent_post .style-three li .entry-header{
176
- background: #fff none repeat scroll 0 0;
177
- margin: 0 auto;
178
- max-width: 92%;
179
- padding: 13px 15px 0;
180
- position: relative;
181
- text-align: center;
182
- width: 100%;
183
- }
184
-
185
- .widget_bttk_popular_post ul li .entry-header .cat-links,
186
- .widget_bttk_pro_recent_post ul li .entry-header .cat-links{display: none;}
187
-
188
- .widget_bttk_popular_post .style-two li .entry-header .cat-links,
189
- .widget_bttk_pro_recent_post .style-two li .entry-header .cat-links,
190
- .widget_bttk_popular_post .style-three li .entry-header .cat-links,
191
- .widget_bttk_pro_recent_post .style-three li .entry-header .cat-links{
192
- display: block;
193
- font-size: 14px;
194
- font-weight: 500;
195
- }
196
-
197
- .widget_bttk_popular_post .style-two li .entry-header .cat-links a,
198
- .widget_bttk_pro_recent_post .style-two li .entry-header .cat-links a,
199
- .widget_bttk_popular_post .style-three li .entry-header .cat-links a,
200
- .widget_bttk_pro_recent_post .style-three li .entry-header .cat-links a{
201
- margin: 0 3px;
202
- }
203
-
204
- /*====================================
205
- Social icon style
206
- ===================================*/
207
- .widget_bttk_social_links ul{
208
- margin: 0 -2px;
209
- overflow: hidden;
210
- }
211
-
212
- .widget_bttk_social_links ul li{
213
- float: left;
214
- padding: 0 2px;
215
- margin: 0 0 4px;
216
- }
217
-
218
- .widget_bttk_social_links ul li a{
219
- display: block;
220
- width: 63px;
221
- height: 63px;
222
- background: #111;
223
- color: #fff;
224
- text-align: center;
225
- line-height: 63px;
226
- }
227
-
228
- /*================================
229
- Featured post slider style
230
- ================================*/
231
- .widget_bttk_posts_category_slider_widget .owl-theme .owl-nav [class*="owl-"]{
232
- margin: 0;
233
- width: 40px;
234
- height: 40px;
235
- font-size: 0;
236
- background: rgba(0, 0, 0, 0.75);
237
- border-radius: 0;
238
- position: absolute;
239
- -webkit-transition: ease 0.2s;
240
- -moz-transition: ease 0.2s;
241
- transition: ease 0.2s;
242
- }
243
-
244
- .widget_bttk_posts_category_slider_widget .owl-theme .owl-prev{
245
- top: 75px;
246
- left: 0;
247
- }
248
-
249
- .widget_bttk_posts_category_slider_widget .owl-theme .owl-prev:after{
250
- content: '';
251
- background-image: url('data:image/svg+xml; utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path fill="%23fff" d="M4.2 247.5L151 99.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17L69.3 256l118.5 119.7c4.7 4.7 4.7 12.3 0 17L168 412.5c-4.7 4.7-12.3 4.7-17 0L4.2 264.5c-4.7-4.7-4.7-12.3 0-17z"></path></svg>');
252
- background-repeat: no-repeat;
253
- width: 10px;
254
- height: 20px;
255
- position: absolute;
256
- top: 50%;
257
- left: 50%;
258
- -webkit-transform: translate(-50%, -50%);
259
- -moz-transform: translate(-50%, -50%);
260
- transform: translate(-50%, -50%);
261
- }
262
-
263
- .widget_bttk_posts_category_slider_widget .owl-next{
264
- top: 75px;
265
- right: 0;
266
- }
267
-
268
- .widget_bttk_posts_category_slider_widget .owl-theme .owl-next:after{
269
- content: '';
270
- background-image: url('data:image/svg+xml; utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path fill="%23fff" d="M187.8 264.5L41 412.5c-4.7 4.7-12.3 4.7-17 0L4.2 392.7c-4.7-4.7-4.7-12.3 0-17L122.7 256 4.2 136.3c-4.7-4.7-4.7-12.3 0-17L24 99.5c4.7-4.7 12.3-4.7 17 0l146.8 148c4.7 4.7 4.7 12.3 0 17z"></path></svg>');
271
- background-repeat: no-repeat;
272
- width: 10px;
273
- height: 20px;
274
- position: absolute;
275
- top: 50%;
276
- left: 50%;
277
- -webkit-transform: translate(-50%, -50%);
278
- -moz-transform: translate(-50%, -50%);
279
- transform: translate(-50%, -50%);
280
- }
281
-
282
- .widget_bttk_posts_category_slider_widget .post-thumbnail{
283
- display: block;
284
- margin-bottom: 15px;
285
- }
286
-
287
- .widget_bttk_posts_category_slider_widget .carousel-title{
288
- text-align: center;
289
- }
290
-
291
- .widget_bttk_posts_category_slider_widget .carousel-title .cat-links{
292
- display: block;
293
- font-size: 14px;
294
- font-weight: 500;
295
- }
296
-
297
- .widget_bttk_posts_category_slider_widget .carousel-title .cat-links a{margin: 0 3px;}
298
-
299
- .widget_bttk_posts_category_slider_widget .carousel-title .title{
300
- font-size: 18px;
301
- line-height: 26px;
302
- font-weight: 400;
303
- }
304
-
305
- .widget_bttk_posts_category_slider_widget .owl-theme .owl-dots .owl-dot span{
306
- margin: 0 3px;
307
- background: #eee;
308
- }
309
-
310
- .widget_bttk_posts_category_slider_widget .owl-theme .owl-dots .owl-dot span:hover,
311
- .widget_bttk_posts_category_slider_widget .owl-theme .owl-dots .owl-dot span:hover{
312
- background: #111;
313
- }
314
-
315
- .widget_bttk_posts_category_slider_widget .owl-theme .owl-dots .owl-dot.active span{
316
- background: #111;
317
- }
318
-
319
- /*========================
320
- Image text widget
321
- ========================*/
322
- .widget_bttk_image_text_widget ul li{
323
- position: relative;
324
- }
325
-
326
- .widget_bttk_image_text_widget ul li .btn-readmore{
327
- position: absolute;
328
- width: 70%;
329
- text-align: center;
330
- top: 50%;
331
- left: 50%;
332
- color: #fff;
333
- background: #111;
334
- text-transform: uppercase;
335
- letter-spacing: 1px;
336
- padding: 12px 29px 9px 32px;
337
- -webkit-transform: translate(-50%, -50%);
338
- -moz-transform: translate(-50%, -50%);
339
- transform: translate(-50%, -50%);
340
- -webkit-transition: ease 0.2s;
341
- -moz-transition: ease 0.2s;
342
- transition: ease 0.2s;
343
- }
344
-
345
- .widget-area ul{
346
- margin: 0;
347
- padding: 0;
348
- list-style: none;
349
- }
350
-
351
- .widget-area ul li{
352
- margin: 0 0 20px;
353
- }
354
-
355
- /*==========================
356
- widget CTA style
357
- ==========================*/
358
- .widget_raratheme_companion_cta_widget .widget-content{
359
- position: relative;
360
- }
361
-
362
- .widget_raratheme_companion_cta_widget .widget-content.bg-image:after{
363
- content: '';
364
- position: absolute;
365
- top: 0;
366
- left: 0;
367
- width: 100%;
368
- height: 100%;
369
- background: rgba(0, 0, 0, 0.5);
370
- }
371
-
372
- .widget_raratheme_companion_cta_widget .widget-content .text-holder{
373
- position: relative;
374
- z-index: 1;
375
- color: #fff;
376
- text-align: center;
377
- padding: 30px 15px;
378
- }
379
-
380
- .widget_raratheme_companion_cta_widget .widget-content .text-holder .btn-cta{
381
- display: inline-block;
382
- margin: 0 3px;
383
- background: #f7f7f7;
384
- color: #555;
385
- border-radius: 3px;
386
- padding: 5px 15px;
387
- text-decoration: none;
388
- font-size: 15px;
389
- border: 1px solid #ccc;
390
- -webkit-transition: linear 0.2s;
391
- -moz-transition: linear 0.2s;
392
- transition: linear 0.2s;
393
- }
394
-
395
- .widget_raratheme_companion_cta_widget .widget-content .text-holder .btn-cta:hover,
396
- .widget_raratheme_companion_cta_widget .widget-content .text-holder .btn-cta:focus{
397
- text-decoration: none;
398
- background: none;
399
- color: #fff;
400
- }
401
-
402
- /*===============================
403
- Featured Post widget style
404
- ===============================*/
405
- .widget_raratheme_featured_widget .img-holder{
406
- margin-bottom: 30px;
407
- }
408
-
409
- .widget_raratheme_featured_widget .img-holder a{display: block;}
410
-
411
- .widget_raratheme_featured_widget .img-holder img{
412
- vertical-align: top;
413
- }
414
-
415
- .widget_raratheme_featured_widget .text-holder .readmore{
416
- display: inline-block;
417
- background: #f7f7f7;
418
- color: #555;
419
- border-radius: 3px;
420
- padding: 5px 15px;
421
- text-decoration: none;
422
- font-size: 15px;
423
- border: 1px solid #ccc;
424
- -webkit-transition: linear 0.2s;
425
- -moz-transition: linear 0.2s;
426
- transition: linear 0.2s;
427
- }
428
-
429
- .widget_raratheme_featured_widget .text-holder .readmore:hover,
430
- .widget_raratheme_featured_widget .text-holder .readmore:focus{
431
- background: none;
432
- text-decoration: none;
433
- }
434
-
435
- /*=====================================
436
- Icon Text Widget style
437
- =====================================*/
438
- .widget_raratheme_icon_text_widget .icon-holder{
439
- font-size: 30px;
440
- margin: 0 0 15px;
441
- }
442
-
443
- /*=============================
444
- Image widget
445
- =============================*/
446
- .widget_raratheme_image_widget .image-holder{margin: 0 0 20px;}
447
-
448
- .widget_raratheme_image_widget .image-holder img{vertical-align: top}
449
-
450
- .widget_raratheme_image_widget .image-holder a{display: block;}
451
-
452
- .widget_raratheme_image_widget .readmore{
453
- display: inline-block;
454
- background: #f7f7f7;
455
- color: #555;
456
- border-radius: 3px;
457
- padding: 5px 15px;
458
- text-decoration: none;
459
- font-size: 15px;
460
- border: 1px solid #ccc;
461
- -webkit-transition: linear 0.2s;
462
- -moz-transition: linear 0.2s;
463
- transition: linear 0.2s;
464
- }
465
-
466
- .widget_raratheme_image_widget .readmore:hover,
467
- .widget_raratheme_image_widget .readmore:focus{
468
- background: none;
469
- text-decoration: none;
470
- }
471
-
472
- /*==========================
473
- Popular post style
474
- ==========================*/
475
- .widget_raratheme_popular_post ul li,
476
- .widget_raratheme_recent_post ul li{overflow: hidden}
477
-
478
- .widget_raratheme_popular_post ul li .post-thumbnail,
479
- .widget_raratheme_recent_post ul li .post-thumbnail{
480
- float: left;
481
- width: 68px;
482
- margin-right: 15px;
483
- }
484
-
485
- .widget_raratheme_popular_post ul li .post-thumbnail img,
486
- .widget_raratheme_recent_post ul li .post-thumbnail img{vertical-align: top;}
487
-
488
- .widget_raratheme_popular_post ul li .entry-header,
489
- .widget_raratheme_recent_post ul li .entry-header{overflow: hidden;}
490
-
491
- .widget_raratheme_popular_post ul li .entry-header .entry-title,
492
- .widget_raratheme_recent_post ul li .entry-header .entry-title{
493
- margin: 0 0 5px;
494
- font-size: 15px;
495
- line-height: 18px;
496
- }
497
-
498
- .widget_raratheme_popular_post ul li .entry-header .entry-title a,
499
- .widget_raratheme_recent_post ul li .entry-header .entry-title a{text-decoration: none;}
500
-
501
- .widget_raratheme_popular_post ul li .entry-header .entry-meta,
502
- .widget_raratheme_recent_post ul li .entry-header .entry-meta{
503
- font-size: 14px;
504
- line-height: 18px;
505
- }
506
-
507
- .widget_raratheme_popular_post ul li .entry-header .view-count{
508
- font-size: 14px;
509
- line-height: 18px;
510
- }
511
-
512
- .widget_raratheme_popular_post ul li .entry-header .comment-count{
513
- font-size: 14px;
514
- line-height: 18px;
515
- }
516
-
517
- .widget_raratheme_popular_post ul li .entry-header .comment-count .fa{margin-right: 5px;}
518
-
519
- /*=====================================
520
- Widget social networks style
521
- =====================================*/
522
- .widget_raratheme_social_links ul{
523
- font-size: 15px;
524
- overflow: hidden
525
- }
526
-
527
- .widget_raratheme_social_links ul li{
528
- float: left;
529
- margin-right: 3px;
530
- }
531
-
532
- .widget_raratheme_social_links ul li a{
533
- display: block;
534
- width: 30px;
535
- height: 30px;
536
- background: #000;
537
- color: #fff;
538
- text-align: center;
539
- line-height: 30px;
540
- -webkit-transition: linear 0.2s;
541
- -moz-transition: linear 0.2s;
542
- transition: linear 0.2s;
543
- }
544
-
545
- .widget_raratheme_social_links ul li a:hover,
546
- .widget_raratheme_social_links ul li a:focus{
547
- border-radius: 50%;
548
- }
549
-
550
- .widget_raratheme_social_links ul li a[href*='facebook']{background: #3B5998;}
551
-
552
- .widget_raratheme_social_links ul li a[href*='twitter']{background: #1DA1F2;}
553
-
554
- .widget_raratheme_social_links ul li a[href*='flickr']{background: #0063DB;}
555
-
556
- .widget_raratheme_social_links ul li a[href*='vimeo']{background: #23B6EA;}
557
-
558
- .widget_raratheme_social_links ul li a[href*='youtube']{background: #CB1F1F;}
559
-
560
- .widget_raratheme_social_links ul li a[href*='google']{background: #D51F1E;}
561
-
562
- .widget_raratheme_social_links ul li a[href*='ok.ru']{background: #EE8208;}
563
-
564
- .widget_raratheme_social_links ul li a[href*='vk']{background: #466991;}
565
-
566
- .widget_raratheme_social_links ul li a[href*='xing']{background: #005A5F;}
567
-
568
- .widget_raratheme_social_links ul li a[href*='stumbleupon']{background: #EB4823;}
569
-
570
- .widget_raratheme_social_links ul li a[href*='pinterest']{background: #CB2027;}
571
-
572
- .widget_raratheme_social_links ul li a[href*='dribbble']{background: #E84C88;}
573
-
574
- .widget_raratheme_social_links ul li a[href*='linkedin']{background: #0274B3;}
575
-
576
- .widget_raratheme_social_links ul li a[href*='rss']{background: #FFA500;}
577
-
578
- .widget_raratheme_social_links ul li a[href*='tumblr']{background: #2E4F6E;}
579
-
580
- .widget_raratheme_social_links ul li a[href*='instagram']{background: #895A4D;}
581
-
582
- /*================================
583
- counter widget style
584
- ================================*/
585
- .widget_raratheme_companion_stat_counter_widget .icon-holder{
586
- font-size: 30px;
587
- margin: 0 0 15px;
588
- }
589
-
590
- .widget_raratheme_companion_stat_counter_widget .odometer.odometer-auto-theme, .odometer.odometer-theme-default{
591
- font-size: 25px;
592
- font-weight: 700;
593
- }
594
- ul.accordion {
595
- list-style: none;
596
- }
597
- ul.accordion .inner {
598
- display: none;
599
- }
600
- ul.accordion li {
601
- margin: .5em 0;
602
- }
603
- ul.accordion li a.toggle {
604
- display: block;
605
- }
606
-
607
- .odometer.odometer-auto-theme,
608
- .odometer.odometer-theme-default {
609
- vertical-align: middle;
610
- vertical-align: auto;
611
- zoom: 1;
612
- display: inline;
613
- position: relative;
614
- }
615
-
616
- .odometer.odometer-auto-theme .odometer-digit,
617
- .odometer.odometer-theme-default .odometer-digit {
618
- vertical-align: middle;
619
- vertical-align: auto;
620
- zoom: 1;
621
- display: inline;
622
- position: relative;
623
- }
624
-
625
- .odometer.odometer-auto-theme .odometer-digit .odometer-digit-spacer,
626
- .odometer.odometer-theme-default .odometer-digit .odometer-digit-spacer {
627
- vertical-align: middle;
628
- vertical-align: auto;
629
- zoom: 1;
630
- display: inline;
631
- visibility: hidden;
632
- }
633
-
634
- .odometer.odometer-auto-theme .odometer-digit .odometer-digit-inner,
635
- .odometer.odometer-theme-default .odometer-digit .odometer-digit-inner {
636
- text-align: left;
637
- display: block;
638
- position: absolute;
639
- top: 0;
640
- left: 0;
641
- right: 0;
642
- bottom: 0;
643
- overflow: hidden;
644
- }
645
-
646
- .odometer.odometer-auto-theme .odometer-digit .odometer-ribbon,
647
- .odometer.odometer-theme-default .odometer-digit .odometer-ribbon {
648
- display: block;
649
- }
650
-
651
- .odometer.odometer-auto-theme .odometer-digit .odometer-ribbon-inner,
652
- .odometer.odometer-theme-default .odometer-digit .odometer-ribbon-inner {
653
- display: block;
654
- -webkit-backface-visibility: hidden;
655
- }
656
-
657
- .odometer.odometer-auto-theme .odometer-digit .odometer-value,
658
- .odometer.odometer-theme-default .odometer-digit .odometer-value {
659
- display: block;
660
- -webkit-transform: translateZ(0);
661
- -moz-transform: translateZ(0);
662
- transform: translateZ(0);
663
- }
664
-
665
- .odometer.odometer-auto-theme .odometer-digit .odometer-value.odometer-last-value,
666
- .odometer.odometer-theme-default .odometer-digit .odometer-value.odometer-last-value {
667
- position: absolute;
668
- }
669
-
670
- .odometer.odometer-auto-theme.odometer-animating-up .odometer-ribbon-inner,
671
- .odometer.odometer-theme-default.odometer-animating-up .odometer-ribbon-inner {
672
- -webkit-transition: -webkit-transform 2s;
673
- -moz-transition: -moz-transform 2s;
674
- -ms-transition: -ms-transform 2s;
675
- -o-transition: -o-transform 2s;
676
- transition: transform 2s;
677
- }
678
-
679
- .odometer.odometer-auto-theme.odometer-animating-up.odometer-animating .odometer-ribbon-inner,
680
- .odometer.odometer-theme-default.odometer-animating-up.odometer-animating .odometer-ribbon-inner {
681
- -webkit-transform: translateY(-100%);
682
- -moz-transform: translateY(-100%);
683
- -ms-transform: translateY(-100%);
684
- -o-transform: translateY(-100%);
685
- transform: translateY(-100%);
686
- }
687
-
688
- .odometer.odometer-auto-theme.odometer-animating-down .odometer-ribbon-inner,
689
- .odometer.odometer-theme-default.odometer-animating-down .odometer-ribbon-inner {
690
- -webkit-transform: translateY(-100%);
691
- -moz-transform: translateY(-100%);
692
- -ms-transform: translateY(-100%);
693
- -o-transform: translateY(-100%);
694
- transform: translateY(-100%);
695
- }
696
-
697
- .odometer.odometer-auto-theme.odometer-animating-down.odometer-animating .odometer-ribbon-inner,
698
- .odometer.odometer-theme-default.odometer-animating-down.odometer-animating .odometer-ribbon-inner {
699
- -webkit-transition: -webkit-transform 2s;
700
- -moz-transition: -moz-transform 2s;
701
- -ms-transition: -ms-transform 2s;
702
- -o-transition: -o-transform 2s;
703
- transition: transform 2s;
704
- -webkit-transform: translateY(0);
705
- -moz-transform: translateY(0);
706
- -ms-transform: translateY(0);
707
- -o-transform: translateY(0);
708
- transform: translateY(0);
709
- }
710
-
711
- .odometer.odometer-auto-theme .odometer-value,
712
- .odometer.odometer-theme-default .odometer-value {
713
- text-align: center;
714
- }
715
-
716
- /*================================
717
- client logo widget style
718
- ================================*/
719
- .widget_blossom_client_logo_widget .image-holder img{
720
- max-width: 190px;
721
- }
722
-
723
- /** Portfolio */
724
- .portfolio-holder .portfolio-sorting {
725
- text-align: center;
726
- text-transform: uppercase;
727
- }
728
-
729
- .portfolio-sorting .button {
730
- margin: 0 30px 40px 30px;
731
- background: none;
732
- border: none;
733
- font-weight: 400;
734
- font-size: 16px;
735
- cursor: pointer;
736
- padding: 0;
737
- color: #000;
738
- }
739
-
740
- .portfolio-sorting .button:hover,
741
- .portfolio-sorting .button.is-checked {
742
- color: #777;
743
- }
744
-
745
- .portfolio-img-holder .portfolio-item {
746
- float: left;
747
- width: 33.33%;
748
- padding: 15px;
749
-
750
- }
751
-
752
- .portfolio-item img {
753
- vertical-align: top;
754
- }
755
-
756
- .portfolio-item .portfolio-item-inner {
757
- position: relative;
758
- overflow: hidden;
759
- }
760
-
761
- .portfolio-item .portfolio-text-holder {
762
- font-size: 14px;
763
- font-weight: 600;
764
- position: absolute;
765
- top: 0;
766
- bottom: 0;
767
- left: 0;
768
- right: 0;
769
- background: -webkit-linear-gradient(transparent, rgba(0,0,0,0.65));
770
- background: -moz-linear-gradient(transparent, rgba(0,0,0,0.65));
771
- background: -ms-linear-gradient(transparent, rgba(0,0,0,0.65));
772
- background: -o-linear-gradient(transparent, rgba(0,0,0,0.65));
773
- background: linear-gradient(transparent, rgba(0,0,0,0.65));
774
- text-align: center;
775
- padding: 0 20px;
776
- display: flex;
777
- flex-direction: column;
778
- flex: 1;
779
- justify-content: flex-end;
780
- opacity: 0;
781
- visibility: hidden;
782
- -webkit-transition: all ease 0.35s;
783
- -moz-transition: all ease 0.35s;
784
- transition: all ease 0.35s;
785
- }
786
-
787
- .portfolio-item-inner:hover .portfolio-text-holder {
788
- padding-top: 30px;
789
- padding-bottom: 30px;
790
- opacity: 1;
791
- filter: alpha(opacity=100);
792
- visibility: visible;
793
- }
794
-
795
- .portfolio-item .portfolio-cat a {
796
- color: #fff;
797
- text-decoration: none;
798
- padding-right: 10px;
799
- display: inline-block;
800
- margin-bottom: 5px;
801
- }
802
- .portfolio-item .portfolio-cat a:last-child {
803
- padding-right: 0;
804
- }
805
-
806
- .portfolio-text-holder .portfolio-img-title {
807
- font-size: 24px;
808
- font-weight: 600;
809
- }
810
-
811
- .portfolio-item .portfolio-img-title a {
812
- color: #fff;
813
- text-decoration: none;
814
- }
815
-
816
- .portfolio-item a:hover {
817
- color: #ddd;
818
- }
819
-
820
- .portfolio-holder .post-thumbnail {
821
- margin: 0 0 35px 0;
822
- text-align: center;
823
- }
824
-
825
- .portfolio-holder .entry-header {
826
- border-bottom: 1px solid #eee;
827
- margin-bottom: 30px;
828
- padding-bottom: 30px;
829
- }
830
-
831
- .entry-header .portfolio-cat a {
832
- color: #777;
833
- text-decoration: none;
834
- margin-right: 10px;
835
- }
836
-
837
- .entry-header .portfolio-cat a:last-child {
838
- margin-right: 0;
839
- }
840
-
841
- .portfolio-holder .entry-header .entry-title {
842
- color: #000;
843
- margin: 10px 0 0 0;
844
- font-size: 3em;
845
- }
846
-
847
- .portfolio-holder .entry-header,
848
- .portfolio-holder .entry-content {
849
- margin-left: auto;
850
- margin-right: auto;
851
- max-width: 80%;
852
- }
853
-
854
- .portfolio-holder .entry-content {
855
- color: #555;
856
- line-height: 1.6;
857
- }
858
-
859
- .related-portfolio {
860
- margin-top: 80px;
861
- }
862
-
863
- .related-portfolio-title {
864
- text-align: center;
865
- margin-bottom: 30px;
866
- font-size: 22px;
867
- }
868
-
869
- .related-portfolio .portfolio-img-holder:before,
870
- .related-portfolio .portfolio-img-holder:after {
871
- content: "";
872
- display: table;
873
- height: 0;
874
- width: 0;
875
- line-height: 0;
876
- }
877
-
878
- .related-portfolio .portfolio-img-holder:after {
879
- clear: both;
880
- }
881
-
882
- .related-portfolio .portfolio-item .portfolio-text-holder {
883
- opacity: 1;
884
- visibility: visible;
885
- padding: 30px 20px;
886
- }
887
- /** Portfolio Ends */
888
-
889
- @media only screen and (max-width: 1024px){
890
- .archive .trip-content-area .grid .btn-loadmore{
891
- grid-column: 1 / span 2
892
- }
893
-
894
- .portfolio-img-holder .portfolio-item {
895
- width: 50%;
896
- }
897
- }
898
-
899
- @media only screen and (max-width: 767px){
900
- .archive .trip-content-area .grid .btn-loadmore{
901
- grid-column: 1 / span 1
902
- }
903
-
904
- .portfolio-img-holder .portfolio-item {
905
- width: 100%;
906
- float: none;
907
- padding-left: 0;
908
- padding-right: 0;
909
- }
910
-
911
- .portfolio-holder .entry-header,
912
- .portfolio-holder .entry-content {
913
- max-width: 100%;
914
- }
915
  }
1
+ /*
2
+ * All of the CSS for your public-facing functionality should be
3
+ * included in this file.
4
+ */
5
+
6
+ /*===============================
7
+ Author bio style
8
+ ================================*/
9
+ .widget_bttk_author_bio{
10
+ text-align: center;
11
+ }
12
+
13
+ .widget_bttk_author_bio .image-holder img{
14
+ vertical-align: top;
15
+ }
16
+
17
+ .widget_bttk_author_bio .image-holder{margin: 0 0 30px;}
18
+
19
+ .widget_bttk_author_bio .title-holder{
20
+ font-size: 28px;
21
+ line-height: 32px;
22
+ margin: 0 0 20px;
23
+ }
24
+
25
+ .widget_bttk_author_bio .text-signature {
26
+ font-family: 'Dancing Script', cursive;
27
+ font-size: 30px;
28
+ color: #000;
29
+ font-style: italic;
30
+ line-height: 1.3;
31
+ margin-bottom: 10px;
32
+ }
33
+
34
+ .widget_bttk_author_bio .signature-holder {
35
+ margin-bottom: 10px;
36
+ }
37
+
38
+ .widget_bttk_author_bio .readmore{
39
+ display: inline-block;
40
+ padding: 10px 30px;
41
+ background: #ccc;
42
+ margin: 0 0 30px;
43
+ }
44
+
45
+ .widget_bttk_author_bio .author-socicons{
46
+ margin: 0;
47
+ padding: 0;
48
+ list-style: none;
49
+ }
50
+
51
+ .widget_bttk_author_bio .author-socicons li{
52
+ display: inline-block;
53
+ margin: 0 3px;
54
+ }
55
+
56
+ /*==============================
57
+ Custom category style
58
+ ==============================*/
59
+ .widget_bttk_custom_categories ul li{
60
+ background-size: cover;
61
+ width: 100%;
62
+ height: 100%;
63
+ position: relative;
64
+ }
65
+
66
+ .widget_bttk_custom_categories ul li:after{
67
+ position: absolute;
68
+ top: 0;
69
+ left: 0;
70
+ width: 100%;
71
+ height: 100%;
72
+ background: rgba(0, 0, 0, 0.25);
73
+ content: '';
74
+ }
75
+
76
+ .widget_bttk_custom_categories ul li a{
77
+ display: block;
78
+ width: 100%;
79
+ height: 100%;
80
+ color: #fff;
81
+ overflow: hidden;
82
+ position: relative;
83
+ z-index: 1;
84
+ }
85
+
86
+ .widget_bttk_custom_categories ul li .cat-title{
87
+ float: left;
88
+ font-size: 14px;
89
+ text-transform: uppercase;
90
+ }
91
+
92
+ .widget_bttk_custom_categories ul li .post-count{
93
+ float: right;
94
+ font-size: 13px;
95
+ width: 99px;
96
+ height: 48px;
97
+ background: #111;
98
+ text-align: center;
99
+ line-height: 48px;
100
+ -webkit-transition: linear 0.2s;
101
+ -moz-transition: linear 0.2s;
102
+ transition: linear 0.2s;
103
+ }
104
+
105
+ .widget_bttk_custom_categories ul li a:hover .post-count,
106
+ .widget_bttk_custom_categories ul li a:hover:focus .post-count{
107
+ width: 124px;
108
+ }
109
+
110
+ /*================================
111
+ Popular post style
112
+ ================================*/
113
+ .widget_bttk_popular_post ul li,
114
+ .widget_bttk_pro_recent_post ul li{
115
+ overflow: hidden;
116
+ }
117
+
118
+ .widget_bttk_popular_post ul li .post-thumbnail,
119
+ .widget_bttk_pro_recent_post ul li .post-thumbnail{
120
+ float: left;
121
+ width: 80px;
122
+ height: 80px;
123
+ margin-right: 20px;
124
+ }
125
+
126
+ .widget_bttk_popular_post ul li .post-thumbnail img,
127
+ .widget_bttk_pro_recent_post ul li .post-thumbnail img{
128
+ vertical-align: top;
129
+ width: 100%;
130
+ height: 100%;
131
+ object-fit: cover;
132
+ }
133
+
134
+ .widget_bttk_popular_post ul li .entry-header,
135
+ .widget_bttk_pro_recent_post ul li .entry-header{
136
+ overflow: hidden;
137
+ }
138
+
139
+ .widget_bttk_popular_post ul li .entry-header .entry-title,
140
+ .widget_bttk_pro_recent_post ul li .entry-header .entry-title{
141
+ font-size: 18px;
142
+ line-height: 26px;
143
+ margin: 0;
144
+ }
145
+
146
+ .widget_bttk_popular_post ul li .entry-header .entry-meta,
147
+ .widget_bttk_pro_recent_post ul li .entry-header .entry-meta{
148
+ font-size: 14px;
149
+ line-height: 21px;
150
+ }
151
+
152
+ .widget_bttk_popular_post .style-two li .post-thumbnail,
153
+ .widget_bttk_pro_recent_post .style-two li .post-thumbnail{
154
+ width: 100%;
155
+ margin-right: 0;
156
+ margin-bottom: 20px;
157
+ height: 190px;
158
+ }
159
+
160
+ .widget_bttk_popular_post .style-two li .entry-header,
161
+ .widget_bttk_pro_recent_post .style-two li .entry-header{
162
+ width: 100%;
163
+ text-align: center;
164
+ padding: 0 15px;
165
+ }
166
+
167
+ .widget_bttk_popular_post .style-three li .post-thumbnail,
168
+ .widget_bttk_pro_recent_post .style-three li .post-thumbnail{
169
+ height: 190px;
170
+ margin: 0 0 -40px;
171
+ width: 100%;
172
+ }
173
+
174
+ .widget_bttk_popular_post .style-three li .entry-header,
175
+ .widget_bttk_pro_recent_post .style-three li .entry-header{
176
+ background: #fff none repeat scroll 0 0;
177
+ margin: 0 auto;
178
+ max-width: 92%;
179
+ padding: 13px 15px 0;
180
+ position: relative;
181
+ text-align: center;
182
+ width: 100%;
183
+ }
184
+
185
+ .widget_bttk_popular_post ul li .entry-header .cat-links,
186
+ .widget_bttk_pro_recent_post ul li .entry-header .cat-links{display: none;}
187
+
188
+ .widget_bttk_popular_post .style-two li .entry-header .cat-links,
189
+ .widget_bttk_pro_recent_post .style-two li .entry-header .cat-links,
190
+ .widget_bttk_popular_post .style-three li .entry-header .cat-links,
191
+ .widget_bttk_pro_recent_post .style-three li .entry-header .cat-links{
192
+ display: block;
193
+ font-size: 14px;
194
+ font-weight: 500;
195
+ }
196
+
197
+ .widget_bttk_popular_post .style-two li .entry-header .cat-links a,
198
+ .widget_bttk_pro_recent_post .style-two li .entry-header .cat-links a,
199
+ .widget_bttk_popular_post .style-three li .entry-header .cat-links a,
200
+ .widget_bttk_pro_recent_post .style-three li .entry-header .cat-links a{
201
+ margin: 0 3px;
202
+ }
203
+
204
+ /*====================================
205
+ Social icon style
206
+ ===================================*/
207
+ .widget_bttk_social_links ul{
208
+ margin: 0 -2px;
209
+ overflow: hidden;
210
+ }
211
+
212
+ .widget_bttk_social_links ul li{
213
+ float: left;
214
+ padding: 0 2px;
215
+ margin: 0 0 4px;
216
+ }
217
+
218
+ .widget_bttk_social_links ul li a{
219
+ display: block;
220
+ width: 63px;
221
+ height: 63px;
222
+ background: #111;
223
+ color: #fff;
224
+ text-align: center;
225
+ line-height: 63px;
226
+ }
227
+
228
+ /*================================
229
+ Featured post slider style
230
+ ================================*/
231
+ .widget_bttk_posts_category_slider_widget .owl-theme .owl-nav [class*="owl-"]{
232
+ margin: 0;
233
+ width: 40px;
234
+ height: 40px;
235
+ font-size: 0;
236
+ background: rgba(0, 0, 0, 0.75);
237
+ border-radius: 0;
238
+ position: absolute;
239
+ -webkit-transition: ease 0.2s;
240
+ -moz-transition: ease 0.2s;
241
+ transition: ease 0.2s;
242
+ }
243
+
244
+ .widget_bttk_posts_category_slider_widget .owl-theme .owl-prev{
245
+ top: 75px;
246
+ left: 0;
247
+ }
248
+
249
+ .widget_bttk_posts_category_slider_widget .owl-theme .owl-prev:after{
250
+ content: '';
251
+ background-image: url('data:image/svg+xml; utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path fill="%23fff" d="M4.2 247.5L151 99.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17L69.3 256l118.5 119.7c4.7 4.7 4.7 12.3 0 17L168 412.5c-4.7 4.7-12.3 4.7-17 0L4.2 264.5c-4.7-4.7-4.7-12.3 0-17z"></path></svg>');
252
+ background-repeat: no-repeat;
253
+ width: 10px;
254
+ height: 20px;
255
+ position: absolute;
256
+ top: 50%;
257
+ left: 50%;
258
+ -webkit-transform: translate(-50%, -50%);
259
+ -moz-transform: translate(-50%, -50%);
260
+ transform: translate(-50%, -50%);
261
+ }
262
+
263
+ .widget_bttk_posts_category_slider_widget .owl-next{
264
+ top: 75px;
265
+ right: 0;
266
+ }
267
+
268
+ .widget_bttk_posts_category_slider_widget .owl-theme .owl-next:after{
269
+ content: '';
270
+ background-image: url('data:image/svg+xml; utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path fill="%23fff" d="M187.8 264.5L41 412.5c-4.7 4.7-12.3 4.7-17 0L4.2 392.7c-4.7-4.7-4.7-12.3 0-17L122.7 256 4.2 136.3c-4.7-4.7-4.7-12.3 0-17L24 99.5c4.7-4.7 12.3-4.7 17 0l146.8 148c4.7 4.7 4.7 12.3 0 17z"></path></svg>');
271
+ background-repeat: no-repeat;
272
+ width: 10px;
273
+ height: 20px;
274
+ position: absolute;
275
+ top: 50%;
276
+ left: 50%;
277
+ -webkit-transform: translate(-50%, -50%);
278
+ -moz-transform: translate(-50%, -50%);
279
+ transform: translate(-50%, -50%);
280
+ }
281
+
282
+ .widget_bttk_posts_category_slider_widget .post-thumbnail{
283
+ display: block;
284
+ margin-bottom: 15px;
285
+ }
286
+
287
+ .widget_bttk_posts_category_slider_widget .carousel-title{
288
+ text-align: center;
289
+ }
290
+
291
+ .widget_bttk_posts_category_slider_widget .carousel-title .cat-links{
292
+ display: block;
293
+ font-size: 14px;
294
+ font-weight: 500;
295
+ }
296
+
297
+ .widget_bttk_posts_category_slider_widget .carousel-title .cat-links a{margin: 0 3px;}
298
+
299
+ .widget_bttk_posts_category_slider_widget .carousel-title .title{
300
+ font-size: 18px;
301
+ line-height: 26px;
302
+ font-weight: 400;
303
+ }
304
+
305
+ .widget_bttk_posts_category_slider_widget .owl-theme .owl-dots .owl-dot span{
306
+ margin: 0 3px;
307
+ background: #eee;
308
+ }
309
+
310
+ .widget_bttk_posts_category_slider_widget .owl-theme .owl-dots .owl-dot span:hover,
311
+ .widget_bttk_posts_category_slider_widget .owl-theme .owl-dots .owl-dot span:hover{
312
+ background: #111;
313
+ }
314
+
315
+ .widget_bttk_posts_category_slider_widget .owl-theme .owl-dots .owl-dot.active span{
316
+ background: #111;
317
+ }
318
+
319
+ /*========================
320
+ Image text widget
321
+ ========================*/
322
+ .widget_bttk_image_text_widget ul li{
323
+ position: relative;
324
+ }
325
+
326
+ .widget_bttk_image_text_widget ul li .btn-readmore{
327
+ position: absolute;
328
+ width: 70%;
329
+ text-align: center;
330
+ top: 50%;
331
+ left: 50%;
332
+ color: #fff;
333
+ background: #111;
334
+ text-transform: uppercase;
335
+ letter-spacing: 1px;
336
+ padding: 12px 29px 9px 32px;
337
+ -webkit-transform: translate(-50%, -50%);
338
+ -moz-transform: translate(-50%, -50%);
339
+ transform: translate(-50%, -50%);
340
+ -webkit-transition: ease 0.2s;
341
+ -moz-transition: ease 0.2s;
342
+ transition: ease 0.2s;
343
+ }
344
+
345
+ .widget-area ul{
346
+ margin: 0;
347
+ padding: 0;
348
+ list-style: none;
349
+ }
350
+
351
+ .widget-area ul li{
352
+ margin: 0 0 20px;
353
+ }
354
+
355
+ /*==========================
356
+ widget CTA style
357
+ ==========================*/
358
+ .widget_raratheme_companion_cta_widget .widget-content{
359
+ position: relative;
360
+ }
361
+
362
+ .widget_raratheme_companion_cta_widget .widget-content.bg-image:after{
363
+ content: '';
364
+ position: absolute;
365
+ top: 0;
366
+ left: 0;
367
+ width: 100%;
368
+ height: 100%;
369
+ background: rgba(0, 0, 0, 0.5);
370
+ }
371
+
372
+ .widget_raratheme_companion_cta_widget .widget-content .text-holder{
373
+ position: relative;
374
+ z-index: 1;
375
+ color: #fff;
376
+ text-align: center;
377
+ padding: 30px 15px;
378
+ }
379
+
380
+ .widget_raratheme_companion_cta_widget .widget-content .text-holder .btn-cta{
381
+ display: inline-block;
382
+ margin: 0 3px;
383
+ background: #f7f7f7;
384
+ color: #555;
385
+ border-radius: 3px;
386
+ padding: 5px 15px;
387
+ text-decoration: none;
388
+ font-size: 15px;
389
+ border: 1px solid #ccc;
390
+ -webkit-transition: linear 0.2s;
391
+ -moz-transition: linear 0.2s;
392
+ transition: linear 0.2s;
393
+ }
394
+
395
+ .widget_raratheme_companion_cta_widget .widget-content .text-holder .btn-cta:hover,
396
+ .widget_raratheme_companion_cta_widget .widget-content .text-holder .btn-cta:focus{
397
+ text-decoration: none;
398
+ background: none;
399
+ color: #fff;
400
+ }
401
+
402
+ /*===============================
403
+ Featured Post widget style
404
+ ===============================*/
405
+ .widget_raratheme_featured_widget .img-holder{
406
+ margin-bottom: 30px;
407
+ }
408
+
409
+ .widget_raratheme_featured_widget .img-holder a{display: block;}
410
+
411
+ .widget_raratheme_featured_widget .img-holder img{
412
+ vertical-align: top;
413
+ }
414
+
415
+ .widget_raratheme_featured_widget .text-holder .readmore{
416
+ display: inline-block;
417
+ background: #f7f7f7;
418
+ color: #555;
419
+ border-radius: 3px;
420
+ padding: 5px 15px;
421
+ text-decoration: none;
422
+ font-size: 15px;
423
+ border: 1px solid #ccc;
424
+ -webkit-transition: linear 0.2s;
425
+ -moz-transition: linear 0.2s;
426
+ transition: linear 0.2s;
427
+ }
428
+
429
+ .widget_raratheme_featured_widget .text-holder .readmore:hover,
430
+ .widget_raratheme_featured_widget .text-holder .readmore:focus{
431
+ background: none;
432
+ text-decoration: none;
433
+ }
434
+
435
+ /*=====================================
436
+ Icon Text Widget style
437
+ =====================================*/
438
+ .widget_raratheme_icon_text_widget .icon-holder{
439
+ font-size: 30px;
440
+ margin: 0 0 15px;
441
+ }
442
+
443
+ /*=============================
444
+ Image widget
445
+ =============================*/
446
+ .widget_raratheme_image_widget .image-holder{margin: 0 0 20px;}
447
+
448
+ .widget_raratheme_image_widget .image-holder img{vertical-align: top}
449
+
450
+ .widget_raratheme_image_widget .image-holder a{display: block;}
451
+
452
+ .widget_raratheme_image_widget .readmore{
453
+ display: inline-block;
454
+ background: #f7f7f7;
455
+ color: #555;
456
+ border-radius: 3px;
457
+ padding: 5px 15px;
458
+ text-decoration: none;
459
+ font-size: 15px;
460
+ border: 1px solid #ccc;
461
+ -webkit-transition: linear 0.2s;
462
+ -moz-transition: linear 0.2s;
463
+ transition: linear 0.2s;
464
+ }
465
+
466
+ .widget_raratheme_image_widget .readmore:hover,
467
+ .widget_raratheme_image_widget .readmore:focus{
468
+ background: none;
469
+ text-decoration: none;
470
+ }
471
+
472
+ /*==========================
473
+ Popular post style
474
+ ==========================*/
475
+ .widget_raratheme_popular_post ul li,
476
+ .widget_raratheme_recent_post ul li{overflow: hidden}
477
+
478
+ .widget_raratheme_popular_post ul li .post-thumbnail,
479
+ .widget_raratheme_recent_post ul li .post-thumbnail{
480
+ float: left;
481
+ width: 68px;
482
+ margin-right: 15px;
483
+ }
484
+
485
+ .widget_raratheme_popular_post ul li .post-thumbnail img,
486
+ .widget_raratheme_recent_post ul li .post-thumbnail img{vertical-align: top;}
487
+
488
+ .widget_raratheme_popular_post ul li .entry-header,
489
+ .widget_raratheme_recent_post ul li .entry-header{overflow: hidden;}
490
+
491
+ .widget_raratheme_popular_post ul li .entry-header .entry-title,
492
+ .widget_raratheme_recent_post ul li .entry-header .entry-title{
493
+ margin: 0 0 5px;
494
+ font-size: 15px;
495
+ line-height: 18px;
496
+ }
497
+
498
+ .widget_raratheme_popular_post ul li .entry-header .entry-title a,
499
+ .widget_raratheme_recent_post ul li .entry-header .entry-title a{text-decoration: none;}
500
+
501
+ .widget_raratheme_popular_post ul li .entry-header .entry-meta,
502
+ .widget_raratheme_recent_post ul li .entry-header .entry-meta{
503
+ font-size: 14px;
504
+ line-height: 18px;
505
+ }
506
+
507
+ .widget_raratheme_popular_post ul li .entry-header .view-count{
508
+ font-size: 14px;
509
+ line-height: 18px;
510
+ }
511
+
512
+ .widget_raratheme_popular_post ul li .entry-header .comment-count{
513
+ font-size: 14px;
514
+ line-height: 18px;
515
+ }
516
+
517
+ .widget_raratheme_popular_post ul li .entry-header .comment-count .fa{margin-right: 5px;}
518
+
519
+ /*=====================================
520
+ Widget social networks style
521
+ =====================================*/
522
+ .widget_raratheme_social_links ul{
523
+ font-size: 15px;
524
+ overflow: hidden
525
+ }
526
+
527
+ .widget_raratheme_social_links ul li{
528
+ float: left;
529
+ margin-right: 3px;
530
+ }
531
+
532
+ .widget_raratheme_social_links ul li a{
533
+ display: block;
534
+ width: 30px;
535
+ height: 30px;
536
+ background: #000;
537
+ color: #fff;
538
+ text-align: center;
539
+ line-height: 30px;
540
+ -webkit-transition: linear 0.2s;
541
+ -moz-transition: linear 0.2s;
542
+ transition: linear 0.2s;
543
+ }
544
+
545
+ .widget_raratheme_social_links ul li a:hover,
546
+ .widget_raratheme_social_links ul li a:focus{
547
+ border-radius: 50%;
548
+ }
549
+
550
+ .widget_raratheme_social_links ul li a[href*='facebook']{background: #3B5998;}
551
+
552
+ .widget_raratheme_social_links ul li a[href*='twitter']{background: #1DA1F2;}
553
+
554
+ .widget_raratheme_social_links ul li a[href*='flickr']{background: #0063DB;}
555
+
556
+ .widget_raratheme_social_links ul li a[href*='vimeo']{background: #23B6EA;}
557
+
558
+ .widget_raratheme_social_links ul li a[href*='youtube']{background: #CB1F1F;}
559
+
560
+ .widget_raratheme_social_links ul li a[href*='google']{background: #D51F1E;}
561
+
562
+ .widget_raratheme_social_links ul li a[href*='ok.ru']{background: #EE8208;}
563
+
564
+ .widget_raratheme_social_links ul li a[href*='vk']{background: #466991;}
565
+
566
+ .widget_raratheme_social_links ul li a[href*='xing']{background: #005A5F;}
567
+
568
+ .widget_raratheme_social_links ul li a[href*='stumbleupon']{background: #EB4823;}
569
+
570
+ .widget_raratheme_social_links ul li a[href*='pinterest']{background: #CB2027;}
571
+
572
+ .widget_raratheme_social_links ul li a[href*='dribbble']{background: #E84C88;}
573
+
574
+ .widget_raratheme_social_links ul li a[href*='linkedin']{background: #0274B3;}
575
+
576
+ .widget_raratheme_social_links ul li a[href*='rss']{background: #FFA500;}
577
+
578
+ .widget_raratheme_social_links ul li a[href*='tumblr']{background: #2E4F6E;}
579
+
580
+ .widget_raratheme_social_links ul li a[href*='instagram']{background: #895A4D;}
581
+
582
+ /*================================
583
+ counter widget style
584
+ ================================*/
585
+ .widget_raratheme_companion_stat_counter_widget .icon-holder{
586
+ font-size: 30px;
587
+ margin: 0 0 15px;
588
+ }
589
+
590
+ .widget_raratheme_companion_stat_counter_widget .odometer.odometer-auto-theme, .odometer.odometer-theme-default{
591
+ font-size: 25px;
592
+ font-weight: 700;
593
+ }
594
+ ul.accordion {
595
+ list-style: none;
596
+ }
597
+ ul.accordion .inner {
598
+ display: none;
599
+ }
600
+ ul.accordion li {
601
+ margin: .5em 0;
602
+ }
603
+ ul.accordion li a.toggle {
604
+ display: block;
605
+ }
606
+
607
+ .odometer.odometer-auto-theme,
608
+ .odometer.odometer-theme-default {
609
+ vertical-align: middle;
610
+ vertical-align: auto;
611
+ zoom: 1;
612
+ display: inline;
613
+ position: relative;
614
+ }
615
+
616
+ .odometer.odometer-auto-theme .odometer-digit,
617
+ .odometer.odometer-theme-default .odometer-digit {
618
+ vertical-align: middle;
619
+ vertical-align: auto;
620
+ zoom: 1;
621
+ display: inline;
622
+ position: relative;
623
+ }
624
+
625
+ .odometer.odometer-auto-theme .odometer-digit .odometer-digit-spacer,
626
+ .odometer.odometer-theme-default .odometer-digit .odometer-digit-spacer {
627
+ vertical-align: middle;
628
+ vertical-align: auto;
629
+ zoom: 1;
630
+ display: inline;
631
+ visibility: hidden;
632
+ }
633
+
634
+ .odometer.odometer-auto-theme .odometer-digit .odometer-digit-inner,
635
+ .odometer.odometer-theme-default .odometer-digit .odometer-digit-inner {
636
+ text-align: left;
637
+ display: block;
638
+ position: absolute;
639
+ top: 0;
640
+ left: 0;
641
+ right: 0;
642
+ bottom: 0;
643
+ overflow: hidden;
644
+ }
645
+
646
+ .odometer.odometer-auto-theme .odometer-digit .odometer-ribbon,
647
+ .odometer.odometer-theme-default .odometer-digit .odometer-ribbon {
648
+ display: block;
649
+ }
650
+
651
+ .odometer.odometer-auto-theme .odometer-digit .odometer-ribbon-inner,
652
+ .odometer.odometer-theme-default .odometer-digit .odometer-ribbon-inner {
653
+ display: block;
654
+ -webkit-backface-visibility: hidden;
655
+ }
656
+
657
+ .odometer.odometer-auto-theme .odometer-digit .odometer-value,
658
+ .odometer.odometer-theme-default .odometer-digit .odometer-value {
659
+ display: block;
660
+ -webkit-transform: translateZ(0);
661
+ -moz-transform: translateZ(0);
662
+ transform: translateZ(0);
663
+ }
664
+
665
+ .odometer.odometer-auto-theme .odometer-digit .odometer-value.odometer-last-value,
666
+ .odometer.odometer-theme-default .odometer-digit .odometer-value.odometer-last-value {
667
+ position: absolute;
668
+ }
669
+
670
+ .odometer.odometer-auto-theme.odometer-animating-up .odometer-ribbon-inner,
671
+ .odometer.odometer-theme-default.odometer-animating-up .odometer-ribbon-inner {
672
+ -webkit-transition: -webkit-transform 2s;
673
+ -moz-transition: -moz-transform 2s;
674
+ -ms-transition: -ms-transform 2s;
675
+ -o-transition: -o-transform 2s;
676
+ transition: transform 2s;
677
+ }
678
+
679
+ .odometer.odometer-auto-theme.odometer-animating-up.odometer-animating .odometer-ribbon-inner,
680
+ .odometer.odometer-theme-default.odometer-animating-up.odometer-animating .odometer-ribbon-inner {
681
+ -webkit-transform: translateY(-100%);
682
+ -moz-transform: translateY(-100%);
683
+ -ms-transform: translateY(-100%);
684
+ -o-transform: translateY(-100%);
685
+ transform: translateY(-100%);
686
+ }
687
+
688
+ .odometer.odometer-auto-theme.odometer-animating-down .odometer-ribbon-inner,
689
+ .odometer.odometer-theme-default.odometer-animating-down .odometer-ribbon-inner {
690
+ -webkit-transform: translateY(-100%);
691
+ -moz-transform: translateY(-100%);
692
+ -ms-transform: translateY(-100%);
693
+ -o-transform: translateY(-100%);
694
+ transform: translateY(-100%);
695
+ }
696
+
697
+ .odometer.odometer-auto-theme.odometer-animating-down.odometer-animating .odometer-ribbon-inner,
698
+ .odometer.odometer-theme-default.odometer-animating-down.odometer-animating .odometer-ribbon-inner {
699
+ -webkit-transition: -webkit-transform 2s;
700
+ -moz-transition: -moz-transform 2s;
701
+ -ms-transition: -ms-transform 2s;
702
+ -o-transition: -o-transform 2s;
703
+ transition: transform 2s;
704
+ -webkit-transform: translateY(0);
705
+ -moz-transform: translateY(0);
706
+ -ms-transform: translateY(0);
707
+ -o-transform: translateY(0);
708
+ transform: translateY(0);
709
+ }
710
+
711
+ .odometer.odometer-auto-theme .odometer-value,
712
+ .odometer.odometer-theme-default .odometer-value {
713
+ text-align: center;
714
+ }
715
+
716
+ /*================================
717
+ client logo widget style
718
+ ================================*/
719
+ .widget_blossom_client_logo_widget .image-holder img{
720
+ max-width: 190px;
721
+ }
722
+
723
+ /** Portfolio */
724
+ .portfolio-holder .portfolio-sorting {
725
+ text-align: center;
726
+ text-transform: uppercase;
727
+ }
728
+
729
+ .portfolio-sorting .button {
730
+ margin: 0 30px 40px 30px;
731
+ background: none;
732
+ border: none;
733
+ font-weight: 400;
734
+ font-size: 16px;
735
+ cursor: pointer;
736
+ padding: 0;
737
+ color: #000;
738
+ }
739
+
740
+ .portfolio-sorting .button:hover,
741
+ .portfolio-sorting .button.is-checked {
742
+ color: #777;
743
+ }
744
+
745
+ .portfolio-img-holder .portfolio-item {
746
+ float: left;
747
+ width: 33.33%;
748
+ padding: 15px;
749
+
750
+ }
751
+
752
+ .portfolio-item img {
753
+ vertical-align: top;
754
+ }
755
+
756
+ .portfolio-item .portfolio-item-inner {
757
+ position: relative;
758
+ overflow: hidden;
759
+ }
760
+
761
+ .portfolio-item .portfolio-text-holder {
762
+ font-size: 14px;
763
+ font-weight: 600;
764
+ position: absolute;
765
+ top: 0;
766
+ bottom: 0;
767
+ left: 0;
768
+ right: 0;
769
+ background: -webkit-linear-gradient(transparent, rgba(0,0,0,0.65));
770
+ background: -moz-linear-gradient(transparent, rgba(0,0,0,0.65));
771
+ background: -ms-linear-gradient(transparent, rgba(0,0,0,0.65));
772
+ background: -o-linear-gradient(transparent, rgba(0,0,0,0.65));
773
+ background: linear-gradient(transparent, rgba(0,0,0,0.65));
774
+ text-align: center;
775
+ padding: 0 20px;
776
+ display: flex;
777
+ flex-direction: column;
778
+ flex: 1;
779
+ justify-content: flex-end;
780
+ opacity: 0;
781
+ visibility: hidden;
782
+ -webkit-transition: all ease 0.35s;
783
+ -moz-transition: all ease 0.35s;
784
+ transition: all ease 0.35s;
785
+ }
786
+
787
+ .portfolio-item-inner:hover .portfolio-text-holder {
788
+ padding-top: 30px;
789
+ padding-bottom: 30px;
790
+ opacity: 1;
791
+ filter: alpha(opacity=100);
792
+ visibility: visible;
793
+ }
794
+
795
+ .portfolio-item .portfolio-cat a {
796
+ color: #fff;
797
+ text-decoration: none;
798
+ padding-right: 10px;
799
+ display: inline-block;
800
+ margin-bottom: 5px;
801
+ }
802
+ .portfolio-item .portfolio-cat a:last-child {
803
+ padding-right: 0;
804
+ }
805
+
806
+ .portfolio-text-holder .portfolio-img-title {
807
+ font-size: 24px;
808
+ font-weight: 600;
809
+ }
810
+
811
+ .portfolio-item .portfolio-img-title a {
812
+ color: #fff;
813
+ text-decoration: none;
814
+ }
815
+
816
+ .portfolio-item a:hover {
817
+ color: #ddd;
818
+ }
819
+
820
+ .portfolio-holder .post-thumbnail {
821
+ margin: 0 0 35px 0;
822
+ text-align: center;
823
+ }
824
+
825
+ .portfolio-holder .entry-header {
826
+ border-bottom: 1px solid #eee;
827
+ margin-bottom: 30px;
828
+ padding-bottom: 30px;
829
+ }
830
+
831
+ .entry-header .portfolio-cat a {
832
+ color: #777;
833
+ text-decoration: none;
834
+ margin-right: 10px;
835
+ }
836
+
837
+ .entry-header .portfolio-cat a:last-child {
838
+ margin-right: 0;
839
+ }
840
+
841
+ .portfolio-holder .entry-header .entry-title {
842
+ color: #000;
843
+ margin: 10px 0 0 0;
844
+ font-size: 3em;
845
+ }
846
+
847
+ .portfolio-holder .entry-header,
848
+ .portfolio-holder .entry-content {
849
+ margin-left: auto;
850
+ margin-right: auto;
851
+ max-width: 80%;
852
+ }
853
+
854
+ .portfolio-holder .entry-content {
855
+ color: #555;
856
+ line-height: 1.6;
857
+ }
858
+
859
+ .related-portfolio {
860
+ margin-top: 80px;
861
+ }
862
+
863
+ .related-portfolio-title {
864
+ text-align: center;
865
+ margin-bottom: 30px;
866
+ font-size: 22px;
867
+ }
868
+
869
+ .related-portfolio .portfolio-img-holder:before,
870
+ .related-portfolio .portfolio-img-holder:after {
871
+ content: "";
872
+ display: table;
873
+ height: 0;
874
+ width: 0;
875
+ line-height: 0;
876
+ }
877
+
878
+ .related-portfolio .portfolio-img-holder:after {
879
+ clear: both;
880
+ }
881
+
882
+ .related-portfolio .portfolio-item .portfolio-text-holder {
883
+ opacity: 1;
884
+ visibility: visible;
885
+ padding: 30px 20px;
886
+ }
887
+ /** Portfolio Ends */
888
+
889
+ @media only screen and (max-width: 1024px){
890
+ .archive .trip-content-area .grid .btn-loadmore{
891
+ grid-column: 1 / span 2
892
+ }
893
+
894
+ .portfolio-img-holder .portfolio-item {
895
+ width: 50%;
896
+ }
897
+ }
898
+
899
+ @media only screen and (max-width: 767px){
900
+ .archive .trip-content-area .grid .btn-loadmore{
901
+ grid-column: 1 / span 1
902
+ }
903
+
904
+ .portfolio-img-holder .portfolio-item {
905
+ width: 100%;
906
+ float: none;
907
+ padding-left: 0;
908
+ padding-right: 0;
909
+ }
910
+
911
+ .portfolio-holder .entry-header,
912
+ .portfolio-holder .entry-content {
913
+ max-width: 100%;
914
+ }
915
  }