Photo Gallery by Supsystic - Version 1.15.9

Version Description

Download this release

Release Info

Developer supsystic.com
Plugin Icon 128x128 Photo Gallery by Supsystic
Version 1.15.9
Comparing to
See all releases

Code changes from version 1.15.8 to 1.15.9

Files changed (51) hide show
  1. app/SupsysticGallery.php +2 -2
  2. app/assets/css/gird-gallery.css +1 -1
  3. app/assets/img/kinsta_banner.png +0 -0
  4. app/assets/js/grid-gallery.js +3 -3
  5. app/configs/modules/promo.php +1 -1
  6. app/templates/grid-gallery.twig +42 -72
  7. index.php +4 -4
  8. readme.txt +4 -1
  9. src/GridGallery/Core/Module.php +35 -34
  10. src/GridGallery/Featuredplugins/Controller.php +0 -54
  11. src/GridGallery/Featuredplugins/Module.php +0 -61
  12. src/GridGallery/Featuredplugins/assets/css/admin.featured-plugins.css +0 -282
  13. src/GridGallery/Featuredplugins/assets/css/img/bg_texture.png +0 -0
  14. src/GridGallery/Featuredplugins/assets/img/256.png +0 -0
  15. src/GridGallery/Featuredplugins/assets/img/Backup_256.png +0 -0
  16. src/GridGallery/Featuredplugins/assets/img/Coming_Soon_256.png +0 -0
  17. src/GridGallery/Featuredplugins/assets/img/Contact_Form_256.png +0 -0
  18. src/GridGallery/Featuredplugins/assets/img/Data_Tables_256.png +0 -0
  19. src/GridGallery/Featuredplugins/assets/img/Digital_Publication_256.png +0 -0
  20. src/GridGallery/Featuredplugins/assets/img/Gallery_256.png +0 -0
  21. src/GridGallery/Featuredplugins/assets/img/Google_Maps_256.png +0 -0
  22. src/GridGallery/Featuredplugins/assets/img/Live_Chat_256.png +0 -0
  23. src/GridGallery/Featuredplugins/assets/img/Popup_256.png +0 -0
  24. src/GridGallery/Featuredplugins/assets/img/Pricing_Table_256.png +0 -0
  25. src/GridGallery/Featuredplugins/assets/img/Slider_256.png +0 -0
  26. src/GridGallery/Featuredplugins/assets/img/Social_Buttons_256.png +0 -0
  27. src/GridGallery/Featuredplugins/assets/img/heatmap.jpg +0 -0
  28. src/GridGallery/Featuredplugins/assets/img/icon-256x256.png +0 -0
  29. src/GridGallery/Featuredplugins/assets/img/kinsta_banner.png +0 -0
  30. src/GridGallery/Featuredplugins/assets/img/shapes.jpg +0 -0
  31. src/GridGallery/Featuredplugins/views/index.twig +0 -56
  32. src/GridGallery/Galleries/Module.php +2 -2
  33. src/GridGallery/Overview/Controller.php +69 -6
  34. src/GridGallery/Overview/Module.php +2 -2
  35. src/GridGallery/Overview/assets/css/overview-styles.css +239 -1
  36. src/GridGallery/Overview/assets/img/overview-01.png +0 -0
  37. src/GridGallery/Overview/assets/img/overview-02.png +0 -0
  38. src/GridGallery/Overview/assets/img/overview-03.png +0 -0
  39. src/GridGallery/Overview/assets/img/plugin-icon.png +0 -0
  40. src/GridGallery/Overview/assets/img/supsystic-logo-small.png +0 -0
  41. src/GridGallery/Overview/assets/js/overview-settings.js +128 -4
  42. src/GridGallery/Overview/views/index.twig +129 -96
  43. src/GridGallery/Promo/Model/Promo.php +3 -9
  44. src/GridGallery/Promo/Module.php +22 -24
  45. src/GridGallery/Promo/assets/js/admin.plugins.js +0 -52
  46. src/GridGallery/Promo/views/discountMessage.twig +1 -1
  47. src/GridGallery/Settings/Module.php +2 -10
  48. src/GridGallery/Settings/views/index.twig +2 -12
  49. src/GridGallery/Ui/Module.php +2 -2
  50. vendor/Rsc/Environment.php +4 -4
  51. vendor/Twig/Extension/Staging.php +0 -4
app/SupsysticGallery.php CHANGED
@@ -44,8 +44,8 @@ class SupsysticGallery
44
  'plugin_source' => dirname(dirname(__FILE__)) . '/src',
45
  'plugin_title_name' => 'Photo Gallery by Supsystic',
46
  'plugin_menu' => array(
47
- 'page_title' => __('Gallery by Supsystic', 'sgg'),
48
- 'menu_title' => __('Gallery by Supsystic', 'sgg'),
49
  'capability' => 'manage_options',
50
  'menu_slug' => 'supsystic-gallery',
51
  'icon_url' => 'dashicons-format-gallery',
44
  'plugin_source' => dirname(dirname(__FILE__)) . '/src',
45
  'plugin_title_name' => 'Photo Gallery by Supsystic',
46
  'plugin_menu' => array(
47
+ 'page_title' => __('Photo Gallery by Supsystic', 'sgg'),
48
+ 'menu_title' => __('Photo Gallery by Supsystic', 'sgg'),
49
  'capability' => 'manage_options',
50
  'menu_slug' => 'supsystic-gallery',
51
  'icon_url' => 'dashicons-format-gallery',
app/assets/css/gird-gallery.css CHANGED
@@ -117,4 +117,4 @@
117
  border: 1px solid #2ecc71;
118
  border-left: 5px solid #27ae60;
119
  background: #84FAB6;
120
- }
117
  border: 1px solid #2ecc71;
118
  border-left: 5px solid #27ae60;
119
  background: #84FAB6;
120
+ }
app/assets/img/kinsta_banner.png DELETED
Binary file
app/assets/js/grid-gallery.js CHANGED
@@ -150,10 +150,10 @@
150
  content.css({'height': 'auto'});
151
 
152
  if (content.outerHeight() > navigation.outerHeight() || container.outerHeight > navigation.outerHeight()) {
153
- navigation.css({'height': container.css('heigth') + 'px'});
154
  } else {
155
- container.css({'height': navigation.outerHeight() + 'px'});
156
- content.css({'height': navigation.outerHeight() + 'px'});
157
  }
158
  }
159
 
150
  content.css({'height': 'auto'});
151
 
152
  if (content.outerHeight() > navigation.outerHeight() || container.outerHeight > navigation.outerHeight()) {
153
+ navigation.css({'min-height': container.css('heigth') + 'px'});
154
  } else {
155
+ container.css({'min-height': navigation.outerHeight() + 'px'});
156
+ content.css({'min-height': navigation.outerHeight() + 'px'});
157
  }
158
  }
159
 
