Responsive Menu - Version 3.0.7

Version Description

(15th July 2016) = * Requires PHP 5.4 * Added preview option - Pro only * Added search box text colour option * Added search box background colour option * Added search box border colour option * Fixed header bar bug with disabled scrolling - PRO * Fixed smooth scrolling issue on iOS with disabled scrolling - PRO * Added string translation to Search text

Download this release

Release Info

Developer ResponsiveMenu
Plugin Icon 128x128 Responsive Menu
Version 3.0.7
Comparing to
See all releases

Code changes from version 3.0.5 to 3.0.7

readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://responsive.menu/donate
4
  Tags: responsive, menu, responsive menu, mobile menu, wordpress responsive menu, wp responsive menu, tablet menu, mobile, tablet, 3 lines, 3 line, three line, three lines
5
  Requires at least: 3.5.0
6
  Tested up to: 4.5.3
7
- Stable tag: 3.0.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -146,6 +146,23 @@ To view our whole FAQ, please go to https://responsive.menu/faq/
146
 
147
  == Changelog ==
148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  = 3.0.5 (13th July 2016) =
150
  * **Requires PHP 5.4**
151
  * Fixed bug with push animation
@@ -402,4 +419,9 @@ To view our whole FAQ, please go to https://responsive.menu/faq/
402
  * Initial Version Released.
403
 
404
  == Upgrade Notice ==
405
- Requires PHP 5.4 to function - please check before upgrading
 
 
 
 
 
4
  Tags: responsive, menu, responsive menu, mobile menu, wordpress responsive menu, wp responsive menu, tablet menu, mobile, tablet, 3 lines, 3 line, three line, three lines
5
  Requires at least: 3.5.0
6
  Tested up to: 4.5.3
7
+ Stable tag: 3.0.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
146
 
147
  == Changelog ==
148
 
149
+ = 3.0.7 (15th July 2016) =
150
+ * **Requires PHP 5.4**
151
+ * Added preview option - Pro only
152
+ * Added search box text colour option
153
+ * Added search box background colour option
154
+ * Added search box border colour option
155
+ * Fixed header bar bug with disabled scrolling - PRO
156
+ * Fixed smooth scrolling issue on iOS with disabled scrolling - PRO
157
+ * Added string translation to Search text
158
+
159
+ = 3.0.6 (13th July 2016) =
160
+ * **Requires PHP 5.4**
161
+ * Improved Database Migration Scripts
162
+ * Changed sub-arrows to only show border on left edge
163
+ * Improved button title text spacing
164
+ * Improved PHP version checking process
165
+
166
  = 3.0.5 (13th July 2016) =
167
  * **Requires PHP 5.4**
168
  * Fixed bug with push animation
419
  * Initial Version Released.
420
 
421
  == Upgrade Notice ==
422
+
423
+ = 2.8.9 =
424
+ Requires PHP 5.4 - DO NOT upgrade if you do not have this installed.
425
+
426
+ = 2.8.8 =
427
+ Requires PHP 5.4 - DO NOT upgrade if you do not have this installed.
responsive-menu.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: Responsive Menu
5
  Plugin URI: https://responsive.menu
6
  Description: Highly Customisable Responsive Menu Plugin for WordPress
7
- Version: 3.0.5
8
  Author: Responsive Menu
9
  Text Domain: responsive-menu
10
  Author URI: https://responsive.menu
@@ -12,18 +12,21 @@ License: GPL2
12
  Tags: responsive, menu, responsive menu
13
  */
14
 
15
- /* Check correct PHP version first */
16
- add_action('admin_init', 'check_responsive_menu_php_version');
17
- function check_responsive_menu_php_version() {
18
- if(version_compare(PHP_VERSION, '5.4', '<')):
19
- add_action('admin_notices', 'responsive_menu_deactivation_text');
20
- deactivate_plugins(plugin_basename(__FILE__));
21
- endif;
22
- }
23
-
24
- function responsive_menu_deactivation_text() {
25
- echo '<div class="error"><p>' . sprintf(__('Responsive Menu requires PHP 5.4 or higher to function and has therefore been automatically disabled. You are still on %s.%sPlease speak to your webhost about upgrading your PHP version. For more information please visit %s', 'responsive-menu'), PHP_VERSION, '<br /><br />', '<a target="_blank" href="https://responsive.menu/why-php-5-4/">this page</a>.') . '</p></div>';
26
- }
 
 
 
27
 
28
  /* Required includes for plugin to function */
29
  include dirname(__FILE__) . '/autoload.php';
4
  Plugin Name: Responsive Menu
5
  Plugin URI: https://responsive.menu
6
  Description: Highly Customisable Responsive Menu Plugin for WordPress
7
+ Version: 3.0.7
8
  Author: Responsive Menu
9
  Text Domain: responsive-menu
10
  Author URI: https://responsive.menu
12
  Tags: responsive, menu, responsive menu
13
  */
14
 
15
+ /* Check correct PHP version first */
16
+ add_action('admin_init', 'check_responsive_menu_php_version');
17
+ function check_responsive_menu_php_version() {
18
+ if(version_compare(PHP_VERSION, '5.4', '<')):
19
+ add_action('admin_notices', 'responsive_menu_deactivation_text');
20
+ deactivate_plugins(plugin_basename(__FILE__));
21
+ endif;
22
+ }
23
+
24
+ function responsive_menu_deactivation_text() {
25
+ echo '<div class="error"><p>' . sprintf(__('Responsive Menu requires PHP 5.4 or higher to function and has therefore been automatically disabled. You are still on %s.%sPlease speak to your webhost about upgrading your PHP version. For more information please visit %s', 'responsive-menu'), PHP_VERSION, '<br /><br />', '<a target="_blank" href="https://responsive.menu/why-php-5-4/">this page</a>.') . '</p></div>';
26
+ }
27
+
28
+ if(version_compare(PHP_VERSION, '5.4', '<'))
29
+ return;
30
 
