TemplatesNext ToolKit - Version 3.1.8

Version Description

Download this release

Release Info

Developer marsian
Plugin Icon 128x128 TemplatesNext ToolKit
Version 3.1.8
Comparing to
See all releases

Code changes from version 3.1.7 to 3.1.8

css/grabbing.png ADDED
Binary file
css/tx-style.css CHANGED
@@ -1941,6 +1941,7 @@ span.tx-animate {
1941
  .tx-slider.softvignette .tx-slider-box .tx-slide-content .tx-slide-details p,
1942
  .tx-slider.hardvignette .tx-slider-box .tx-slide-content .tx-slide-details p,
1943
  .tx-slider.darkoverlay .tx-slider-box .tx-slide-content .tx-slide-details p,
 
1944
  .tx-slider.pattern .tx-slider-box .tx-slide-content .tx-slide-details p,
1945
  .tx-slider.siftvignette .tx-slider-box .tx-slide-content .tx-slide-details p {
1946
  background: transparent;
@@ -1953,6 +1954,7 @@ span.tx-animate {
1953
  .tx-slider.softvignette .tx-slider-box .tx-slide-content .tx-slide-title,
1954
  .tx-slider.hardvignette .tx-slider-box .tx-slide-content .tx-slide-title,
1955
  .tx-slider.darkoverlay .tx-slider-box .tx-slide-content .tx-slide-title,
 
1956
  .tx-slider.pattern .tx-slider-box .tx-slide-content .tx-slide-title {
1957
  background: transparent;
1958
  padding-left: 0px;
1941
  .tx-slider.softvignette .tx-slider-box .tx-slide-content .tx-slide-details p,
1942
  .tx-slider.hardvignette .tx-slider-box .tx-slide-content .tx-slide-details p,
1943
  .tx-slider.darkoverlay .tx-slider-box .tx-slide-content .tx-slide-details p,
1944
+ .tx-slider.custombg .tx-slider-box .tx-slide-content .tx-slide-details p,
1945
  .tx-slider.pattern .tx-slider-box .tx-slide-content .tx-slide-details p,
1946
  .tx-slider.siftvignette .tx-slider-box .tx-slide-content .tx-slide-details p {
1947
  background: transparent;
1954
  .tx-slider.softvignette .tx-slider-box .tx-slide-content .tx-slide-title,
1955
  .tx-slider.hardvignette .tx-slider-box .tx-slide-content .tx-slide-title,
1956
  .tx-slider.darkoverlay .tx-slider-box .tx-slide-content .tx-slide-title,
1957
+ .tx-slider.custombg .tx-slider-box .tx-slide-content .tx-slide-title,
1958
  .tx-slider.pattern .tx-slider-box .tx-slide-content .tx-slide-title {
1959
  background: transparent;
1960
  padding-left: 0px;
custom-post-types/portfolio-type.php CHANGED
@@ -10,8 +10,6 @@
10
 
11
  function tx_portfolio_register() {
12
 
13
- //$portfolio_permalinks = get_option( 'nx_portfolio_permalinks' );
14
- //$portfolio_permalink = empty( $portfolio_permalinks['portfolio_base'] ) ? _x( 'portfolio', 'slug', 'nx-admin' ) : $portfolio_permalinks['portfolio_base'];
15
  $portfolio_permalink = _x( 'portfolio', 'slug', 'nx-admin' );
16
 
17
  $labels = array(
10
 
11
  function tx_portfolio_register() {
12
 
 
 
13
  $portfolio_permalink = _x( 'portfolio', 'slug', 'nx-admin' );
14
 
15
  $labels = array(
custom-post-types/testimonials-type.php CHANGED
@@ -20,6 +20,7 @@
20
  'search_items' => __('Search Testimonials', "nx-admin"),
21
  'not_found' => __('No testimonials have been added yet', "nx-admin"),
22
  'not_found_in_trash' => __('Nothing found in Trash', "nx-admin"),
 
23
  'parent_item_colon' => ''
24
  );
25
 
20
  'search_items' => __('Search Testimonials', "nx-admin"),
21
  'not_found' => __('No testimonials have been added yet', "nx-admin"),
22
  'not_found_in_trash' => __('Nothing found in Trash', "nx-admin"),
23
+ 'featured_image' => __( 'Testimonial Photo', "nx-admin" ),
24
  'parent_item_colon' => ''
25
  );
26
 
inc/el-widgets/assets/css/txel-addons.css CHANGED
@@ -8,4 +8,139 @@
8
 
9
  .dialog-type-lightbox {
10
  z-index: 300010;
11
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
  .dialog-type-lightbox {
10
  z-index: 300010;
11
+ }
12
+
13
+ .tx-testiin2 {
14
+ padding: 16px;
15
+ }
16
+
17
+ .tx-testiin2 .tx-testi2-item span.tx-testi2-text {
18
+ display: block;
19
+ clear: both;
20
+ min-height: 48px;
21
+ padding-bottom: 16px;
22
+ }
23
+
24
+ .cite-wrap {
25
+ display: block;
26
+ clear: both;
27
+ }
28
+
29
+ .cite-wrap-inner {
30
+ display: inline-block;
31
+ position: relative;
32
+ padding-left: 120px;
33
+ min-height: 100px;
34
+
35
+ text-align: left;
36
+ }
37
+
38
+ .tx-testiin2 .tx-testi2-item span.tx-testi2-photo {
39
+ display: inline-block;
40
+ height: 100px;
41
+ width: 100px;
42
+ border-radius: 50px;
43
+ overflow: hidden;
44
+
45
+ position: absolute;
46
+ left: 0px;
47
+ top: 0px;
48
+ }
49
+
50
+ .tx-testiin2 .tx-testi2-item span.tx-testi2-photo img {
51
+ height: 100px;
52
+ width: 100px;
53
+ }
54
+
55
+ .tx-testiin2 .tx-testi2-item span.tx-testi2-name {
56
+ display: block;
57
+ clear: both;
58
+ margin-top: 12px;
59
+ font-size: 15px;
60
+ font-weight: 600;
61
+ line-height: 28px;
62
+ }
63
+
64
+ .tx-testiin2 .tx-testi2-item span.tx-testi2-desig {
65
+ display: block;
66
+ clear: both;
67
+ font-size: 12px;
68
+ color: #777;
69
+ padding-right: 6px;
70
+ line-height: 16px;
71
+ }
72
+
73
+ .tx-testiin2 .tx-testi2-item span.tx-testi2-org {
74
+ display: inline-block;
75
+ clear: both;
76
+ font-size: 12px;
77
+ line-height: 16px;
78
+ color: #464646;
79
+ font-weight: 500;
80
+ }
81
+
82
+ .tx-testiin2 .owl-controls {
83
+ position: relative;
84
+ padding-top: 12px;
85
+ }
86
+
87
+ .tx-testiin2 .owl-controls .owl-buttons {
88
+ display: inline-block;
89
+ }
90
+
91
+ .tx-testiin2 .owl-controls .owl-buttons .owl-prev,
92
+ .tx-testiin2 .owl-controls .owl-buttons .owl-next {
93
+ display: inline-block;
94
+ height: 24px;
95
+ width: 24px;
96
+ font-size: 12px;
97
+ text-align: center;
98
+ line-height: 24px;
99
+ border: 1px solid #bbb;
100
+ margin: 1px;
101
+
102
+ transition-property: all;
103
+ transition-duration: 0.3s;
104
+ transition-timing-function: ease-in-out;
105
+ transition-delay: 0s;
106
+ }
107
+
108
+
109
+ .tx-testiin2 .owl-controls .owl-buttons .owl-prev span,
110
+ .tx-testiin2 .owl-controls .owl-buttons .owl-next span {
111
+ display: block;
112
+ height: 24px;
113
+ width: 24px;
114
+ font-size: 12px;
115
+ text-align: center;
116
+ line-height: 24px;
117
+ color: #999;
118
+
119
+ transition-property: all;
120
+ transition-duration: 0.3s;
121
+ transition-timing-function: ease-in-out;
122
+ transition-delay: 0s;
123
+ }
124
+
125
+ .tx-testiin2 .owl-controls .owl-buttons .owl-prev:hover span,
126
+ .tx-testiin2 .owl-controls .owl-buttons .owl-next:hover span {
127
+ color: #FFF;
128
+ background-color: #666;
129
+ }
130
+
131
+ .tx-testiin2 .owl-controls .owl-buttons .owl-prev span:before,
132
+ .tx-testiin2 .owl-controls .owl-buttons .owl-next span:before {
133
+ font-size: 14px;
134
+ line-height: 24px;
135
+ }
136
+
137
+ .tx-align-center .owl-controls {
138
+ text-align: center;
139
+ }
140
+ .tx-align-left .owl-controls {
141
+ text-align: left;
142
+ }
143
+ .tx-align-right .owl-controls {
144
+ text-align: right;
145
+ }
146
+
inc/el-widgets/assets/js/tx-slider.js CHANGED
@@ -10,16 +10,10 @@
10
 
11
  if (tx_slider.length > 0) {
12
 
13
- console.log( "testing elm" );
14
-
15
  var _this = tx_slider;
16
  var slider_delay = _this.data('delay');
17
  var slider_transition = _this.data('transition');
18
 
19
- if( slider_fullscreen == 'yes' )
20
- {
21
- }
22
-
23
  if( slider_transition == 'slide' )
24
  {
25
  tx_slider.owlCarousel({
10
 
11
  if (tx_slider.length > 0) {
12
 
 
 
13
  var _this = tx_slider;
14
  var slider_delay = _this.data('delay');
15
  var slider_transition = _this.data('transition');
16
 
 
 
 
 
17
  if( slider_transition == 'slide' )
18
  {
19
  tx_slider.owlCarousel({
inc/el-widgets/assets/js/tx-testimonials.js ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ( function( $ ) {
2
+ /**
3
+ * @param $scope The Widget wrapper element as a jQuery element
4
+ * @param $ The jQuery alias
5
+ */
6
+ var WidgetTxTestimonials = function( $scope, $ ) {
7
+
8
+ var tx_testimonials = $scope.find('.tx-testiin2');
9
+
10
+ if ( tx_testimonials.length > 0 ) {
11
+
12
+ console.log("Testing Testi");
13
+
14
+ var _this = tx_testimonials;
15
+ var testi_delay = _this.data('delay');
16
+
17
+ tx_testimonials.owlCarousel({
18
+ autoPlay : testi_delay,
19
+ stopOnHover : true,
20
+ navigation: true,
21
+ paginationSpeed : 1000,
22
+ goToFirstSpeed : 2000,
23
+ singleItem : true,
24
+ autoHeight : true,
25
+ navigationText: ['<span class="genericon genericon-leftarrow"></span>','<span class="genericon genericon-rightarrow"></span>'],
26
+ addClassActive: true,
27
+ theme : "tx-owl-theme",
28
+ pagination : true
29
+ });
30
+
31
+ }
32
+
33
+ };
34
+
35
+ // Make sure you run this code under Elementor.
36
+ $( window ).on( 'elementor/frontend/init', function() {
37
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/tx-testimonials.default', WidgetTxTestimonials );
38
+ } );
39
+ } )( jQuery );
inc/el-widgets/elementor-addon.php CHANGED
@@ -63,7 +63,8 @@ class Plugin {
63
  wp_register_script( 'elementor-tx-portfolios', plugins_url( '/assets/js/tx-portfolios.js', __FILE__ ), [ 'jquery' ], false, true );
64
  wp_register_script( 'elementor-tx-slider', plugins_url( '/assets/js/tx-slider.js', __FILE__ ), [ 'jquery' ], false, true );
65
  wp_register_script( 'elementor-tx-team', plugins_url( '/assets/js/tx-team.js', __FILE__ ), [ 'jquery' ], false, true );
66
- wp_register_script( 'elementor-tx-posts', plugins_url( '/assets/js/tx-posts.js', __FILE__ ), [ 'jquery' ], false, true );
 
67
  }
68
 
69
  public function txel_widget_styles() {
@@ -83,7 +84,8 @@ class Plugin {
83
  require_once( __DIR__ . '/widgets/portfolios.php' );
84
  require_once( __DIR__ . '/widgets/slider.php' );
85
  require_once( __DIR__ . '/widgets/team.php' );
86
- require_once( __DIR__ . '/widgets/txposts.php' );
 
87
  if(class_exists('WPCF7')) {
88
  require_once( __DIR__ . '/widgets/wpcf7.php' );
89
  }
@@ -108,7 +110,8 @@ class Plugin {
108
  \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_team() );
109
  \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_portfolio() );
110
  \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_slider() );
111
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_posts() );
 
112
  if(class_exists('WPCF7')) {
113
  \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_wpcf7() );
114
  }
63
  wp_register_script( 'elementor-tx-portfolios', plugins_url( '/assets/js/tx-portfolios.js', __FILE__ ), [ 'jquery' ], false, true );
64
  wp_register_script( 'elementor-tx-slider', plugins_url( '/assets/js/tx-slider.js', __FILE__ ), [ 'jquery' ], false, true );
65
  wp_register_script( 'elementor-tx-team', plugins_url( '/assets/js/tx-team.js', __FILE__ ), [ 'jquery' ], false, true );
66
+ wp_register_script( 'elementor-tx-posts', plugins_url( '/assets/js/tx-posts.js', __FILE__ ), [ 'jquery' ], false, true );
67
+ wp_register_script( 'elementor-tx-testimonials', plugins_url( '/assets/js/tx-testimonials.js', __FILE__ ), [ 'jquery' ], false, true );
68
  }
69
 
70
  public function txel_widget_styles() {
84
  require_once( __DIR__ . '/widgets/portfolios.php' );
85
  require_once( __DIR__ . '/widgets/slider.php' );
86
  require_once( __DIR__ . '/widgets/team.php' );
87
+ require_once( __DIR__ . '/widgets/txposts.php' );
88
+ require_once( __DIR__ . '/widgets/testimonials.php' );
89
  if(class_exists('WPCF7')) {
90
  require_once( __DIR__ . '/widgets/wpcf7.php' );
91
  }
110
  \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_team() );
111
  \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_portfolio() );
112
  \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_slider() );
113
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_posts() );
114
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_testimonials() );
115
  if(class_exists('WPCF7')) {
116
  \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Widgets\tx_wpcf7() );
117
  }
inc/el-widgets/widgets/no-image.png ADDED
Binary file
inc/el-widgets/widgets/portfolios.php CHANGED
@@ -116,6 +116,18 @@ class tx_portfolio extends Widget_Base {
116
  ],
117
  ]
118
  );
 
 
 
 
 
 
 
 
 
 
 
 
119
  $this->add_control(
120
  'items',
121
  [
@@ -206,15 +218,13 @@ class tx_portfolio extends Widget_Base {
206
  protected function render() {
207
  $settings = $this->get_settings_for_display();
208
 
209
- //echo '[tx_portfolio style="' . $settings['style'] . '" items="' . $settings['items'] . '" columns="' . $settings['columns'] . '" hide_cat="' . $settings['hide_cat'] . '" hide_excerpt="' . $settings['hide_excerpt'] . '" show_pagination="' . $settings['show_pagination'] . '" carousel="' . $settings['carousel'] . '"]';
210
- //echo do_shortcode('[tx_portfolio style="' . $settings['style'] . '" items="' . $settings['items'] . '" columns="' . $settings['columns'] . '" hide_cat="' . $settings['hide_cat'] . '" hide_excerpt="' . $settings['hide_excerpt'] . '" show_pagination="' . $settings['show_pagination'] . '" carousel="' . $settings['carousel'] . '"]');
211
-
212
  $style = $settings['style'];
213
  $items = $settings['items'];
214
  $columns = $settings['columns'];
215
  $hide_cat = $settings['hide_cat'];
216
  $hide_excerpt = $settings['hide_excerpt'];
217
  $show_pagination = $settings['show_pagination'];
 
218
  $carousel = '';
219
 
220
  $blog_term = '';
@@ -255,9 +265,9 @@ class tx_portfolio extends Widget_Base {
255
 
256
  $cat_slug = '';
257
 
258
- if( !empty($blog_term) ) {
259
- $cat_slug = $blog_term;
260
- }
261
 
262
  wp_reset_query();
263
  global $post;
@@ -316,7 +326,8 @@ class tx_portfolio extends Widget_Base {
316
 
317
  $return_string .= '</div></div>';
318
  endwhile; else :
319
- $return_string .= '<div class="tx-noposts"><p>Sorry, no portfolio matched your criteria. Please add few portfolio along with featured images.</p></div>';
 
320
  endif;
321
 
322
  $return_string .= '</div>';
116
  ],
117
  ]
118
  );
119
+ $this->add_control(
120
+ 'category',
121
+ [
122
+ 'label' => __( 'Category', 'tx' ),
123
+ 'type' => \Elementor\Controls_Manager::SELECT2,
124
+ 'options' => tx_get_category_list_el('portfolio-category'),
125
+ 'default' => 'all',
126
+ 'dynamic' => [
127
+ 'active' => true,
128
+ ],
129
+ ]
130
+ );
131
  $this->add_control(
132
  'items',
133
  [
218
  protected function render() {
219
  $settings = $this->get_settings_for_display();
220
 
 
 
 
221
  $style = $settings['style'];
222
  $items = $settings['items'];
223
  $columns = $settings['columns'];
224
  $hide_cat = $settings['hide_cat'];
225
  $hide_excerpt = $settings['hide_excerpt'];
226
  $show_pagination = $settings['show_pagination'];
227
+ $category = $settings['category'];
228
  $carousel = '';
229
 
230
  $blog_term = '';
265
 
266
  $cat_slug = '';
267
 
268
+ if ( !empty($category) && $category != 'all' ) {
269
+ $cat_slug = $category;
270
+ }
271
 
272
  wp_reset_query();
273
  global $post;
326
 
327
  $return_string .= '</div></div>';
328
  endwhile; else :
329
+ $return_string .= '<div class="tx-noposts"><p>Sorry, no portfolio matched your criteria. <br />';
330
+ $return_string .= 'Please add few portfolio along with featured images using Dashboard menu "Portfolio" &gt; "Add New"..</p></div>';
331
  endif;
332
 
333
  $return_string .= '</div>';
inc/el-widgets/widgets/slider.php CHANGED
@@ -434,7 +434,8 @@ class tx_slider extends Widget_Base {
434
 
435
 
436
  endwhile; else :
437
- $return_string .= '<div class="tx-noposts"><p>Sorry, no slider matched your criteria. Please add few slides via menu "itrans slider" along with featured image.</p></div>';
 
438
  endif;
439
 
440
  $return_string .= '</div>';
434
 
435
 
436
  endwhile; else :
437
+ $return_string .= '<div class="tx-noposts"><p>Sorry, no slider matched your criteria. <br />';
438
+ $return_string .= 'Please add few slides via Dasboard menu "itrans slider" along with featured image.</p></div>';
439
  endif;
440
 
441
  $return_string .= '</div>';
inc/el-widgets/widgets/team.php CHANGED
@@ -218,7 +218,8 @@ class tx_team extends Widget_Base {
218
 
219
 
220
  endwhile; else :
221
- $return_string .= '<div class="tx-noposts"><p>Sorry, no team member matched your criteria. Please add few team member along with featured image.</p></div>';
 
222
  endif;
223
 
224
  $return_string .= '<div class="clear"></div>';
218
 
219
 
220
  endwhile; else :
221
+ $return_string .= '<div class="tx-noposts"><p>Sorry, no team member matched your criteria. <br />';
222
+ $return_string .= 'Please add few team member along with featured image using Dashboard menu "Team" &gt; "Add New".</p></div>';
223
  endif;
224
 
225
  $return_string .= '<div class="clear"></div>';
inc/el-widgets/widgets/testimonials.php ADDED
@@ -0,0 +1,252 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace TXElementorAddons\Widgets;
3
+
4
+ use Elementor\Widget_Base;
5
+ use Elementor\Controls_Manager;
6
+
7
+
8
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
+
10
+ /**
11
+ * @since 1.1.0
12
+ */
13
+ class tx_testimonials extends Widget_Base {
14
+
15
+ /**
16
+ * Retrieve the widget name.
17
+ *
18
+ * @since 1.1.0
19
+ *
20
+ * @access public
21
+ *
22
+ * @return string Widget name.
23
+ */
24
+ public function get_name() {
25
+ return 'tx-testimonials';
26
+ }
27
+
28
+ /**
29
+ * Retrieve the widget title.
30
+ *
31
+ * @since 1.1.0
32
+ *
33
+ * @access public
34
+ *
35
+ * @return string Widget title.
36
+ */
37
+ public function get_title() {
38
+ return __( 'Testimonials', 'tx' );
39
+ }
40
+
41
+ /**
42
+ * Retrieve the widget icon.
43
+ *
44
+ * @since 1.1.0
45
+ *
46
+ * @access public
47
+ *
48
+ * @return string Widget icon.
49
+ */
50
+ public function get_icon() {
51
+ return 'eicon-blockquote';
52
+ }
53
+
54
+ /**
55
+ * Retrieve the list of categories the widget belongs to.
56
+ *
57
+ * Used to determine where to display the widget in the editor.
58
+ *
59
+ * Note that currently Elementor supports only one category.
60
+ * When multiple categories passed, Elementor uses the first one.
61
+ *
62
+ * @since 1.1.0
63
+ *
64
+ * @access public
65
+ *
66
+ * @return array Widget categories.
67
+ */
68
+ public function get_categories() {
69
+ return [ 'templatesnext-addons' ];
70
+ }
71
+
72
+ /**
73
+ * Retrieve the list of scripts the widget depended on.
74
+ *
75
+ * Used to set scripts dependencies required to run the widget.
76
+ *
77
+ * @since 1.0.0
78
+ *
79
+ * @access public
80
+ *
81
+ * @return array Widget scripts dependencies.
82
+ */
83
+ public function get_script_depends() {
84
+ return [ 'elementor-tx-testimonials' ];
85
+ }
86
+ /**
87
+ * Register the widget controls.
88
+ *
89
+ * Adds different input fields to allow the user to change and customize the widget settings.
90
+ *
91
+ * @since 1.1.0
92
+ *
93
+ * @access protected
94
+ */
95
+
96
+
97
+ protected function _register_controls() {
98
+ $this->start_controls_section(
99
+ 'section_content',
100
+ [
101
+ 'label' => __( 'Testimonials Settings', 'tx' ),
102
+ ]
103
+ );
104
+ $this->add_control(
105
+ 'items',
106
+ [
107
+ 'label' => __( 'Items', 'tx' ),
108
+ 'type' => \Elementor\Controls_Manager::NUMBER,
109
+ 'min' => 1,
110
+ 'max' => 20,
111
+ 'step' => 1,
112
+ 'default' => 4,
113
+ 'dynamic' => [
114
+ 'active' => true,
115
+ ],
116
+
117
+ ]
118
+ );
119
+ $this->add_control(
120
+ 'align',
121
+ [
122
+ 'label' => __( 'Content Alignment', 'tx' ),
123
+ 'type' => \Elementor\Controls_Manager::CHOOSE,
124
+ 'options' => [
125
+ 'left' => [
126
+ 'title' => __( 'Left', 'tx' ),
127
+ 'icon' => 'fa fa-align-left',
128
+ ],
129
+ 'center' => [
130
+ 'title' => __( 'Center', 'tx' ),
131
+ 'icon' => 'fa fa-align-center',
132
+ ],
133
+ 'right' => [
134
+ 'title' => __( 'Right', 'tx' ),
135
+ 'icon' => 'fa fa-align-right',
136
+ ],
137
+ ],
138
+ 'default' => 'center',
139
+ 'dynamic' => [
140
+ 'active' => true,
141
+ ],
142
+
143
+ ]
144
+ );
145
+ $this->add_control(
146
+ 'delay',
147
+ [
148
+ 'label' => __( 'Delay In seconds', 'tx' ),
149
+ 'type' => \Elementor\Controls_Manager::NUMBER,
150
+ 'min' => 2,
151
+ 'max' => 40,
152
+ 'step' => 1,
153
+ 'default' => 8,
154
+ 'dynamic' => [
155
+ 'active' => true,
156
+ ],
157
+ ]
158
+ );
159
+
160
+ $this->end_controls_section();
161
+ }
162
+
163
+ /**
164
+ * Render the widget output on the frontend.
165
+ *
166
+ * Written in PHP and used to generate the final HTML.
167
+ *
168
+ * @since 1.1.0
169
+ *
170
+ * @access protected
171
+ */
172
+ protected function render() {
173
+
174
+ $settings = $this->get_settings_for_display();
175
+
176
+ $return_string = '';
177
+
178
+ $posts_per_page = intval( $settings['items'] );
179
+ $columns = 4;
180
+ $delay = intval( $settings['delay'] )*1000;
181
+ $align = $settings['align'];
182
+
183
+ $tx_class = '';
184
+ $posts_per_page = intval( $posts_per_page );
185
+ $width = 200;
186
+ $height = 200;
187
+
188
+ $return_string = '';
189
+ $return_string .= '<div class="tx-testiin2 tx-align-'.$align.'" data-delay="' . $delay . '">';
190
+
191
+
192
+ wp_reset_query();
193
+ global $post;
194
+
195
+ $args = array(
196
+ 'posts_per_page' => $posts_per_page,
197
+ 'post_type' => 'testimonials',
198
+ 'fullwidth' => 0,
199
+ 'orderby' => 'date',
200
+ 'order' => 'DESC'
201
+ );
202
+
203
+ query_posts( $args );
204
+
205
+ if ( have_posts() ) : while ( have_posts() ) : the_post();
206
+
207
+ $testi_name = esc_attr(rwmb_meta('tx_testi_name'));
208
+ $testi_desig = esc_attr(rwmb_meta('tx_testi_desig'));
209
+ $testi_organ = esc_attr(rwmb_meta('tx_testi_company'));
210
+
211
+ $full_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' );
212
+ $image_url = aq_resize( $full_image_url[0], $width, $height, true, false, true );
213
+
214
+ if ( empty($image_url['0']) ) {
215
+ $image_url['0'] = plugin_dir_url( __FILE__ ) . 'no-image.png';
216
+ }
217
+
218
+ $return_string .= '<div class="tx-testi2-item">';
219
+ $return_string .= '<span class="tx-testi2-text" style="text-align: '.$align.'">'.get_the_content().'</span>';
220
+
221
+ $return_string .= '<span class="cite-wrap" style="text-align: '.$align.'"><span class="cite-wrap-inner">';
222
+ $return_string .= '<span class="tx-testi2-photo"><img src="'.esc_url($image_url['0']).'" alt="'.$testi_name.'" /></span>';
223
+ $return_string .= '<span class="tx-testi2-name themecolor">'.$testi_name.'</span>';
224
+ $return_string .= '<span class="tx-testi2-desig">'.$testi_desig.', </span>';
225
+ $return_string .= '<span class="tx-testi2-org">'.$testi_organ.'</span>';
226
+ $return_string .= '</span></span>';
227
+
228
+ $return_string .= '</div>';
229
+ endwhile; else :
230
+ $return_string .= '<div class="tx-noposts"><p>Sorry, no testimonial matched your criteria. <br />';
231
+ $return_string .= 'Add few testimonials using Dashboard menu "Testimonials" &gt; "Add New"..</p></div>';
232
+ endif;
233
+
234
+ $return_string .= '</div>';
235
+
236
+ wp_reset_query();
237
+
238
+ echo $return_string;
239
+
240
+ }
241
+
242
+ /**
243
+ * Render the widget output in the editor.
244
+ *
245
+ * Written as a Backbone JavaScript template and used to generate the live preview.
246
+ *
247
+ * @since 1.1.0
248
+ *
249
+ * @access protected
250
+ */
251
+ protected function _content_template() {}
252
+ }
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: marsian
3
  Tags: shortcode, shortcodes, columns, column, section, sections, portfolio, testimonial, border, borders, button, buttons, masonry, posts, post_type, font awesome, icons, fontawesome
4
  Requires at least: 3.6
5
  Tested up to: 5.2
6
- Stable tag: 3.1.7
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -22,7 +22,8 @@ Essential addons for your websites like Portfolios, Team Members, Testiminials,
22
  [Team](http://www.wp-demos.com/i-spirit/tx-demo/elementor-team-contact-form-7/) - Team widget for elementor to show team member.
23
  [Posts Grid](http://www.wp-demos.com/i-spirit/tx-demo/product-lists-post-grids/#postgrid) - Create Posts Grid with this elementor widget.
24
  [Contact Form 7](http://www.wp-demos.com/i-spirit/tx-demo/elementor-team-contact-form-7/#contactform7) - An elementor widget for Contact Form 7.
25
- [Products Lists](http://www.wp-demos.com/i-spirit/tx-demo/product-lists-post-grids/) - this widget combines elementor with WooCommerce.
 
26
 
27
  #### SiteOrgin Page Builder Demo
28
  [Home Page](http://www.wp-demos.com/i-spirit/tx-demo/) - Created with **TemplatesNext Toolkit** widgets for SiteOrigin Page Builder.
@@ -30,8 +31,9 @@ Essential addons for your websites like Portfolios, Team Members, Testiminials,
30
  #### Shortcodes Demos And Documentations
31
  [Demos And Documentation](http://www.templatesnext.org/icreate/?page_id=541) - Demos created with shortcode generators and documentations.
32
 
33
- Some of the shortcodes/widgets may only work properly with TemplatesNext Themes themes.
34
-
 
35
 
36
  == Installation ==
37
 
@@ -39,6 +41,10 @@ Install the plugin into the `/wp-content/plugins/` folder, and activate it.
39
 
40
 
41
  == Changelog ==
 
 
 
 
42
  = 3.1.7 =
43
  * Added: Elementor Slider Widget
44
  * Added: Elementor Portfolio Widget
@@ -110,10 +116,8 @@ Install the plugin into the `/wp-content/plugins/` folder, and activate it.
110
 
111
  == Screenshots ==
112
 
113
-
114
- 1. Fill in the post type Portfolio, Testimonial, itrans slider and team. Use the [tx] button to open the shortcode generator popup.
115
- 2. Choose the shortcode to generate. Enter/select your shortcode parameters and insert in your page.
116
- 3. Using with plugin *Page Builder by SiteOrigin*
117
 
118
 
119
 
3
  Tags: shortcode, shortcodes, columns, column, section, sections, portfolio, testimonial, border, borders, button, buttons, masonry, posts, post_type, font awesome, icons, fontawesome
4
  Requires at least: 3.6
5
  Tested up to: 5.2
6
+ Stable tag: 3.1.8
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
22
  [Team](http://www.wp-demos.com/i-spirit/tx-demo/elementor-team-contact-form-7/) - Team widget for elementor to show team member.
23
  [Posts Grid](http://www.wp-demos.com/i-spirit/tx-demo/product-lists-post-grids/#postgrid) - Create Posts Grid with this elementor widget.
24
  [Contact Form 7](http://www.wp-demos.com/i-spirit/tx-demo/elementor-team-contact-form-7/#contactform7) - An elementor widget for Contact Form 7.
25
+ [Products Lists](http://www.wp-demos.com/i-spirit/tx-demo/product-lists-post-grids/) - This widget combines elementor with WooCommerce.
26
+ [Testimonials](http://www.wp-demos.com/i-spirit/tx-demo/templatesnext-toolkit-portfolio/#tx-testimonials) - A testimonial Carousel widget for elementor.
27
 
28
  #### SiteOrgin Page Builder Demo
29
  [Home Page](http://www.wp-demos.com/i-spirit/tx-demo/) - Created with **TemplatesNext Toolkit** widgets for SiteOrigin Page Builder.
31
  #### Shortcodes Demos And Documentations
32
  [Demos And Documentation](http://www.templatesnext.org/icreate/?page_id=541) - Demos created with shortcode generators and documentations.
33
 
34
+ #### Themes Built To Work With TemplatesNext ToolKit
35
+ [i-excel](https://wordpress.org/themes/i-excel/), [i-craft](https://wordpress.org/themes/i-craft/), [i-design](https://wordpress.org/themes/i-design/), [i-max](https://wordpress.org/themes/i-max/)
36
+ Some of the shortcodes/widgets may only work properly with above TemplatesNext Themes.
37
 
38
  == Installation ==
39
 
41
 
42
 
43
  == Changelog ==
44
+ = 3.1.7 =
45
+ * Added: Elementor Testimonial Widget
46
+ * Fix: Missing Grabbing png
47
+
48
  = 3.1.7 =
49
  * Added: Elementor Slider Widget
50
  * Added: Elementor Portfolio Widget
116
 
117
  == Screenshots ==
118
 
119
+ 1. Slider, Portfolio, WooCommerce Product Listing, Team, Contact Form 7, Testimonials Widgets for Elementor.
120
+ 2. Adds menu item for post type itrans Slider, Portfolio, Team and Testimonials
 
 
121
 
122
 
123
 
screenshot-1.gif DELETED
Binary file
screenshot-1.png ADDED
Binary file
screenshot-2.gif DELETED
Binary file
screenshot-2.png ADDED
Binary file
screenshot-3.gif DELETED
Binary file
tx-toolkit.php CHANGED
@@ -3,7 +3,7 @@
3
  /*
4
  Plugin Name: TemplatesNext ToolKit
5
  Description: Custom Portfolio and Shortcode functionality for TemplatesNext Wordpress Themes
6
- Version: 3.1.7
7
  Author: TemplatesNext
8
  Author URI: http://templatesnext.org/
9
  License: GPLv2 or later
3
  /*
4
  Plugin Name: TemplatesNext ToolKit
5
  Description: Custom Portfolio and Shortcode functionality for TemplatesNext Wordpress Themes
6
+ Version: 3.1.8
7
  Author: TemplatesNext
8
  Author URI: http://templatesnext.org/
9
  License: GPLv2 or later