app/configs/modules/promo.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php return array(
2
- 'promo_plugin_name' => 'Gallery by Supsystic',
3
  'promo_plugin_url' => 'http://supsystic.com/plugins/photo-gallery/',
4
  'promo_video_url' => '',
5
  'promo_plugin_features' => array(
1
  <?php return array(
2
+ 'promo_plugin_name' => 'Photo Gallery by Supsystic',
3
  'promo_plugin_url' => 'http://supsystic.com/plugins/photo-gallery/',
4
  'promo_video_url' => '',
5
  'promo_plugin_features' => array(
app/templates/grid-gallery.twig CHANGED
@@ -11,11 +11,11 @@
11
  <div class="supsystic-plugin{% if pageOptions.isSettingPage == 1 %} {{ ' sgg-setting-page' }} {% endif %}">
12
  {% block header %}
13
  <div class="supsystic-breadcrumbs">
14
- Galleries
15
  </div>
16
  {% endblock %}
17
  <section class="supsystic-content">
18
- <nav class="supsystic-navigation supsystic-sticky" style="top: 0px;">
19
  <ul>
20
  <li class="supsystic-sticky {% if request.query.module == 'overview' %} active{% endif %}">
21
  <a href="{{ environment.generateUrl('overview') }}">
@@ -58,76 +58,6 @@
58
  </li>
59
  {% endif %}
60
 
61
- <li class="supsystic-sticky {% if request.query.module == 'featuredplugins' %} active{% endif %}">
62
- <a href="{{ environment.generateUrl('featuredplugins') }}">
63
- <i class="fa fa-heart"></i>
64
- <span class="gg-sps-sticky-link">{{ translate('Featured Plugins') }}</span>
65
- </a>
66
- </li>
67
-
68
- {# Uncomment to enable images tab #}
69
- {#<li class="supsystic-sticky {% if request.query.module == 'photos' or request.query.module is null %} active{% endif %}">
70
- <a href="{{ environment.generateUrl('photos') }}">
71
- <i class="fa fa-picture-o"></i>
72
- {{ environment.translate('Images') }}
73
- </a>
74
- </li>#}
75
-
76
- {# Ucomment to enable social tabs #}
77
- {#<li class="supsystic-sticky {% if request.query.module == 'insta' or request.query.module is null %} active{% endif %}">
78
- <a href="{{ environment.generateUrl('insta') }}">
79
- <i class="fa fa-instagram"></i>
80
- {{ environment.translate('Instagram') }}
81
- </a>
82
- </li>
83
- <li {% if environment.isPro() == false %} class="supsystic-pro" {% endif %} class="supsystic-sticky {% if request.query.module == 'flickr' or request.query.module is null %} active{% endif %}">
84
- {% if environment.isPro() == false %}
85
- <a href="http://supsystic.com/plugins/photo-gallery/">
86
- <i class="fa fa-unlock"></i>
87
- {{ environment.translate('Flickr') }}
88
- </a>
89
- {% else %}
90
- <a href="{{ environment.generateUrl('flickr') }}">
91
- <i class="fa fa-flickr"></i>
92
- {{ environment.translate('Flickr') }}
93
- </a>
94
- {% endif %}
95
- </li>
96
- <li {% if environment.isPro() == false %} class="supsystic-pro" {% endif %} class="supsystic-sticky {% if request.query.module == 'tumblr' or request.query.module is null %}active{% endif %}">
97
- {% if environment.isPro() == false %}
98
- <a href="http://supsystic.com/plugins/photo-gallery/">
99
- <i class="fa fa-unlock"></i>
100
- {{ environment.translate('Tumblr') }}
101
- </a>
102
- {% else %}
103
- <a href="{{ environment.generateUrl('tumblr') }}">
104
- <i class="fa fa-tumblr"></i>
105
- {{ environment.translate('Tumblr') }}
106
- </a>
107
- {% endif %}
108
- </li>
109
- <li {% if environment.isPro() == false %} class="supsystic-pro" {% endif %} class="supsystic-sticky {% if request.query.module == 'facebook' or request.query.module is null %}active{% endif %}">
110
- {% if environment.isPro() == false %}
111
- <a href="http://supsystic.com/plugins/photo-gallery/">
112
- <i class="fa fa-unlock"></i>
113
- {{ environment.translate('Facebook') }}
114
- </a>
115
- {% else %}
116
- <a href="{{ environment.generateUrl('facebook') }}">
117
- <i class="fa fa-facebook"></i>
118
- {{ environment.translate('Facebook') }}
119
- </a>
120
- {% endif %}
121
- </li>#}
122
-
123
- {#{% if environment.isPro() == false %}
124
- <li class="supsystic-pro">
125
- <a href="http://supsystic.com/plugins/photo-gallery/">
126
- <i class="fa fa-unlock"></i>
127
- {{ environment.translate('Get PRO') }}
128
- </a>
129
- </li>
130
- {% endif %}#}
131
  </ul>
132
  </nav>
133
  <div class="supsystic-container supsystic-item supsystic-panel" {% if request.query.module == 'galleries' %}style="min-height: 500px"{% endif %}>
@@ -136,6 +66,46 @@
136
  {% block content %}{% endblock %}
137
  <div class="clear"></div>
138
  {% block table %}{% endblock %}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  </div>
140
  </section>
141
  </div>
11
  <div class="supsystic-plugin{% if pageOptions.isSettingPage == 1 %} {{ ' sgg-setting-page' }} {% endif %}">
12
  {% block header %}
13
  <div class="supsystic-breadcrumbs">
14
+ Photo Gallery by Supsystic
15
  </div>
16
  {% endblock %}
17
  <section class="supsystic-content">
18
+ <nav class="supsystic-navigation" style="top: 0px;">
19
  <ul>
20
  <li class="supsystic-sticky {% if request.query.module == 'overview' %} active{% endif %}">
21
  <a href="{{ environment.generateUrl('overview') }}">
58
  </li>
59
  {% endif %}
60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  </ul>
62
  </nav>
63
  <div class="supsystic-container supsystic-item supsystic-panel" {% if request.query.module == 'galleries' %}style="min-height: 500px"{% endif %}>
66
  {% block content %}{% endblock %}
67
  <div class="clear"></div>
68
  {% block table %}{% endblock %}
69
+ </form>
70
+
71
+ {% if SGG_AC_SHOW == true %}
72
+ <div class="supsysticOverviewACFormOverlay">
73
+ <form method="post" id="overview-ac-form" class="supsysticOverviewACForm">
74
+ <div class="supsysticOverviewACTitle">
75
+ <div class="supsysticOverviewACClose"><i class="fa fa-times" aria-hidden="true"></i></div>
76
+ <a href="https://supsystic.com/" target="_blank"><img src="{{ SGG_PLUGIN_URL }}/src/GridGallery/Overview/assets/img/supsystic-logo-small.png"></a><br>
77
+ <b>PRO plugins</b> and <b>amazing gifts</b>!
78
+ </div>
79
+ <label>Name *</label>
80
+ <input type="text" name="username" value="{{ SGG_USER_NAME }}">
81
+ <label>Email *</label>
82
+ <input type="text" name="email" value="{{ SGG_USER_EMAIL }}">
83
+ <input type="hidden" name="_wpnonce" value="{{ _wpnonce }}">
84
+ <button id="subscribe-btn" type="submit" class="button button-primary button-hero">
85
+ <i class="fa fa-check-square" aria-hidden="true"></i>
86
+ Subscribe
87
+ </button>
88
+ <div class="button button-primary button-hero supsysticOverviewACBtn supsysticOverviewACBtnRemind"><i class="fa fa-hourglass-half" aria-hidden="true"></i> Remind me tomorrow</div>
89
+ <div class="button button-primary button-hero supsysticOverviewACBtn supsysticOverviewACBtnDisable"><i class="fa fa-times" aria-hidden="true"></i> Do not disturb me again</div>
90
+ <div class="supsysticOverviewACFormNotification" style="color: red; float: left;" hidden>Fields with * are required to fill</div>
91
+ </form>
92
+ <div class="clear"></div>
93
+ </div>
94
+ <div id="supsysticOverviewACFormDialog" hidden>
95
+ <div class="on-error" style="display:none">
96
+ <p>{{ translate('Some errors occurred while sending mail please send your message trough this contact form:') }}</p>
97
+ <p><a href="https://supsystic.com/plugins/photo-gallery/#contact" target="_blank">https://supsystic.com/plugins/photo-gallery/#contact</a></p>
98
+ </div>
99
+ <div class="message"></div>
100
+ </div>
101
+ {% endif %}
102
+
103
+ </div>
104
+
105
+ <div class="supsystic-footer-wrapper">
106
+ <div class="supsystic-footer-add-review">Add your <a target="_blank" href="http://wordpress.org/support/view/plugin-reviews/gallery-by-supsystic?filter=5#postform">★★★★★</a> on wordpress.org</div>
107
+ <a href="https://supsystic.com/" target="_blank"><img src="{{SGG_PLUGIN_URL}}/src/GridGallery/Overview/assets/img/supsystic-logo-small.png"></a>
108
+ <div class="supsystic-footer-plugin-version">Photo Gallery by Supsystic Version: {{SGG_PLUGIN_VERSION}}</div>
109
  </div>
110
  </section>
111
  </div>
index.php CHANGED
@@ -3,7 +3,7 @@
3
  /**
4
  * Plugin Name: Photo Gallery by Supsystic
5
  * Description: Easy to use Gallery by Supsystic with professional gallery templates. Show off your best design, photography and creative work
6
- * Version: 1.15.8
7
  * Author: supsystic.com
8
  * Author URI: https://supsystic.com
9
  * Text Domain: grid-gallery
@@ -11,9 +11,9 @@
11
 
12
  require_once dirname(__FILE__) . '/app/SupsysticGallery.php';
13
 
14
- if (!defined('SG_PLUGIN_URL')) {
15
- define('SG_PLUGIN_URL', plugin_dir_url( __FILE__ ));
16
  }
17
 
18
- $supsysticGallery = new SupsysticGallery('1.15.8');
19
  $supsysticGallery->run();
3
  /**
4
  * Plugin Name: Photo Gallery by Supsystic
5
  * Description: Easy to use Gallery by Supsystic with professional gallery templates. Show off your best design, photography and creative work
6
+ * Version: 1.15.9
7
  * Author: supsystic.com
8
  * Author URI: https://supsystic.com
9
  * Text Domain: grid-gallery
11
 
12
  require_once dirname(__FILE__) . '/app/SupsysticGallery.php';
13
 
14
+ if (!defined('SGG_PLUGIN_URL')) {
15
+ define('SGG_PLUGIN_URL', plugin_dir_url( __FILE__ ));
16
  }
17
 
18
+ $supsysticGallery = new SupsysticGallery('1.15.9');
19
  $supsysticGallery->run();
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: supsystic.com
3
  Donate link: https://supsystic.com/plugins/gallery
4
  Tags: gallery, wordpress gallery plugin, photo gallery, grid gallery, image gallery, video gallery, responsive gallery, polaroid gallery
5
  Tested up to: 6.0
6
- Stable tag: 1.15.8
7
 
8
  Photo Gallery with template editor to build amazing media gallery. Responsive mobile gallery with grid, masonry, carousel, polaroid and more gallery
9
 
@@ -176,6 +176,9 @@ Add watermark on each image in your gallery and you protect your photos from the
176
  14. Photo gallery plugin admin area. Captions and Icons tab. Create impressive gallery with icons and fantastic caption effect.
177
 
178
  == Changelog ==
 
 
 
179
  = Gallery 1.15.8 / 02.07.2022 =
180
  * Fixes for WP review Team
181
 
3
  Donate link: https://supsystic.com/plugins/gallery
4
  Tags: gallery, wordpress gallery plugin, photo gallery, grid gallery, image gallery, video gallery, responsive gallery, polaroid gallery
5
  Tested up to: 6.0
6
+ Stable tag: 1.15.9
7
 
8
  Photo Gallery with template editor to build amazing media gallery. Responsive mobile gallery with grid, masonry, carousel, polaroid and more gallery
9
 
176
  14. Photo gallery plugin admin area. Captions and Icons tab. Create impressive gallery with icons and fantastic caption effect.
177
 
178
  == Changelog ==
179
+ = Gallery 1.15.9 / 06.07.2022 =
180
+ * Fixes for interface overview
181
+
182
  = Gallery 1.15.8 / 02.07.2022 =
183
  * Fixes for WP review Team
184
 
src/GridGallery/Core/Module.php CHANGED
@@ -33,7 +33,7 @@ class GridGallery_Core_Module extends Rsc_Mvc_Module
33
  $config->add('plugin_path', $path);
34
 
35
  add_filter('gg_hooks_prefix', array($this, 'addHooksPrefix'), 10, 1);
36
- add_action('init', array($this, 'registerTwigFunctions'), 10, 1);
37
  }
38
  /**
39
  * Adds the plugin's hooks prefix to the hook name
@@ -57,11 +57,6 @@ class GridGallery_Core_Module extends Rsc_Mvc_Module
57
  add_action($this->addHooksPrefix('after_ui_loaded'), $callback);
58
  }
59
 
60
- public function getProUrl($params = null) {
61
- $config = $this->getConfig();
62
- return $config->get('page_url') . (strpos($params, '?') === 0 ? '' : '?') . $params;
63
- }
64
-
65
  public function buildProUrl(array $parameters = array())
66
  {
67
  $config = $this->getEnvironment()->getConfig();
@@ -89,41 +84,58 @@ class GridGallery_Core_Module extends Rsc_Mvc_Module
89
 
90
  public function registerTwigFunctions()
91
  {
92
-
93
  $twig = $this->getTwig();
94
-
95
- $twig->addFunction(
96
- new Twig_SupTwg_SimpleFunction(
97
- 'plugin_directory_url', array($this, 'getPluginDirectoryUrl')
98
- )
99
- );
100
-
101
  $twig->addFunction(
102
  new Twig_SupTwg_SimpleFunction(
103
  'build_pro_url', array($this, 'buildProUrl')
104
  )
105
  );
106
-
107
  $twig->addFunction(
108
  new Twig_SupTwg_SimpleFunction(
109
  'translate', array($this, 'translate')
110
  )
111
  );
112
-
113
  $twig->addFunction(
114
  new Twig_SupTwg_SimpleFunction(
115
  'getProUrl', array($this, 'getProUrl')
116
  )
117
  );
118
-
 
 
 
 
 
 
 
119
  $twig->addGlobal('_wpnonce', wp_create_nonce('supsystic-gallery'));
120
-
121
- $twig->addFunction(
122
- new Twig_SupTwg_SimpleFunction(
123
- 'getProUrl', array($this, 'getProUrl')
124
- )
125
- );
126
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  }
128
 
129
  //Clear gallery cache after update
@@ -134,14 +146,3 @@ class GridGallery_Core_Module extends Rsc_Mvc_Module
134
  }
135
  }
136
  }
137
-
138
- "Fatal error: Uncaught exception 'BadMethodCallException' with message 'Unexpected method: registerTwigFunctions' in E:\OpenServer\domains\mywp\wp-content\plugins\data-tables-generator-by-supsystic\vendor\Rsc\Mvc\Module.php:61 Stack trace: ";
139
- #0 [internal function]: Rsc_Mvc_Module->__call('registerTwigFun...', Array)
140
- #1 [internal function]: GridGallery_Colorbox_Module->registerTwigFunctions('')
141
- #2 E:\OpenServer\domains\mywp\wp-includes\plugin.php(524): call_user_func_array(Array, Array)
142
- #3 E:\OpenServer\domains\mywp\wp-settings.php(411): do_action('init')
143
- #4 E:\OpenServer\domains\mywp\wp-config.php(89): require_once('E:\\OpenServer\\d...')
144
- #5 E:\OpenServer\domains\mywp\wp-load.php(39): require_once('E:\\OpenServer\\d...')
145
- #6 E:\OpenServer\domains\mywp\wp-admin\admin.php(31): require_once('E:\\OpenServer\\d...')
146
- #7 E:\OpenServer\domains\mywp\wp-admin\plugins.php(10): require_once('E:\\OpenServer\\d...')
147
- #8 {main} thrown in E:\OpenServer\domains\mywp\wp-content\plugins\data-tables-generator-by-supsystic\vendor\Rsc\Mvc\Module.php on line 61
33
  $config->add('plugin_path', $path);
34
 
35
  add_filter('gg_hooks_prefix', array($this, 'addHooksPrefix'), 10, 1);
36
+ add_action('init', array($this, 'registerTwigFunctions'), 10, 1);
37
  }
38
  /**
39
  * Adds the plugin's hooks prefix to the hook name
57
  add_action($this->addHooksPrefix('after_ui_loaded'), $callback);
58
  }
59
 
 
 
 
 
 
60
  public function buildProUrl(array $parameters = array())
61
  {
62
  $config = $this->getEnvironment()->getConfig();
84
 
85
  public function registerTwigFunctions()
86
  {
 
87
  $twig = $this->getTwig();
88
+ $twig->addFunction(
89
+ new Twig_SupTwg_SimpleFunction(
90
+ 'plugin_directory_url', array($this, 'getPluginDirectoryUrl')
91
+ )
92
+ );
 
 
93
  $twig->addFunction(
94
  new Twig_SupTwg_SimpleFunction(
95
  'build_pro_url', array($this, 'buildProUrl')
96
  )
97
  );
 
98
  $twig->addFunction(
99
  new Twig_SupTwg_SimpleFunction(
100
  'translate', array($this, 'translate')
101
  )
102
  );
 
103
  $twig->addFunction(
104
  new Twig_SupTwg_SimpleFunction(
105
  'getProUrl', array($this, 'getProUrl')
106
  )
107
  );
108
+ $config = $this->getEnvironment()->getConfig();
109
+ $twig->addGlobal('SGG_PLUGIN_URL', SGG_PLUGIN_URL);
110
+ $twig->addGlobal('SGG_PLUGIN_VERSION', $config->get('plugin_version'));
111
+ $twig->addGlobal('SGG_PLUGIN_NAME', $config->get('plugin_name'));
112
+ global $current_user;
113
+ $twig->addGlobal('SGG_USER_NAME', $current_user->user_firstname.' '.$current_user->user_lastname);
114
+ $twig->addGlobal('SGG_USER_EMAIL', $current_user->user_email);
115
+ $twig->addGlobal('SGG_WEBSITE', get_bloginfo('url'));
116
  $twig->addGlobal('_wpnonce', wp_create_nonce('supsystic-gallery'));
 
 
 
 
 
 
117
 
118
+ $show = true;
119
+ $acSubscribe = get_option('sgg_ac_subscribe', false);
120
+ if (!empty($acSubscribe)) {
121
+ $show = false;
122
+ }
123
+ $acDisabled = get_option('sgg_ac_disabled', false);
124
+ if (!empty($acDisabled)) {
125
+ $show = false;
126
+ }
127
+ $acRemind = get_option('sgg_ac_remind', false);
128
+ if (!empty($acRemind)) {
129
+ $currentDate = date('Y-m-d h:i:s');
130
+ if ($currentDate > $acRemind) {
131
+ $show = true;
132
+ } else {
133
+ $show = false;
134
+ }
135
+ }
136
+ $twig->addGlobal('SGG_AC_SHOW', $show);
137
+ // delete_option('sgg_ac_remind');
138
+ // delete_option('sgg_ac_disabled');
139
  }
140
 
141
  //Clear gallery cache after update
146
  }
147
  }
148
  }
 
 
 
 
 
 
 
 
 
 
 
src/GridGallery/Featuredplugins/Controller.php DELETED
@@ -1,54 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Class GridGallery_Featuredplugins_Controller
5
- * Featuredplugins page controller
6
- *
7
- * @package GridGallery\Featuredplugins
8
- */
9
- class GridGallery_Featuredplugins_Controller extends GridGallery_Core_BaseController
10
- {
11
- /**
12
- * @param Rsc_Http_Request $request
13
- */
14
- public function indexAction(Rsc_Http_Request $request)
15
- {
16
- $environment = $this->getEnvironment();
17
-
18
-
19
- $siteUrl = 'https://supsystic.com/';
20
- $pluginsUrl = 'https://supsystic.com/plugins/';
21
- $uploadsUrl = SG_PLUGIN_URL.'src/GridGallery/Featuredplugins/assets/img/';
22
- $downloadsUrl = 'https://downloads.wordpress.org/plugin/';
23
- $promoCampaign = 'gallery';
24
- $pluginsList = array(
25
- array('label' => $environment->translate('Popup Plugin'), 'url' => $pluginsUrl. 'popup-plugin/', 'img' => $uploadsUrl. 'Popup_256.png', 'desc' => $environment->translate('The Best WordPress PopUp option plugin to help you gain more subscribers, social followers or advertisement. Responsive pop-ups with friendly options.'), 'download' => $downloadsUrl. 'popup-by-supsystic.zip'),
26
- array('label' => $environment->translate('Slider Plugin'), 'url' => $pluginsUrl. 'slider/', 'img' => $uploadsUrl. 'Slider_256.png', 'desc' => $environment->translate('Creating slideshows with Slider plugin is fast and easy. Simply select images from your WordPress Media Library, Flickr, Instagram or Facebook, set slide captions, links and SEO fields all from one page.'), 'download' => $downloadsUrl. 'slider-by-supsystic.zip'),
27
- array('label' => $environment->translate('Photo Gallery Plugin'), 'url' => $pluginsUrl. 'photo-gallery/', 'img' => $uploadsUrl. 'Gallery_256.png', 'desc' => $environment->translate('Photo Gallery Plugin with a great number of layouts will help you to create quality respectable portfolios and image galleries.'), 'download' => $downloadsUrl. 'gallery-by-supsystic.zip'),
28
- array('label' => $environment->translate('Data Tables Generator'), 'url' => $pluginsUrl. 'data-tables-generator-plugin/', 'img' => $uploadsUrl. 'Data_Tables_256.png', 'desc' => $environment->translate('Create and manage beautiful data tables with custom design. No HTML knowledge is required.'), 'download' => $downloadsUrl. 'data-tables-generator-by-supsystic.zip'),
29
- array('label' => $environment->translate('Social Share Buttons'), 'url' => $pluginsUrl. 'social-share-plugin/', 'img' => $uploadsUrl. 'Social_Buttons_256.png', 'desc' => $environment->translate('Social share buttons to increase social traffic and popularity. Social sharing to Facebook, Twitter and other social networks.'), 'download' => $downloadsUrl. 'social-share-buttons-by-supsystic.zip'),
30
- array('label' => $environment->translate('Live Chat Plugin'), 'url' => $pluginsUrl. 'live-chat/', 'img' => $uploadsUrl. 'Live_Chat_256.png', 'desc' => $environment->translate('Be closer to your visitors and customers with Live Chat Support by Supsystic. Help you visitors, support them in real-time with exceptional Live Chat WordPress plugin by Supsystic.'), 'download' => $downloadsUrl. 'live-chat-by-supsystic.zip'),
31
- array('label' => $environment->translate('Pricing Table'), 'url' => $pluginsUrl. 'pricing-table/', 'img' => $uploadsUrl. 'Pricing_Table_256.png', 'desc' => $environment->translate('It’s never been so easy to create and manage pricing and comparison tables with table builder. Any element of the table can be customise with mouse click.'), 'download' => $downloadsUrl. 'pricing-table-by-supsystic.zip'),
32
- array('label' => $environment->translate('Coming Soon Plugin'), 'url' => $pluginsUrl. 'coming-soon-plugin/', 'img' => $uploadsUrl. 'Coming_Soon_256.png', 'desc' => $environment->translate('Coming soon page with drag-and-drop builder or under construction | maintenance mode to notify visitors and collects emails.'), 'download' => $downloadsUrl. 'coming-soon-by-supsystic.zip'),
33
- array('label' => $environment->translate('Backup Plugin'), 'url' => $pluginsUrl. 'backup-plugin/', 'img' => $uploadsUrl. 'Backup_256.png', 'desc' => $environment->translate('Backup and Restore WordPress Plugin by Supsystic provides quick and unhitched DropBox, FTP, Amazon S3, Google Drive backup for your WordPress website.'), 'download' => $downloadsUrl. 'backup-by-supsystic.zip'),
34
- array('label' => $environment->translate('Google Maps Easy'), 'url' => $pluginsUrl. 'google-maps-plugin/', 'img' => $uploadsUrl. 'Google_Maps_256.png', 'desc' => $environment->translate('Display custom Google Maps. Set markers and locations with text, images, categories and links. Customize google map in a simple and intuitive way.'), 'download' => $downloadsUrl. 'google-maps-easy.zip'),
35
- array('label' => $environment->translate('Digital Publication Plugin'), 'url' => $pluginsUrl. 'digital-publication-plugin/', 'img' => $uploadsUrl. 'Digital_Publication_256.png', 'desc' => $environment->translate('Digital Publication WordPress Plugin by Supsystic for Magazines, Catalogs, Portfolios. Convert images, posts, PDF to the page flip book.'), 'download' => $downloadsUrl. 'digital-publications-by-supsystic.zip'),
36
- array('label' => $environment->translate('Contact Form Plugin'), 'url' => $pluginsUrl. 'contact-form-plugin/', 'img' => $uploadsUrl. 'Contact_Form_256.png', 'desc' => $environment->translate('One of the best plugin for creating Contact Forms on your WordPress site. Changeable fonts, backgrounds, an option for adding fields etc.'), 'download' => $downloadsUrl. 'contact-form-by-supsystic.zip'),
37
- array('label' => $environment->translate('Newsletter Plugin'), 'url' => $pluginsUrl. 'newsletter-plugin/', 'img' => $uploadsUrl. 'icon-256x256.png', 'desc' => $environment->translate('Supsystic Newsletter plugin for automatic mailing of your letters. You will have no need to control it or send them manually. No coding, hard skills or long hours of customizing are required.'), 'download' => $downloadsUrl. 'newsletter-by-supsystic.zip'),
38
- array('label' => $environment->translate('Kinsta Hosting'), 'url' => 'https://kinsta.com?kaid=MNRQQASUYJRT', 'external' => true, 'img' => $this->getEnvironment()->getModule('core')->getPluginDirectoryUrl('app/assets/img/kinsta_banner.png'), 'desc' => $environment->translate('If you want to host a business site or a blog, Kinsta managed WordPress hosting is the best place to stop on. Without any hesitation, we can say Kinsta is incredible when it comes to uptime and speed.')),
39
- );
40
- foreach($pluginsList as $i => $p) {
41
- if(empty($p['external'])) {
42
- $pluginsList[$i]['url'] = $pluginsList[$i]['url'] . '?utm_source=plugin&utm_medium=featured_plugins&utm_campaign=' . $promoCampaign;
43
- }
44
- }
45
-
46
- return $this->response(
47
- '@featuredplugins/index.twig',
48
- array(
49
- 'pluginsList' => $pluginsList,
50
- 'bundleUrl' => 'https://supsystic.com/product/plugins-bundle/'. '?utm_source=plugin&utm_medium=featured_plugins&utm_campaign='. $promoCampaign,
51
- )
52
- );
53
- }
54
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/GridGallery/Featuredplugins/Module.php DELETED
@@ -1,61 +0,0 @@
1
- <?php
2
-
3
-
4
- class GridGallery_Featuredplugins_Module extends Rsc_Mvc_Module
5
- {
6
-
7
- /**
8
- * {@inheritdoc}
9
- */
10
- public function onInit()
11
- {
12
- $environment = $this->getEnvironment();
13
- $config = $environment->getConfig();
14
-
15
- $this->registerMenu();
16
-
17
- $prefix = $config->get('hooks_prefix');
18
-
19
- add_action($prefix . 'after_ui_loaded', array(
20
- $this, 'loadAssets'
21
- ));
22
- }
23
- /**
24
- * Loads the assets required by the module
25
- */
26
- public function loadAssets(GridGallery_Ui_Module $ui)
27
- {
28
- if($this->getEnvironment()->isModule('featuredplugins')) {
29
- $ui->asset->enqueue('styles',
30
- array(
31
- $this->getLocationUrl() . '/assets/css/libraries/supsystic/suptablesui.min.css'
32
- )
33
- );
34
- $ui->asset->enqueue('styles',
35
- array(
36
- $this->getLocationUrl() . '/assets/css/admin.featured-plugins.css'
37
- )
38
- );
39
- }
40
- }
41
-
42
- public function registerMenu()
43
- {
44
- $menu = $this->getMenu();
45
- $plugin_menu = $this->getConfig()->get('plugin_menu');
46
- $capability = $plugin_menu['capability'];
47
- $submenu = $menu->createSubmenuItem();
48
-
49
- $submenu->setCapability($capability)
50
- ->setMenuSlug('supsystic-gallery&module=featuredplugins')
51
- ->setMenuTitle($this->translate('Featured Plugins'))
52
- ->setPageTitle($this->translate('Featured Plugins'))
53
- ->setModuleName('featuredplugins');
54
- // Avoid conflicts with old vendor version
55
- if(method_exists($submenu, 'setSortOrder')) {
56
- $submenu->setSortOrder(99);
57
- }
58
-
59
- $menu->addSubmenuItem('featuredplugins', $submenu);
60
- }
61
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/GridGallery/Featuredplugins/assets/css/admin.featured-plugins.css DELETED
@@ -1,282 +0,0 @@
1
- #supsystic-featured-plugins, #supsystic-featured-plugins * {
2
- -webkit-box-sizing: border-box;
3
- -moz-box-sizing: border-box;
4
- box-sizing: border-box;
5
- }
6
- #supsystic-featured-plugins {
7
- font-family: Montserrat, Hind-Regular, sans-serif;
8
- font-style: normal;
9
- font-weight: 400;
10
- font-size: 14px;
11
- line-height: 25px;
12
- background-color: #ffffff;
13
- color: #4D4C4C;
14
- }
15
- #supsystic-featured-plugins a {
16
- text-decoration: none !important;
17
- }
18
- .catitem .download-product-item .dp-title a {
19
- display: inline-block;
20
- width: 100%;
21
- text-overflow: ellipsis;
22
- overflow: hidden;
23
- white-space: nowrap;
24
- font-size: 24px;
25
- font-style: normal;
26
- text-align: center;
27
- padding: 8px 20px;
28
- background-image: url(img/bg_texture.png);
29
- color: #ffffff;
30
- text-decoration: none;
31
- }
32
- .catitem .download-product-item .dp-title a:hover {
33
- color: #ffffff;
34
- text-decoration: none;
35
- }
36
- .catitem .download-product-item .dp-excerpt {
37
- display: block;
38
- height: 210px;
39
- min-height: 210px;
40
- max-height: 210px;
41
- padding: 15px;
42
- text-align: center;
43
- overflow: hidden;
44
- }
45
- .catitem .download-product-item .dp-excerpt .dp-excerpt-wrapper {
46
- height: 100%;
47
- column-width: 210px;
48
- -webkit-column-width: 210px;
49
- }
50
- .catitem .download-product-item .dp-thumb {
51
- margin: 30px 0;
52
- height: 190px;
53
- min-height: 190px;
54
- }
55
- .catitem .download-product-item .dp-thumb img, .all-plugins-item .dp-thumb img {
56
- width: auto;
57
- max-height: 100%;
58
- margin: 0 auto;
59
- }
60
- .catitem .download-product-item .dp-excerpt, .catitem .download-product-item .dp-buttons {
61
- background: #FAFAFA;
62
- }
63
- .catitem .download-product-item .dp-buttons {
64
- padding-bottom: 20px;
65
- }
66
- .catitem .download-product-item .dp-buttons a {
67
- display: inline-block;
68
- width: 40%;
69
- padding: 10px 0 !important;
70
- margin-left: 6%;
71
- }
72
- .catitem .download-product-item .dp-buttons a.btn-info {
73
- border: none !important;
74
- color: #ffffff !important;
75
- font-size: 18px !important;
76
- padding: 12px 0 !important;
77
- }
78
- .catitem .download-product-item .dp-buttons a.btn-center {
79
- display: block;
80
- margin: 0 auto;
81
- }
82
- .catitem .download-product-item .dp-buttons a.dp-full {
83
- border-color: #e8eded!important;
84
- }
85
- .catitem .download-product-item {
86
- font-size: 16px;
87
- border: 2px solid #4D4C4C;
88
- }
89
- .catitem .bottom-buttons a, .catitem .free-product-item p {
90
- font-weight: 400;
91
- }
92
- .select_version .selecter-item:hover {
93
- background: #4ae8ea;
94
- color: #fff;
95
- }
96
- .selecter.open {
97
- z-index: 99999999!important;
98
- }
99
- .catitem {
100
- display: block;
101
- margin-bottom: 30px;
102
- }
103
- .catitem .free-label, .catitem .psd-label, .catitem .responsive-label {
104
- margin-bottom: 5px;
105
- display: inline-block;
106
- }
107
- .catitem .labels {
108
- position: absolute;
109
- top: 10px;
110
- right: 5px;
111
- width: 25px;
112
- z-index: 0;
113
- }
114
- .catitem .responsive-label {
115
- width: 21px;
116
- height: 14px;
117
- background: url(img/pattern.png) -130px -32px no-repeat;
118
- }
119
- .catitem .free-label {
120
- width: 17px;
121
- height: 17px;
122
- background: url(img/pattern.png) -135px -47px no-repeat;
123
- }
124
- .catitem .psd-label {
125
- width: 22px;
126
- height: 8px;
127
- background: url(img/pattern.png) -80px -32px no-repeat;
128
- }
129
- .catitem .zoom-label {
130
- width: 13px;
131
- height: 13px;
132
- display: inline-block;
133
- background: url(img/pattern.png) -115px -32px no-repeat;
134
- position: absolute;
135
- right: 11px;
136
- bottom: 10px;
137
- }
138
- .catitem .fpi {
139
- border: 1px solid #e8eded;
140
- display: inline-block;
141
- position: relative;
142
- z-index: 10;
143
- margin-bottom: 15px;
144
- }
145
- .catitem .free-product-item {
146
- display: inline-block;
147
- }
148
- .catitem .free-product-item p {
149
- font-size: 16px;
150
- font-style: normal;
151
- display: inline-block;
152
- }
153
- .catitem .free-product-item .fpi {
154
- transition: all .3s;
155
- -moz-transition: all .3s;
156
- -webkit-transition: all .3s;
157
- -o-transition: all .3s;
158
- }
159
- .catitem .free-product-item .fpi.hover {
160
- background: #4ae8ea;
161
- }
162
- .catitem .fpi img {
163
- border: 3px solid rgba(215, 219, 219, .4);
164
- margin: -13px 0 0 -35px;
165
- }
166
- .catitem .bottom-buttons a {
167
- color: #4D4C4C;
168
- text-align: center;
169
- display: block;
170
- padding: 5px 35px 5px 5px;
171
- font-size: 18px;
172
- font-style: normal;
173
- }
174
- .btn, .btn-download, .btn-preview, .btn-pro, .btn-extension, .btn-black {
175
- font-size: 18px!important;
176
- font-weight: 400!important;
177
- font-style: normal!important;
178
- }
179
- .supsystic-plugin #supsystic-featured-plugins .btn {
180
- color: #4D4C4C;
181
- /*-webkit-transition-timing-function: initial;
182
- transition-timing-function: initial;*/
183
- }
184
- .btn {
185
- background: transparent;
186
- color: #4D4C4C;
187
- text-align: center;
188
- border: 2px solid #4D4C4C !important;
189
- border-radius: 0!important;
190
- -moz-border-radius: 0!important;
191
- -webkit-border-radius: 0!important;
192
- padding: 17px 45px !important;
193
- }
194
- .btn-full {
195
- width: 100%;
196
- }
197
- .btn-info {
198
- padding: 12px 38px !important;
199
- background-color: #4ae8ea !important;
200
- border: none !important;
201
- color: #ffffff !important;
202
- font-size: 18px !important;
203
- }
204
- .btn-revert {
205
- color: #ffffff !important;
206
- border-color: #ffffff !important;
207
- }
208
- /* Shutter Out Horizontal Start */
209
- .hvr-shutter-out-horizontal {
210
- display: inline-block;
211
- vertical-align: middle;
212
- -webkit-transform: translateZ(0);
213
- transform: translateZ(0);
214
- box-shadow: 0 0 1px rgba(0, 0, 0, 0);
215
- /*-webkit-backface-visibility: hidden;
216
- backface-visibility: hidden;*/
217
- -moz-osx-font-smoothing: grayscale;
218
- position: relative;
219
- /*background: #e1e1e1;*/
220
- -webkit-transition-property: color;
221
- transition-property: color;
222
- -webkit-transition-duration: 0.3s;
223
- transition-duration: 0.3s;
224
- }
225
- .hvr-shutter-out-horizontal:before {
226
- content: "";
227
- position: absolute;
228
- z-index: -1;
229
- top: 0;
230
- bottom: 0;
231
- left: 0;
232
- right: 0;
233
- background: #2098d1;
234
- -webkit-transform: scaleX(0);
235
- transform: scaleX(0);
236
- -webkit-transform-origin: 50%;
237
- transform-origin: 50%;
238
- -webkit-transition-property: transform;
239
- transition-property: transform;
240
- -webkit-transition-duration: 0.3s;
241
- transition-duration: 0.3s;
242
- -webkit-transition-timing-function: ease-out;
243
- transition-timing-function: ease-out;
244
- }
245
- .hvr-shutter-out-horizontal:hover, .hvr-shutter-out-horizontal:focus, .hvr-shutter-out-horizontal:active {
246
- color: white !important;
247
- }
248
- .hvr-shutter-out-horizontal:hover:before, .hvr-shutter-out-horizontal:focus:before, .hvr-shutter-out-horizontal:active:before {
249
- -webkit-transform: scaleX(1);
250
- transform: scaleX(1);
251
- }
252
- /* For blog navigation */
253
- .meta-nav.hvr-shutter-out-horizontal:before, .supsystic-social-button.hvr-shutter-out-horizontal:before {
254
- border-radius: 100%;
255
- }
256
- /* Shutter Out Horizontal End */
257
- /* Page Bundle Container Styles Start */
258
- .supsysticPageBundleContainer {
259
- background-color: #56DADC;
260
- padding-top: 28px;
261
- padding-bottom: 28px;
262
- display: table;
263
- width: 100%;
264
- }
265
- .supsysticPageBundleContainer .bundle-text {
266
- padding-top: 5px;
267
- font-size: 25px;
268
- color: #ffffff;
269
- }
270
- .supsysticPageBundleContainer .bundle-btn a {
271
- font-size: 15px !important;
272
- padding: 5px 38px !important;
273
- }
274
- /*.supsysticPageBundleContainer .container {
275
- width: 100% !important;
276
- }*/
277
- @media only screen and (max-width:991px) {
278
- .supsysticPageBundleContainer .bundle-btn {
279
- margin-top: 20px;
280
- }
281
- }
282
- /* Page Bundle Container Styles End */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/GridGallery/Featuredplugins/assets/css/img/bg_texture.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Backup_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Coming_Soon_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Contact_Form_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Data_Tables_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Digital_Publication_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Gallery_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Google_Maps_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Live_Chat_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Popup_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Pricing_Table_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Slider_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/Social_Buttons_256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/heatmap.jpg DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/icon-256x256.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/kinsta_banner.png DELETED
Binary file
src/GridGallery/Featuredplugins/assets/img/shapes.jpg DELETED
Binary file
src/GridGallery/Featuredplugins/views/index.twig DELETED
@@ -1,56 +0,0 @@
1
- {% extends 'grid-gallery.twig' %}
2
-
3
- {% block header %}
4
-
5
- <nav id="supsystic-breadcrumbs" class="supsystic-breadcrumbs">
6
- {#<a href="{{ environment.generateUrl('galleries') }}">{{ translate('Gallery by Supsystic') }}</a>#}
7
- {#<i class="fa fa-angle-right"></i>#}
8
- <a href="{{ environment.generateUrl('galleries') }}">{{ translate('Featured Plugins') }}</a>
9
- </nav>
10
-
11
- {% endblock %}
12
-
13
- {% block content %}
14
- <section id="supsystic-featured-plugins">
15
- <div class="supsysticPageBundleContainer container-fluid">
16
- <div class="bundle-text supMd7 supXs12">{{ translate('Get plugins bundle today and save over 80%', PPS_LANG_CODE) }}</div>
17
- <div class="bundle-btn supMd5 supXs12">
18
- <a href="{{ bundleUrl }}" class="btn btn-full btn-revert hvr-shutter-out-horizontal" target="_blank">
19
- {{ translate('Check It out', PPS_LANG_CODE) }}
20
- </a>
21
- </div>
22
- </div>
23
- <hr />
24
- {% for p in pluginsList %}
25
- <div class="catitem supMd4 supSm6 supXs12">
26
- <div class="download-product-item">
27
- <div class="dp-thumb text-center">
28
- <a href="{{ p.url }}" target="_blank">
29
- <img src="{{ p.img }}" class="img-responsive wp-post-image" alt="{{ p.label }}" />
30
- </a>
31
- </div>
32
- <div class="dp-title">
33
- <a href="{{ p.url }}" target="_blank">
34
- {{ p.label }}
35
- </a>
36
- </div>
37
- <div class="dp-excerpt">
38
- <div class="dp-excerpt-wrapper">
39
- {{ p.desc }}
40
- </div>
41
- </div>
42
- <div class="dp-buttons">
43
- <a href="{{ p.url }}" target="_blank" class="btn btn-full hvr-shutter-out-horizontal {% if p.download is empty %}btn-center{% endif %}">
44
- {{ translate('More info') }}
45
- </a>
46
- {% if p.download is not empty %}
47
- <a href="{{ p.download }}" target="_blank" class="btn btn-full btn-info hvr-shutter-out-horizontal">
48
- {{ translate('Download') }}
49
- </a>
50
- {% endif %}
51
- </div>
52
- </div>
53
- </div>
54
- {% endfor %}
55
- </section>
56
- {% endblock %}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/GridGallery/Galleries/Module.php CHANGED
@@ -165,7 +165,7 @@ class GridGallery_Galleries_Module extends GridGallery_Core_Module
165
  $this->getLocationUrl() . '/assets/css/gridgallerypro-embedded.css',
166
  $this->getLocationUrl() . '/assets/css/icons-effects.css',
167
  $this->getLocationUrl() . '/assets/css/loaders.css',
168
- SG_PLUGIN_URL . '/app/assets/css/chosen.min.css',
169
  );
170
 
171
  $environment = $this->getEnvironment();
@@ -200,7 +200,7 @@ class GridGallery_Galleries_Module extends GridGallery_Core_Module
200
  }
201
 
202
  $jsList[] = $this->getLocationUrl() . '/assets/js/grid-gallery.galleries.thumb.js';
203
- $jsList[] = SG_PLUGIN_URL . '/app/assets/js/chosen.jquery.min.js';
204
 
205
  if ($environment->isAction('index')) {
206
  $jsList[] = $this->getLocationUrl() . '/assets/js/lib/jquery.dataTables.min.js';
165
  $this->getLocationUrl() . '/assets/css/gridgallerypro-embedded.css',
166
  $this->getLocationUrl() . '/assets/css/icons-effects.css',
167
  $this->getLocationUrl() . '/assets/css/loaders.css',
168
+ SGG_PLUGIN_URL . '/app/assets/css/chosen.min.css',
169
  );
170
 
171
  $environment = $this->getEnvironment();
200
  }
201
 
202
  $jsList[] = $this->getLocationUrl() . '/assets/js/grid-gallery.galleries.thumb.js';
203
+ $jsList[] = SGG_PLUGIN_URL . '/app/assets/js/chosen.jquery.min.js';
204
 
205
  if ($environment->isAction('index')) {
206
  $jsList[] = $this->getLocationUrl() . '/assets/js/lib/jquery.dataTables.min.js';
src/GridGallery/Overview/Controller.php CHANGED
@@ -10,7 +10,7 @@ class GridGallery_Overview_Controller extends GridGallery_Core_BaseController
10
  {
11
  public function requireNonces() {
12
  return array(
13
- 'sendMailAction',
14
  );
15
  }
16
  /**
@@ -27,11 +27,11 @@ class GridGallery_Overview_Controller extends GridGallery_Core_BaseController
27
  array(
28
  'serverSettings' => $serverSettings,
29
  'news' => $this->loadNews($config['post_url']),
30
- 'contactForm' => array(
31
- 'name' => $current_user->user_firstname,
32
- 'email' => $current_user->user_email,
33
- 'website' => get_bloginfo('url')
34
- ),
35
  )
36
  );
37
  }
@@ -78,6 +78,63 @@ class GridGallery_Overview_Controller extends GridGallery_Core_BaseController
78
  return $this->response(Rsc_Http_Response::AJAX, $response);
79
  }
80
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  /**
82
  * @return base server settings
83
  */
@@ -117,6 +174,12 @@ class GridGallery_Overview_Controller extends GridGallery_Core_BaseController
117
  return $ts_mail_errors;
118
  }
119
 
 
 
 
 
 
 
120
  /**
121
  * @param string $url url with news
122
  * @return news body only
10
  {
11
  public function requireNonces() {
12
  return array(
13
+ 'sendMailAction', 'sendSubscribeMail', 'sendSubscribeRemind', 'sendSubscribeDisable'
14
  );
15
  }
16
  /**
27
  array(
28
  'serverSettings' => $serverSettings,
29
  'news' => $this->loadNews($config['post_url']),
30
+ 'contactForm' => array(
31
+ 'name' => $current_user->user_firstname,
32
+ 'email' => $current_user->user_email,
33
+ 'website' => get_bloginfo('url'),
34
+ ),
35
  )
36
  );
37
  }
78
  return $this->response(Rsc_Http_Response::AJAX, $response);
79
  }
80
 
81
+ /**
82
+ * @param Rsc_Http_Request $request
83
+ */
84
+ public function sendSubscribeMailAction(Rsc_Http_Request $request)
85
+ {
86
+ $config = $this->getEnvironment()->getConfig();
87
+ $mail = $request->post['route']['data'];
88
+ $isPro = !empty($config->get('is_pro')) ? true : false;
89
+ $data = array(
90
+ 'body' => array(
91
+ 'user_name' => $mail['username'],
92
+ 'user_email' => $mail['email'],
93
+ 'site_url' => get_bloginfo('wpurl'),
94
+ 'site_name' => get_bloginfo('name'),
95
+ 'plugin_code' => $config->get('plugin_name'),
96
+ 'is_pro' => $isPro,
97
+ ),
98
+ );
99
+ $response = wp_remote_post(
100
+ $this->getApiUrl(),
101
+ $data
102
+ );
103
+ if (is_wp_error($response)) {
104
+ $response = array(
105
+ 'success' => false,
106
+ 'message' => $this->translate('Some errors.')
107
+ );
108
+ } else {
109
+ $response = array(
110
+ 'success' => true,
111
+ 'message' => $this->translate('Thank you for subscribtions.')
112
+ );
113
+ update_option('sgg_ac_subscribe', true);
114
+ }
115
+ return $this->response(Rsc_Http_Response::AJAX, $response);
116
+ }
117
+
118
+ /**
119
+ * @param Rsc_Http_Request $request
120
+ */
121
+ public function sendSubscribeRemindAction(Rsc_Http_Request $request)
122
+ {
123
+ update_option('sgg_ac_remind', date("Y-m-d h:i:s", time() + 86400));
124
+ $response = array ('success' => true);
125
+ return $this->response(Rsc_Http_Response::AJAX, $response);
126
+ }
127
+
128
+ /**
129
+ * @param Rsc_Http_Request $request
130
+ */
131
+ public function sendSubscribeDisableAction(Rsc_Http_Request $request)
132
+ {
133
+ update_option('sgg_ac_disabled', true);
134
+ $response = array ('success' => true);
135
+ return $this->response(Rsc_Http_Response::AJAX, $response);
136
+ }
137
+
138
  /**
139
  * @return base server settings
140
  */
174
  return $ts_mail_errors;
175
  }
176
 
177
+ public function getApiUrl()
178
+ {
179
+ $apiUrl = 'aHR0cDovLzU0LjY4LjE5MS4yMTcvP21vZD1vcHRpb25zJmFjdGlvbj1zYXZlVXNhZ2VTdGF0JnBsPXJjcw==';
180
+ return base64_decode($apiUrl);
181
+ }
182
+
183
  /**
184
  * @param string $url url with news
185
  * @return news body only
src/GridGallery/Overview/Module.php CHANGED
@@ -31,7 +31,7 @@ class GridGallery_Overview_Module extends Rsc_Mvc_Module
31
  */
32
  public function loadAssets(GridGallery_Ui_Module $ui)
33
  {
34
- if($this->getEnvironment()->isModule('overview')) {
35
  $ui->asset->enqueue('styles',
36
  array(
37
  $this->getLocationUrl() . '/assets/css/overview-styles.css'
@@ -64,4 +64,4 @@ class GridGallery_Overview_Module extends Rsc_Mvc_Module
64
 
65
  $menu->addSubmenuItem('ovewrview', $submenu);
66
  }
67
- }
31
  */
32
  public function loadAssets(GridGallery_Ui_Module $ui)
33
  {
34
+ if($this->getEnvironment()->isModule('overview') || true) {
35
  $ui->asset->enqueue('styles',
36
  array(
37
  $this->getLocationUrl() . '/assets/css/overview-styles.css'
64
 
65
  $menu->addSubmenuItem('ovewrview', $submenu);
66
  }
67
+ }
src/GridGallery/Overview/assets/css/overview-styles.css CHANGED
@@ -122,4 +122,242 @@
122
  }
123
  #contact-form-dialog a:focus {
124
  outline: none;
125
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  }
123
  #contact-form-dialog a:focus {
124
  outline: none;
125
+ }
126
+
127
+ .supsystic-overview .half-page > div {
128
+ border-bottom:0px;
129
+ padding-bottom:inherit;
130
+ }
131
+ .overview-section {
132
+ display:none;
133
+ }
134
+ .overview-section-btn {
135
+ list-style:square;
136
+ cursor:pointer;
137
+ margin-left:20px;
138
+ }
139
+ .overview-section-btn:hover {
140
+ color: #4ae8ea;
141
+ }
142
+ .border-wrapper {
143
+ display:block;
144
+ position:relative;
145
+ border:1px solid rgba(164, 170, 172, 0.28) !important;
146
+ padding:30px;
147
+ padding-top:0px;
148
+ margin-bottom:20px;
149
+ border-left: 3px solid #4ae8ea !important;
150
+ }
151
+ .border-wrapper .button-hero {
152
+ margin-bottom:30px;
153
+ line-height:auto !important;
154
+ padding:0px 10px !important;
155
+ margin:10px 4px !important;
156
+ }
157
+ .overview-section-btn-active {
158
+ color: #4ae8ea;
159
+ font-weight:bold;
160
+ }
161
+ .overview-contact-form form {
162
+ margin:0px !important;
163
+ padding:0px !important;
164
+ }
165
+ .overview-contact-form input,
166
+ .overview-contact-form select,
167
+ .overview-contact-form textarea {
168
+ display:block;
169
+ position:relative;
170
+ width:100%;
171
+ max-width:100% !important;
172
+ background-color: #f6f7f7;
173
+ color: #252728;
174
+ border: 1px solid #dfe4e4;
175
+ outline:0px;
176
+ }
177
+ .overview-contact-form #form-settings {
178
+ height:auto;
179
+ }
180
+ .overview-section-btn a {
181
+ text-decoration:none;
182
+ color: #3c434a;
183
+ }
184
+ .overview-section-btn a:hover {
185
+ color: #4ae8ea;
186
+ }
187
+ .overview-section h3 {
188
+ border-bottom:1px solid rgba(164, 170, 172, 0.28) !important;
189
+ padding-bottom:.5em;
190
+ margin-bottom:.5em;
191
+ }
192
+ .contact-info-section {
193
+ border: 1px solid rgba(164, 170, 172, 0.28) !important;
194
+ padding: 5px;
195
+ }
196
+ .contact-info-section p {
197
+ font-size:12px;
198
+ white-space: inherit;
199
+ line-height: 18px;
200
+ }
201
+ .contact-info-section ul {
202
+ margin:0px;
203
+ }
204
+ .contact-info-section ul li {
205
+ padding-left:5px;
206
+ line-height: 18px;
207
+ margin:0px;
208
+ padding:0px;
209
+ }
210
+ .contact-info-section {
211
+ margin-bottom:20px;
212
+ }
213
+ .overview-section-btn sup {
214
+ font-size:10px !important;
215
+ line-height:0px;
216
+ }
217
+ .plugin-title {
218
+ display: flex;
219
+ position: relative;
220
+ flex-direction: row;
221
+ align-content: center;
222
+ flex-wrap: nowrap;
223
+ align-items: center;
224
+ font-size:24px;
225
+ color:#313846;
226
+ font-weight:bold;
227
+ margin-bottom:10px;
228
+ }
229
+ .plugin-title img {
230
+ padding-right:15px;
231
+ }
232
+ .plugin-description {
233
+ margin-bottom:20px;
234
+ }
235
+ .supsystic-overview-flex {
236
+ display: flex;
237
+ position: relative;
238
+ flex-direction: row;
239
+ flex-wrap: nowrap;
240
+ align-content: center;
241
+ align-items: stretch;
242
+ justify-content: space-between;
243
+ }
244
+ .half-page {
245
+ display:inline-block;
246
+ position:relative;
247
+ width:49% !important;
248
+ float:inherit !important;
249
+ margin:0px !important;
250
+ padding:0px !important;
251
+ border:0px !important;
252
+ }
253
+ .full-page {
254
+ width:98%;
255
+ }
256
+ .overview-supsystic-img {
257
+ max-width:770px;
258
+ width:100%;
259
+ }
260
+ @media (max-width:1100px) {
261
+ .supsystic-overview-flex {
262
+ flex-direction: column;
263
+ }
264
+ .half-page {
265
+ width: 100% !important;
266
+ }
267
+ .full-page {
268
+ width:100%;
269
+ }
270
+ }
271
+
272
+ .supsysticOverviewACTitle {
273
+ background:#2a3545;
274
+ color:white;
275
+ font-size:14px;
276
+ padding:10px 0px;
277
+ text-align:center;
278
+ margin-bottom:10px;
279
+ width:100%;
280
+ }
281
+ .supsysticOverviewACForm input {
282
+ width:94%;
283
+ text-align:center;
284
+ }
285
+ .supsysticOverviewACForm button, .supsysticOverviewACBtn {
286
+ display:block;
287
+ position:relative;
288
+ width:94%;
289
+ margin:0px;
290
+ padding:0px;
291
+ text-align:center;
292
+ margin-top:10px !important;
293
+ }
294
+ .supsysticOverviewACFormOverlay {
295
+ display:block;
296
+ position:absolute;
297
+ left:0px;
298
+ top:0px;
299
+ width:100%;
300
+ height:100%;
301
+ background: rgb(223 223 223 / 80%);
302
+ z-index:99;
303
+ }
304
+ #overview-ac-form {
305
+ position: relative;
306
+ display: flex;
307
+ flex-direction: column;
308
+ flex-wrap: nowrap;
309
+ align-content: center;
310
+ align-items: center;
311
+ justify-content: flex-start;
312
+ background:white;
313
+ box-shadow: 0px 3px 9px 0px #919191cf;
314
+ margin:30px auto;
315
+ width: 100%;
316
+ max-width: 300px;
317
+ padding-bottom:20px;
318
+ }
319
+ .supsystic-footer-wrapper {
320
+ display: flex;
321
+ position: relative;
322
+ background: #263546;
323
+ margin-left: 75px;
324
+ color: white;
325
+ padding: 10px;
326
+ flex-direction: row;
327
+ flex-wrap: nowrap;
328
+ align-content: center;
329
+ justify-content: space-between;
330
+ align-items: center;
331
+ }
332
+ .supsystic-panel {
333
+ margin-bottom:0px;
334
+ }
335
+ .supsystic-breadcrumbs {
336
+ background: #263546;
337
+ color: white;
338
+ }
339
+ .supsystic-breadcrumbs * {
340
+ color: white !important;
341
+ }
342
+ .ui-dialog-titlebar-close {
343
+ display:none;
344
+ }
345
+ .supsysticOverviewACFormNotification,
346
+ .required-notification {
347
+ margin-top:10px;
348
+ }
349
+ .supsysticOverviewACClose {
350
+ display:inline-block;
351
+ position:absolute;
352
+ right:-7.5px;
353
+ top:-7.5px;
354
+ background:#4ae8ea !important;
355
+ border-radius:50%;
356
+ text-align:center;
357
+ font-size:18px;
358
+ width:21px;
359
+ height:21px;
360
+ cursor:pointer;
361
+ z-index:99;
362
+ text-shadow: 0px 1px 2px black;
363
+ }
src/GridGallery/Overview/assets/img/overview-01.png ADDED
Binary file
src/GridGallery/Overview/assets/img/overview-02.png ADDED
Binary file
src/GridGallery/Overview/assets/img/overview-03.png ADDED
Binary file
src/GridGallery/Overview/assets/img/plugin-icon.png ADDED
Binary file
src/GridGallery/Overview/assets/img/supsystic-logo-small.png ADDED
Binary file
src/GridGallery/Overview/assets/js/overview-settings.js CHANGED
@@ -3,6 +3,9 @@
3
  var Controller = function () {
4
  this.$newsContainer = $('.supsystic-overview-news');
5
  this.$mailButton = $('#send-mail');
 
 
 
6
  this.$faqToggles = $('.faq-title');
7
  };
8
 
@@ -72,17 +75,121 @@
72
  $('.required-notification').hide();
73
  sendMail();
74
  });
75
- };
76
 
 
 
 
 
 
 
 
77
 
 
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
 
80
  Controller.prototype.initFaqToggles = function() {
81
  var self = this;
82
 
83
  this.$faqToggles.on('click', function() {
84
- //self.$faqToggles.find('div.description').hide();
85
- //$(this).find('div.description').show();
86
  jQuery(this).find('div.description').toggle();
87
  });
88
  };
@@ -90,6 +197,9 @@
90
  Controller.prototype.init = function() {
91
  this.initScroll();
92
  this.checkMail();
 
 
 
93
  this.initFaqToggles();
94
  };
95
 
@@ -98,4 +208,18 @@
98
 
99
  controller.init();
100
  });