31
  /* Required includes for plugin to function */
32
  include dirname(__FILE__) . '/autoload.php';
src/app/Collections/OptionsCollection.php CHANGED
@@ -64,7 +64,7 @@ class OptionsCollection implements \ArrayAccess {
64
  }
65
 
66
  public function offsetGet($offset) {
67
- return $this->options[$offset];
68
  }
69
 
70
  public function offsetSet($offset, $value) {
@@ -73,7 +73,8 @@ class OptionsCollection implements \ArrayAccess {
73
  }
74
 
75
  public function offsetUnset($offset) {
76
- unset($this->options[$offset]);
 
77
  }
78
 
79
  public function isEmpty() {
64
  }
65
 
66
  public function offsetGet($offset) {
67
+ return isset($this->options[$offset]) ? $this->options[$offset] : null;
68
  }
69
 
70
  public function offsetSet($offset, $value) {
73
  }
74
 
75
  public function offsetUnset($offset) {
76
+ if(isset($this->options[$offset]))
77
+ unset($this->options[$offset]);
78
  }
79
 
80
  public function isEmpty() {
src/app/Controllers/Front.php CHANGED
@@ -45,4 +45,37 @@ class Front {
45
 
46
  }
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  }
45
 
46
  }
47
 
48
+ public function preview() {
49
+ # Get Latest Options
50
+ $options = $this->service->all();
51
+
52
+ # This needs refactoring - Martin Fowler HELP!
53
+ $display_factory = new DisplayFactory();
54
+ $display_factory->build($options);
55
+
56
+ # Build Our Menu Display
57
+ $menu = new MenuViewModel($options);
58
+ $html = new ButtonViewModel($options);
59
+
60
+ $this->view->render('preview');
61
+
62
+ # Only render if we don't have shortcodes turned on
63
+ if($options['shortcode'] == 'off'):
64
+ $this->view->render('button', ['options' => $options, 'button' => $html->getHtml()]);
65
+ $this->view->render('menu', ['options' => $options, 'menu' => $menu->getHtml()]);
66
+ else:
67
+ add_shortcode('responsive_menu', function($atts) use($options, $html, $menu) {
68
+
69
+ if($atts)
70
+ array_walk($atts, function($a, $b) use ($options) { $options[$b] = $a; });
71
+
72
+ $html = $this->view->make('button', ['options' => $options, 'button' => $html->getHtml()]);
73
+
74
+ return $html . $this->view->make('menu', ['options' => $options, 'menu' => $menu->getHtml()]);
75
+
76
+ });
77
+ endif;
78
+
79
+ }
80
+
81
  }
