Version Description
- Tweak Moved to templates based design for easy customization for generic carousel, stats bars, odometers, piecharts, team members, testimonials and testimonials slider widgets. More widgets being migrated in next releases.
- Tweak - Moved away from hooks/filters based customization for some of the widgets since they are not being utilized well. Templates are much more intuitive and require less effort; they let you copy files to your theme and override them quickly.
- Tweak - Moved to templates based design for Posts Carousel widget. If you have done any customization of this popular widget through WP hooks/filters, pls note they will not work anymore in the new version. Pls find the template file in templates/addons/posts-carousel folder in the plugin, copy the same to your (child) theme and make changes as per requirements. Much easier now than using hooks/filters.
- Fixed - Social icons not showing up on team members widget.
- Fixed - The templates for posts slider, posts multislider, posts gridbox slider widgets overridden in theme not taking effect
Download this release
Release Info
Developer | livemesh |
Plugin | Addons for Elementor |
Version | 6.2 |
Comparing to | |
See all releases |
Code changes from version 6.1 to 6.2
- addons-for-elementor.php +3 -3
- includes/base/widget-base.php +41 -0
- includes/widgets/carousel.php +4 -50
- includes/widgets/clients.php +4 -44
- includes/widgets/heading.php +1 -1
- includes/widgets/odometers.php +4 -78
- includes/widgets/piecharts.php +4 -27
- includes/widgets/portfolio.php +1 -1
- includes/widgets/posts-carousel.php +4 -222
- includes/widgets/posts-gridbox-slider.php +1 -1
- includes/widgets/posts-multislider.php +1 -1
- includes/widgets/posts-slider.php +1 -1
- includes/widgets/pricing-table.php +1 -1
- includes/widgets/services.php +1 -1
- includes/widgets/stats-bars.php +4 -35
- includes/widgets/tab-slider.php +1 -1
- includes/widgets/team-members.php +5 -150
- includes/widgets/testimonials-slider.php +5 -70
- includes/widgets/testimonials.php +4 -48
- plugin.php +3 -2
- readme.txt +11 -1
- templates/addons/carousel/content.php +19 -0
- templates/addons/carousel/loop.php +61 -0
- templates/addons/clients/content.php +43 -0
- templates/addons/clients/loop.php +35 -0
- templates/addons/odometers/content.php +88 -0
- templates/addons/odometers/loop.php +27 -0
- templates/addons/piecharts/content.php +29 -0
- templates/addons/piecharts/loop.php +27 -0
- templates/addons/posts-carousel/content.php +155 -0
- templates/addons/posts-carousel/custom-skin.php +23 -0
- templates/addons/posts-carousel/loop-end.php +13 -0
- templates/addons/posts-carousel/loop-start.php +44 -0
- templates/addons/posts-carousel/loop.php +37 -0
- templates/addons/stats-bars/content.php +39 -0
- templates/addons/stats-bars/loop.php +25 -0
- templates/addons/team-members/loop.php +35 -0
- templates/addons/team-members/social-profile.php +106 -0
- templates/addons/team-members/style1.php +95 -0
- templates/addons/team-members/style2.php +95 -0
- templates/addons/testimonials-slider/content.php +53 -0
- templates/addons/testimonials-slider/loop.php +47 -0
- templates/addons/testimonials/content.php +47 -0
- templates/addons/testimonials/loop.php +26 -0
addons-for-elementor.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
* Author URI: https://livemeshelementor.com
|
9 |
* License: GPL3
|
10 |
* License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
11 |
-
* Version: 6.
|
12 |
* Text Domain: livemesh-el-addons
|
13 |
* Domain Path: languages
|
14 |
* Elementor tested up to: 3.1.0
|
@@ -37,12 +37,12 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
37 |
|
38 |
if ( !function_exists( 'lae_fs' ) ) {
|
39 |
// Plugin version
|
40 |
-
define( 'LAE_VERSION', '6.
|
41 |
// Plugin Root File
|
42 |
define( 'LAE_PLUGIN_FILE', __FILE__ );
|
43 |
// Plugin Folder Path
|
44 |
define( 'LAE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
45 |
-
define( 'LAE_PLUGIN_SLUG', plugin_basename( __FILE__ ) );
|
46 |
// Plugin Folder URL
|
47 |
define( 'LAE_PLUGIN_URL', plugins_url( '/', __FILE__ ) );
|
48 |
// Plugin Addons Folder Path
|
8 |
* Author URI: https://livemeshelementor.com
|
9 |
* License: GPL3
|
10 |
* License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
11 |
+
* Version: 6.2
|
12 |
* Text Domain: livemesh-el-addons
|
13 |
* Domain Path: languages
|
14 |
* Elementor tested up to: 3.1.0
|
37 |
|
38 |
if ( !function_exists( 'lae_fs' ) ) {
|
39 |
// Plugin version
|
40 |
+
define( 'LAE_VERSION', '6.2' );
|
41 |
// Plugin Root File
|
42 |
define( 'LAE_PLUGIN_FILE', __FILE__ );
|
43 |
// Plugin Folder Path
|
44 |
define( 'LAE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
45 |
+
define( 'LAE_PLUGIN_SLUG', dirname( plugin_basename( __FILE__ ) ) );
|
46 |
// Plugin Folder URL
|
47 |
define( 'LAE_PLUGIN_URL', plugins_url( '/', __FILE__ ) );
|
48 |
// Plugin Addons Folder Path
|
includes/base/widget-base.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace LivemeshAddons\Widgets;
|
4 |
+
|
5 |
+
use Elementor\Widget_Base;
|
6 |
+
|
7 |
+
if (!defined('ABSPATH')) {
|
8 |
+
exit; // Exit if accessed directly.
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Elementor widget base.
|
13 |
+
*
|
14 |
+
* An abstract class to register new Elementor widgets for Livemesh Addons. It extended the
|
15 |
+
* `Widget_Base` class from Elementor to inherit its properties.
|
16 |
+
*
|
17 |
+
* This abstract class must be extended in order to register new widgets.
|
18 |
+
*
|
19 |
+
* @since 6.2
|
20 |
+
* @abstract
|
21 |
+
*/
|
22 |
+
abstract class LAE_Widget_Base extends Widget_Base {
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Parse text editor.
|
26 |
+
*
|
27 |
+
* Parses the content from rich text editor with shortcodes, oEmbed and
|
28 |
+
* filtered data.
|
29 |
+
*
|
30 |
+
* @param string $content Text editor content.
|
31 |
+
*
|
32 |
+
* @return string Parsed content.
|
33 |
+
* @since 6.2
|
34 |
+
* @access public
|
35 |
+
*
|
36 |
+
*/
|
37 |
+
public function parse_text_editor($content) {
|
38 |
+
|
39 |
+
return parent::parse_text_editor($content);
|
40 |
+
}
|
41 |
+
}
|
includes/widgets/carousel.php
CHANGED
@@ -20,7 +20,7 @@ if (!defined('ABSPATH'))
|
|
20 |
exit; // Exit if accessed directly
|
21 |
|
22 |
|
23 |
-
class LAE_Carousel_Widget extends
|
24 |
|
25 |
public function get_name() {
|
26 |
return 'lae-carousel';
|
@@ -509,59 +509,13 @@ Fusce risus nisl, viverra et, tempor et, pretium in, sapien. Vestibulum turpis s
|
|
509 |
|
510 |
$settings = $this->get_settings_for_display();
|
511 |
|
512 |
-
$dir = is_rtl() ? ' dir="rtl"' : '';
|
513 |
-
|
514 |
$settings = apply_filters('lae_carousel_' . $this->get_id() . '_settings', $settings);
|
515 |
|
516 |
-
$
|
517 |
-
|
518 |
-
$carousel_settings = [
|
519 |
-
'arrows' => ('yes' === $settings['arrows']),
|
520 |
-
'dots' => ('yes' === $settings['dots']),
|
521 |
-
'autoplay' => ('yes' === $settings['autoplay']),
|
522 |
-
'autoplay_speed' => absint($settings['autoplay_speed']),
|
523 |
-
'animation_speed' => absint($settings['animation_speed']),
|
524 |
-
'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
|
525 |
-
];
|
526 |
-
|
527 |
-
$responsive_settings = [
|
528 |
-
'display_columns' => $settings['display_columns'],
|
529 |
-
'scroll_columns' => $settings['scroll_columns'],
|
530 |
-
'gutter' => $settings['gutter'],
|
531 |
-
'tablet_width' => $settings['tablet_width'],
|
532 |
-
'tablet_display_columns' => $settings['tablet_display_columns'],
|
533 |
-
'tablet_scroll_columns' => $settings['tablet_scroll_columns'],
|
534 |
-
'tablet_gutter' => $settings['tablet_gutter'],
|
535 |
-
'mobile_width' => $settings['mobile_width'],
|
536 |
-
'mobile_display_columns' => $settings['mobile_display_columns'],
|
537 |
-
'mobile_scroll_columns' => $settings['mobile_scroll_columns'],
|
538 |
-
'mobile_gutter' => $settings['mobile_gutter'],
|
539 |
-
|
540 |
-
];
|
541 |
-
|
542 |
-
$carousel_settings = array_merge($carousel_settings, $responsive_settings);
|
543 |
-
|
544 |
-
if (!empty($elements)) :
|
545 |
-
|
546 |
-
$output = '<div' . $dir . ' id="lae-carousel-' . $this->get_id() . '" class="lae-carousel lae-container" data-settings=\'' . wp_json_encode($carousel_settings) . '\'>';
|
547 |
-
|
548 |
-
foreach ($elements as $element) :
|
549 |
-
|
550 |
-
$child_output = '<div class="lae-carousel-item">';
|
551 |
-
|
552 |
-
$child_output .= $this->parse_text_editor($element['element_content']);
|
553 |
-
|
554 |
-
$child_output .= '</div><!-- .lae-carousel-item -->';
|
555 |
-
|
556 |
-
$output .= apply_filters('lae_carousel_item_output', $child_output, $element, $settings);
|
557 |
-
|
558 |
-
endforeach;
|
559 |
-
|
560 |
-
$output .= '</div><!-- .lae-carousel -->';
|
561 |
|
562 |
-
|
563 |
|
564 |
-
|
565 |
}
|
566 |
|
567 |
protected function content_template() {
|
20 |
exit; // Exit if accessed directly
|
21 |
|
22 |
|
23 |
+
class LAE_Carousel_Widget extends LAE_Widget_Base {
|
24 |
|
25 |
public function get_name() {
|
26 |
return 'lae-carousel';
|
509 |
|
510 |
$settings = $this->get_settings_for_display();
|
511 |
|
|
|
|
|
512 |
$settings = apply_filters('lae_carousel_' . $this->get_id() . '_settings', $settings);
|
513 |
|
514 |
+
$args['settings'] = $settings;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
515 |
|
516 |
+
$args['widget_instance'] = $this;
|
517 |
|
518 |
+
lae_get_template_part('addons/carousel/loop', $args);
|
519 |
}
|
520 |
|
521 |
protected function content_template() {
|
includes/widgets/clients.php
CHANGED
@@ -21,7 +21,7 @@ if (!defined('ABSPATH'))
|
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
-
class LAE_Clients_Widget extends
|
25 |
|
26 |
public function get_name() {
|
27 |
return 'lae-clients';
|
@@ -286,51 +286,11 @@ class LAE_Clients_Widget extends Widget_Base {
|
|
286 |
|
287 |
$settings = apply_filters('lae_clients_' . $this->get_id() . '_settings', $settings);
|
288 |
|
289 |
-
|
290 |
|
291 |
-
$
|
292 |
|
293 |
-
|
294 |
-
|
295 |
-
foreach ($settings['clients'] as $client):
|
296 |
-
|
297 |
-
$child_output = '<div class="lae-grid-item lae-client ' . $animate_class . '" ' . $animation_attr . '>';
|
298 |
-
|
299 |
-
if (!empty($client['client_image'])):
|
300 |
-
|
301 |
-
$child_output .= wp_get_attachment_image($client['client_image']['id'], 'full', false, array('class' => 'lae-image full', 'alt' => $client['client_name']));
|
302 |
-
|
303 |
-
endif;
|
304 |
-
|
305 |
-
if (!empty($client['client_link']) && !empty($client['client_link']['url'])):
|
306 |
-
|
307 |
-
$target = $client['client_link']['is_external'] ? 'target="_blank"' : '';
|
308 |
-
|
309 |
-
$child_output .= '<div class="lae-client-name">';
|
310 |
-
|
311 |
-
$child_output .= '<a href="' . esc_url($client['client_link']['url']) . ' " title="' . esc_html($client['client_name']) . '" ' . $target . '>' . wp_kses_post($client['client_name']) . '</a>';
|
312 |
-
|
313 |
-
$child_output .= '</div>';
|
314 |
-
|
315 |
-
else:
|
316 |
-
|
317 |
-
$child_output .= '<div class="lae-client-name">' . wp_kses_post($client['client_name']) . '</div>';
|
318 |
-
|
319 |
-
endif;
|
320 |
-
|
321 |
-
$child_output .= '<div class="lae-image-overlay"></div>';
|
322 |
-
|
323 |
-
$child_output .= '</div><!-- .lae-client -->';
|
324 |
-
|
325 |
-
$output .= apply_filters('lae_client_item_output', $child_output, $client, $settings);
|
326 |
-
|
327 |
-
endforeach;
|
328 |
-
|
329 |
-
$output .= '</div>';
|
330 |
-
|
331 |
-
$output .= '</div><!-- .lae-clients -->';
|
332 |
-
|
333 |
-
echo apply_filters('lae_clients_output', $output, $settings);
|
334 |
}
|
335 |
|
336 |
protected function content_template() {
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
+
class LAE_Clients_Widget extends LAE_Widget_Base {
|
25 |
|
26 |
public function get_name() {
|
27 |
return 'lae-clients';
|
286 |
|
287 |
$settings = apply_filters('lae_clients_' . $this->get_id() . '_settings', $settings);
|
288 |
|
289 |
+
$args['settings'] = $settings;
|
290 |
|
291 |
+
$args['widget_instance'] = $this;
|
292 |
|
293 |
+
lae_get_template_part('addons/clients/loop', $args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
}
|
295 |
|
296 |
protected function content_template() {
|
includes/widgets/heading.php
CHANGED
@@ -19,7 +19,7 @@ if (!defined('ABSPATH'))
|
|
19 |
exit; // Exit if accessed directly
|
20 |
|
21 |
|
22 |
-
class LAE_Heading_Widget extends
|
23 |
|
24 |
public function get_name() {
|
25 |
return 'lae-heading';
|
19 |
exit; // Exit if accessed directly
|
20 |
|
21 |
|
22 |
+
class LAE_Heading_Widget extends LAE_Widget_Base {
|
23 |
|
24 |
public function get_name() {
|
25 |
return 'lae-heading';
|
includes/widgets/odometers.php
CHANGED
@@ -16,14 +16,13 @@ use Elementor\Utils;
|
|
16 |
use Elementor\Scheme_Color;
|
17 |
use Elementor\Group_Control_Typography;
|
18 |
use Elementor\Scheme_Typography;
|
19 |
-
use Elementor\Icons_Manager;
|
20 |
use Elementor\Modules\DynamicTags\Module as TagsModule;
|
21 |
|
22 |
if (!defined('ABSPATH'))
|
23 |
exit; // Exit if accessed directly
|
24 |
|
25 |
|
26 |
-
class LAE_Odometers_Widget extends
|
27 |
|
28 |
public function get_name() {
|
29 |
return 'lae-odometers';
|
@@ -384,84 +383,11 @@ class LAE_Odometers_Widget extends Widget_Base {
|
|
384 |
|
385 |
$settings = apply_filters('lae_odometers_' . $this->get_id() . '_settings', $settings);
|
386 |
|
387 |
-
$
|
388 |
|
389 |
-
$
|
390 |
|
391 |
-
|
392 |
-
|
393 |
-
$prefix = (!empty ($odometer['prefix'])) ? '<span class="prefix">' . $odometer['prefix'] . '</span>' : '';
|
394 |
-
$suffix = (!empty ($odometer['suffix'])) ? '<span class="suffix">' . $odometer['suffix'] . '</span>' : '';
|
395 |
-
|
396 |
-
$child_output = '<div class="lae-grid-item lae-odometer">';
|
397 |
-
|
398 |
-
$child_output .= (!empty ($odometer['prefix'])) ? '<span class="lae-prefix">' . $odometer['prefix'] . '</span>' : '';
|
399 |
-
|
400 |
-
$child_output .= '<div class="lae-number odometer" data-stop="' . intval($odometer['stop_value']) . '">';
|
401 |
-
|
402 |
-
$child_output .= intval($odometer['start_value']);
|
403 |
-
|
404 |
-
$child_output .= '</div><!-- .lae-number -->';
|
405 |
-
|
406 |
-
$child_output .= (!empty ($odometer['suffix'])) ? '<span class="lae-suffix">' . $odometer['suffix'] . '</span>' : '';
|
407 |
-
|
408 |
-
$icon_type = esc_html($odometer['icon_type']);
|
409 |
-
|
410 |
-
$icon_html = '';
|
411 |
-
|
412 |
-
if ($icon_type == 'icon_image') :
|
413 |
-
|
414 |
-
$icon_image = $odometer['icon_image'];
|
415 |
-
|
416 |
-
if (!empty($icon_image)):
|
417 |
-
|
418 |
-
$icon_html = '<span class="lae-image-wrapper">' . wp_get_attachment_image($icon_image['id'], 'full', false, array('class' => 'lae-image full')) . '</span>';
|
419 |
-
|
420 |
-
endif;
|
421 |
-
|
422 |
-
elseif ((!empty($odometer['icon']) || !empty($odometer['selected_icon']['value']))) :
|
423 |
-
|
424 |
-
$migrated = isset($odometer['__fa4_migrated']['selected_icon']);
|
425 |
-
$is_new = empty($odometer['icon']) && $migration_allowed;
|
426 |
-
|
427 |
-
$icon_html = '<span class="lae-icon-wrapper">';
|
428 |
-
|
429 |
-
if ($is_new || $migrated) :
|
430 |
-
|
431 |
-
ob_start();
|
432 |
-
|
433 |
-
Icons_Manager::render_icon($odometer['selected_icon'], ['aria-hidden' => 'true']);
|
434 |
-
|
435 |
-
$icon_html .= ob_get_contents();
|
436 |
-
ob_end_clean();
|
437 |
-
|
438 |
-
else :
|
439 |
-
|
440 |
-
$icon_html .= '<i class="' . esc_attr($odometer['icon']) . '" aria-hidden="true"></i>';
|
441 |
-
|
442 |
-
endif;
|
443 |
-
|
444 |
-
$icon_html .= '</span>';
|
445 |
-
|
446 |
-
endif;
|
447 |
-
|
448 |
-
$child_output .= '<div class="lae-stats-title-wrap">';
|
449 |
-
|
450 |
-
$child_output .= '<div class="lae-stats-title">' . $icon_html . esc_html($odometer['stats_title']) . '</div>';
|
451 |
-
|
452 |
-
$child_output .= '</div>';
|
453 |
-
|
454 |
-
$child_output .= '</div><!-- .lae-odometer -->';
|
455 |
-
|
456 |
-
$output .= apply_filters('lae_odometer_output', $child_output, $odometer, $settings);
|
457 |
-
|
458 |
-
endforeach;
|
459 |
-
|
460 |
-
$output .= '</div><!-- .lae-odometers -->';
|
461 |
-
|
462 |
-
$output .= '<div class="lae-clear"></div>';
|
463 |
-
|
464 |
-
echo apply_filters('lae_odometers_output', $output, $settings);
|
465 |
|
466 |
}
|
467 |
|
16 |
use Elementor\Scheme_Color;
|
17 |
use Elementor\Group_Control_Typography;
|
18 |
use Elementor\Scheme_Typography;
|
|
|
19 |
use Elementor\Modules\DynamicTags\Module as TagsModule;
|
20 |
|
21 |
if (!defined('ABSPATH'))
|
22 |
exit; // Exit if accessed directly
|
23 |
|
24 |
|
25 |
+
class LAE_Odometers_Widget extends LAE_Widget_Base {
|
26 |
|
27 |
public function get_name() {
|
28 |
return 'lae-odometers';
|
383 |
|
384 |
$settings = apply_filters('lae_odometers_' . $this->get_id() . '_settings', $settings);
|
385 |
|
386 |
+
$args['settings'] = $settings;
|
387 |
|
388 |
+
$args['widget_instance'] = $this;
|
389 |
|
390 |
+
lae_get_template_part('addons/odometers/loop', $args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
391 |
|
392 |
}
|
393 |
|
includes/widgets/piecharts.php
CHANGED
@@ -21,7 +21,7 @@ if (!defined('ABSPATH'))
|
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
-
class LAE_Piecharts_Widget extends
|
25 |
|
26 |
public function get_name() {
|
27 |
return 'lae-piecharts';
|
@@ -275,34 +275,11 @@ class LAE_Piecharts_Widget extends Widget_Base {
|
|
275 |
|
276 |
$settings = apply_filters('lae_piecharts_' . $this->get_id() . '_settings', $settings);
|
277 |
|
278 |
-
$
|
279 |
-
$track_color = ' data-track-color="' . esc_attr($settings['track_color']) . '"';
|
280 |
|
281 |
-
$
|
282 |
|
283 |
-
|
284 |
-
|
285 |
-
$child_output = '<div class="lae-grid-item lae-piechart">';
|
286 |
-
|
287 |
-
$child_output .= '<div class="lae-percentage"' . $bar_color . $track_color . ' data-percent="' . round($piechart['percentage_value']) . '">';
|
288 |
-
|
289 |
-
$child_output .= '<span>' . round($piechart['percentage_value']) . '<sup>%</sup>' . '</span>';
|
290 |
-
|
291 |
-
$child_output .= '</div>';
|
292 |
-
|
293 |
-
$child_output .= '<div class="lae-label">' . esc_html($piechart['stats_title']) . '</div>';
|
294 |
-
|
295 |
-
$child_output .= '</div><!-- .lae-piechart -->';
|
296 |
-
|
297 |
-
$output .= apply_filters('lae_piechart_output', $child_output, $piechart, $settings);
|
298 |
-
|
299 |
-
endforeach;
|
300 |
-
|
301 |
-
$output .= '</div><!-- .lae-piecharts -->';
|
302 |
-
|
303 |
-
$output .= '<div class="lae-clear"></div>';
|
304 |
-
|
305 |
-
echo apply_filters('lae_piecharts_output', $output, $settings);
|
306 |
|
307 |
}
|
308 |
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
+
class LAE_Piecharts_Widget extends LAE_Widget_Base {
|
25 |
|
26 |
public function get_name() {
|
27 |
return 'lae-piecharts';
|
275 |
|
276 |
$settings = apply_filters('lae_piecharts_' . $this->get_id() . '_settings', $settings);
|
277 |
|
278 |
+
$args['settings'] = $settings;
|
|
|
279 |
|
280 |
+
$args['widget_instance'] = $this;
|
281 |
|
282 |
+
lae_get_template_part('addons/piecharts/loop', $args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
283 |
|
284 |
}
|
285 |
|
includes/widgets/portfolio.php
CHANGED
@@ -19,7 +19,7 @@ if (!defined('ABSPATH'))
|
|
19 |
exit; // Exit if accessed directly
|
20 |
|
21 |
|
22 |
-
class LAE_Portfolio_Widget extends
|
23 |
|
24 |
public function get_name() {
|
25 |
return 'lae-portfolio';
|
19 |
exit; // Exit if accessed directly
|
20 |
|
21 |
|
22 |
+
class LAE_Portfolio_Widget extends LAE_Widget_Base {
|
23 |
|
24 |
public function get_name() {
|
25 |
return 'lae-portfolio';
|
includes/widgets/posts-carousel.php
CHANGED
@@ -19,7 +19,7 @@ use Elementor\Scheme_Typography;
|
|
19 |
if (!defined('ABSPATH'))
|
20 |
exit; // Exit if accessed directly
|
21 |
|
22 |
-
class LAE_Posts_Carousel_Widget extends
|
23 |
|
24 |
public function get_name() {
|
25 |
return 'lae-posts-carousel';
|
@@ -1021,20 +1021,6 @@ class LAE_Posts_Carousel_Widget extends Widget_Base {
|
|
1021 |
|
1022 |
}
|
1023 |
|
1024 |
-
protected function get_item_template_content($template_id, $settings) {
|
1025 |
-
|
1026 |
-
/* Initialize the theme builder templates - Requires elementor pro plugin */
|
1027 |
-
if (!is_plugin_active('elementor-pro/elementor-pro.php')) {
|
1028 |
-
$output = lae_template_error(__('Custom skin requires Elementor Pro but the plugin is not installed/active', 'livemesh-el-addons'));
|
1029 |
-
}
|
1030 |
-
else {
|
1031 |
-
$output = lae_get_item_template_content($template_id, $settings);
|
1032 |
-
}
|
1033 |
-
|
1034 |
-
return $output;
|
1035 |
-
|
1036 |
-
}
|
1037 |
-
|
1038 |
protected function get_item_template_options() {
|
1039 |
|
1040 |
$template_options = array();
|
@@ -1060,217 +1046,13 @@ class LAE_Posts_Carousel_Widget extends Widget_Base {
|
|
1060 |
|
1061 |
$settings = $this->get_settings_for_display();
|
1062 |
|
1063 |
-
$dir = is_rtl() ? ' dir="rtl"' : '';
|
1064 |
-
|
1065 |
$settings = apply_filters('lae_posts_carousel_' . $this->get_id() . '_settings', $settings);
|
1066 |
|
1067 |
-
$
|
1068 |
-
|
1069 |
-
$carousel_settings = [
|
1070 |
-
'arrows' => ('yes' === $settings['arrows']),
|
1071 |
-
'dots' => ('yes' === $settings['dots']),
|
1072 |
-
'autoplay' => ('yes' === $settings['autoplay']),
|
1073 |
-
'autoplay_speed' => absint($settings['autoplay_speed']),
|
1074 |
-
'animation_speed' => absint($settings['animation_speed']),
|
1075 |
-
'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
|
1076 |
-
'adaptive_height' => ('yes' === $settings['adaptive_height']),
|
1077 |
-
];
|
1078 |
-
|
1079 |
-
$responsive_settings = [
|
1080 |
-
'display_columns' => $settings['display_columns'],
|
1081 |
-
'scroll_columns' => $settings['scroll_columns'],
|
1082 |
-
'gutter' => $settings['gutter'],
|
1083 |
-
'tablet_width' => $settings['tablet_width'],
|
1084 |
-
'tablet_display_columns' => $settings['tablet_display_columns'],
|
1085 |
-
'tablet_scroll_columns' => $settings['tablet_scroll_columns'],
|
1086 |
-
'tablet_gutter' => $settings['tablet_gutter'],
|
1087 |
-
'mobile_width' => $settings['mobile_width'],
|
1088 |
-
'mobile_display_columns' => $settings['mobile_display_columns'],
|
1089 |
-
'mobile_scroll_columns' => $settings['mobile_scroll_columns'],
|
1090 |
-
'mobile_gutter' => $settings['mobile_gutter'],
|
1091 |
-
|
1092 |
-
];
|
1093 |
-
|
1094 |
-
$carousel_settings = array_merge($carousel_settings, $responsive_settings);
|
1095 |
-
|
1096 |
-
// Use the processed post selector query to find posts.
|
1097 |
-
$query_args = lae_build_query_args($settings);
|
1098 |
-
|
1099 |
-
$query_args = apply_filters('lae_posts_carousel_' . $this->get_id() . '_query_args', $query_args, $settings);
|
1100 |
-
|
1101 |
-
$loop = new \WP_Query($query_args);
|
1102 |
-
|
1103 |
-
$template_id = $settings['item_template'];
|
1104 |
-
|
1105 |
-
// Loop through the posts and do something with them.
|
1106 |
-
if ($loop->have_posts()) :
|
1107 |
-
|
1108 |
-
$target = $settings['post_link_new_window'] == 'yes' ? ' target="_blank"' : '';
|
1109 |
-
|
1110 |
-
$output = '<div' . $dir . ' id="lae-posts-carousel-' . uniqid()
|
1111 |
-
. '" class="lae-posts-carousel lae-container '
|
1112 |
-
. 'lae-' . str_replace('_', '-', $settings['carousel_skin'])
|
1113 |
-
. '" data-settings=\'' . wp_json_encode($carousel_settings) . '\'>';
|
1114 |
-
|
1115 |
-
$taxonomies[] = $settings['taxonomy_chosen'];
|
1116 |
-
|
1117 |
-
while ($loop->have_posts()) : $loop->the_post();
|
1118 |
-
|
1119 |
-
$post_id = get_the_ID();
|
1120 |
-
|
1121 |
-
$entry_output = '<div data-id="id-' . get_the_ID() . '" class="lae-posts-carousel-item">';
|
1122 |
-
|
1123 |
-
$entry_output .= '<article id="post-' . get_the_ID() . '" class="' . join(' ', get_post_class('', $post_id)) . '">';
|
1124 |
-
|
1125 |
-
if ($settings['carousel_skin'] == 'custom_skin') :
|
1126 |
-
|
1127 |
-
if ($template_id)
|
1128 |
-
|
1129 |
-
$entry_output .= $this->get_item_template_content($template_id, $settings);
|
1130 |
-
else
|
1131 |
-
$entry_output .= lae_template_error(__('Choose a custom skin template for the carousel item', 'livemesh-el-addons'));
|
1132 |
-
|
1133 |
-
else :
|
1134 |
-
|
1135 |
-
if ($thumbnail_exists = has_post_thumbnail() && $settings['display_thumbnail'] == 'yes'):
|
1136 |
-
|
1137 |
-
$entry_image = '<div class="lae-project-image">';
|
1138 |
-
|
1139 |
-
$image_setting = ['id' => get_post_thumbnail_id()];
|
1140 |
-
|
1141 |
-
$thumbnail_html = lae_get_image_html($image_setting, 'thumbnail_size', $settings);
|
1142 |
-
|
1143 |
-
if ($settings['image_linkable'] == 'yes'):
|
1144 |
-
|
1145 |
-
$thumbnail_html = '<a href="' . get_the_permalink() . '"' . $target . '>' . $thumbnail_html . '</a>';
|
1146 |
-
|
1147 |
-
endif;
|
1148 |
-
|
1149 |
-
$entry_image .= apply_filters('lae_posts_carousel_thumbnail_html', $thumbnail_html, $image_setting, $settings);
|
1150 |
-
|
1151 |
-
if (($settings['display_title_on_thumbnail'] == 'yes') || ($settings['display_taxonomy_on_thumbnail'] == 'yes')):
|
1152 |
-
|
1153 |
-
$image_info = '<div class="lae-image-info">';
|
1154 |
-
|
1155 |
-
$image_info .= '<div class="lae-entry-info">';
|
1156 |
-
|
1157 |
-
if ($settings['display_title_on_thumbnail'] == 'yes'):
|
1158 |
-
|
1159 |
-
$image_info .= '<' . $settings['title_tag'] . ' class="lae-post-title"><a href="' . get_permalink() . '" title="' . get_the_title() . '" rel="bookmark"' . $target . '>' . get_the_title() . '</a></' . $settings['title_tag'] . '>';
|
1160 |
-
|
1161 |
-
endif;
|
1162 |
-
|
1163 |
-
if ($settings['display_taxonomy_on_thumbnail'] == 'yes'):
|
1164 |
-
|
1165 |
-
$image_info .= lae_get_info_for_taxonomies($taxonomies);
|
1166 |
-
|
1167 |
-
endif;
|
1168 |
-
|
1169 |
-
$image_info .= '</div>';
|
1170 |
-
|
1171 |
-
$image_info .= '</div><!-- .lae-image-info -->';
|
1172 |
-
|
1173 |
-
$entry_image .= apply_filters('lae_posts_carousel_image_info', $image_info, $post_id, $settings);
|
1174 |
-
|
1175 |
-
$entry_image .= '</div>';
|
1176 |
-
|
1177 |
-
endif;
|
1178 |
-
|
1179 |
-
$entry_output .= apply_filters('lae_posts_carousel_entry_image', $entry_image, $post_id, $image_setting, $settings);
|
1180 |
-
|
1181 |
-
endif;
|
1182 |
-
|
1183 |
-
if (($settings['display_title'] == 'yes') || ($settings['display_summary'] == 'yes')) :
|
1184 |
-
|
1185 |
-
$entry_output .= '<div class="lae-entry-text-wrap ' . ($thumbnail_exists ? '' : ' nothumbnail') . '">';
|
1186 |
-
|
1187 |
-
if ($settings['display_title'] == 'yes') :
|
1188 |
-
|
1189 |
-
$entry_title = '<' . $settings['entry_title_tag']
|
1190 |
-
. ' class="entry-title"><a href="' . get_permalink()
|
1191 |
-
. '" title="' . get_the_title()
|
1192 |
-
. '" rel="bookmark"' . $target . '>' . get_the_title()
|
1193 |
-
. '</a></' . $settings['entry_title_tag'] . '>';
|
1194 |
-
|
1195 |
-
$entry_output .= apply_filters('lae_posts_carousel_entry_title', $entry_title, $post_id, $settings);
|
1196 |
-
|
1197 |
-
endif;
|
1198 |
-
|
1199 |
-
if (($settings['display_post_date'] == 'yes') || ($settings['display_author'] == 'yes') || ($settings['display_taxonomy'] == 'yes')) :
|
1200 |
-
|
1201 |
-
$entry_meta = '<div class="lae-entry-meta">';
|
1202 |
-
|
1203 |
-
if ($settings['display_author'] == 'yes'):
|
1204 |
-
|
1205 |
-
$entry_meta .= lae_entry_author();
|
1206 |
-
|
1207 |
-
endif;
|
1208 |
-
|
1209 |
-
if ($settings['display_post_date'] == 'yes'):
|
1210 |
-
|
1211 |
-
$entry_meta .= lae_entry_published();
|
1212 |
-
|
1213 |
-
endif;
|
1214 |
-
|
1215 |
-
if ($settings['display_taxonomy'] == 'yes'):
|
1216 |
-
|
1217 |
-
$entry_meta .= lae_get_info_for_taxonomies($taxonomies);
|
1218 |
-
|
1219 |
-
endif;
|
1220 |
-
|
1221 |
-
$entry_meta .= '</div>';
|
1222 |
-
|
1223 |
-
$entry_output .= apply_filters('lae_posts_carousel_entry_meta', $entry_meta, $post_id, $settings);
|
1224 |
-
|
1225 |
-
endif;
|
1226 |
-
|
1227 |
-
if ($settings['display_summary'] == 'yes') :
|
1228 |
-
|
1229 |
-
$excerpt = '<div class="entry-summary">';
|
1230 |
-
|
1231 |
-
$excerpt .= get_the_excerpt();
|
1232 |
-
|
1233 |
-
$excerpt .= '</div>';
|
1234 |
-
|
1235 |
-
$entry_output .= apply_filters('lae_posts_carousel_entry_excerpt', $excerpt, $post_id, $settings);
|
1236 |
-
|
1237 |
-
endif;
|
1238 |
-
|
1239 |
-
if ($settings['display_read_more'] == 'yes') :
|
1240 |
-
|
1241 |
-
$read_more_text = $settings['read_more_text'];
|
1242 |
-
|
1243 |
-
$read_more = '<div class="lae-read-more">';
|
1244 |
-
|
1245 |
-
$read_more .= '<a href="' . get_the_permalink() . '"' . $target . '>' . $read_more_text . '</a>';
|
1246 |
-
|
1247 |
-
$read_more .= '</div>';
|
1248 |
-
|
1249 |
-
$entry_output .= apply_filters('lae_posts_carousel_read_more_link', $read_more, $post_id, $settings);
|
1250 |
-
|
1251 |
-
endif;
|
1252 |
-
|
1253 |
-
$entry_output .= '</div>';
|
1254 |
-
|
1255 |
-
endif;
|
1256 |
-
|
1257 |
-
endif;
|
1258 |
-
|
1259 |
-
$entry_output .= '</article><!-- .hentry -->';
|
1260 |
-
|
1261 |
-
$entry_output .= '</div><!-- .lae-posts-carousel-item -->';
|
1262 |
-
|
1263 |
-
$output .= apply_filters('lae_posts_carousel_entry_output', $entry_output, $post_id, $settings);
|
1264 |
-
|
1265 |
-
endwhile;
|
1266 |
-
|
1267 |
-
wp_reset_postdata();
|
1268 |
-
|
1269 |
-
$output .= '</div><!-- .lae-posts-carousel -->';
|
1270 |
|
1271 |
-
|
1272 |
|
1273 |
-
|
1274 |
|
1275 |
}
|
1276 |
|
19 |
if (!defined('ABSPATH'))
|
20 |
exit; // Exit if accessed directly
|
21 |
|
22 |
+
class LAE_Posts_Carousel_Widget extends LAE_Widget_Base {
|
23 |
|
24 |
public function get_name() {
|
25 |
return 'lae-posts-carousel';
|
1021 |
|
1022 |
}
|
1023 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1024 |
protected function get_item_template_options() {
|
1025 |
|
1026 |
$template_options = array();
|
1046 |
|
1047 |
$settings = $this->get_settings_for_display();
|
1048 |
|
|
|
|
|
1049 |
$settings = apply_filters('lae_posts_carousel_' . $this->get_id() . '_settings', $settings);
|
1050 |
|
1051 |
+
$args['settings'] = $settings;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1052 |
|
1053 |
+
$args['widget_instance'] = $this;
|
1054 |
|
1055 |
+
lae_get_template_part('addons/posts-carousel/loop', $args);
|
1056 |
|
1057 |
}
|
1058 |
|
includes/widgets/posts-gridbox-slider.php
CHANGED
@@ -18,7 +18,7 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
18 |
exit;
|
19 |
}
|
20 |
// Exit if accessed directly
|
21 |
-
class LAE_Posts_GridBox_Slider_Widget extends
|
22 |
{
|
23 |
public function get_name()
|
24 |
{
|
18 |
exit;
|
19 |
}
|
20 |
// Exit if accessed directly
|
21 |
+
class LAE_Posts_GridBox_Slider_Widget extends LAE_Widget_Base
|
22 |
{
|
23 |
public function get_name()
|
24 |
{
|
includes/widgets/posts-multislider.php
CHANGED
@@ -18,7 +18,7 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
18 |
exit;
|
19 |
}
|
20 |
// Exit if accessed directly
|
21 |
-
class LAE_Posts_Multislider_Widget extends
|
22 |
{
|
23 |
public function get_name()
|
24 |
{
|
18 |
exit;
|
19 |
}
|
20 |
// Exit if accessed directly
|
21 |
+
class LAE_Posts_Multislider_Widget extends LAE_Widget_Base
|
22 |
{
|
23 |
public function get_name()
|
24 |
{
|
includes/widgets/posts-slider.php
CHANGED
@@ -18,7 +18,7 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
18 |
exit;
|
19 |
}
|
20 |
// Exit if accessed directly
|
21 |
-
class LAE_Posts_Slider_Widget extends
|
22 |
{
|
23 |
public function get_name()
|
24 |
{
|
18 |
exit;
|
19 |
}
|
20 |
// Exit if accessed directly
|
21 |
+
class LAE_Posts_Slider_Widget extends LAE_Widget_Base
|
22 |
{
|
23 |
public function get_name()
|
24 |
{
|
includes/widgets/pricing-table.php
CHANGED
@@ -21,7 +21,7 @@ if (!defined('ABSPATH'))
|
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
-
class LAE_Pricing_Table_Widget extends
|
25 |
|
26 |
|
27 |
public function __construct($data = [], $args = null) {
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
+
class LAE_Pricing_Table_Widget extends LAE_Widget_Base {
|
25 |
|
26 |
|
27 |
public function __construct($data = [], $args = null) {
|
includes/widgets/services.php
CHANGED
@@ -21,7 +21,7 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
21 |
exit;
|
22 |
}
|
23 |
// Exit if accessed directly
|
24 |
-
class LAE_Services_Widget extends
|
25 |
{
|
26 |
public function get_name()
|
27 |
{
|
21 |
exit;
|
22 |
}
|
23 |
// Exit if accessed directly
|
24 |
+
class LAE_Services_Widget extends LAE_Widget_Base
|
25 |
{
|
26 |
public function get_name()
|
27 |
{
|
includes/widgets/stats-bars.php
CHANGED
@@ -21,7 +21,7 @@ if (!defined('ABSPATH'))
|
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
-
class LAE_Stats_Bars_Widget extends
|
25 |
|
26 |
public function get_name() {
|
27 |
return 'lae-stats-bars';
|
@@ -281,42 +281,11 @@ class LAE_Stats_Bars_Widget extends Widget_Base {
|
|
281 |
|
282 |
$settings = apply_filters('lae_stats_bars_' . $this->get_id() . '_settings', $settings);
|
283 |
|
284 |
-
$
|
285 |
|
286 |
-
|
287 |
|
288 |
-
|
289 |
-
$color = $stats_bar['bar_color'];
|
290 |
-
if ($color)
|
291 |
-
$color_style = ' style="background:' . esc_attr($color) . ';"';
|
292 |
-
|
293 |
-
$child_output = '<div class="lae-stats-bar">';
|
294 |
-
|
295 |
-
$child_output .= '<div class="lae-stats-title">';
|
296 |
-
|
297 |
-
$child_output .= esc_html($stats_bar['stats_title']);
|
298 |
-
|
299 |
-
$child_output .= '<span>' . esc_attr($stats_bar['percentage_value']) . '%</span>';
|
300 |
-
|
301 |
-
$child_output .= '</div>';
|
302 |
-
|
303 |
-
$child_output .= '<div class="lae-stats-bar-wrap">';
|
304 |
-
|
305 |
-
$child_output .= '<div ' . $color_style . ' class="lae-stats-bar-content" data-perc="' . esc_attr($stats_bar['percentage_value']) . '"></div>';
|
306 |
-
|
307 |
-
$child_output .= '<div class="lae-stats-bar-bg"></div>';
|
308 |
-
|
309 |
-
$child_output .= '</div>';
|
310 |
-
|
311 |
-
$child_output .= '</div><!-- .lae-stats-bar -->';
|
312 |
-
|
313 |
-
$output .= apply_filters('lae_stats_bar_output', $child_output, $stats_bar, $settings);
|
314 |
-
|
315 |
-
endforeach;
|
316 |
-
|
317 |
-
$output .= '</div><!-- .lae-stats-bars -->';
|
318 |
-
|
319 |
-
echo apply_filters('lae_stats_bars_output', $output, $settings);
|
320 |
|
321 |
}
|
322 |
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
+
class LAE_Stats_Bars_Widget extends LAE_Widget_Base {
|
25 |
|
26 |
public function get_name() {
|
27 |
return 'lae-stats-bars';
|
281 |
|
282 |
$settings = apply_filters('lae_stats_bars_' . $this->get_id() . '_settings', $settings);
|
283 |
|
284 |
+
$args['settings'] = $settings;
|
285 |
|
286 |
+
$args['widget_instance'] = $this;
|
287 |
|
288 |
+
lae_get_template_part('addons/stats-bars/loop', $args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
289 |
|
290 |
}
|
291 |
|
includes/widgets/tab-slider.php
CHANGED
@@ -22,7 +22,7 @@ if (!defined('ABSPATH'))
|
|
22 |
exit; // Exit if accessed directly
|
23 |
|
24 |
|
25 |
-
class LAE_Tab_Slider_Widget extends
|
26 |
|
27 |
public function get_name() {
|
28 |
return 'lae-tab-slider';
|
22 |
exit; // Exit if accessed directly
|
23 |
|
24 |
|
25 |
+
class LAE_Tab_Slider_Widget extends LAE_Widget_Base {
|
26 |
|
27 |
public function get_name() {
|
28 |
return 'lae-tab-slider';
|
includes/widgets/team-members.php
CHANGED
@@ -24,7 +24,7 @@ if (!defined('ABSPATH'))
|
|
24 |
exit; // Exit if accessed directly
|
25 |
|
26 |
|
27 |
-
class LAE_Team_Widget extends
|
28 |
|
29 |
public function get_name() {
|
30 |
return 'lae-team-members';
|
@@ -55,6 +55,7 @@ class LAE_Team_Widget extends Widget_Base {
|
|
55 |
|
56 |
public function get_style_depends() {
|
57 |
return [
|
|
|
58 |
'lae-animate-styles',
|
59 |
'lae-frontend-styles',
|
60 |
'lae-team-members-styles'
|
@@ -639,157 +640,11 @@ class LAE_Team_Widget extends Widget_Base {
|
|
639 |
|
640 |
$settings = apply_filters('lae_team_members_' . $this->get_id() . '_settings', $settings);
|
641 |
|
642 |
-
$
|
643 |
|
644 |
-
$
|
645 |
|
646 |
-
|
647 |
-
|
648 |
-
$item_style = 'lae-grid-item';
|
649 |
-
|
650 |
-
$container_style = 'lae-grid-container ' . lae_get_grid_classes($settings);
|
651 |
-
|
652 |
-
endif;
|
653 |
-
|
654 |
-
$output = '<div class="lae-team-members lae-' . $settings['style'] . ' ' . $container_style . '">';
|
655 |
-
|
656 |
-
foreach ($settings['team_members'] as $index => $team_member):
|
657 |
-
|
658 |
-
$has_link = false;
|
659 |
-
|
660 |
-
if (!empty($team_member['member_link']['url'])) {
|
661 |
-
|
662 |
-
$has_link = true;
|
663 |
-
|
664 |
-
$link_key = 'link_' . $index;
|
665 |
-
|
666 |
-
$url = $team_member['member_link'];
|
667 |
-
|
668 |
-
$this->add_render_attribute($link_key, 'title', $team_member['member_name']);
|
669 |
-
|
670 |
-
$this->add_render_attribute($link_key, 'href', $url['url']);
|
671 |
-
|
672 |
-
if (!empty($url['is_external'])) {
|
673 |
-
$this->add_render_attribute($link_key, 'target', '_blank');
|
674 |
-
}
|
675 |
-
|
676 |
-
if (!empty($url['nofollow'])) {
|
677 |
-
$this->add_render_attribute($link_key, 'rel', 'nofollow');
|
678 |
-
}
|
679 |
-
}
|
680 |
-
|
681 |
-
$child_output = '<div class="' . $item_style . ' lae-team-member-wrapper">';
|
682 |
-
|
683 |
-
list($animate_class, $animation_attr) = lae_get_animation_atts($team_member['widget_animation']);
|
684 |
-
|
685 |
-
$child_output .= '<div class="lae-team-member ' . $animate_class . '" ' . $animation_attr . '>';
|
686 |
-
|
687 |
-
$child_output .= '<div class="lae-image-wrapper">';
|
688 |
-
|
689 |
-
if (!empty($team_member['member_image'])):
|
690 |
-
|
691 |
-
$image_html = lae_get_image_html($team_member['member_image'], 'thumbnail_size', $settings);
|
692 |
-
|
693 |
-
if ($has_link)
|
694 |
-
$image_html = '<a class="lae-image-link" ' . $this->get_render_attribute_string($link_key) . '>' . $image_html . '</a>';
|
695 |
-
|
696 |
-
$child_output .= $image_html;
|
697 |
-
|
698 |
-
endif;
|
699 |
-
|
700 |
-
if ($settings['style'] == 'style1'):
|
701 |
-
|
702 |
-
$child_output .= $this->social_profile($team_member, $settings);
|
703 |
-
|
704 |
-
endif;
|
705 |
-
|
706 |
-
$child_output .= '</div><!-- .lae-image-wrapper -->';
|
707 |
-
|
708 |
-
$child_output .= '<div class="lae-team-member-text">';
|
709 |
-
|
710 |
-
$title_html = '<' . $settings['title_tag'] . ' class="lae-title">' . esc_html($team_member['member_name']) . '</' . $settings['title_tag'] . '>';
|
711 |
-
|
712 |
-
if ($has_link)
|
713 |
-
$title_html = '<a class="lae-title-link" ' . $this->get_render_attribute_string($link_key) . '>' . $title_html . '</a>';
|
714 |
-
|
715 |
-
$child_output .= $title_html;
|
716 |
-
|
717 |
-
$child_output .= '<div class="lae-team-member-position">';
|
718 |
-
|
719 |
-
$child_output .= do_shortcode($team_member['member_position']);
|
720 |
-
|
721 |
-
$child_output .= '</div>';
|
722 |
-
|
723 |
-
$child_output .= '<div class="lae-team-member-details">';
|
724 |
-
|
725 |
-
$child_output .= do_shortcode($team_member['member_details']);
|
726 |
-
|
727 |
-
$child_output .= '</div>';
|
728 |
-
|
729 |
-
if ($settings['style'] == 'style2'):
|
730 |
-
|
731 |
-
$child_output .= $this->social_profile($team_member, $settings);
|
732 |
-
|
733 |
-
endif;
|
734 |
-
|
735 |
-
$child_output .= '</div><!-- .lae-team-member-text -->';
|
736 |
-
|
737 |
-
$child_output .= '</div><!-- .lae-team-member -->';
|
738 |
-
|
739 |
-
$child_output .= '</div><!-- .lae-team-member-wrapper -->';
|
740 |
-
|
741 |
-
$output .= apply_filters('lae_team_member_output', $child_output, $team_member, $settings);
|
742 |
-
|
743 |
-
endforeach;
|
744 |
-
|
745 |
-
$output .= '</div><!-- .lae-team-members -->';
|
746 |
-
|
747 |
-
$output .= '<div class="lae-clear"></div>';
|
748 |
-
|
749 |
-
echo apply_filters('lae_team_members_output', $output, $settings);
|
750 |
-
|
751 |
-
}
|
752 |
-
|
753 |
-
private function social_profile($team_member, $settings) {
|
754 |
-
|
755 |
-
|
756 |
-
$output = '<div class="lae-social-wrap">';
|
757 |
-
|
758 |
-
$output .= '<div class="lae-social-list">';
|
759 |
-
|
760 |
-
|
761 |
-
$email = $team_member['member_email'];
|
762 |
-
$facebook_url = $team_member['facebook_url'];
|
763 |
-
$twitter_url = $team_member['twitter_url'];
|
764 |
-
$linkedin_url = $team_member['linkedin_url'];
|
765 |
-
$dribbble_url = $team_member['dribbble_url'];
|
766 |
-
$pinterest_url = $team_member['pinterest_url'];
|
767 |
-
$googleplus_url = $team_member['google_plus_url'];
|
768 |
-
$instagram_url = $team_member['instagram_url'];
|
769 |
-
|
770 |
-
|
771 |
-
if ($email)
|
772 |
-
$output .= '<div class="lae-social-list-item"><a class="lae-email" href="mailto:' . $email . '" title="' . __("Send an email", 'livemesh-el-addons') . '"><i class="lae-icon-email"></i></a></div>';
|
773 |
-
if ($facebook_url)
|
774 |
-
$output .= '<div class="lae-social-list-item"><a class="lae-facebook" href="' . $facebook_url . '" target="_blank" title="' . __("Follow on Facebook", 'livemesh-el-addons') . '"><i class="lae-icon-facebook"></i></a></div>';
|
775 |
-
if ($twitter_url)
|
776 |
-
$output .= '<div class="lae-social-list-item"><a class="lae-twitter" href="' . $twitter_url . '" target="_blank" title="' . __("Subscribe to Twitter Feed", 'livemesh-el-addons') . '"><i class="lae-icon-twitter"></i></a></div>';
|
777 |
-
if ($linkedin_url)
|
778 |
-
$output .= '<div class="lae-social-list-item"><a class="lae-linkedin" href="' . $linkedin_url . '" target="_blank" title="' . __("View LinkedIn Profile", 'livemesh-el-addons') . '"><i class="lae-icon-linkedin"></i></a></div>';
|
779 |
-
if ($googleplus_url)
|
780 |
-
$output .= '<div class="lae-social-list-item"><a class="lae-googleplus" href="' . $googleplus_url . '" target="_blank" title="' . __("Follow on Google Plus", 'livemesh-el-addons') . '"><i class="lae-icon-googleplus"></i></a></div>';
|
781 |
-
if ($instagram_url)
|
782 |
-
$output .= '<div class="lae-social-list-item"><a class="lae-instagram" href="' . $instagram_url . '" target="_blank" title="' . __("View Instagram Feed", 'livemesh-el-addons') . '"><i class="lae-icon-instagram"></i></a></div>';
|
783 |
-
if ($pinterest_url)
|
784 |
-
$output .= '<div class="lae-social-list-item"><a class="lae-pinterest" href="' . $pinterest_url . '" target="_blank" title="' . __("Subscribe to Pinterest Feed", 'livemesh-el-addons') . '"><i class="lae-icon-pinterest"></i></a></div>';
|
785 |
-
if ($dribbble_url)
|
786 |
-
$output .= '<div class="lae-social-list-item"><a class="lae-dribbble" href="' . $dribbble_url . '" target="_blank" title="' . __("View Dribbble Portfolio", 'livemesh-el-addons') . '"><i class="lae-icon-dribbble"></i></a></div>';
|
787 |
-
|
788 |
-
$output .= '</div><!-- .lae-social-list -->';
|
789 |
-
|
790 |
-
$output .= '</div><!-- .lae-social-wrap -->';
|
791 |
-
|
792 |
-
return apply_filters('lae_team_member_social_links', $output, $team_member, $settings);
|
793 |
|
794 |
}
|
795 |
|
24 |
exit; // Exit if accessed directly
|
25 |
|
26 |
|
27 |
+
class LAE_Team_Widget extends LAE_Widget_Base {
|
28 |
|
29 |
public function get_name() {
|
30 |
return 'lae-team-members';
|
55 |
|
56 |
public function get_style_depends() {
|
57 |
return [
|
58 |
+
'lae-icomoon-styles',
|
59 |
'lae-animate-styles',
|
60 |
'lae-frontend-styles',
|
61 |
'lae-team-members-styles'
|
640 |
|
641 |
$settings = apply_filters('lae_team_members_' . $this->get_id() . '_settings', $settings);
|
642 |
|
643 |
+
$args['settings'] = $settings;
|
644 |
|
645 |
+
$args['widget_instance'] = $this;
|
646 |
|
647 |
+
lae_get_template_part('addons/team-members/loop', $args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
648 |
|
649 |
}
|
650 |
|
includes/widgets/testimonials-slider.php
CHANGED
@@ -10,7 +10,6 @@ Author URI: https://www.livemeshthemes.com
|
|
10 |
namespace LivemeshAddons\Widgets;
|
11 |
|
12 |
use Elementor\Repeater;
|
13 |
-
use Elementor\Widget_Base;
|
14 |
use Elementor\Controls_Manager;
|
15 |
use Elementor\Utils;
|
16 |
use Elementor\Scheme_Color;
|
@@ -21,7 +20,7 @@ if (!defined('ABSPATH'))
|
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
-
class LAE_Testimonials_Slider_Widget extends
|
25 |
|
26 |
public function get_name() {
|
27 |
return 'lae-testimonials-slider';
|
@@ -480,79 +479,15 @@ class LAE_Testimonials_Slider_Widget extends Widget_Base {
|
|
480 |
|
481 |
$settings = $this->get_settings_for_display();
|
482 |
|
483 |
-
$
|
484 |
-
|
485 |
-
$style = is_rtl() ? ' style="direction:rtl"' : '';
|
486 |
|
487 |
$settings = apply_filters('lae_testimonials_slider_' . $this->get_id() . '_settings', $settings);
|
488 |
|
489 |
-
$
|
490 |
-
'slide_animation' => $settings['slide_animation'],
|
491 |
-
'direction' => $settings['direction'],
|
492 |
-
'slideshow_speed' => absint($settings['slideshow_speed']),
|
493 |
-
'animation_speed' => absint($settings['animation_speed']),
|
494 |
-
'control_nav' => ('yes' === $settings['control_nav']),
|
495 |
-
'direction_nav' => ('yes' === $settings['direction_nav']),
|
496 |
-
'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
|
497 |
-
'pause_on_action' => ('yes' === $settings['pause_on_action']),
|
498 |
-
'smooth_height' => ('yes' === $settings['smooth_height'])
|
499 |
-
];
|
500 |
-
|
501 |
-
$output = '<div' . $dir . $style . ' class="lae-testimonials-slider lae-flexslider lae-container" data-settings=\'' . wp_json_encode($slider_options) . '\'>';
|
502 |
-
|
503 |
-
$output .= '<ul class="lae-slides">';
|
504 |
-
|
505 |
-
foreach ($settings['testimonials'] as $testimonial) :
|
506 |
-
|
507 |
-
$child_output = '<li class="lae-slide lae-testimonial-wrapper">';
|
508 |
-
|
509 |
-
$child_output .= '<div class="lae-testimonial">';
|
510 |
-
|
511 |
-
$child_output .= '<div class="lae-testimonial-text">';
|
512 |
-
|
513 |
-
$child_output .= '<i class="lae-icon-quote"></i>';
|
514 |
-
|
515 |
-
$child_output .= $this->parse_text_editor($testimonial['testimonial_text']);
|
516 |
-
|
517 |
-
$child_output .= '</div>';
|
518 |
-
|
519 |
-
$child_output .= '<div class="lae-testimonial-user">';
|
520 |
-
|
521 |
-
$child_output .= '<div class="lae-image-wrapper">';
|
522 |
-
|
523 |
-
$client_image = $testimonial['client_image'];
|
524 |
-
|
525 |
-
if (!empty($client_image)):
|
526 |
-
|
527 |
-
$child_output .= wp_get_attachment_image($client_image['id'], 'thumbnail', false, array('class' => 'lae-image full'));
|
528 |
-
|
529 |
-
endif;
|
530 |
-
|
531 |
-
$child_output .= '</div><!-- .lae-image-wrapper -->';
|
532 |
-
|
533 |
-
$child_output .= '<div class="lae-text">';
|
534 |
-
|
535 |
-
$child_output .= '<' . $settings['title_tag'] . ' class="lae-author-name">' . esc_html($testimonial['client_name']) . '</' . $settings['title_tag'] . '>';
|
536 |
-
|
537 |
-
$child_output .= '<div class="lae-author-credentials">' . wp_kses_post($testimonial['credentials']) . '</div>';
|
538 |
-
|
539 |
-
$child_output .= '</div>';
|
540 |
-
|
541 |
-
$child_output .= '</div><!-- .lae-testimonial-user -->';
|
542 |
-
|
543 |
-
$child_output .= '</div><!-- .lae-testimonial -->';
|
544 |
-
|
545 |
-
$child_output .= '</li><!-- .lae-testimonial-wrapper.lae-slide -->';
|
546 |
-
|
547 |
-
$output .= apply_filters('lae_testimonials_slide_output', $child_output, $testimonial, $settings);
|
548 |
-
|
549 |
-
endforeach;
|
550 |
-
|
551 |
-
$output .= '</ul><!-- .lae-slides -->';
|
552 |
|
553 |
-
$
|
554 |
|
555 |
-
|
556 |
|
557 |
}
|
558 |
|
10 |
namespace LivemeshAddons\Widgets;
|
11 |
|
12 |
use Elementor\Repeater;
|
|
|
13 |
use Elementor\Controls_Manager;
|
14 |
use Elementor\Utils;
|
15 |
use Elementor\Scheme_Color;
|
20 |
exit; // Exit if accessed directly
|
21 |
|
22 |
|
23 |
+
class LAE_Testimonials_Slider_Widget extends LAE_Widget_Base {
|
24 |
|
25 |
public function get_name() {
|
26 |
return 'lae-testimonials-slider';
|
479 |
|
480 |
$settings = $this->get_settings_for_display();
|
481 |
|
482 |
+
$settings['slider_id'] = $this->get_id();
|
|
|
|
|
483 |
|
484 |
$settings = apply_filters('lae_testimonials_slider_' . $this->get_id() . '_settings', $settings);
|
485 |
|
486 |
+
$args['settings'] = $settings;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
|
488 |
+
$args['widget_instance'] = $this;
|
489 |
|
490 |
+
lae_get_template_part('addons/testimonials-slider/loop', $args);
|
491 |
|
492 |
}
|
493 |
|
includes/widgets/testimonials.php
CHANGED
@@ -21,7 +21,7 @@ if (!defined('ABSPATH'))
|
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
-
class LAE_Testimonials_Widget extends
|
25 |
|
26 |
public function get_name() {
|
27 |
return 'lae-testimonials';
|
@@ -396,55 +396,11 @@ class LAE_Testimonials_Widget extends Widget_Base {
|
|
396 |
|
397 |
$settings = apply_filters('lae_testimonials_' . $this->get_id() . '_settings', $settings);
|
398 |
|
399 |
-
$
|
400 |
|
401 |
-
|
402 |
|
403 |
-
|
404 |
-
|
405 |
-
$child_output = '<div class="lae-grid-item lae-testimonial ' . $animate_class . '" ' . $animation_attr . '>';
|
406 |
-
|
407 |
-
$child_output .= '<div class="lae-testimonial-text">';
|
408 |
-
|
409 |
-
$child_output .= $this->parse_text_editor($testimonial['testimonial_text']);
|
410 |
-
|
411 |
-
$child_output .= '</div>';
|
412 |
-
|
413 |
-
$child_output .= '<div class="lae-testimonial-user">';
|
414 |
-
|
415 |
-
$child_output .= '<div class="lae-image-wrapper">';
|
416 |
-
|
417 |
-
$client_image = $testimonial['client_image'];
|
418 |
-
|
419 |
-
if (!empty($client_image)):
|
420 |
-
|
421 |
-
$child_output .= wp_get_attachment_image($client_image['id'], 'thumbnail', false, array('class' => 'lae-image full'));
|
422 |
-
|
423 |
-
endif;
|
424 |
-
|
425 |
-
$child_output .= '</div>';
|
426 |
-
|
427 |
-
$child_output .= '<div class="lae-text">';
|
428 |
-
|
429 |
-
$child_output .= '<' . $settings['title_tag'] . ' class="lae-author-name">' . esc_html($testimonial['client_name']) . '</' . $settings['title_tag'] . '>';
|
430 |
-
|
431 |
-
$child_output .= '<div class="lae-author-credentials">' . wp_kses_post($testimonial['credentials']) . '</div>';
|
432 |
-
|
433 |
-
$child_output .= '</div><!-- .lae-text -->';
|
434 |
-
|
435 |
-
$child_output .= '</div><!-- .lae-testimonial-user -->';
|
436 |
-
|
437 |
-
$child_output .= '</div><!-- .lae-testimonial -->';
|
438 |
-
|
439 |
-
$output .= apply_filters('lae_testimonial_output', $child_output, $testimonial, $settings);
|
440 |
-
|
441 |
-
endforeach;
|
442 |
-
|
443 |
-
$output .= '</div><!-- .lae-testimonials -->';
|
444 |
-
|
445 |
-
$output .= '<div class="lae-clear"></div>';
|
446 |
-
|
447 |
-
echo apply_filters('lae_testimonials_output', $output, $settings);
|
448 |
|
449 |
}
|
450 |
|
21 |
exit; // Exit if accessed directly
|
22 |
|
23 |
|
24 |
+
class LAE_Testimonials_Widget extends LAE_Widget_Base {
|
25 |
|
26 |
public function get_name() {
|
27 |
return 'lae-testimonials';
|
396 |
|
397 |
$settings = apply_filters('lae_testimonials_' . $this->get_id() . '_settings', $settings);
|
398 |
|
399 |
+
$args['settings'] = $settings;
|
400 |
|
401 |
+
$args['widget_instance'] = $this;
|
402 |
|
403 |
+
lae_get_template_part('addons/testimonials/loop', $args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
404 |
|
405 |
}
|
406 |
|
plugin.php
CHANGED
@@ -45,7 +45,7 @@ if ( !class_exists( 'Livemesh_Elementor_Addons' ) ) {
|
|
45 |
public function __clone()
|
46 |
{
|
47 |
// Cloning instances of the class is forbidden
|
48 |
-
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'livemesh-el-addons' ), '6.
|
49 |
}
|
50 |
|
51 |
/**
|
@@ -55,7 +55,7 @@ if ( !class_exists( 'Livemesh_Elementor_Addons' ) ) {
|
|
55 |
public function __wakeup()
|
56 |
{
|
57 |
// Unserializing instances of the class is forbidden
|
58 |
-
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'livemesh-el-addons' ), '6.
|
59 |
}
|
60 |
|
61 |
private function setup_debug_constants()
|
@@ -521,6 +521,7 @@ if ( !class_exists( 'Livemesh_Elementor_Addons' ) ) {
|
|
521 |
*/
|
522 |
public function include_widgets( $widgets_manager )
|
523 |
{
|
|
|
524 |
/* Load Elementor Addon Elements */
|
525 |
$deactivate_element_team_members = lae_get_option( 'lae_deactivate_element_team', false );
|
526 |
|
45 |
public function __clone()
|
46 |
{
|
47 |
// Cloning instances of the class is forbidden
|
48 |
+
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'livemesh-el-addons' ), '6.2' );
|
49 |
}
|
50 |
|
51 |
/**
|
55 |
public function __wakeup()
|
56 |
{
|
57 |
// Unserializing instances of the class is forbidden
|
58 |
+
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'livemesh-el-addons' ), '6.2' );
|
59 |
}
|
60 |
|
61 |
private function setup_debug_constants()
|
521 |
*/
|
522 |
public function include_widgets( $widgets_manager )
|
523 |
{
|
524 |
+
require_once LAE_PLUGIN_DIR . 'includes/base/widget-base.php';
|
525 |
/* Load Elementor Addon Elements */
|
526 |
$deactivate_element_team_members = lae_get_option( 'lae_deactivate_element_team', false );
|
527 |
|
readme.txt
CHANGED
@@ -7,7 +7,7 @@ Tags: elementor, elementor addons, elementor extensions, elementor widgets, page
|
|
7 |
Requires at least: 4.5
|
8 |
Tested up to: 5.6
|
9 |
Requires PHP: 5.6
|
10 |
-
Stable Tag: 6.
|
11 |
License: GPLv3
|
12 |
License URI: https://opensource.org/licenses/GPL-3.0
|
13 |
|
@@ -255,6 +255,16 @@ Email us at support[at]livemeshthemes.com and we will be happy to assist you.
|
|
255 |
|
256 |
== Changelog ==
|
257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
= 6.1 =
|
259 |
* Removed – Unused JS and CSS files
|
260 |
|
7 |
Requires at least: 4.5
|
8 |
Tested up to: 5.6
|
9 |
Requires PHP: 5.6
|
10 |
+
Stable Tag: 6.2
|
11 |
License: GPLv3
|
12 |
License URI: https://opensource.org/licenses/GPL-3.0
|
13 |
|
255 |
|
256 |
== Changelog ==
|
257 |
|
258 |
+
|
259 |
+
|
260 |
+
|
261 |
+
= 6.2 =
|
262 |
+
* Tweak – Moved to templates based design for easy customization for generic carousel, stats bars, odometers, piecharts, team members, testimonials and testimonials slider widgets. More widgets being migrated in next releases.
|
263 |
+
* Tweak - Moved away from hooks/filters based customization for some of the widgets since they are not being utilized well. Templates are much more intuitive and require less effort; they let you copy files to your theme and override them quickly.
|
264 |
+
* Tweak - Moved to templates based design for Posts Carousel widget. If you have done any customization of this popular widget through WP hooks/filters, pls note they will not work anymore in the new version. Pls find the template file in templates/addons/posts-carousel folder in the plugin, copy the same to your (child) theme and make changes as per requirements. Much easier now than using hooks/filters.
|
265 |
+
* Fixed - Social icons not showing up on team members widget.
|
266 |
+
* Fixed - The templates for posts slider, posts multislider, posts gridbox slider widgets overridden in theme not taking effect
|
267 |
+
|
268 |
= 6.1 =
|
269 |
* Removed – Unused JS and CSS files
|
270 |
|
templates/addons/carousel/content.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Content - Carousel Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/carousel/content.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
?>
|
14 |
+
|
15 |
+
<div class="lae-carousel-item">
|
16 |
+
|
17 |
+
<?php echo $widget_instance->parse_text_editor($element['element_content']); ?>
|
18 |
+
|
19 |
+
</div><!-- .lae-carousel-item -->
|
templates/addons/carousel/loop.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop - Carousel Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/carousel/loop.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
$elements = $settings['elements'];
|
14 |
+
|
15 |
+
$dir = is_rtl() ? ' dir="rtl"' : '';
|
16 |
+
|
17 |
+
$carousel_settings = [
|
18 |
+
'arrows' => ('yes' === $settings['arrows']),
|
19 |
+
'dots' => ('yes' === $settings['dots']),
|
20 |
+
'autoplay' => ('yes' === $settings['autoplay']),
|
21 |
+
'autoplay_speed' => absint($settings['autoplay_speed']),
|
22 |
+
'animation_speed' => absint($settings['animation_speed']),
|
23 |
+
'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
|
24 |
+
];
|
25 |
+
|
26 |
+
$responsive_settings = [
|
27 |
+
'display_columns' => $settings['display_columns'],
|
28 |
+
'scroll_columns' => $settings['scroll_columns'],
|
29 |
+
'gutter' => $settings['gutter'],
|
30 |
+
'tablet_width' => $settings['tablet_width'],
|
31 |
+
'tablet_display_columns' => $settings['tablet_display_columns'],
|
32 |
+
'tablet_scroll_columns' => $settings['tablet_scroll_columns'],
|
33 |
+
'tablet_gutter' => $settings['tablet_gutter'],
|
34 |
+
'mobile_width' => $settings['mobile_width'],
|
35 |
+
'mobile_display_columns' => $settings['mobile_display_columns'],
|
36 |
+
'mobile_scroll_columns' => $settings['mobile_scroll_columns'],
|
37 |
+
'mobile_gutter' => $settings['mobile_gutter'],
|
38 |
+
|
39 |
+
];
|
40 |
+
|
41 |
+
$carousel_settings = array_merge($carousel_settings, $responsive_settings);
|
42 |
+
|
43 |
+
?>
|
44 |
+
|
45 |
+
<?php if (!empty($elements)) : ?>
|
46 |
+
|
47 |
+
<div<?php echo $dir; ?> id="lae-carousel-<?php echo $widget_instance->get_id(); ?>"
|
48 |
+
class="lae-carousel lae-container"
|
49 |
+
data-settings='<?php echo wp_json_encode($carousel_settings); ?>'>
|
50 |
+
|
51 |
+
<?php foreach ($elements as $element) : ?>
|
52 |
+
|
53 |
+
<?php $args['element'] = $element; ?>
|
54 |
+
|
55 |
+
<?php lae_get_template_part("addons/carousel/content", $args); ?>
|
56 |
+
|
57 |
+
<?php endforeach; ?>
|
58 |
+
|
59 |
+
</div><!-- .lae-carousel -->
|
60 |
+
|
61 |
+
<?php endif; ?>
|
templates/addons/clients/content.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Content - Clients Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/clients/content.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
?>
|
14 |
+
|
15 |
+
<div class="lae-grid-item lae-client <?php echo $animate_class; ?>" <?php echo $animation_attr; ?>>
|
16 |
+
|
17 |
+
<?php if (!empty($client['client_image'])): ?>
|
18 |
+
|
19 |
+
<?php echo wp_get_attachment_image($client['client_image']['id'], 'full', false, array('class' => 'lae-image full', 'alt' => $client['client_name'])); ?>
|
20 |
+
|
21 |
+
<?php endif; ?>
|
22 |
+
|
23 |
+
<?php if (!empty($client['client_link']) && !empty($client['client_link']['url'])): ?>
|
24 |
+
|
25 |
+
<?php $target = $client['client_link']['is_external'] ? 'target="_blank"' : ''; ?>
|
26 |
+
|
27 |
+
<div class="lae-client-name">
|
28 |
+
|
29 |
+
<a href="<?php echo esc_url($client['client_link']['url']); ?> "
|
30 |
+
title="<?php echo esc_html($client['client_name']); ?>" <?php echo $target; ?>><?php echo
|
31 |
+
wp_kses_post($client['client_name']); ?></a>
|
32 |
+
|
33 |
+
</div>
|
34 |
+
|
35 |
+
<?php else: ?>
|
36 |
+
|
37 |
+
<div class="lae-client-name"><?php echo wp_kses_post($client['client_name']); ?></div>
|
38 |
+
|
39 |
+
<?php endif; ?>
|
40 |
+
|
41 |
+
<div class="lae-image-overlay"></div>
|
42 |
+
|
43 |
+
</div><!-- .lae-client -->
|
templates/addons/clients/loop.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop - Clients Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/clients/loop.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
list($animate_class, $animation_attr) = lae_get_animation_atts($settings['widget_animation']);
|
14 |
+
|
15 |
+
$args['animate_class'] = $animate_class;
|
16 |
+
|
17 |
+
$args['animation_attr'] = $animation_attr;
|
18 |
+
|
19 |
+
?>
|
20 |
+
|
21 |
+
<div class="lae-clients lae-gapless-grid">
|
22 |
+
|
23 |
+
<div class="lae-grid-container <?php echo lae_get_grid_classes($settings); ?>">
|
24 |
+
|
25 |
+
<?php foreach ($settings['clients'] as $client): ?>
|
26 |
+
|
27 |
+
<?php $args['client'] = $client; ?>
|
28 |
+
|
29 |
+
<?php lae_get_template_part("addons/clients/content", $args); ?>
|
30 |
+
|
31 |
+
<?php endforeach; ?>
|
32 |
+
|
33 |
+
</div>
|
34 |
+
|
35 |
+
</div><!-- .lae-clients -->
|
templates/addons/odometers/content.php
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Content - Odometers Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/odometers/content.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
use Elementor\Icons_Manager;
|
14 |
+
|
15 |
+
$migration_allowed = Icons_Manager::is_migration_allowed();
|
16 |
+
|
17 |
+
$prefix = (!empty ($odometer['prefix'])) ? '<span class="prefix">' . $odometer['prefix'] . '</span>' : '';
|
18 |
+
$suffix = (!empty ($odometer['suffix'])) ? '<span class="suffix">' . $odometer['suffix'] . '</span>' : '';
|
19 |
+
|
20 |
+
?>
|
21 |
+
|
22 |
+
<div class="lae-grid-item lae-odometer">
|
23 |
+
|
24 |
+
<?php echo (!empty ($odometer['prefix'])) ? '<span class="lae-prefix">' . $odometer['prefix'] . '</span>' : ''; ?>
|
25 |
+
|
26 |
+
<div class="lae-number odometer" data-stop="<?php echo intval($odometer['stop_value']); ?>">
|
27 |
+
|
28 |
+
<?php echo intval($odometer['start_value']); ?>
|
29 |
+
|
30 |
+
</div>
|
31 |
+
|
32 |
+
<?php echo (!empty ($odometer['suffix'])) ? '<span class="lae-suffix">' . $odometer['suffix'] . '</span>' : ''; ?>
|
33 |
+
|
34 |
+
<?php $icon_type = esc_html($odometer['icon_type']); ?>
|
35 |
+
|
36 |
+
<?php $icon_html = ''; ?>
|
37 |
+
|
38 |
+
<?php if ($icon_type == 'icon_image') : ?>
|
39 |
+
|
40 |
+
<?php $icon_image = $odometer['icon_image']; ?>
|
41 |
+
|
42 |
+
<?php if (!empty($icon_image)): ?>
|
43 |
+
|
44 |
+
<?php $icon_html = '<span class="lae-image-wrapper">' . wp_get_attachment_image($icon_image['id'], 'full', false, array('class' => 'lae-image full')) . '</span>'; ?>
|
45 |
+
|
46 |
+
<?php endif; ?>
|
47 |
+
|
48 |
+
<?php elseif ((!empty($odometer['icon']) || !empty($odometer['selected_icon']['value']))) : ?>
|
49 |
+
<?php
|
50 |
+
|
51 |
+
$migrated = isset($odometer['__fa4_migrated']['selected_icon']);
|
52 |
+
$is_new = empty($odometer['icon']) && $migration_allowed;
|
53 |
+
|
54 |
+
$icon_html = '<span class="lae-icon-wrapper">';
|
55 |
+
|
56 |
+
?>
|
57 |
+
|
58 |
+
<?php if ($is_new || $migrated) : ?>
|
59 |
+
|
60 |
+
<?php
|
61 |
+
|
62 |
+
ob_start();
|
63 |
+
|
64 |
+
Icons_Manager::render_icon($odometer['selected_icon'], ['aria-hidden' => 'true']);
|
65 |
+
|
66 |
+
$icon_html .= ob_get_contents();
|
67 |
+
|
68 |
+
ob_end_clean();
|
69 |
+
|
70 |
+
?>
|
71 |
+
|
72 |
+
<?php else : ?>
|
73 |
+
|
74 |
+
<?php $icon_html .= '<i class="' . esc_attr($odometer['icon']) . '" aria-hidden="true"></i>'; ?>
|
75 |
+
|
76 |
+
<?php endif; ?>
|
77 |
+
|
78 |
+
<?php $icon_html .= '</span>'; ?>
|
79 |
+
|
80 |
+
<?php endif; ?>
|
81 |
+
|
82 |
+
<div class="lae-stats-title-wrap">
|
83 |
+
|
84 |
+
<div class="lae-stats-title"><?php echo $icon_html . esc_html($odometer['stats_title']); ?></div>
|
85 |
+
|
86 |
+
</div>
|
87 |
+
|
88 |
+
</div><!-- .lae-odometer -->
|
templates/addons/odometers/loop.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop - Odometers Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/odometers/loop.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
?>
|
14 |
+
|
15 |
+
<div class="lae-odometers lae-grid-container <?php echo lae_get_grid_classes($settings); ?>">
|
16 |
+
|
17 |
+
<?php foreach ($settings['odometers'] as $odometer): ?>
|
18 |
+
|
19 |
+
<?php $args['odometer'] = $odometer; ?>
|
20 |
+
|
21 |
+
<?php lae_get_template_part("addons/odometers/content", $args); ?>
|
22 |
+
|
23 |
+
<?php endforeach; ?>
|
24 |
+
|
25 |
+
</div><!-- .lae-odometers -->
|
26 |
+
|
27 |
+
<div class="lae-clear"></div>
|
templates/addons/piecharts/content.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Content - Piecharts Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/piecharts/content.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
$bar_color = ' data-bar-color="' . esc_attr($settings['bar_color']) . '"';
|
14 |
+
$track_color = ' data-track-color="' . esc_attr($settings['track_color']) . '"';
|
15 |
+
|
16 |
+
?>
|
17 |
+
|
18 |
+
<div class="lae-grid-item lae-piechart">
|
19 |
+
|
20 |
+
<div class="lae-percentage" <?php echo $bar_color; ?> <?php echo $track_color; ?>
|
21 |
+
data-percent="<?php echo round($piechart['percentage_value']); ?>">
|
22 |
+
|
23 |
+
<span><?php echo round($piechart['percentage_value']); ?><sup>%</sup></span>
|
24 |
+
|
25 |
+
</div>
|
26 |
+
|
27 |
+
<div class="lae-label"><?php echo esc_html($piechart['stats_title']); ?></div>
|
28 |
+
|
29 |
+
</div><!-- .lae-piechart -->
|
templates/addons/piecharts/loop.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop - Piecharts Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/piecharts/loop.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
?>
|
14 |
+
|
15 |
+
<div class="lae-piecharts lae-grid-container <?php echo lae_get_grid_classes($settings); ?> ">
|
16 |
+
|
17 |
+
<?php foreach ($settings['piecharts'] as $piechart): ?>
|
18 |
+
|
19 |
+
<?php $args['piechart'] = $piechart; ?>
|
20 |
+
|
21 |
+
<?php lae_get_template_part("addons/piecharts/content", $args); ?>
|
22 |
+
|
23 |
+
<?php endforeach; ?>
|
24 |
+
|
25 |
+
</div><!-- .lae-piecharts -->
|
26 |
+
|
27 |
+
<div class="lae-clear"></div>
|
templates/addons/posts-carousel/content.php
ADDED
@@ -0,0 +1,155 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Content - Posts Carousel Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/posts-carousel/content.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
?>
|
14 |
+
|
15 |
+
<div data-id="id-<?php echo get_the_ID(); ?>" class="lae-posts-carousel-item">
|
16 |
+
|
17 |
+
<article id="post-<?php echo get_the_ID(); ?>" class="<?php echo join(' ', get_post_class('', $post_id)); ?>">
|
18 |
+
|
19 |
+
<?php if ($settings['carousel_skin'] == 'custom_skin') : ?>
|
20 |
+
|
21 |
+
<?php lae_get_template_part('addons/posts-carousel/custom-skin', $args); ?>
|
22 |
+
|
23 |
+
<?php else : ?>
|
24 |
+
|
25 |
+
<?php $target = $settings['post_link_new_window'] == 'yes' ? ' target="_blank"' : ''; ?>
|
26 |
+
|
27 |
+
<?php $taxonomies = array($settings['taxonomy_chosen']); ?>
|
28 |
+
|
29 |
+
<?php if ($thumbnail_exists = has_post_thumbnail() && $settings['display_thumbnail'] == 'yes'): ?>
|
30 |
+
|
31 |
+
<div class="lae-project-image">
|
32 |
+
|
33 |
+
<?php $image_setting = ['id' => get_post_thumbnail_id()]; ?>
|
34 |
+
|
35 |
+
<?php $thumbnail_html = lae_get_image_html($image_setting, 'thumbnail_size', $settings); ?>
|
36 |
+
|
37 |
+
<?php if ($settings['image_linkable'] == 'yes'): ?>
|
38 |
+
|
39 |
+
<a href="<?php echo get_the_permalink(); ?>"<?php echo $target; ?>><?php echo $thumbnail_html; ?></a>
|
40 |
+
|
41 |
+
<?php else: ?>
|
42 |
+
|
43 |
+
<?php echo $thumbnail_html; ?>
|
44 |
+
|
45 |
+
<?php endif; ?>
|
46 |
+
|
47 |
+
<?php if (($settings['display_title_on_thumbnail'] == 'yes') || ($settings['display_taxonomy_on_thumbnail'] == 'yes')): ?>
|
48 |
+
|
49 |
+
<div class="lae-image-info">
|
50 |
+
|
51 |
+
<div class="lae-entry-info">
|
52 |
+
|
53 |
+
<?php if ($settings['display_title_on_thumbnail'] == 'yes'): ?>
|
54 |
+
|
55 |
+
<<?php echo $settings['title_tag']; ?> class="lae-post-title">
|
56 |
+
|
57 |
+
<a href="<?php echo get_permalink(); ?>" title="<?php echo get_the_title(); ?>"
|
58 |
+
rel="bookmark"<?php echo $target; ?>><?php echo get_the_title(); ?></a>
|
59 |
+
|
60 |
+
</<?php echo $settings['title_tag']; ?>>
|
61 |
+
|
62 |
+
<?php endif; ?>
|
63 |
+
|
64 |
+
<?php if ($settings['display_taxonomy_on_thumbnail'] == 'yes'): ?>
|
65 |
+
|
66 |
+
<?php echo lae_get_info_for_taxonomies($taxonomies); ?>
|
67 |
+
|
68 |
+
<?php endif; ?>
|
69 |
+
|
70 |
+
</div>
|
71 |
+
|
72 |
+
</div><!-- .lae-image-info -->
|
73 |
+
|
74 |
+
<?php endif; ?>
|
75 |
+
|
76 |
+
</div>
|
77 |
+
|
78 |
+
<?php endif; ?>
|
79 |
+
|
80 |
+
<?php if (($settings['display_title'] == 'yes') || ($settings['display_summary'] == 'yes')) : ?>
|
81 |
+
|
82 |
+
<div class="lae-entry-text-wrap <?php echo($thumbnail_exists ? '' : ' nothumbnail'); ?>">
|
83 |
+
|
84 |
+
<?php if ($settings['display_title'] == 'yes') : ?>
|
85 |
+
|
86 |
+
<<?php echo $settings['entry_title_tag']; ?> class="entry-title">
|
87 |
+
|
88 |
+
<a href="<?php echo get_permalink(); ?>" title="<?php echo get_the_title(); ?>"
|
89 |
+
rel="bookmark"<?php echo $target; ?>><?php echo get_the_title(); ?></a>
|
90 |
+
|
91 |
+
</<?php echo $settings['entry_title_tag']; ?>>
|
92 |
+
|
93 |
+
<?php endif; ?>
|
94 |
+
|
95 |
+
<?php if (($settings['display_post_date'] == 'yes') || ($settings['display_author'] == 'yes') || ($settings['display_taxonomy'] == 'yes')) : ?>
|
96 |
+
|
97 |
+
<div class="lae-entry-meta">
|
98 |
+
|
99 |
+
<?php
|
100 |
+
|
101 |
+
if ($settings['display_author'] == 'yes'):
|
102 |
+
|
103 |
+
echo lae_entry_author();
|
104 |
+
|
105 |
+
endif;
|
106 |
+
|
107 |
+
if ($settings['display_post_date'] == 'yes'):
|
108 |
+
|
109 |
+
echo lae_entry_published();
|
110 |
+
|
111 |
+
endif;
|
112 |
+
|
113 |
+
if ($settings['display_taxonomy'] == 'yes'):
|
114 |
+
|
115 |
+
echo lae_get_info_for_taxonomies($taxonomies);
|
116 |
+
|
117 |
+
endif;
|
118 |
+
|
119 |
+
?>
|
120 |
+
|
121 |
+
</div>
|
122 |
+
|
123 |
+
<?php endif; ?>
|
124 |
+
|
125 |
+
<?php if ($settings['display_summary'] == 'yes') : ?>
|
126 |
+
|
127 |
+
<div class="entry-summary">
|
128 |
+
|
129 |
+
<?php echo get_the_excerpt(); ?>
|
130 |
+
|
131 |
+
</div>
|
132 |
+
|
133 |
+
<?php endif; ?>
|
134 |
+
|
135 |
+
<?php if ($settings['display_read_more'] == 'yes') : ?>
|
136 |
+
|
137 |
+
<?php $read_more_text = $settings['read_more_text']; ?>
|
138 |
+
|
139 |
+
<div class="lae-read-more">
|
140 |
+
|
141 |
+
<a href="<?php echo get_the_permalink(); ?>"<?php echo $target; ?>><?php echo $read_more_text; ?></a>
|
142 |
+
|
143 |
+
</div>
|
144 |
+
|
145 |
+
<?php endif; ?>
|
146 |
+
|
147 |
+
</div>
|
148 |
+
|
149 |
+
<?php endif; ?>
|
150 |
+
|
151 |
+
<?php endif; ?>
|
152 |
+
|
153 |
+
</article><!-- .hentry -->
|
154 |
+
|
155 |
+
</div><!-- .lae-posts-carousel-item -->
|
templates/addons/posts-carousel/custom-skin.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$template_id = $settings['item_template'];
|
4 |
+
|
5 |
+
if ($template_id) :
|
6 |
+
|
7 |
+
/* Initialize the theme builder templates - Requires elementor pro plugin */
|
8 |
+
if (!is_plugin_active('elementor-pro/elementor-pro.php')) {
|
9 |
+
|
10 |
+
echo lae_template_error(__('Custom skin requires Elementor Pro but the plugin is not installed/active', 'livemesh-el-addons'));
|
11 |
+
|
12 |
+
}
|
13 |
+
else {
|
14 |
+
|
15 |
+
echo lae_get_item_template_content($template_id, $settings);
|
16 |
+
|
17 |
+
}
|
18 |
+
|
19 |
+
else :
|
20 |
+
|
21 |
+
echo lae_template_error(__('Choose a custom skin template for the carousel item', 'livemesh-el-addons'));
|
22 |
+
|
23 |
+
endif;
|
templates/addons/posts-carousel/loop-end.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop End - Posts Carousel Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/posts-carousel/loop-end.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
?>
|
13 |
+
</div><!-- .lae-posts-carousel -->
|
templates/addons/posts-carousel/loop-start.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop Start - Posts Carousel Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/posts-carousel/loop-start.php
|
6 |
+
*/
|
7 |
+
|
8 |
+
if (!defined('ABSPATH')) {
|
9 |
+
exit; // Exit if accessed directly
|
10 |
+
}
|
11 |
+
|
12 |
+
$carousel_settings = [
|
13 |
+
'arrows' => ('yes' === $settings['arrows']),
|
14 |
+
'dots' => ('yes' === $settings['dots']),
|
15 |
+
'autoplay' => ('yes' === $settings['autoplay']),
|
16 |
+
'autoplay_speed' => absint($settings['autoplay_speed']),
|
17 |
+
'animation_speed' => absint($settings['animation_speed']),
|
18 |
+
'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
|
19 |
+
'adaptive_height' => ('yes' === $settings['adaptive_height']),
|
20 |
+
];
|
21 |
+
|
22 |
+
$responsive_settings = [
|
23 |
+
'display_columns' => $settings['display_columns'],
|
24 |
+
'scroll_columns' => $settings['scroll_columns'],
|
25 |
+
'gutter' => $settings['gutter'],
|
26 |
+
'tablet_width' => $settings['tablet_width'],
|
27 |
+
'tablet_display_columns' => $settings['tablet_display_columns'],
|
28 |
+
'tablet_scroll_columns' => $settings['tablet_scroll_columns'],
|
29 |
+
'tablet_gutter' => $settings['tablet_gutter'],
|
30 |
+
'mobile_width' => $settings['mobile_width'],
|
31 |
+
'mobile_display_columns' => $settings['mobile_display_columns'],
|
32 |
+
'mobile_scroll_columns' => $settings['mobile_scroll_columns'],
|
33 |
+
'mobile_gutter' => $settings['mobile_gutter'],
|
34 |
+
|
35 |
+
];
|
36 |
+
|
37 |
+
$carousel_settings = array_merge($carousel_settings, $responsive_settings);
|
38 |
+
|
39 |
+
?>
|
40 |
+
|
41 |
+
<div<?php echo is_rtl() ? ' dir="rtl"' : ''; ?>
|
42 |
+
id="lae-posts-carousel-<?php echo uniqid(); ?>"
|
43 |
+
class="lae-posts-carousel lae-container <?php echo 'lae-' . str_replace('_', '-', $settings['carousel_skin']); ?>"
|
44 |
+
data-settings='<?php echo wp_json_encode($carousel_settings); ?>'>
|
templates/addons/posts-carousel/loop.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop - Posts Carousel Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/posts-carousel/loop.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
// Use the processed post selector query to find posts.
|
14 |
+
$query_args = lae_build_query_args($settings);
|
15 |
+
|
16 |
+
$query_args = apply_filters('lae_posts_carousel_' . $widget_instance->get_id() . '_query_args', $query_args, $settings);
|
17 |
+
|
18 |
+
$loop = new \WP_Query($query_args);
|
19 |
+
|
20 |
+
// Loop through the posts and do something with them.
|
21 |
+
if ($loop->have_posts()) :
|
22 |
+
|
23 |
+
lae_get_template_part('addons/posts-carousel/loop-start', $args);
|
24 |
+
|
25 |
+
while ($loop->have_posts()) : $loop->the_post();
|
26 |
+
|
27 |
+
$args['post_id'] = get_the_ID();
|
28 |
+
|
29 |
+
lae_get_template_part("/addons/posts-carousel/content", $args);
|
30 |
+
|
31 |
+
endwhile;
|
32 |
+
|
33 |
+
wp_reset_postdata();
|
34 |
+
|
35 |
+
lae_get_template_part('addons/posts-carousel/loop-end', $args);
|
36 |
+
|
37 |
+
endif;
|
templates/addons/stats-bars/content.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Content - Stats Bars Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/stats-bars/content.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
$color_style = '';
|
14 |
+
$color = $stats_bar['bar_color'];
|
15 |
+
if ($color)
|
16 |
+
$color_style = ' style="background:' . esc_attr($color) . ';"';
|
17 |
+
|
18 |
+
?>
|
19 |
+
|
20 |
+
<div class="lae-stats-bar">
|
21 |
+
|
22 |
+
<div class="lae-stats-title">
|
23 |
+
|
24 |
+
<?php echo esc_html($stats_bar['stats_title']) ?>
|
25 |
+
|
26 |
+
<span><?php echo esc_attr($stats_bar['percentage_value']); ?>%</span>
|
27 |
+
|
28 |
+
</div>
|
29 |
+
|
30 |
+
<div class="lae-stats-bar-wrap">
|
31 |
+
|
32 |
+
<div <?php echo $color_style; ?> class="lae-stats-bar-content"
|
33 |
+
data-perc="<?php echo esc_attr($stats_bar['percentage_value']); ?>"></div>
|
34 |
+
|
35 |
+
<div class="lae-stats-bar-bg"></div>
|
36 |
+
|
37 |
+
</div>
|
38 |
+
|
39 |
+
</div><!-- .lae-stats-bar -->
|
templates/addons/stats-bars/loop.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop - Stats Bars Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/stats-bars/loop.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
?>
|
14 |
+
|
15 |
+
<div class="lae-stats-bars">
|
16 |
+
|
17 |
+
<?php foreach ($settings['stats_bars'] as $stats_bar) : ?>
|
18 |
+
|
19 |
+
<?php $args['stats_bar'] = $stats_bar; ?>
|
20 |
+
|
21 |
+
<?php lae_get_template_part("addons/stats-bars/content", $args); ?>
|
22 |
+
|
23 |
+
<?php endforeach; ?>
|
24 |
+
|
25 |
+
</div><!-- .lae-stats-bars -->
|
templates/addons/team-members/loop.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop - Team Members Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/team-members/loop.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
if ($settings['style'] == 'style1')
|
14 |
+
|
15 |
+
$container_style = 'lae-grid-container ' . lae_get_grid_classes($settings);
|
16 |
+
else
|
17 |
+
$container_style = 'lae-container';
|
18 |
+
|
19 |
+
?>
|
20 |
+
|
21 |
+
<div class="lae-team-members lae-<?php echo $settings['style']; ?> <?php echo $container_style; ?>">
|
22 |
+
|
23 |
+
<?php foreach ($settings['team_members'] as $index => $team_member): ?>
|
24 |
+
|
25 |
+
<?php $args['index'] = $index; ?>
|
26 |
+
|
27 |
+
<?php $args['team_member'] = $team_member; ?>
|
28 |
+
|
29 |
+
<?php lae_get_template_part("addons/team-members/{$settings['style']}", $args); ?>
|
30 |
+
|
31 |
+
<?php endforeach; ?>
|
32 |
+
|
33 |
+
</div><!-- .lae-team-members -->
|
34 |
+
|
35 |
+
<div class="lae-clear"></div>
|
templates/addons/team-members/social-profile.php
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Social Profile Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/team-members/social-profile.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
?>
|
9 |
+
|
10 |
+
<div class="lae-social-wrap">
|
11 |
+
<div class="lae-social-list">
|
12 |
+
|
13 |
+
<?php
|
14 |
+
|
15 |
+
$email = $team_member['member_email'];
|
16 |
+
$facebook_url = $team_member['facebook_url'];
|
17 |
+
$twitter_url = $team_member['twitter_url'];
|
18 |
+
$linkedin_url = $team_member['linkedin_url'];
|
19 |
+
$dribbble_url = $team_member['dribbble_url'];
|
20 |
+
$pinterest_url = $team_member['pinterest_url'];
|
21 |
+
$googleplus_url = $team_member['google_plus_url'];
|
22 |
+
$instagram_url = $team_member['instagram_url'];
|
23 |
+
|
24 |
+
?>
|
25 |
+
<?php if ($email): ?>
|
26 |
+
<div class="lae-social-list-item">
|
27 |
+
<a class="lae-email" href="mailto:<?php echo $email; ?>"
|
28 |
+
title="<?php echo __("Send an email", 'livemesh-el-addons'); ?>">
|
29 |
+
<i class="lae-icon-email"></i>
|
30 |
+
</a>
|
31 |
+
</div>
|
32 |
+
<?php endif; ?>
|
33 |
+
<?php if ($facebook_url): ?>
|
34 |
+
<div class="lae-social-list-item">
|
35 |
+
<a class="lae-facebook" href="<?php echo $facebook_url; ?>"
|
36 |
+
target="_blank"
|
37 |
+
title="<?php echo __("Follow on Facebook", 'livemesh-el-addons'); ?>">
|
38 |
+
<i class="lae-icon-facebook"></i>
|
39 |
+
</a>
|
40 |
+
</div>
|
41 |
+
<?php endif; ?>
|
42 |
+
|
43 |
+
<?php if ($twitter_url): ?>
|
44 |
+
<div class="lae-social-list-item">
|
45 |
+
<a class="lae-twitter" href="<?php echo $twitter_url; ?>" target="_blank"
|
46 |
+
title="<?php echo __("Subscribe to Twitter Feed", 'livemesh-el-addons'); ?>">
|
47 |
+
<i class="lae-icon-twitter"></i>
|
48 |
+
</a>
|
49 |
+
</div>
|
50 |
+
<?php endif; ?>
|
51 |
+
|
52 |
+
<?php if ($linkedin_url): ?>
|
53 |
+
<div class="lae-social-list-item">
|
54 |
+
<a class="lae-linkedin" href="<?php echo $linkedin_url; ?>"
|
55 |
+
target="_blank"
|
56 |
+
title="<?php echo __("View LinkedIn Profile", 'livemesh-el-addons'); ?>">
|
57 |
+
<i class="lae-icon-linkedin">
|
58 |
+
|
59 |
+
</i>
|
60 |
+
</a>
|
61 |
+
</div>
|
62 |
+
<?php endif; ?>
|
63 |
+
|
64 |
+
<?php if ($googleplus_url): ?>
|
65 |
+
<div class="lae-social-list-item">
|
66 |
+
<a class="lae-googleplus" href="<?php echo $googleplus_url; ?>"
|
67 |
+
target="_blank"
|
68 |
+
title="<?php echo __("Follow on Google Plus", 'livemesh-el-addons'); ?>">
|
69 |
+
<i class="lae-icon-googleplus"></i>
|
70 |
+
</a>
|
71 |
+
</div>
|
72 |
+
<?php endif; ?>
|
73 |
+
|
74 |
+
<?php if ($instagram_url): ?>
|
75 |
+
<div class="lae-social-list-item">
|
76 |
+
<a class="lae-instagram" href="<?php echo $instagram_url; ?>"
|
77 |
+
target="_blank"
|
78 |
+
title="<?php echo __("View Instagram Feed", 'livemesh-el-addons'); ?>">
|
79 |
+
<i class="lae-icon-instagram"></i>
|
80 |
+
</a>
|
81 |
+
</div>
|
82 |
+
<?php endif; ?>
|
83 |
+
|
84 |
+
<?php if ($pinterest_url): ?>
|
85 |
+
<div class="lae-social-list-item">
|
86 |
+
<a class="lae-pinterest" href="<?php echo $pinterest_url; ?>"
|
87 |
+
target="_blank"
|
88 |
+
title="<?php echo __("Subscribe to Pinterest Feed", 'livemesh-el-addons'); ?>">
|
89 |
+
<i class="lae-icon-pinterest"></i>
|
90 |
+
</a>
|
91 |
+
</div>
|
92 |
+
<?php endif; ?>
|
93 |
+
|
94 |
+
<?php if ($dribbble_url): ?>
|
95 |
+
<div class="lae-social-list-item">
|
96 |
+
<a class="lae-dribbble" href="<?php echo $dribbble_url; ?>" target="_blank"
|
97 |
+
title="<?php echo __("View Dribbble Portfolio", 'livemesh-el-addons'); ?>">
|
98 |
+
<i class="lae-icon-dribbble"></i>
|
99 |
+
</a>
|
100 |
+
</div>
|
101 |
+
<?php endif; ?>
|
102 |
+
|
103 |
+
</div><!-- .lae-social-list -->
|
104 |
+
</div><!-- .lae-social-wrap -->
|
105 |
+
|
106 |
+
|
templates/addons/team-members/style1.php
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Team Member Template 1
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/team-members/style-1.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
$has_link = false;
|
14 |
+
|
15 |
+
if (!empty($team_member['member_link']['url'])) {
|
16 |
+
|
17 |
+
$has_link = true;
|
18 |
+
|
19 |
+
$link_key = 'link_' . $index;
|
20 |
+
|
21 |
+
$url = $team_member['member_link'];
|
22 |
+
|
23 |
+
$widget_instance->add_render_attribute($link_key, 'title', $team_member['member_name']);
|
24 |
+
|
25 |
+
$widget_instance->add_render_attribute($link_key, 'href', $url['url']);
|
26 |
+
|
27 |
+
if (!empty($url['is_external'])) {
|
28 |
+
$widget_instance->add_render_attribute($link_key, 'target', '_blank');
|
29 |
+
}
|
30 |
+
|
31 |
+
if (!empty($url['nofollow'])) {
|
32 |
+
$widget_instance->add_render_attribute($link_key, 'rel', 'nofollow');
|
33 |
+
}
|
34 |
+
}
|
35 |
+
?>
|
36 |
+
|
37 |
+
<div class="lae-grid-item lae-team-member-wrapper">
|
38 |
+
|
39 |
+
<?php list($animate_class, $animation_attr) = lae_get_animation_atts($team_member['widget_animation']); ?>
|
40 |
+
|
41 |
+
<div class="lae-team-member <?php echo $animate_class; ?>" <?php echo $animation_attr; ?>>
|
42 |
+
|
43 |
+
<div class="lae-image-wrapper">
|
44 |
+
|
45 |
+
<?php if (!empty($team_member['member_image'])): ?>
|
46 |
+
|
47 |
+
<?php $image_html = lae_get_image_html($team_member['member_image'], 'thumbnail_size', $settings); ?>
|
48 |
+
|
49 |
+
<?php if ($has_link): ?>
|
50 |
+
|
51 |
+
<a class="lae-image-link" <?php echo $widget_instance->get_render_attribute_string($link_key); ?>><?php echo $image_html; ?></a>
|
52 |
+
|
53 |
+
<?php else: ?>
|
54 |
+
|
55 |
+
<?php echo $image_html; ?>
|
56 |
+
|
57 |
+
<?php endif; ?>
|
58 |
+
|
59 |
+
<?php endif; ?>
|
60 |
+
|
61 |
+
<?php lae_get_template_part("addons/team-members/social-profile", $args); ?>
|
62 |
+
|
63 |
+
</div><!-- .lae-image-wrapper -->
|
64 |
+
|
65 |
+
<div class="lae-team-member-text">
|
66 |
+
|
67 |
+
<?php $title_html = '<' . $settings['title_tag'] . ' class="lae-title">' . esc_html($team_member['member_name']) . '</' . $settings['title_tag'] . '>'; ?>
|
68 |
+
|
69 |
+
<?php if ($has_link): ?>
|
70 |
+
|
71 |
+
<a class="lae-title-link" <?php echo $widget_instance->get_render_attribute_string($link_key); ?>><?php echo $title_html; ?></a>
|
72 |
+
|
73 |
+
<?php else: ?>
|
74 |
+
|
75 |
+
<?php echo $title_html; ?>
|
76 |
+
|
77 |
+
<?php endif; ?>
|
78 |
+
|
79 |
+
<div class="lae-team-member-position">
|
80 |
+
|
81 |
+
<?php echo do_shortcode($team_member['member_position']); ?>
|
82 |
+
|
83 |
+
</div>
|
84 |
+
|
85 |
+
<div class="lae-team-member-details">
|
86 |
+
|
87 |
+
<?php echo do_shortcode($team_member['member_details']); ?>
|
88 |
+
|
89 |
+
</div>
|
90 |
+
|
91 |
+
</div><!-- .lae-team-member-text -->
|
92 |
+
|
93 |
+
</div><!-- .lae-team-member -->
|
94 |
+
|
95 |
+
</div><!-- .lae-team-member-wrapper -->
|
templates/addons/team-members/style2.php
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Team Member Template 2
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/team-members/style-2.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
$has_link = false;
|
14 |
+
|
15 |
+
if (!empty($team_member['member_link']['url'])) {
|
16 |
+
|
17 |
+
$has_link = true;
|
18 |
+
|
19 |
+
$link_key = 'link_' . $index;
|
20 |
+
|
21 |
+
$url = $team_member['member_link'];
|
22 |
+
|
23 |
+
$widget_instance->add_render_attribute($link_key, 'title', $team_member['member_name']);
|
24 |
+
|
25 |
+
$widget_instance->add_render_attribute($link_key, 'href', $url['url']);
|
26 |
+
|
27 |
+
if (!empty($url['is_external'])) {
|
28 |
+
$widget_instance->add_render_attribute($link_key, 'target', '_blank');
|
29 |
+
}
|
30 |
+
|
31 |
+
if (!empty($url['nofollow'])) {
|
32 |
+
$widget_instance->add_render_attribute($link_key, 'rel', 'nofollow');
|
33 |
+
}
|
34 |
+
}
|
35 |
+
?>
|
36 |
+
|
37 |
+
<div class="lae-team-member-wrapper">
|
38 |
+
|
39 |
+
<?php list($animate_class, $animation_attr) = lae_get_animation_atts($team_member['widget_animation']); ?>
|
40 |
+
|
41 |
+
<div class="lae-team-member <?php echo $animate_class; ?>" <?php echo $animation_attr; ?>>
|
42 |
+
|
43 |
+
<div class="lae-image-wrapper">
|
44 |
+
|
45 |
+
<?php if (!empty($team_member['member_image'])): ?>
|
46 |
+
|
47 |
+
<?php $image_html = lae_get_image_html($team_member['member_image'], 'thumbnail_size', $settings); ?>
|
48 |
+
|
49 |
+
<?php if ($has_link): ?>
|
50 |
+
|
51 |
+
<a class="lae-image-link" <?php echo $widget_instance->get_render_attribute_string($link_key); ?>><?php echo $image_html; ?></a>
|
52 |
+
|
53 |
+
<?php else: ?>
|
54 |
+
|
55 |
+
<?php echo $image_html; ?>
|
56 |
+
|
57 |
+
<?php endif; ?>
|
58 |
+
|
59 |
+
<?php endif; ?>
|
60 |
+
|
61 |
+
</div><!-- .lae-image-wrapper -->
|
62 |
+
|
63 |
+
<div class="lae-team-member-text">
|
64 |
+
|
65 |
+
<?php $title_html = '<' . $settings['title_tag'] . ' class="lae-title">' . esc_html($team_member['member_name']) . '</' . $settings['title_tag'] . '>'; ?>
|
66 |
+
|
67 |
+
<?php if ($has_link): ?>
|
68 |
+
|
69 |
+
<a class="lae-title-link" <?php echo $widget_instance->get_render_attribute_string($link_key); ?>><?php echo $title_html; ?></a>
|
70 |
+
|
71 |
+
<?php else: ?>
|
72 |
+
|
73 |
+
<?php echo $title_html; ?>
|
74 |
+
|
75 |
+
<?php endif; ?>
|
76 |
+
|
77 |
+
<div class="lae-team-member-position">
|
78 |
+
|
79 |
+
<?php echo do_shortcode($team_member['member_position']); ?>
|
80 |
+
|
81 |
+
</div>
|
82 |
+
|
83 |
+
<div class="lae-team-member-details">
|
84 |
+
|
85 |
+
<?php echo do_shortcode($team_member['member_details']); ?>
|
86 |
+
|
87 |
+
</div>
|
88 |
+
|
89 |
+
<?php lae_get_template_part("addons/team-members/social-profile", $args); ?>
|
90 |
+
|
91 |
+
</div><!-- .lae-team-member-text -->
|
92 |
+
|
93 |
+
</div><!-- .lae-team-member -->
|
94 |
+
|
95 |
+
</div><!-- .lae-team-member-wrapper -->
|
templates/addons/testimonials-slider/content.php
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Content - Testimonials Slider Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/testimonials-slider/content.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
?>
|
14 |
+
|
15 |
+
<li class="lae-slide lae-testimonial-wrapper">
|
16 |
+
|
17 |
+
<div class="lae-testimonial">
|
18 |
+
|
19 |
+
<div class="lae-testimonial-text">
|
20 |
+
|
21 |
+
<i class="lae-icon-quote"></i>
|
22 |
+
|
23 |
+
<?php echo $widget_instance->parse_text_editor($testimonial['testimonial_text']); ?>
|
24 |
+
|
25 |
+
</div>
|
26 |
+
|
27 |
+
<div class="lae-testimonial-user">
|
28 |
+
|
29 |
+
<div class="lae-image-wrapper">
|
30 |
+
|
31 |
+
<?php $client_image = $testimonial['client_image']; ?>
|
32 |
+
|
33 |
+
<?php if (!empty($client_image)): ?>
|
34 |
+
|
35 |
+
<?php echo wp_get_attachment_image($client_image['id'], 'thumbnail', false, array('class' => 'lae-image full')); ?>
|
36 |
+
|
37 |
+
<?php endif; ?>
|
38 |
+
|
39 |
+
</div><!-- .lae-image-wrapper -->
|
40 |
+
|
41 |
+
<div class="lae-text">
|
42 |
+
|
43 |
+
<<?php echo $settings['title_tag']; ?> class="lae-author-name"><?php echo esc_html($testimonial['client_name']); ?></<?php echo $settings['title_tag']; ?>>
|
44 |
+
|
45 |
+
<div class="lae-author-credentials"><?php echo wp_kses_post($testimonial['credentials']); ?></div>
|
46 |
+
|
47 |
+
</div>
|
48 |
+
|
49 |
+
</div><!-- .lae-testimonial-user -->
|
50 |
+
|
51 |
+
</div><!-- .lae-testimonial -->
|
52 |
+
|
53 |
+
</li><!-- .lae-testimonial-wrapper.lae-slide -->
|
templates/addons/testimonials-slider/loop.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop - Testimonials Slider Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/testimonials-slider/loop.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
$dir = is_rtl() ? ' dir="rtl"' : '';
|
14 |
+
|
15 |
+
$style = is_rtl() ? ' style="direction:rtl"' : '';
|
16 |
+
|
17 |
+
$settings = apply_filters('lae_testimonials_slider_' . $settings['slider_id'] . '_settings', $settings);
|
18 |
+
|
19 |
+
$slider_options = [
|
20 |
+
'slide_animation' => $settings['slide_animation'],
|
21 |
+
'direction' => $settings['direction'],
|
22 |
+
'slideshow_speed' => absint($settings['slideshow_speed']),
|
23 |
+
'animation_speed' => absint($settings['animation_speed']),
|
24 |
+
'control_nav' => ('yes' === $settings['control_nav']),
|
25 |
+
'direction_nav' => ('yes' === $settings['direction_nav']),
|
26 |
+
'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
|
27 |
+
'pause_on_action' => ('yes' === $settings['pause_on_action']),
|
28 |
+
'smooth_height' => ('yes' === $settings['smooth_height'])
|
29 |
+
];
|
30 |
+
|
31 |
+
?>
|
32 |
+
|
33 |
+
<div<?php echo $dir . $style; ?> class="lae-testimonials-slider lae-flexslider lae-container"
|
34 |
+
data-settings='<?php echo wp_json_encode($slider_options); ?>'>
|
35 |
+
<ul class="lae-slides">
|
36 |
+
|
37 |
+
<?php foreach ($settings['testimonials'] as $testimonial) : ?>
|
38 |
+
|
39 |
+
<?php $args['testimonial'] = $testimonial; ?>
|
40 |
+
|
41 |
+
<?php lae_get_template_part("addons/testimonials-slider/content", $args); ?>
|
42 |
+
|
43 |
+
<?php endforeach; ?>
|
44 |
+
|
45 |
+
</ul><!-- .lae-slides -->
|
46 |
+
|
47 |
+
</div><!-- .lae-testimonials-slider -->
|
templates/addons/testimonials/content.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Content - Testimonials Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/testimonials/content.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
list($animate_class, $animation_attr) = lae_get_animation_atts($testimonial['widget_animation']); ?>
|
14 |
+
|
15 |
+
<div class="lae-grid-item lae-testimonial <?php echo $animate_class; ?>" <?php echo $animation_attr; ?>>
|
16 |
+
|
17 |
+
<div class="lae-testimonial-text">
|
18 |
+
|
19 |
+
<?php echo $widget_instance->parse_text_editor($testimonial['testimonial_text']); ?>
|
20 |
+
|
21 |
+
</div>
|
22 |
+
|
23 |
+
<div class="lae-testimonial-user">
|
24 |
+
|
25 |
+
<div class="lae-image-wrapper">
|
26 |
+
|
27 |
+
<?php $client_image = $testimonial['client_image']; ?>
|
28 |
+
|
29 |
+
<?php if (!empty($client_image)): ?>
|
30 |
+
|
31 |
+
<?php echo wp_get_attachment_image($client_image['id'], 'thumbnail', false, array('class' => 'lae-image full')); ?>
|
32 |
+
|
33 |
+
<?php endif; ?>
|
34 |
+
|
35 |
+
</div>
|
36 |
+
|
37 |
+
<div class="lae-text">
|
38 |
+
|
39 |
+
<<?php echo $settings['title_tag']; ?> class="lae-author-name"><?php echo esc_html($testimonial['client_name']); ?></<?php echo $settings['title_tag']; ?>>
|
40 |
+
|
41 |
+
<div class="lae-author-credentials"><?php echo wp_kses_post($testimonial['credentials']); ?></div>
|
42 |
+
|
43 |
+
</div><!-- .lae-text -->
|
44 |
+
|
45 |
+
</div><!-- .lae-testimonial-user -->
|
46 |
+
|
47 |
+
</div><!-- .lae-testimonial -->
|
templates/addons/testimonials/loop.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loop - Testimonials Template
|
4 |
+
*
|
5 |
+
* This template can be overridden by copying it to mytheme/addons-for-elementor/addons/testimonials/loop.php
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) {
|
10 |
+
exit; // Exit if accessed directly
|
11 |
+
}
|
12 |
+
|
13 |
+
?>
|
14 |
+
<div class="lae-testimonials lae-grid-container <?php echo lae_get_grid_classes($settings); ?>">
|
15 |
+
|
16 |
+
<?php foreach ($settings['testimonials'] as $testimonial) : ?>
|
17 |
+
|
18 |
+
<?php $args['testimonial'] = $testimonial; ?>
|
19 |
+
|
20 |
+
<?php lae_get_template_part("addons/testimonials/content", $args); ?>
|
21 |
+
|
22 |
+
<?php endforeach; ?>
|
23 |
+
|
24 |
+
</div><!-- .lae-testimonials -->
|
25 |
+
|
26 |
+
<div class="lae-clearphp"></div>
|