101
- })(jQuery, window.SupsysticGallery = window.SupsysticGallery || {});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  var Controller = function () {
4
  this.$newsContainer = $('.supsystic-overview-news');
5
  this.$mailButton = $('#send-mail');
6
+ this.$subscribeButton = $('#subscribe-btn');
7
+ this.$subscribeButtonRemind = $('.supsysticOverviewACBtnRemind');
8
+ this.$subscribeButtonDisable = $('.supsysticOverviewACBtnDisable');
9
  this.$faqToggles = $('.faq-title');
10
  };
11
 
75
  $('.required-notification').hide();
76
  sendMail();
77
  });
 
78
 
79
+ };
80
+
81
+ Controller.prototype.subscribeMail = function() {
82
+ var self = this,
83
+ $userMail = $('.supsysticOverviewACForm [name="email"]'),
84
+ $userName = $('.supsysticOverviewACForm [name="username"]'),
85
+ $dialog = $('#supsysticOverviewACFormDialog');
86
 
87
+ function sendSubscribeMail() {
88
 
89
+ var defaultIconClass = self.$subscribeButton.find('i').attr('class');
90
+ self.$subscribeButton.find('i').attr('class', 'fa fa-spinner fa-spin');
91
+ self.$subscribeButton.attr('disabled', true);
92
+
93
+ data = {};
94
+ $.each($('#overview-ac-form').serializeArray(), function(index, obj){
95
+ data[obj.name] = obj.value;
96
+ });
97
+
98
+ app.Ajax.Post({
99
+ module: 'overview',
100
+ action: 'sendSubscribeMail',
101
+ data: data
102
+ }).send(function(response) {
103
+ self.$subscribeButton.find('i').attr('class', defaultIconClass);
104
+ self.$subscribeButton.attr('disabled', false);
105
+
106
+ if (!response.success) {
107
+ $('#supsysticOverviewACFormDialog').find('.on-error').show();
108
+ }
109
+ $('#supsysticOverviewACFormDialog').find('.message').text(response.message);
110
+ $('#supsysticOverviewACFormDialog').dialog({
111
+ autoOpen: true,
112
+ resizable: false,
113
+ width: 500,
114
+ height: 280,
115
+ modal: true,
116
+ buttons: {
117
+ Close: function() {
118
+ $('#supsysticOverviewACFormDialog').find('.on-error').hide();
119
+ $('.supsysticOverviewACFormOverlay').fadeOut();
120
+ $(this).dialog("close");
121
+ }
122
+ }
123
+ });
124
+ });
125
+ }
126
+
127
+ this.$subscribeButton.on('click', function(e) {
128
+ e.preventDefault();
129
+ if(!$userMail.val() || !$userName.val()) {
130
+ $('.supsysticOverviewACFormNotification').show();
131
+ return;
132
+ }
133
+ $('.supsysticOverviewACFormNotification').hide();
134
+ jQuery('#subscribe-btn, .supsysticOverviewACBtnRemind, .supsysticOverviewACBtnDisable').attr('disabled','disabled').prop('disabled','disabled');
135
+ sendSubscribeMail();
136
+ });
137
+
138
+ };
139
+
140
+ Controller.prototype.subscribeRemind = function() {
141
+ var self = this;
142
+ function sendSubscribeRemind() {
143
+ var defaultIconClass = self.$subscribeButtonRemind.find('i').attr('class');
144
+ self.$subscribeButtonRemind.find('i').attr('class', 'fa fa-spinner fa-spin');
145
+ self.$subscribeButtonRemind.attr('disabled', true);
146
+ console.log(SupsysticGallery.nonce);
147
+ var data = {};
148
+
149
+ app.Ajax.Post({
150
+ module: 'overview',
151
+ action: 'sendSubscribeRemind',
152
+ data: data
153
+ }).send(function(response) {
154
+ self.$subscribeButtonRemind.find('i').attr('class', defaultIconClass);
155
+ self.$subscribeButtonRemind.attr('disabled', false);
156
+ $('.supsysticOverviewACFormOverlay').fadeOut();
157
+ });
158
+ }
159
+ this.$subscribeButtonRemind.on('click', function(e) {
160
+ e.preventDefault();
161
+ sendSubscribeRemind();
162
+ });
163
+ };
164
+
165
+ Controller.prototype.subscribeDisable = function() {
166
+ var self = this;
167
+ function sendSubscribeDisable() {
168
+ var defaultIconClass = self.$subscribeButtonDisable.find('i').attr('class');
169
+ self.$subscribeButtonDisable.find('i').attr('class', 'fa fa-spinner fa-spin');
170
+ self.$subscribeButtonDisable.attr('disabled', true);
171
+ var data = {};
172
+
173
+ app.Ajax.Post({
174
+ module: 'overview',
175
+ action: 'sendSubscribeDisable',
176
+ data: data
177
+ }).send(function(response) {
178
+ self.$subscribeButtonDisable.find('i').attr('class', defaultIconClass);
179
+ self.$subscribeButtonDisable.attr('disabled', false);
180
+ $('.supsysticOverviewACFormOverlay').fadeOut();
181
+ });
182
+ }
183
+ this.$subscribeButtonDisable.on('click', function(e) {
184
+ e.preventDefault();
185
+ sendSubscribeDisable();
186
+ });
187
+ };
188
 