src/app/Database/Migration.php CHANGED
@@ -19,7 +19,7 @@ class Migration {
19
 
20
  public function __construct(Database $db, OptionService $service, $defaults, $current_version, $old_version, $old_options) {
21
  $this->db = $db;
22
- $this->service = $service;
23
  $this->defaults = $defaults;
24
  $this->current_version = $current_version;
25
  $this->old_version = $old_version;
@@ -67,9 +67,9 @@ class Migration {
67
  public function synchronise() {
68
 
69
  # First Thing we need to do is migrate any old options
70
- if(!$this->isVersion3())
71
  $this->migrateVersion2Options();
72
-
73
  if($this->needsUpdate()):
74
 
75
  # Now we can add any new options
@@ -81,7 +81,7 @@ class Migration {
81
  # And Update Version
82
  $this->updateVersion();
83
 
84
- endif;
85
 
86
  }
87
 
@@ -91,6 +91,7 @@ class Migration {
91
 
92
  protected function updateVersion() {
93
  update_option(self::$version_var, $this->current_version);
 
94
  }
95
 
96
  public function isVersion3() {
@@ -99,6 +100,8 @@ class Migration {
99
 
100
  public function migrateVersion2Options() {
101
  $this->service->createOptions($this->getMigratedOptions());
 
 
102
  }
103
 
104
  public function getOptionsToDelete() {
19
 
20
  public function __construct(Database $db, OptionService $service, $defaults, $current_version, $old_version, $old_options) {
21
  $this->db = $db;
22
+ $this->service = $service;
23
  $this->defaults = $defaults;
24
  $this->current_version = $current_version;
25
  $this->old_version = $old_version;
67
  public function synchronise() {
68
 
69
  # First Thing we need to do is migrate any old options
70
+ if($this->old_options && !$this->isVersion3())
71
  $this->migrateVersion2Options();
72
+
73
  if($this->needsUpdate()):
74
 
75
  # Now we can add any new options
81
  # And Update Version
82
  $this->updateVersion();
83
 
84
+ endif;
85
 
86
  }
87
 
91
 
92
  protected function updateVersion() {
93
  update_option(self::$version_var, $this->current_version);
94
+ $this->old_version = $this->current_version;
95
  }
96
 
97
  public function isVersion3() {
100
 
101
  public function migrateVersion2Options() {
102
  $this->service->createOptions($this->getMigratedOptions());
103
+ $this->addNewOptions();
104
+ $this->updateVersion();
105
  }
106
 
107
  public function getOptionsToDelete() {
src/app/Mappers/ScssBaseMapper.php CHANGED
@@ -11,15 +11,13 @@ class ScssBaseMapper extends ScssMapper
11
  $css = <<<CSS
12
 
13
  #responsive-menu-button,
14
- #responsive-menu-container,
15
- #responsive-menu-header {
16
  display: none;
17
  }
18
 
19
  @media screen and (max-width: {$this->options['breakpoint']}px) {
20
 
21
- #responsive-menu-container,
22
- #responsive-menu-header {
23
  display: block;
24
  }
25
 
@@ -27,7 +25,7 @@ class ScssBaseMapper extends ScssMapper
27
  position: fixed;
28
  top: 0;
29
  bottom: 0;
30
- z-index: 9998;
31
  /* Fix for scroll bars appearing when not needed */
32
  padding-bottom: 5px;
33
  margin-bottom: -5px;
@@ -37,9 +35,8 @@ class ScssBaseMapper extends ScssMapper
37
  width: 100%;
38
  padding: 0 2%;
39
  border-radius: 2px;
40
- border: 2px solid #dadada;
41
  height: 50px;
42
- background: white;
43
  }
44
 
45
  &.push-left,
@@ -165,7 +162,7 @@ class ScssBaseMapper extends ScssMapper
165
  }
166
 
167
  #responsive-menu-button {
168
- z-index: 9999;
169
  display: none;
170
  overflow: hidden;
171
  img {
@@ -193,39 +190,9 @@ class ScssBaseMapper extends ScssMapper
193
  .responsive-menu-label.responsive-menu-label-bottom
194
  {
195
  display: block;
196
- margin: 10px auto;
197
  }
198
 
199
- #responsive-menu-header {
200
- width: 100%;
201
- padding: 0 5%;
202
- box-sizing: border-box;
203
- top: 0;
204
- right: 0;
205
- left: 0;
206
- display: none;
207
- .responsive-menu-header-box {
208
- display: inline-block;
209
- &, & img {
210
- vertical-align: middle;
211
- max-width: 100%;
212
- }
213
- &:last-child {
214
- float: right;
215
- margin-right: 0;
216
- }
217
- }
218
- #responsive-menu-button {
219
- position: relative;
220
- margin: 0;
221
- left: auto;
222
- right: auto;
223
- bottom: auto;
224
- }
225
- .responsive-menu-header-box {
226
- margin-right: 2%;
227
- }
228
- }
229
  }
230
  CSS;
231
 
11
  $css = <<<CSS
12
 
13
  #responsive-menu-button,
14
+ #responsive-menu-container {
 
15
  display: none;
16
  }
17
 
18
  @media screen and (max-width: {$this->options['breakpoint']}px) {
19
 
20
+ #responsive-menu-container {
 
21
  display: block;
22
  }
23
 
25
  position: fixed;
26
  top: 0;
27
  bottom: 0;
28
+ z-index: 99998;
29
  /* Fix for scroll bars appearing when not needed */
30
  padding-bottom: 5px;
31
  margin-bottom: -5px;
35
  width: 100%;
36
  padding: 0 2%;
37
  border-radius: 2px;
 
38
  height: 50px;
39
+ -webkit-appearance: none;
40
  }
41
 
42
  &.push-left,
162
  }
163
 
164
  #responsive-menu-button {
165
+ z-index: 99999;
166
  display: none;
167
  overflow: hidden;
168
  img {
190
  .responsive-menu-label.responsive-menu-label-bottom
191
  {
192
  display: block;
193
+ margin: 0 auto;
194
  }
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  }
197
  CSS;
198
 
src/app/Mappers/ScssButtonMapper.php CHANGED
@@ -43,12 +43,13 @@ class ScssButtonMapper extends ScssMapper
43
  .responsive-menu-label {
44
  color: {$this->options['button_text_colour']};
45
  font-size: {$this->options['button_font_size']}px;
 
46
  @if '{$this->options['button_font']}' != '' {
47
  font-family: '{$this->options['button_font']}';
48
  }
49
  }
50
 
51
- #responsive-menu-button {
52
  display: inline-block;
53
  transition: transform {$this->options['animation_speed']}s, background-color {$this->options['transition_speed']}s;
54
  }
43
  .responsive-menu-label {
44
  color: {$this->options['button_text_colour']};
45
  font-size: {$this->options['button_font_size']}px;
46
+ line-height: {$this->options['button_title_line_height']}px;
47
  @if '{$this->options['button_font']}' != '' {
48
  font-family: '{$this->options['button_font']}';
49
  }
50
  }
51
 
52
+ #responsive-menu-button {
53
  display: inline-block;
54
  transition: transform {$this->options['animation_speed']}s, background-color {$this->options['transition_speed']}s;
55
  }
src/app/Mappers/ScssMenuMapper.php CHANGED
@@ -46,6 +46,26 @@ class ScssMenuMapper extends ScssMapper
46
  color: {$this->options['menu_additional_content_colour']};
47
  }
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  @if '{$this->options['menu_maximum_width']}' != '' {
50
  max-width: {$this->options['menu_maximum_width']}px;
51
  }
@@ -113,7 +133,7 @@ class ScssMenuMapper extends ScssMapper
113
  line-height: {$this->options['submenu_arrow_height']}px;
114
  width: {$this->options['submenu_arrow_width']}px;