189
  Controller.prototype.initFaqToggles = function() {
190
  var self = this;
191
 
192
  this.$faqToggles.on('click', function() {
 
 
193
  jQuery(this).find('div.description').toggle();
194
  });
195
  };
197
  Controller.prototype.init = function() {
198
  this.initScroll();
199
  this.checkMail();
200
+ this.subscribeMail();
201
+ this.subscribeRemind();
202
+ this.subscribeDisable();
203
  this.initFaqToggles();
204
  };
205
 
208
 
209
  controller.init();
210
  });
211
+
212
+ })(jQuery, window.SupsysticGallery = window.SupsysticGallery || {});
213
+
214
+ jQuery(document).ready(function(){
215
+ jQuery('.overview-section-btn').on('click', function(){
216
+ jQuery(".overview-section").hide();
217
+ jQuery(".overview-section[data-section='"+jQuery(this).data("section")+"']").show();
218
+ jQuery('.overview-section-btn-active').removeClass('overview-section-btn-active');
219
+ jQuery(this).addClass('overview-section-btn-active');
220
+ });
221
+ jQuery('.supsysticOverviewACBtnDisable, .supsysticOverviewACClose, .supsysticOverviewACBtnRemind').on('click', function(){
222
+ jQuery('.supsysticOverviewACFormOverlay').fadeOut();
223
+ });
224
+ jQuery('.overview-section-btn').eq(0).trigger('click');
225
+ });
src/GridGallery/Overview/views/index.twig CHANGED
@@ -12,17 +12,110 @@
12
 