115
  color: {$this->options['menu_sub_arrow_shape_colour']};
116
- border: 1px solid {$this->options['menu_sub_arrow_border_colour']};
117
  background-color: {$this->options['menu_sub_arrow_background_colour']};
118
 
119
  &:hover {
46
  color: {$this->options['menu_additional_content_colour']};
47
  }
48
 
49
+ .responsive-menu-search-box {
50
+ background: {$this->options['menu_search_box_background_colour']};
51
+ border: 2px solid {$this->options['menu_search_box_border_colour']};
52
+ color: {$this->options['menu_search_box_text_colour']};
53
+ &:-ms-input-placeholder {
54
+ color: {$this->options['menu_search_box_text_colour']};
55
+ }
56
+ &:-webkit-input-placeholder {
57
+ color: {$this->options['menu_search_box_text_colour']};
58
+ }
59
+ &:-moz-placeholder {
60
+ color: {$this->options['menu_search_box_text_colour']};
61
+ opacity: 1;
62
+ }
63
+ &::-moz-placeholder {
64
+ color: {$this->options['menu_search_box_text_colour']};
65
+ opacity: 1;
66
+ }
67
+ }
68
+
69
  @if '{$this->options['menu_maximum_width']}' != '' {
70
  max-width: {$this->options['menu_maximum_width']}px;
71
  }
133
  line-height: {$this->options['submenu_arrow_height']}px;
134
  width: {$this->options['submenu_arrow_width']}px;
135
  color: {$this->options['menu_sub_arrow_shape_colour']};
136
+ border-left: 1px solid {$this->options['menu_sub_arrow_border_colour']};
137
  background-color: {$this->options['menu_sub_arrow_background_colour']};
138
 
139
  &:hover {
src/app/Repositories/OptionRepository.php CHANGED
@@ -8,9 +8,10 @@ class OptionRepository {
8
 
9
  protected static $table = 'responsive_menu';
10
 
11
- public function __construct($db, $factory) {
12
  $this->db = $db;
13
  $this->factory = $factory;
 
14
  }
15
 
16
  public function all() {
@@ -39,4 +40,15 @@ class OptionRepository {
39
  $this->db->delete(self::$table, $name);
40
  }
41
 
 
 
 
 
 
 
 
 
 
 
 
42
  }
8
 
9
  protected static $table = 'responsive_menu';
10
 
11
+ public function __construct($db, $factory, $defaults) {
12
  $this->db = $db;
13
  $this->factory = $factory;
14
+ $this->defaults = $defaults;
15
  }
16
 
17
  public function all() {
40
  $this->db->delete(self::$table, $name);
41
  }
42
 
43
+ public function buildFromArray(array $array) {
44
+ $collection = new OptionsCollection;
45
+ foreach(array_merge($this->defaults, $array) as $name => $value):
46
+ $option = $this->factory->build($name, $value);
47
+ $option->setValue($option->getFiltered());
48
+ $collection->add($option);
49
+ endforeach;
50
+
51
+ return $collection;
52
+ }
53
+
54
  }
src/app/Routing/WpRouting.php CHANGED
@@ -12,10 +12,14 @@ class WpRouting implements Routing {
12
  }
13
 
14
  public function route() {
15
- if(is_admin())
16
  add_action('admin_menu', [$this, 'adminPage']);
17
- else
18
- add_action('template_redirect', [$this->container['front_controller'], 'index']);
 
 
 
 
19
  }
20
 
21
  public function adminPage() {
12
  }
13
 
14
  public function route() {
15
+ if(is_admin()):
16
  add_action('admin_menu', [$this, 'adminPage']);
17
+ else:
18
+ if(isset($_GET['responsive-menu-preview']) && isset($_POST['menu']))
19
+ add_action('template_redirect', [$this->container['front_controller'], 'preview']);
20
+ else
21
+ add_action('template_redirect', [$this->container['front_controller'], 'index']);
22
+ endif;
23
  }
24
 
25
  public function adminPage() {
src/app/Services/OptionService.php CHANGED
@@ -33,7 +33,7 @@ class OptionService {
33
  $this->repository->create($this->factory->build($key, $val));
34
 
35
  $options = $this->all();
36
-
37
  $this->updateWpml($options);
38
  $this->buildFiles($options);
39
 
@@ -56,4 +56,8 @@ class OptionService {
56
  endif;
57
  }
58
 
 
 
 
 
59
  }
33
  $this->repository->create($this->factory->build($key, $val));
34
 
35
  $options = $this->all();
36
+
37
  $this->updateWpml($options);
38
  $this->buildFiles($options);
39
 
56
  endif;
57
  }
58
 
59
+ public function buildFromPostArray(array $post) {
60
+ return $this->repository->buildFromArray($post);
61
+ }
62
+
63
  }
src/app/ViewModels/Components/Button/Button.php CHANGED
@@ -22,8 +22,6 @@ class Button implements ViewComponent {
22
  $accessible = in_array($button_title_pos, array('left', 'right')) ? 'responsive-menu-accessible' : '';
23
  $content = '';
24
 
25
- $content .= $options['use_header_bar'] == 'on' ? '<div id="responsive-menu-header-bar-button" class="responsive-menu-header-box">' : '';
26
-
27
  $content .= '<button id="responsive-menu-button"
28
  class="responsive-menu-button ' . $accessible .
29
  ' responsive-menu-' . $options['button_click_animation'] . '"
@@ -33,7 +31,6 @@ class Button implements ViewComponent {
33
  $content .= '<span class="responsive-menu-box">' . $options->getButtonIcon() . $options->getButtonIconActive() . '</span>';
34
  $content .= in_array($button_title_pos, array('bottom', 'right')) ? $button_title_html : '';
35
  $content .= '</button>';
36
- $content .= $options['use_header_bar'] == 'on' ? '</div>' : '';
37
 
38
  return $content;
39
 
22
  $accessible = in_array($button_title_pos, array('left', 'right')) ? 'responsive-menu-accessible' : '';
23
  $content = '';
24
 
 
 
25
  $content .= '<button id="responsive-menu-button"
26
  class="responsive-menu-button ' . $accessible .
27
  ' responsive-menu-' . $options['button_click_animation'] . '"
31
  $content .= '<span class="responsive-menu-box">' . $options->getButtonIcon() . $options->getButtonIconActive() . '</span>';
32
  $content .= in_array($button_title_pos, array('bottom', 'right')) ? $button_title_html : '';
33
  $content .= '</button>';
 
34
 
35
  return $content;
36
 
src/app/ViewModels/Components/Menu/Search.php CHANGED
@@ -12,7 +12,7 @@ class Search implements ViewComponent {
12
  $action = function_exists( 'icl_get_home_url' ) ? icl_get_home_url() : get_home_url();
13
  return '<div id="responsive-menu-search-box">
14
  <form action="'.$action.'" class="responsive-menu-search-form" role="search">
15
- <input type="search" name="s" placeholder="Search" class="responsive-menu-search-box">
16
  </form>
17
  </div>';
18
 
12
  $action = function_exists( 'icl_get_home_url' ) ? icl_get_home_url() : get_home_url();
13
  return '<div id="responsive-menu-search-box">
14
  <form action="'.$action.'" class="responsive-menu-search-form" role="search">
15
+ <input type="search" name="s" placeholder="' . __('Search', 'responsive-menu') . '" class="responsive-menu-search-box">
16
  </form>
17
  </div>';
18
 
src/config/admin_ordering.php CHANGED
@@ -232,11 +232,28 @@ $order_mapping = [
232
  [
233
  [
234
  'option' => 'menu_search_box_text',
235
- 'title' => __('Menu Search Box Text', 'responsive-menu'),
236
  'label' => __('', 'responsive-menu'),
237
  'pro' => true
238
  ],
239
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  ],
241
  __('Background Colours', 'responsive-menu') =>
242
  [
232
  [
233
  [
234
  'option' => 'menu_search_box_text',
235
+ 'title' => __('Text', 'responsive-menu'),
236
  'label' => __('', 'responsive-menu'),
237
  'pro' => true
238
  ],
239
+ [
240
+ 'option' => 'menu_search_box_text_colour',
241
+ 'title' => __('Text Colour', 'responsive-menu'),
242
+ 'label' => __('', 'responsive-menu'),
243
+ 'type' => 'colour'
244
+ ],
245
+ [
246
+ 'option' => 'menu_search_box_border_colour',
247
+ 'title' => __('Border Colour', 'responsive-menu'),
248
+ 'label' => __('', 'responsive-menu'),
249
+ 'type' => 'colour'
250
+ ],
251
+ [
252
+ 'option' => 'menu_search_box_background_colour',
253
+ 'title' => __('Background Colour', 'responsive-menu'),
254
+ 'label' => __('', 'responsive-menu'),
255
+ 'type' => 'colour'
256
+ ]
257
  ],
258
  __('Background Colours', 'responsive-menu') =>
259
  [
src/config/default_options.php CHANGED
@@ -101,6 +101,9 @@ $default_options = array(
101
  'menu_overlay_colour' => 'rgba(0,0,0,0.7)',
102
  'menu_font_icons' => '',
103
  'menu_search_box_text' => 'Search',
 
 
 
104
  'menu_word_wrap' => 'off',
105
 
106
  'minify_scripts' => 'off',
101
  'menu_overlay_colour' => 'rgba(0,0,0,0.7)',
102
  'menu_font_icons' => '',
103
  'menu_search_box_text' => 'Search',
104
+ 'menu_search_box_text_colour' => '#333',
105
+ 'menu_search_box_border_colour' => '#dadada',
106
+ 'menu_search_box_background_colour' => '#fff',
107
  'menu_word_wrap' => 'off',
108
 
109
  'minify_scripts' => 'off',
src/config/route_dependencies.php CHANGED
@@ -26,7 +26,8 @@ $container['option_factory'] = function($c) {
26
  $container['option_repository'] = function($c) {
27
  return new ResponsiveMenu\Repositories\OptionRepository(
28
  $c['database'],
29
- $c['option_factory']
 
30
  );
31
  };
32
 
26
  $container['option_repository'] = function($c) {
27
  return new ResponsiveMenu\Repositories\OptionRepository(
28
  $c['database'],
29
+ $c['option_factory'],
30
+ $c['default_options']
31
  );
32
  };
33
 
src/public/css/admin/main.css CHANGED
@@ -13,6 +13,11 @@
13
  margin: 0;
14
  }
15
 
 
 
 
 
 
16
  #menu-sortable {
17
  position: relative;
18
  }
@@ -269,11 +274,16 @@ input[type="text"].image,
269
  }
270
 
271
  #upgrade_banner {
272
- padding: 35px;
273
  background: #DE4B42;
274
  color: #fff;
275
  border: 1px solid #D33C34;
276
  border-radius: 2px;
 
 
 
 
 
277
  }
278
 
279
  #docs_banner {
@@ -292,7 +302,7 @@ input[type="text"].image,
292
  }
293
 
294
  #upgrade_banner li {
295
- list-style: inside;
296
  font-weight: bold;
297
  font-size: 11px;
298
  }
@@ -656,6 +666,16 @@ input[type="button"].image_button
656
  cursor: pointer;
657
  }
658
 
 
 
 
 
 
 
 
 
 
 
659
  @media (max-width: 800px) {
660
  .tab {
661
  margin-bottom: 10px !important;
13
  margin: 0;
14
  }
15
 
16
+ #submitdiv {
17
+ width: 100%;
18
+ min-width: 100%;
19
+ }
20
+
21
  #menu-sortable {
22
  position: relative;
23
  }