13
  {% block content %}
14
  <div class="supsystic-overview">
 
 
 
 
 
 
15
  <div class="half-page half-page-left">
16
- {#<div>
17
- <h3>Gallery by Supsystic</h3>
18
- <div class="description">
19
- This plugin can easily build a bright gallery especially, if you are a photographer or a designer, Grid Gallery will be useful for you because you will be able to present your works in an unusual way. It is enough to install the plugin once, and it will work for you all the time, creating a beautiful collection of your best photos. The only thing you need to do is to set the preferred parameters of the WordPress grid gallery.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  <div class="clear"></div>
22
- </div>#}
 
 
 
 
 
 
 
 
23
 
24
- <div class="faq-list">
25
- <h3>FAQ and Documentation</h3>
26
  <div class="faq-title">
27
  <i class="fa fa-info-circle"></i>
28
  Gallery plugin installation
@@ -62,29 +155,37 @@
62
  <i class="fa fa-info-circle"></i>
63
  {{ translate('Start step-by-step tutorial') }}
64
  </a>
65
- <a href="http://supsystic.com/plugins/photo-gallery/?utm_source=plugin&utm_medium=faq&utm_campaign=gallery#faq" class="button button-primary button-hero">
66
  <i class="fa fa-info-circle"></i>
67
  Check all FAQs
68
  </a>
69
- <div style="clear: both;"></div>
70
  </div>
71
- <div class="video">
72
- <h3>Video tutorial</h3>
 
73
  <iframe type="text/html"
74
- width="80%"
75
- height="240px"
76
  src="http://www.youtube.com/embed/5bkjrlV14CE"
77
  frameborder="0">
78
  </iframe>
 
79
  </div>
80
- <div class="banner">
81
- <div class="text-block">{{ translate('If you want to host a business site or a blog, Kinsta managed WordPress hosting is the best place to stop on. Without any hesitation, we can say Kinsta is incredible when it comes to uptime and speed.') }}</div>
82
- <a href="https://kinsta.com?kaid=MNRQQASUYJRT">
83
- <img src="{{ plugin_directory_url('app/assets/img/kinsta_banner.png') }}" style="width: 300px;height: 250px;" />
84
- </a>
 
 
 
 
 
85
  </div>
86
- <div class="server-settings">
87
- <h3>Server Settings</h3>
 
88
  <ul class="settings-list">
89
  {% for title, element in serverSettings %}
90
  <li class="settings-line" style="float: none;">
@@ -93,86 +194,18 @@
93
  </li>
94
  {% endfor %}
95
  </ul>
96
- </div>
97
- </div>
98
- <div class="half-page half-page-right">
99
- <div class="supsystic-overview-news-container">
100
- <h3>News</h3>
101
- <div class="supsystic-overview-news">
102
- {{ news|raw }}
103
- </div>
104
- <a href="http://supsystic.com/plugins/photo-gallery/" class="button button-primary button-hero">
105
- <i class="fa fa-info-circle"></i>All news
106
- </a>
107
  <div class="clear"></div>
108
  </div>
109
- <div class="overview-contact-form">
110
- <h3>Contact form</h3>
111
- {#<div class="description">Translate plugin in your language and get a Premium license for FREE</div>#}
112
- {% import '@core/form.twig' as form %}
113
-
114
- {{ form.open('post', environment.generateUrl('overview', 'sendMail'), { 'id': 'form-settings', 'style': 'max-width: 428px;', '_wpnonce': _wpnonce }) }}
115
-
116
- <table class="contact-form-table" style="width: 100%;">
117
- <thead>
118
- {{ form.row(translate('Name') ~ ' *',
119
- form.text('name', contactForm.name, { 'required': '' })) }}
120
-
121
- {{ form.row(translate('Email') ~ ' *',
122
- form.text('email', contactForm.email, { 'required': '' })) }}
123
-
124
- {{ form.row(translate('Website') ~ ' *',
125
- form.text('website', contactForm.website, { 'required': '' })) }}
126
 
127
- {{ form.row(translate('Subject') ~ ' *',
128
- form.text('subject', '', { 'required': '' })) }}
129
- <tr>
130
- <th scope="row">
131
- <label for="select-question">{{ translate('Topic') }}</label>
132
- </th>
133
- <td>
134
- <select id="select-question" name="question">
135
- <option value="plugin_options">
136
- {{ translate('Plugin options') }}
137
- </option>
138
- <option value="bug">
139
- {{ translate('Report a bug') }}
140
- </option>
141
- <option value="functionallity">
142
- {{ translate('Require a new functionallity') }}
143
- </option>
144
- <option value="other">
145
- {{ translate('Other') }}
146
- </option>
147
- </select>
148
- </td>
149
- </tr>
150
- <tr>
151
- <th scope="row" style="vertical-align: top;">
152
- <label for="mail-text">{{ translate('Message') ~ ' *' }}</label>
153
- </th>
154
- <td>
155
- <textarea id="mail-text" name="message" cols="50" rows="3" placeholder="{{ translate('Hello Supsystic Team!') }}" required=""></textarea>
156
- </td>
157
- </tr>
158
 
159
- </thead>
160
- </table>
161
- <button id="send-mail" type="submit" class="button button-primary button-hero">
162
- <i class="fa fa-upload"></i>
163
- Send email
164
- </button>
165
- <div class="required-notification" style="color: red; float: left;" hidden>Fields with * are required to fill</div>
166
- {{ form.close() }}
167
- <div class="clear"></div>
168
- </div>
169
  </div>
170
- <div id="contact-form-dialog" hidden>
171
- <div class="on-error" style="display:none">
172
- <p>{{ translate('Some errors occurred while sending mail please send your message trough this contact form:') }}</p>
173
- <p><a href="http://supsystic.com/plugins/photo-gallery/#contact" target="_blank">http://supsystic.com/plugins/photo-gallery/#contact</a></p>
174
- </div>
175
- <div class="message"></div>
176
  </div>
177
  </div>
178
- {% endblock %}
12
 
13
  {% block content %}
14
  <div class="supsystic-overview">
15
+ <div class="full-page">
16
+ <div class="plugin-title"><img src="{{ SGG_PLUGIN_URL }}/src/GridGallery/Overview/assets/img/plugin-icon.png">Photo Gallery by Supsystic</div>
17
+ <div class="plugin-description">Easily arrange your photos and videos with the WordPress Photo Gallery plugin by Supsystic. This Photo Gallery plugin is seriously powerful. It’s perfect for people who want the tools and flexibility to showcase their photos and videos in a truly spectacular fashion. And, best of all, it’s user friendly!
18
+ This plugin will help you bring your ideas to life quickly and easily. In no time you’ll be showing off an impressive gallery of all your photo and video assets.</div>
19
+ </div>
20
+ <div class="supsystic-overview-flex">
21
  <div class="half-page half-page-left">
22
+ <div class="border-wrapper">
23
+ <ul>
24
+ <li class="overview-section-btn" data-section="faq"><i class="fa fa-info-circle"></i> FAQ and Documentation</li>
25
+ <li class="overview-section-btn" data-section="video"><i class="fa fa-play"></i> Video tutorial</li>
26
+ <li class="overview-section-btn" data-section="settings"><i class="fa fa-cog"></i> Server Settings</li>
27
+ <li class="overview-section-btn" data-section="support"><i class="fa fa-life-ring"></i> Support</li>
28
+ <li class="overview-section-btn" data-section="promo_video"><i class="fa fa-star"></i> Our promo video</li>
29
+ <li class="overview-section-btn"><a target="_blank" title="Go to supsystic.com" href="https://supsystic.com/plugins/photo-gallery/?utm_source=plugin&utm_campaign=gallery"> Plugin page on supsystic.com <sup><i class="fa fa-external-link"></i></sup></a></li>
30
+ <li class="overview-section-btn"><a target="_blank" title="Go to supsystic.com" href="https://supsystic.com/plugins/photo-gallery/?utm_source=plugin&utm_campaign=gallery"> Compare FREE and PRO features <sup><i class="fa fa-external-link"></i></sup></a></li>
31
+ <li class="overview-section-btn"><a target="_blank" title="Go to supsystic.com" href="https://supsystic.com/all-plugins/?utm_source=plugin&utm_campaign=gallery"> Check other supsystic FREE plugins <sup><i class="fa fa-external-link"></i></sup></a></li>
32
+ </ul>
33
+ </div>
34
+
35
+ <div class="border-wrapper">
36
+ <div class="overview-contact-form overview-section" data-section="support">
37
+ <h3><i class="fa fa-life-ring"></i> Support</h3>
38
+ <div class="contact-info-section">
39
+ <p><i class="fa fa-clock-o" aria-hidden="true"></i> Our official support hours are 09:00 -18:00 GMT+02:00, Monday to Friday – excluding bank holidays and other official holidays.</p>
40
+ <p>The timescales listed below refer to these working hours.</p><br>
41
+ <p><em>Support requests are prioritized based on the type of license:</em></p>
42
+ <ul>
43
+ <li><p><em>Pro Support</em> is reserved for customers with an active Pro license. We respond to new priority support requests within 12 hours.</p></li>
44
+ <li><p><em>Standard Support</em> is provided to customers with an active Free license. We respond to standard support requests within 24h-48h.</p></li>
45
+ </ul><br>
46
+ <p><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> While we don’t guarantee that we will resolve the request in this time period, we will acknowledge it and communicate with the customer as appropriate to help resolve the issue.</p>
47
  </div>
48
+ {% import '@core/form.twig' as form %}
49
+
50
+ {{ form.open('post', environment.generateUrl('overview', 'sendMail'), { 'id': 'form-settings', 'style': 'max-width: 100%;', '_wpnonce': _wpnonce }) }}
51
+
52
+ <table class="contact-form-table" style="width: 100%;">
53
+ <thead>
54
+ {{ form.row(translate('Name') ~ ' *',
55
+ form.text('name', SG_USER_NAME, { 'required': '' })) }}
56
+
57
+ {{ form.row(translate('Email') ~ ' *',
58
+ form.text('email', contactForm.email, { 'required': '' })) }}
59
+
60
+ {{ form.row(translate('Website') ~ ' *',
61
+ form.text('website', contactForm.website, { 'required': '' })) }}
62
+
63
+ {{ form.row(translate('Subject') ~ ' *',
64
+ form.text('subject', '', { 'required': '' })) }}
65
+ <tr>
66
+ <th scope="row">
67
+ <label for="select-question">{{ translate('Topic') }}</label>
68
+ </th>
69
+ <td>
70
+ <select id="select-question" name="question">
71
+ <option value="plugin_options">
72
+ {{ translate('Plugin options') }}
73
+ </option>
74
+ <option value="bug">
75
+ {{ translate('Report a bug') }}
76
+ </option>
77
+ <option value="functionallity">
78
+ {{ translate('Require a new functionallity') }}
79
+ </option>
80
+ <option value="security_issue">
81
+ {{ translate('Report about security issue (XSS/SQLi and others)') }}
82
+ </option>
83
+ <option value="other">
84
+ {{ translate('Other') }}
85
+ </option>
86
+ </select>
87
+ </td>
88
+ </tr>
89
+ <tr>
90
+ <th scope="row" style="vertical-align: top;">
91
+ <label for="mail-text">{{ translate('Message') ~ ' *' }}</label>
92
+ </th>
93
+ <td>
94
+ <textarea id="mail-text" name="message" cols="50" rows="3" placeholder="{{ translate('Hello Supsystic Team!') }}" required=""></textarea>
95
+ </td>
96
+ </tr>
97
+
98
+ </thead>
99
+ </table>
100
+ <button id="send-mail" type="submit" class="button button-primary button-hero">
101
+ <i class="fa fa-check-square" aria-hidden="true"></i>
102
+ Send email
103
+ </button>
104
+ <div class="required-notification" style="color: red; float: left;" hidden>Fields with * are required to fill</div>
105
+ {{ form.close() }}
106
  <div class="clear"></div>
107
+ </div>
108
+
109
+ <div id="contact-form-dialog" hidden>
110
+ <div class="on-error" style="display:none">
111
+ <p>{{ translate('Some errors occurred while sending mail please send your message trough this contact form:') }}</p>
112
+ <p><a href="https://supsystic.com/plugins/photo-gallery/#contact" target="_blank">https://supsystic.com/plugins/photo-gallery/#contact</a></p>
113
+ </div>
114
+ <div class="message"></div>
115
+ </div>
116
 
117
+ <div data-section="faq" class="faq-list overview-section">
118
+ <h3><i class="fa fa-info-circle"></i> FAQ and Documentation</h3>
119
  <div class="faq-title">
120
  <i class="fa fa-info-circle"></i>
121
  Gallery plugin installation
155
  <i class="fa fa-info-circle"></i>
156
  {{ translate('Start step-by-step tutorial') }}
157
  </a>
158
+ <a target="_blank" href="https://supsystic.com/docs/gallery/?utm_source=plugin&utm_medium=faq&utm_campaign=gallery" class="button button-primary button-hero">
159
  <i class="fa fa-info-circle"></i>
160
  Check all FAQs
161
  </a>
162
+ <div class="clear"></div>
163
  </div>
164
+
165
+ <div data-section="video" class="video overview-section">
166
+ <h3><i class="fa fa-play"></i> Video tutorial</h3>
167
  <iframe type="text/html"
168
+ width="100%"
169
+ height="350px"
170
  src="http://www.youtube.com/embed/5bkjrlV14CE"
171
  frameborder="0">
172
  </iframe>
173
+ <div class="clear"></div>
174
  </div>
175
+
176
+ <div data-section="promo_video" class="video overview-section">
177
+ <h3><i class="fa fa-star"></i> Our promo video</h3>
178
+ <iframe type="text/html"
179
+ width="100%"
180
+ height="350px"
181
+ src="http://www.youtube.com/embed/dKd_9g6JzfU"
182
+ frameborder="0">
183
+ </iframe>
184
+ <div class="clear"></div>
185
  </div>
186
+
187
+ <div data-section="settings" class="server-settings overview-section">
188
+ <h3><i class="fa fa-cog"></i> Server settings</h3>
189
  <ul class="settings-list">
190
  {% for title, element in serverSettings %}
191
  <li class="settings-line" style="float: none;">
194
  </li>
195
  {% endfor %}
196
  </ul>
 
 
 
 
 
 
 
 
 
 
 
197
  <div class="clear"></div>
198
  </div>
199
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
 
201
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
202
 
203
+ <div class="half-page half-page-right">
204
+ <a href="https://supsystic.com/pricing/?utm_source=plugin&utm_campaign=gallery" target="_blank"><img class="overview-supsystic-img" src="{{ SGG_PLUGIN_URL }}/src/GridGallery/Overview/assets/img/overview-01.png"></a>
205
+ <a href="https://supsystic.com/bundle-mix/?utm_source=plugin&utm_campaign=gallery" target="_blank"><img class="overview-supsystic-img" src="{{ SGG_PLUGIN_URL }}/src/GridGallery/Overview/assets/img/overview-02.png"></a>
206
+ <a href="https://supsystic.com/all-plugins/?utm_source=plugin&utm_campaign=gallery" target="_blank"><img style="margin-top:20px;" class="overview-supsystic-img" src="{{ SGG_PLUGIN_URL }}/src/GridGallery/Overview/assets/img/overview-03.png"></a>
207
+ <div class="clear"></div>
 
 
 
 
 
208
  </div>
 
 
 
 
 
 
209
  </div>
210
  </div>
211
+ {% endblock %}
src/GridGallery/Promo/Model/Promo.php CHANGED
@@ -10,7 +10,7 @@ class GridGallery_Promo_Model_Promo extends Rsc_Mvc_Model {
10
  'temporary' => 'Temporary',
11
  'other' => 'Other',
12
  );
13
- $deactivateParams['Reason'] = isset($d['deactivate_reason']) && $d['deactivate_reason']
14
  ? $reasonsLabels[ $d['deactivate_reason'] ]
15
  : 'No reason';
16
  if(isset($d['deactivate_reason']) && $d['deactivate_reason']) {
@@ -28,8 +28,8 @@ class GridGallery_Promo_Model_Promo extends Rsc_Mvc_Model {
28
  if($startUsage) {
29
  $usedTime = time() - $startUsage;
30
  $this->bigStatAdd('Used Time', array(
31
- 'Seconds' => $usedTime,
32
- 'Hours' => round($usedTime / 60 / 60),
33
  'Days' => round($usedTime / 60 / 60 / 24)
34
  ));
35
  }
@@ -60,10 +60,4 @@ class GridGallery_Promo_Model_Promo extends Rsc_Mvc_Model {
60
  }
61
  }
62
  }
63
- /*public function bigStatAddCheck( $key, $properties = array() ) {
64
- $canSend = (int) framePps::_()->getModule('options')->get('send_stats');
65
- if( $canSend ) {
66
- $this->bigStatAdd( $key, $properties );
67
- }
68
- }*/
69
  }
10
  'temporary' => 'Temporary',
11
  'other' => 'Other',
12
  );
13
+ $deactivateParams['Reason'] = isset($d['deactivate_reason']) && $d['deactivate_reason']
14
  ? $reasonsLabels[ $d['deactivate_reason'] ]
15
  : 'No reason';
16
  if(isset($d['deactivate_reason']) && $d['deactivate_reason']) {
28
  if($startUsage) {
29
  $usedTime = time() - $startUsage;
30
  $this->bigStatAdd('Used Time', array(
31
+ 'Seconds' => $usedTime,
32
+ 'Hours' => round($usedTime / 60 / 60),
33
  'Days' => round($usedTime / 60 / 60 / 24)
34
  ));
35
  }
60
  }
61
  }
62
  }
 
 
 
 
 
 
63
  }
src/GridGallery/Promo/Module.php CHANGED
@@ -16,7 +16,7 @@ class GridGallery_Promo_Module extends GridGallery_Core_Module
16
 
17
  //add_action($this->getConfig()->get('hooks_prefix') . 'after_ui_loaded', array($this, 'loadAdminPromoAssets'));
18
  add_action('admin_init', array($this, 'loadAdminPromoAssets'));
19
- add_action('admin_footer', array($this, 'checkPluginDeactivation'));
20
  add_action('wp_ajax_sgg-tutorial-close', array($this, 'endTutorial'));