274
  }
275
 
276
  #upgrade_banner {
277
+ padding: 25px 5%;
278
  background: #DE4B42;
279
  color: #fff;
280
  border: 1px solid #D33C34;
281
  border-radius: 2px;
282
+ text-align: center;
283
+ }
284
+
285
+ #upgrade_banner i {
286
+ margin-right: 5px;
287
  }
288
 
289
  #docs_banner {
302
  }
303
 
304
  #upgrade_banner li {
305
+ list-style: none;
306
  font-weight: bold;
307
  font-size: 11px;
308
  }
666
  cursor: pointer;
667
  }
668
 
669
+ @media (max-width: 1200px) {
670
+ .preview,
671
+ #delete-action {
672
+ float: none;
673
+ width: 100%;
674
+ clear: both;
675
+ text-align: center;
676
+ }
677
+ }
678
+
679
  @media (max-width: 800px) {
680
  .tab {
681
  margin-bottom: 10px !important;
src/public/js/admin/main.js CHANGED
@@ -36,11 +36,8 @@ jQuery(function($) {
36
  container_name = '#tab_container_' + $(this).attr('id').replace('tab_', '');
37
  $('.tab_container').css('display', 'none');
38
  $(container_name).css('display', 'block');
39
- $('.tab').removeClass('active_tab');
40
- $(this).addClass('active_tab');
41
- if(typeof(Storage) !== "undefined") {
42
- localStorage.responsive_menu_tab = $(this).attr('id');
43
- }
44
  });
45
 
46
  if(typeof(Storage) !== "undefined") {
@@ -56,4 +53,13 @@ jQuery(function($) {
56
  }
57
  }
58
 
 
 
 
 
 
 
 
 
 
59
  });
36
  container_name = '#tab_container_' + $(this).attr('id').replace('tab_', '');
37
  $('.tab_container').css('display', 'none');
38
  $(container_name).css('display', 'block');
39
+ $('.tab').removeClass('active_tab');
40
+ $(this).addClass('active_tab');
 
 
 
41
  });
42
 
43
  if(typeof(Storage) !== "undefined") {
53
  }
54
  }
55
 
56
+ $(document).on('click', '#responsive_menu_preview', function(e) {
57
+ e.preventDefault();
58
+ $('#responsive_menu_form').attr('action', '/?responsive-menu-preview=true');
59
+ $('#responsive_menu_form').attr('target', '_blank');
60
+ $('#responsive_menu_form').submit();
61
+ $('#responsive_menu_form').attr('action', '');
62
+ $('#responsive_menu_form').attr('target', '');
63
+ });
64
+
65
  });