21
 
22
  $dispatcher = $this->getEnvironment()->getDispatcher();
@@ -217,7 +217,6 @@ class GridGallery_Promo_Module extends GridGallery_Core_Module
217
  if(function_exists('get_current_screen')) {
218
  $screen = get_current_screen();
219
  if($screen && isset($screen->base) && $screen->base == 'plugins') {
220
- wp_enqueue_script('jquery-ui-dialog');
221
  wp_enqueue_script('sgg.admin.plugins', $this->getLocationUrl() . '/assets/js/admin.plugins.js');
222
  wp_localize_script('sgg.admin.plugins', 'sggPluginsData', array(
223
  'plugSlug' => $this->getEnvironment()->getConfig()->get('plugin_folder_name')
@@ -249,28 +248,27 @@ class GridGallery_Promo_Module extends GridGallery_Core_Module
249
  {
250
  $environment = $this->getEnvironment();
251
  if($environment->isPro() && $environment->isModule('license') && $environment->getModule('license')->isActive()) {
252
- $proPluginsList = array(
253
- 'ultimate-maps-by-supsystic-pro', 'newsletters-by-supsystic-pro', 'contact-form-by-supsystic-pro', 'live-chat-pro',
254
- 'digital-publications-supsystic-pro', 'coming-soon-supsystic-pro', 'price-table-supsystic-pro', 'tables-generator-pro',
255
- 'social-share-pro', 'popup-by-supsystic-pro', 'supsystic_slider_pro', 'supsystic-gallery-pro', 'google-maps-easy-pro',
256
- 'backup-supsystic-pro',
257
- );
258
- $activePluginsList = get_option('active_plugins', array());
259
- $activeProPluginsCount = 0;
260
- foreach($activePluginsList as $actPl) {
261
- foreach($proPluginsList as $proPl) {
262
- if(strpos($actPl, $proPl) !== false) {
263
- $activeProPluginsCount++;
264
- }
265
- }
266
- }
267
- if($activeProPluginsCount === 1) {
268
- $twig = $this->getEnvironment()->getTwig();
269
- $twig->display('@promo/discountMessage.twig', array(
270
- 'bundlePageLink' => '//supsystic.com/all-plugins/',
271
- 'buyLink' => $this->getDiscountBuyUrl(),
272
- ));
273
- }
274
  }
275
  }
276
  public function getDiscountBuyUrl() {
16
 
17
  //add_action($this->getConfig()->get('hooks_prefix') . 'after_ui_loaded', array($this, 'loadAdminPromoAssets'));
18
  add_action('admin_init', array($this, 'loadAdminPromoAssets'));
19
+ //add_action('admin_footer', array($this, 'checkPluginDeactivation'));
20
  add_action('wp_ajax_sgg-tutorial-close', array($this, 'endTutorial'));
21
 
22
  $dispatcher = $this->getEnvironment()->getDispatcher();
217
  if(function_exists('get_current_screen')) {
218
  $screen = get_current_screen();
219
  if($screen && isset($screen->base) && $screen->base == 'plugins') {
 
220
  wp_enqueue_script('sgg.admin.plugins', $this->getLocationUrl() . '/assets/js/admin.plugins.js');
221
  wp_localize_script('sgg.admin.plugins', 'sggPluginsData', array(
222
  'plugSlug' => $this->getEnvironment()->getConfig()->get('plugin_folder_name')
248
  {
249
  $environment = $this->getEnvironment();
250
  if($environment->isPro() && $environment->isModule('license') && $environment->getModule('license')->isActive()) {
251
+ // $proPluginsList = array(
252
+ // 'ultimate-maps-by-supsystic-pro', 'contact-form-by-supsystic-pro', 'digital-publications-supsystic-pro', 'coming-soon-supsystic-pro',
253
+ // 'price-table-supsystic-pro', 'tables-generator-pro', 'social-share-pro', 'popup-by-supsystic-pro', 'supsystic_slider_pro',
254
+ // 'supsystic-gallery-pro', 'google-maps-easy-pro', 'backup-supsystic-pro'
255
+ // );
256
+ // $activePluginsList = get_option('active_plugins', array());
257
+ // $activeProPluginsCount = 0;
258
+ // foreach($activePluginsList as $actPl) {
259
+ // foreach($proPluginsList as $proPl) {
260
+ // if(strpos($actPl, $proPl) !== false) {
261
+ // $activeProPluginsCount++;
262
+ // }
263
+ // }
264
+ // }
265
+ // if($activeProPluginsCount === 1) {
266
+ // $twig = $this->getEnvironment()->getTwig();
267
+ // $twig->display('@promo/discountMessage.twig', array(
268
+ // 'bundlePageLink' => '//supsystic.com/all-plugins/',
269
+ // 'buyLink' => $this->getDiscountBuyUrl(),
270
+ // ));
271
+ // }
 
272
  }
273
  }
274
  public function getDiscountBuyUrl() {
src/GridGallery/Promo/assets/js/admin.plugins.js CHANGED
@@ -1,54 +1,2 @@
1
  jQuery(document).ready(function(){
2
- var app = window.SupsysticGallery;
3
- var g_sggAnimationSpeed = 300;
4
- var $deactivateLnk = jQuery('#the-list tr[data-plugin="'+ sggPluginsData.plugSlug+ '/index.php"] .row-actions .deactivate a');
5
- if($deactivateLnk && $deactivateLnk.length) {
6
- var $deactivateForm = jQuery('#sggDeactivateForm');
7
- var $deactivateWnd = jQuery('#sggDeactivateWnd').dialog({
8
- modal: true
9
- , autoOpen: false
10
- , width: 500
11
- , height: 390
12
- , buttons: {
13
- 'Submit & Deactivate': function() {
14
- $deactivateForm.submit();
15
- }
16
- }
17
- });
18
- var $wndButtonset = $deactivateWnd.parents('.ui-dialog:first')
19
- .find('.ui-dialog-buttonpane .ui-dialog-buttonset')
20
- , $deactivateDlgBtn = $deactivateWnd.find('.sggDeactivateSkipDataBtn')
21
- , deactivateUrl = $deactivateLnk.attr('href');
22
- $deactivateDlgBtn.attr('href', deactivateUrl);
23
- $wndButtonset.append( $deactivateDlgBtn );
24
- $deactivateLnk.click(function(){
25
- $deactivateWnd.dialog('open');
26
- return false;
27
- });
28
-
29
- $deactivateForm.submit(function(){
30
- var request = app.Ajax.Post({
31
- module: 'promo'
32
- , action: 'saveDeactivateData'
33
- }, {
34
- 'deactivate_reason': $deactivateForm.find('input[name="deactivate_reason"]:checked').val()
35
- , 'better_plugin': $deactivateForm.find('input[name="better_plugin"]').val()
36
- , 'other': $deactivateForm.find('input[name="other"]').val()
37
- });
38
- $deactivateForm.find('button').attr('disabled', 'disabled');
39
- request.send(jQuery.proxy(function (response) {
40
- window.location.href = deactivateUrl;
41
- }, this));
42
- return false;
43
- });
44
- $deactivateForm.find('[name="deactivate_reason"]').change(function(){
45
- jQuery('.sggDeactivateDescShell').slideUp( g_sggAnimationSpeed );
46
- if(jQuery(this).prop('checked')) {
47
- var $descShell = jQuery(this).parents('.sggDeactivateReasonShell:first').find('.sggDeactivateDescShell');
48
- if($descShell && $descShell.length) {
49
- $descShell.slideDown( g_sggAnimationSpeed );
50
- }
51
- }
52
- });
53
- }
54
  });
1
  jQuery(document).ready(function(){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  });
src/GridGallery/Promo/views/discountMessage.twig CHANGED
@@ -35,4 +35,4 @@
35
  <span class="text">{{ environment.translate('Upgrade to bundle and get an access to <a href="%s" target="_blank">all 14 plugins</a> more than 80%% off!') |format(bundlePageLink)|raw }}</span>
36
  <a href="{{ buyLink }}" class="button" target="_blank">{{ environment.translate('Buy Now') }}</a>
37
  </div>
38
- </div>
35
  <span class="text">{{ environment.translate('Upgrade to bundle and get an access to <a href="%s" target="_blank">all 14 plugins</a> more than 80%% off!') |format(bundlePageLink)|raw }}</span>
36
  <a href="{{ buyLink }}" class="button" target="_blank">{{ environment.translate('Buy Now') }}</a>
37
  </div>
38
+ </div>
src/GridGallery/Settings/Module.php CHANGED
@@ -44,25 +44,17 @@ class GridGallery_Settings_Module extends Rsc_Mvc_Module
44
  );
45
  }
46
 
47
- // public function onInstall()
48
- // {
49
- // parent::onInstall();
50
-
51
- // $registry = $this->getRegistry();
52
- // //Set this option to 1 to enable sending statistic
53
- // $registry->set('send_stats', 0);
54
- // }
55
 
56
  public function getBackendCSS() {
57
  return array(
58
- SG_PLUGIN_URL . '/app/assets/css/chosen.min.css',
59
  $this->getLocationUrl() . '/assets/css/settings.css'
60
  );
61
  }
62
 
63
  public function getBackendJS() {
64
  return array(
65
- SG_PLUGIN_URL . '/app/assets/js/chosen.jquery.min.js',
66
  array(
67
  'source' => $this->getLocationUrl() . '/assets/js/settings.index.js',
68
  'dependencies' => array('chosen.jquery.min.js')
44
  );
45
  }
46
 
 
 
 
 
 
 
 
 
47
 
48
  public function getBackendCSS() {
49
  return array(
50
+ SGG_PLUGIN_URL . '/app/assets/css/chosen.min.css',
51
  $this->getLocationUrl() . '/assets/css/settings.css'
52
  );
53
  }
54
 
55
  public function getBackendJS() {
56
  return array(
57
+ SGG_PLUGIN_URL . '/app/assets/js/chosen.jquery.min.js',
58
  array(
59
  'source' => $this->getLocationUrl() . '/assets/js/settings.index.js',
60
  'dependencies' => array('chosen.jquery.min.js')
src/GridGallery/Settings/views/index.twig CHANGED
@@ -14,15 +14,6 @@
14
  <div class="settings-list">
15
  {% block beforeSettings %}{% endblock %}
16
  <div class="settings">
17
- <div class="setting">
18
- <div class="setting-description">
19
- <label>{{ environment.translate('Send usage statistics') }}</label>
20
- {{ h.showTooltip('If this option is enabled, the statistics about what plugin options you prefer to use will be collected and sent to us automatically. This information will help us make our solution better for you.', 'top', true) }}
21
- </div>
22
- <div class="setting-control">
23
- <input type="checkbox" name="settings[send_stats]" value="1" {% if settings.send_stats %}checked{% endif %} />
24
- </div>
25
- </div>
26
  <div class="setting">
27
  <div class="setting-description">
28
  <label>{{ environment.translate('Image Preprocessor') }}</label>
@@ -38,7 +29,7 @@
38
  {% for name, title in editors %}
39
  <option value="{{ name }}"
40
  {% if name == settings.image_editor %}
41
- selected="selected"
42
  {% endif %}
43
  >{{ title }}
44
  </option>
@@ -70,7 +61,7 @@
70
  {% for role, title in roles %}
71
  <option value="{{ role }}"
72
  {% if role in settings.access_roles %}
73
- selected="selected"
74
  {% endif %}
75
  >{{ title }}
76
  </option>
@@ -84,4 +75,3 @@
84
  {% block afterSettingsList %}{% endblock %}
85
  </form>
86
  {% endblock %}
87
-
14
  <div class="settings-list">
15
  {% block beforeSettings %}{% endblock %}
16
  <div class="settings">
 
 
 
 
 
 
 
 
 
17
  <div class="setting">
18
  <div class="setting-description">
19
  <label>{{ environment.translate('Image Preprocessor') }}</label>
29
  {% for name, title in editors %}
30
  <option value="{{ name }}"
31
  {% if name == settings.image_editor %}
32
+ selected="selected"
33
  {% endif %}
34
  >{{ title }}
35
  </option>
61
  {% for role, title in roles %}
62
  <option value="{{ role }}"
63
  {% if role in settings.access_roles %}
64
+ selected="selected"
65
  {% endif %}
66
  >{{ title }}
67
  </option>
75
  {% block afterSettingsList %}{% endblock %}
76
  </form>
77
  {% endblock %}
 
src/GridGallery/Ui/Module.php CHANGED
@@ -65,7 +65,7 @@ class GridGallery_Ui_Module extends Rsc_Mvc_Module
65
  $url . '/app/assets/css/minimal/minimal.css',
66
  $url . '/app/assets/css/libraries/fontawesome/font-awesome.min.css',
67
  $this->getLocationUrl() . '/css/tooltipster.css',
68
- SG_PLUGIN_URL . '/app/assets/css/jquery-ui.css',
69
  );
70
  }
71
 
@@ -77,7 +77,7 @@ class GridGallery_Ui_Module extends Rsc_Mvc_Module
77
  wp_localize_script('sg-ajax.js', 'sggStandartFontsList', $this->getStandardFontsList());
78
  if($this->getEnvironment()->isPro()) {
79
  if(version_compare($this->getEnvironment()->getConfig()->get('pro_plugin_version'), '2.7.6', '<')) {
80
- wp_enqueue_script('webfont-js', SG_PLUGIN_URL . '/app/assets/js/webfont.js');
81
  }
82
  }
83
  }
65
  $url . '/app/assets/css/minimal/minimal.css',
66
  $url . '/app/assets/css/libraries/fontawesome/font-awesome.min.css',
67
  $this->getLocationUrl() . '/css/tooltipster.css',
68
+ SGG_PLUGIN_URL . '/app/assets/css/jquery-ui.css',
69
  );
70
  }
71
 
77
  wp_localize_script('sg-ajax.js', 'sggStandartFontsList', $this->getStandardFontsList());
78
  if($this->getEnvironment()->isPro()) {
79
  if(version_compare($this->getEnvironment()->getConfig()->get('pro_plugin_version'), '2.7.6', '<')) {
80
+ wp_enqueue_script('webfont-js', SGG_PLUGIN_URL . '/app/assets/js/webfont.js');
81
  }
82
  }
83
  }
vendor/Rsc/Environment.php CHANGED
@@ -171,14 +171,14 @@ class Rsc_Environment
171
  new Twig_SupTwg_Loader_Filesystem($templatesPath),
172
  array(
173
  'cache' => $this->config->get('plugin_cache_twig', false),
174
- 'debug' => $this->isDev(),
175
  'auto_reload' => true
176
  )
177
  );
178
 
179
- if ($this->isDev()) {
180
- $this->twig->addExtension(new Twig_SupTwg_Extension_Debug());
181
- }
182
  } catch (Twig_SupTwg_Error_Loader $e) {
183
  wp_die(
184
  sprintf('Invalid plugin path specified: "%s"', $e->getMessage())
171
  new Twig_SupTwg_Loader_Filesystem($templatesPath),
172
  array(
173
  'cache' => $this->config->get('plugin_cache_twig', false),
174
+ 'debug' => false,
175
  'auto_reload' => true
176
  )
177
  );
178
 
179
+ // if ($this->isDev()) {
180
+ // $this->twig->addExtension(new Twig_SupTwg_Extension_Debug());
181
+ // }
182
  } catch (Twig_SupTwg_Error_Loader $e) {
183
  wp_die(
184
  sprintf('Invalid plugin path specified: "%s"', $e->getMessage())
vendor/Twig/Extension/Staging.php CHANGED
@@ -30,7 +30,6 @@ class Twig_SupTwg_Extension_Staging extends Twig_SupTwg_Extension
30
  public function addFunction($name, $function)
31
  {
32
  if (isset($this->functions[$name])) {
33
- @trigger_error(sprintf('Overriding function "%s" that is already registered is deprecated since version 1.30 and won\'t be possible anymore in 2.0.', $name), E_USER_DEPRECATED);
34
  }
35
 
36
  $this->functions[$name] = $function;
@@ -44,7 +43,6 @@ class Twig_SupTwg_Extension_Staging extends Twig_SupTwg_Extension
44
  public function addFilter($name, $filter)
45
  {
46
  if (isset($this->filters[$name])) {
47
- @trigger_error(sprintf('Overriding filter "%s" that is already registered is deprecated since version 1.30 and won\'t be possible anymore in 2.0.', $name), E_USER_DEPRECATED);
48
  }
49
 
50
  $this->filters[$name] = $filter;
@@ -68,7 +66,6 @@ class Twig_SupTwg_Extension_Staging extends Twig_SupTwg_Extension
68
  public function addTokenParser(Twig_SupTwg_TokenParserInterface $parser)
69
  {
70
  if (isset($this->tokenParsers[$parser->getTag()])) {
71
- @trigger_error(sprintf('Overriding tag "%s" that is already registered is deprecated since version 1.30 and won\'t be possible anymore in 2.0.', $parser->getTag()), E_USER_DEPRECATED);
72
  }
73
 
74
  $this->tokenParsers[$parser->getTag()] = $parser;
@@ -92,7 +89,6 @@ class Twig_SupTwg_Extension_Staging extends Twig_SupTwg_Extension
92
  public function addTest($name, $test)
93
  {
94
  if (isset($this->tests[$name])) {
95
- @trigger_error(sprintf('Overriding test "%s" that is already registered is deprecated since version 1.30 and won\'t be possible anymore in 2.0.', $name), E_USER_DEPRECATED);
96
  }
97
 
98
  $this->tests[$name] = $test;
30
  public function addFunction($name, $function)
31
  {
32
  if (isset($this->functions[$name])) {
 
33
  }
34
 
35
  $this->functions[$name] = $function;
43
  public function addFilter($name, $filter)
44
  {
45
  if (isset($this->filters[$name])) {
 
46
  }
47
 
48
  $this->filters[$name] = $filter;
66
  public function addTokenParser(Twig_SupTwg_TokenParserInterface $parser)
67
  {
68
  if (isset($this->tokenParsers[$parser->getTag()])) {
 
69
  }
70
 
71
  $this->tokenParsers[$parser->getTag()] = $parser;
89
  public function addTest($name, $test)
90
  {
91
  if (isset($this->tests[$name])) {
 
92
  }
93
 
94
  $this->tests[$name] = $test;