src/public/scss/hamburgers/hamburgers.scss CHANGED
@@ -39,7 +39,6 @@ $hamburger-types: (
39
  // Hamburger types
40
  // ==================================================
41
  @import "types/boring";
42
- @import "types/vortex";
43
 
44
  // ==================================================
45
  // Cooking up additional types:
39
  // Hamburger types
40
  // ==================================================
41
  @import "types/boring";
 
42
 
43
  // ==================================================
44
  // Cooking up additional types:
src/views/admin/main.phtml CHANGED
@@ -42,25 +42,25 @@ $boxes = new ResponsiveMenu\ViewModels\Components\Admin\Boxes($order_mapping, $l
42
  </div>
43
 
44
  <div class="key-container">
45
- <a href="http://responsive.menu/pricing/">
46
- <div class="key key-pro"><span>PRO</span>Only available in Pro version</div>
47
- <div class="key key-semi-pro"><span>SEMI PRO</span>Fully unlocked in Pro version (i.e - opacity selection for colours)</div>
48
  </a>
49
  </div>
50
 
51
  <div class="upgrade-notes">
52
- <div class="upgrade-notes-title">Welcome to Responsive Menu 3.0</div>
53
  <div class="upgrade-notes-content">
54
- As this is a brand new version, there are over 14,000 combinations of options so squashing bugs is not an easy task and some may still exist. Therefore, please report any bugs to us <a href="https://responsive.menu/contact/" target="_blank">here</a> and we will deal with them quickly.<br /><br />
55
- For an upgrade guide, please check out <a href="https://responsive.menu/upgrading-from-version-2-to-version-3" target="_blank">this page</a>.
56
  </div>
57
  <div class="upgrade-notes-close">x</div>
58
  </div>
59
 
60
  <div id="all_options_container">
61
  <div class="meta-box-sortables ui-sortable" id="normal-sortables">
62
- <form action="" method="post" enctype="multipart/form-data">
63
- <input type="submit" class="button submit" name="responsive_menu_submit" value="Update Options" style="display: none;" />
64
  <div id="options_list_container">
65
  <?php echo $boxes->render(); ?>
66
  </div>
@@ -69,14 +69,31 @@ $boxes = new ResponsiveMenu\ViewModels\Components\Admin\Boxes($order_mapping, $l
69
  </div> <!-- #normal-sortables -->
70
  </div><!--#all_options_container
71
  --><div id="banner_area">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  <div id="upgrade_banner">
73
- <?php _e('Upgrade today to unlock the following features:', 'responsive-menu'); ?>
74
  <ul>
75
- <li><?php _e('Font Awesome Icon Support', 'responsive-menu'); ?></li>
76
- <li><?php _e('Opacity Option for all Colours', 'responsive-menu'); ?></li>
77
- <li><?php _e('15+ Button Animations', 'responsive-menu'); ?></li>
78
- <li><?php _e('Style Desktop Menu Too', 'responsive-menu'); ?></li>
79
- <li><?php _e('Header Bar', 'responsive-menu'); ?></li>
 
80
  <li><?php _e('And much more', 'responsive-menu'); ?></li>
81
  </ul>
82
  <a target="_blank" href="http://responsive.menu/why-go-pro" class="button"><?php _e('Upgrade Now', 'responsive-menu'); ?></a>
42
  </div>
43
 
44
  <div class="key-container">
45
+ <a href="https://responsive.menu/why-go-pro/">
46
+ <div class="key key-pro"><span><?php _e('PRO', 'responsive-menu'); ?></span><?php _e('Only available in Pro version', 'responsive-menu'); ?></div>
47
+ <div class="key key-semi-pro"><span><?php _e('SEMI PRO', 'responsive-menu'); ?></span><?php _e('Fully unlocked in Pro version', 'responsive-menu'); ?></div>
48
  </a>
49
  </div>
50
 
51
  <div class="upgrade-notes">
52
+ <div class="upgrade-notes-title"><?php _e('Welcome to Responsive Menu 3.0', 'responsive-menu'); ?></div>
53
  <div class="upgrade-notes-content">
54
+ <?php _e(sprintf('As this is a brand new version, there are over 14,000 combinations of options so squashing bugs is not an easy task and some may still exist. Therefore, please report any bugs to us %shere%s and we will deal with them quickly.%s
55
+ For an upgrade guide, please check out %sthis page%s.', '<a href="https://responsive.menu/contact/" target="_blank">', '</a>', '<br /><br />', '<a href="https://responsive.menu/upgrading-from-version-2-to-version-3" target="_blank">', '</a>'), 'responsive-menu'); ?>
56
  </div>
57
  <div class="upgrade-notes-close">x</div>
58
  </div>
59
 
60
  <div id="all_options_container">
61
  <div class="meta-box-sortables ui-sortable" id="normal-sortables">
62
+ <form action="" method="post" enctype="multipart/form-data" id="responsive_menu_form">
63
+ <input type="submit" class="button submit" name="responsive_menu_submit" value="<?php _e('Update Options', 'responsive-menu'); ?>" style="display: none;" />
64
  <div id="options_list_container">
65
  <?php echo $boxes->render(); ?>
66
  </div>
69
  </div> <!-- #normal-sortables -->
70
  </div><!--#all_options_container
71
  --><div id="banner_area">
72
+
73
+ <div class="postbox " id="submitdiv">
74
+ <h2 class="hndle ui-sortable-handle"><span>Preview</span></h2>
75
+ <div class="inside">
76
+ <div id="submitpost" class="submitbox">
77
+ <div id="minor-publishing-actions">
78
+ <div id="delete-action">
79
+ <a href="https://responsive.menu/why-go-pro/" target="_blank" class="submitdelete deletion"><?php _e('Upgrade Now', 'responsive-menu'); ?></a>
80
+ </div>
81
+ <input type="submit" class="button preview" id="responsive_menu_preview" name="responsive_menu_preview" value="<?php _e('Preview Changes', 'responsive-menu'); ?>" />
82
+ <br /><br />
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </div>
87
+
88
  <div id="upgrade_banner">
89
+ <div id="upgrade_banner_title"><?php _e('Upgrade today to unlock the following features:', 'responsive-menu'); ?></div>
90
  <ul>
91
+ <li><i class="fa fa-check"></i><?php _e('Font Awesome Icon Support', 'responsive-menu'); ?></li>
92
+ <li><i class="fa fa-check"></i><?php _e('Opacity Option for all Colours', 'responsive-menu'); ?></li>
93
+ <li><i class="fa fa-check"></i><?php _e('15+ Button Animations', 'responsive-menu'); ?></li>
94
+ <li><i class="fa fa-check"></i><?php _e('Main Desktop Menu Styling', 'responsive-menu'); ?></li>
95
+ <li><i class="fa fa-check"></i><?php _e('Add and configure a Header Bar', 'responsive-menu'); ?></li>
96
+ <li><i class="fa fa-check"></i><?php _e('Preview Changes', 'responsive-menu'); ?></li>
97
  <li><?php _e('And much more', 'responsive-menu'); ?></li>
98
  </ul>
99
  <a target="_blank" href="http://responsive.menu/why-go-pro" class="button"><?php _e('Upgrade Now', 'responsive-menu'); ?></a>
src/views/header_bar.phtml DELETED
@@ -1,3 +0,0 @@
1
- <div id="responsive-menu-header">
2
- <?php echo $l['header']; ?>
3
- </div>
 
 
 
src/views/preview.phtml ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="responsive-menu-preview" style="
2
+ position: fixed;
3
+ top: 0;
4
+ left: 0;
5
+ right: 0;
6
+ z-index: 200000;
7
+ background: rgba(222, 75, 64, 0.89);
8
+ height: 50px;
9
+ line-height: 50px;
10
+ padding: 0 5%;
11
+ font-size: 14px;
12
+ color: white;
13
+ text-align: center;
14
+ font-family: Arial;
15
+ font-weight: bold;
16
+ "><?php _e(sprintf('Preview is only available with the Pro version - click %shere%s to upgrade today.', '<a style="text-decoration: underline; color: white;" href="https://responsive.menu/why-go-pro" target="_blank">', '</a>'), 'responsive-menu'); ?></div>
translations/responsive-menu-es_ES.mo CHANGED
Binary file
translations/responsive-menu-es_ES.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Responsive Menu - 3.0.3\n"
4
- "POT-Creation-Date: 2016-07-09 18:03+0100\n"
5
- "PO-Revision-Date: 2016-07-09 18:04+0100\n"
6
  "Last-Translator: \n"
7
  "Language-Team: Responsive Menu <support@responsive.menu>\n"
8
  "Language: es\n"
@@ -15,35 +15,44 @@ msgstr ""
15
  "X-Poedit-KeywordsList: _;__;_e\n"
16
  "X-Poedit-SearchPath-0: .\n"
17
 
18
- #: src/app/Controllers/Admin.php:28
 
 
 
 
 
 
 
 
 
19
  msgid "Responsive Menu Options Updated Successfully"
20
  msgstr ""
21
 
22
- #: src/app/Controllers/Admin.php:46 src/app/Controllers/Admin.php:72
23
  msgid "Responsive Menu Options Reset Successfully"
24
  msgstr ""
25
 
26
- #: src/app/Controllers/Admin.php:74
27
  msgid "No file selected"
28
  msgstr ""
29
 
30
- #: src/app/Factories/AdminSaveFactory.php:26
31
  msgid "Unable to make data directory"
32
  msgstr ""
33
 
34
- #: src/app/Factories/AdminSaveFactory.php:27
35
  msgid "Unable to make CSS data directory"
36
  msgstr ""
37
 
38
- #: src/app/Factories/AdminSaveFactory.php:28
39
  msgid "Unable to make JS data directory"
40
  msgstr ""
41
 
42
- #: src/app/Factories/AdminSaveFactory.php:35
43
  msgid "Unable to create CSS file"
44
  msgstr ""
45
 
46
- #: src/app/Factories/AdminSaveFactory.php:38
47
  msgid "Unable to create JS file"
48
  msgstr ""
49
 
@@ -75,6 +84,10 @@ msgstr ""
75
  msgid "Toggle panel: Location"
76
  msgstr ""
77
 
 
 
 
 
78
  #: src/config/admin_ordering.php:16
79
  msgid "Initial Setup"
80
  msgstr ""
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Responsive Menu - 3.0.3\n"
4
+ "POT-Creation-Date: 2016-07-15 22:52+0100\n"
5
+ "PO-Revision-Date: 2016-07-15 22:52+0100\n"
6
  "Last-Translator: \n"
7
  "Language-Team: Responsive Menu <support@responsive.menu>\n"
8
  "Language: es\n"
15
  "X-Poedit-KeywordsList: _;__;_e\n"
16
  "X-Poedit-SearchPath-0: .\n"
17
 
18
+ #: responsive-menu.php:25
19
+ #, php-format
20
+ msgid ""
21
+ "Responsive Menu requires PHP 5.4 or higher to function and has therefore "
22
+ "been automatically disabled. You are still on %s.%sPlease speak to your "
23
+ "webhost about upgrading your PHP version. For more information please visit "
24
+ "%s"
25
+ msgstr ""
26
+
27
+ #: src/app/Controllers/Admin.php:17
28
  msgid "Responsive Menu Options Updated Successfully"
29
  msgstr ""
30
 
31
+ #: src/app/Controllers/Admin.php:24 src/app/Controllers/Admin.php:37
32
  msgid "Responsive Menu Options Reset Successfully"
33
  msgstr ""
34
 
35
+ #: src/app/Controllers/Admin.php:39
36
  msgid "No file selected"
37
  msgstr ""
38
 
39
+ #: src/app/Factories/AdminSaveFactory.php:24
40
  msgid "Unable to make data directory"
41
  msgstr ""
42
 
43
+ #: src/app/Factories/AdminSaveFactory.php:25
44
  msgid "Unable to make CSS data directory"
45
  msgstr ""
46
 
47
+ #: src/app/Factories/AdminSaveFactory.php:26
48
  msgid "Unable to make JS data directory"
49
  msgstr ""
50
 
51
+ #: src/app/Factories/AdminSaveFactory.php:33
52
  msgid "Unable to create CSS file"
53
  msgstr ""
54
 
55
+ #: src/app/Factories/AdminSaveFactory.php:36
56
  msgid "Unable to create JS file"
57
  msgstr ""
58
 
84
  msgid "Toggle panel: Location"
85
  msgstr ""
86
 
87
+ #: src/app/ViewModels/Components/Menu/Search.php:15
88
+ msgid "Search"
89
+ msgstr ""
90
+
91
  #: src/config/admin_ordering.php:16
92
  msgid "Initial Setup"
93
  msgstr ""