Responsive Menu - Version 3.0.3

Version Description

(9th July 2016) = * Requires PHP 5.4 * Fixed bug with custom trigger * Updated Polylang Support * Removed extend() function from Pimple Container as it was throwing security notices in VaultPress - thanks to Brin @ WinningWp.com

Download this release

Release Info

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

Code changes from version 3.0.2 to 3.0.3

readme.txt CHANGED
@@ -1,9 +1,10 @@
1
  === Responsive Menu ===
2
  Contributors: ResponsiveMenu
 
3
  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
4
  Requires at least: 3.5.0
5
  Tested up to: 4.5.3
6
- Stable tag: 3.0.2
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -145,6 +146,12 @@ To view our whole FAQ, please go to https://responsive.menu/faq/
145
 
146
  == Changelog ==
147
 
 
 
 
 
 
 
148
  = 3.0.2 (8th July 2016) =
149
  * **Requires PHP 5.4**
150
  * Fixed issue with close on link click option
1
  === Responsive Menu ===
2
  Contributors: ResponsiveMenu
3
+ 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.3
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.3 (9th July 2016) =
150
+ * **Requires PHP 5.4**
151
+ * Fixed bug with custom trigger
152
+ * Updated Polylang Support
153
+ * Removed extend() function from Pimple Container as it was throwing security notices in VaultPress - thanks to Brin @ WinningWp.com
154
+
155
  = 3.0.2 (8th July 2016) =
156
  * **Requires PHP 5.4**
157
  * Fixed issue with close on link click option
responsive-menu.php CHANGED
@@ -2,12 +2,12 @@
2
 
3
  /*
4
  Plugin Name: Responsive Menu
5
- Plugin URI: http://responsive.menu
6
  Description: Highly Customisable Responsive Menu Plugin for WordPress
7
- Version: 3.0.2
8
  Author: Responsive Menu
9
  Text Domain: responsive-menu
10
- Author URI: http://responsive.menu
11
  License: GPL2
12
  Tags: responsive, menu, responsive menu
13
  */
@@ -35,10 +35,31 @@ $wp_router = new ResponsiveMenu\Routing\WpRouting($container);
35
  $wp_router->route();
36
 
37
  if(is_admin()):
 
 
38
  add_action('admin_init', function() use($container) {
39
  include dirname(__FILE__) . '/src/config/default_options.php';
40
  $migration = new ResponsiveMenu\Database\Migration($container['database'], $default_options);
41
  $migration->setup();
42
  $migration->synchronise();
43
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  endif;
2
 
3
  /*
4
  Plugin Name: Responsive Menu
5
+ Plugin URI: https://responsive.menu
6
  Description: Highly Customisable Responsive Menu Plugin for WordPress
7
+ Version: 3.0.3
8
  Author: Responsive Menu
9
  Text Domain: responsive-menu
10
+ Author URI: https://responsive.menu
11
  License: GPL2
12
  Tags: responsive, menu, responsive menu
13
  */
35
  $wp_router->route();
36
 
37
  if(is_admin()):
38
+ /*
39
+ * Initial Migration and Version Check synchronisation */
40
  add_action('admin_init', function() use($container) {
41
  include dirname(__FILE__) . '/src/config/default_options.php';
42
  $migration = new ResponsiveMenu\Database\Migration($container['database'], $default_options);
43
  $migration->setup();
44
  $migration->synchronise();
45
  });
46
+
47
+ /*
48
+ Polylang Integration Section */
49
+ add_action('plugins_loaded', function() use($container) {
50
+ if(function_exists('pll_register_string')):
51
+ $repo = $container['option_repository'];
52
+ $options = $repo->all();
53
+
54
+ $menu_to_use = isset($options['menu_to_use']) ? $options['menu_to_use']->getValue() : '';
55
+ $button_title = isset($options['button_title']) ? $options['button_title']->getValue() : '';
56
+ $menu_title = isset($options['menu_title']) ? $options['menu_title']->getValue() : '';
57
+ $menu_title_link = isset($options['menu_title_link']) ? $options['menu_title_link']->getValue() : '';
58
+
59
+ pll_register_string('Menu Slug', $menu_to_use, 'Responsive Menu');
60
+ pll_register_string('Button Title', $button_title, 'Responsive Menu');
61
+ pll_register_string('Menu Title', $menu_title, 'Responsive Menu');
62
+ pll_register_string('Menu Title Link', $menu_title_link, 'Responsive Menu');
63
+ endif;
64
+ });
65
  endif;
src/app/Controllers/{Admin/Main.php → Admin.php} RENAMED
@@ -1,23 +1,26 @@
1
  <?php
2
 
3
- namespace ResponsiveMenu\Controllers\Admin;
 
 
4
  use ResponsiveMenu\Factories\OptionFactory as OptionFactory;
5
  use ResponsiveMenu\Factories\AdminSaveFactory as SaveFactory;
6
  use ResponsiveMenu\WPML\WPML as WPML;
7
 
8
- class Main extends Base
9
- {
10
 
11
- public function update($default_options)
12
- {
 
 
 
 
13
 
14
  $options = array_merge($default_options, $_POST['menu']);
15
 
16
- foreach($options as $key => $val):
17
- $option_factory = new OptionFactory;
18
- $option = $option_factory->build($key, $val);
19
- $this->repository->update($option);
20
- endforeach;
21
 
22
  $options = $this->repository->all();
23
  $save_factory = new SaveFactory();
@@ -31,14 +34,11 @@ class Main extends Base
31
 
32
  }
33
 
34
- public function reset($default_options)
35
- {
36
 
37
- foreach($default_options as $key => $val):
38
- $option_factory = new OptionFactory;
39
- $option = $option_factory->build($key, $val);
40
- $this->repository->update($option);
41
- endforeach;
42
 
43
  $options = $this->repository->all();
44
  $save_factory = new SaveFactory();
@@ -61,11 +61,10 @@ class Main extends Base
61
  if(!empty($_FILES['responsive_menu_import_file']['tmp_name'])):
62
  $file = file_get_contents($_FILES['responsive_menu_import_file']['tmp_name']);
63
  $decoded = json_decode($file);
64
- foreach($decoded as $key => $val):
65
- $option_factory = new OptionFactory;
66
- $option = $option_factory->build($key, $val);
67
- $this->repository->update($option);
68
- endforeach;
69
 
70
  $options = $this->repository->all();
71
  $save_factory = new SaveFactory();
@@ -78,7 +77,7 @@ class Main extends Base
78
 
79
  $wpml = new WPML;
80
  $wpml->saveFromOptions($options);
81
-
82
  $this->view->render('main', ['options' => $options, 'flash' => $flash]);
83
  }
84
 
1
  <?php
2
 
3
+ namespace ResponsiveMenu\Controllers;
4
+ use ResponsiveMenu\View\View as View;
5
+ use ResponsiveMenu\Repositories\OptionRepository as OptionRepository;
6
  use ResponsiveMenu\Factories\OptionFactory as OptionFactory;
7
  use ResponsiveMenu\Factories\AdminSaveFactory as SaveFactory;
8
  use ResponsiveMenu\WPML\WPML as WPML;
9
 
10
+ class Admin {
 
11
 
12
+ public function __construct(OptionRepository $repository, View $view) {
13
+ $this->repository = $repository;
14
+ $this->view = $view;
15
+ }
16
+
17
+ public function update($default_options) {
18
 
19
  $options = array_merge($default_options, $_POST['menu']);
20
 
21
+ $option_factory = new OptionFactory;
22
+ foreach($options as $key => $val)
23
+ $this->repository->update($option_factory->build($key, $val));
 
 
24
 
25
  $options = $this->repository->all();
26
  $save_factory = new SaveFactory();
34
 
35
  }
36
 
37
+ public function reset($default_options) {
 
38
 
39
+ $option_factory = new OptionFactory;
40
+ foreach($default_options as $key => $val)
41
+ $this->repository->update($option_factory->build($key, $val));
 
 
42
 
43
  $options = $this->repository->all();
44
  $save_factory = new SaveFactory();
61
  if(!empty($_FILES['responsive_menu_import_file']['tmp_name'])):
62
  $file = file_get_contents($_FILES['responsive_menu_import_file']['tmp_name']);
63
  $decoded = json_decode($file);
64
+
65
+ $option_factory = new OptionFactory;
66
+ foreach($decoded as $key => $val)
67
+ $this->repository->update($option_factory->build($key, $val));
 
68
 
69
  $options = $this->repository->all();
70
  $save_factory = new SaveFactory();
77
 
78
  $wpml = new WPML;
79
  $wpml->saveFromOptions($options);
80
+
81
  $this->view->render('main', ['options' => $options, 'flash' => $flash]);
82
  }
83
 
src/app/Controllers/Admin/Base.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Controllers\Admin;
4
- use ResponsiveMenu\View\View as View;
5
- use ResponsiveMenu\Repositories\Options\Repository as Repository;
6
-
7
- class Base
8
- {
9
-
10
- public function __construct(Repository $repository, View $view)
11
- {
12
- $this->repository = $repository;
13
- $this->view = $view;
14
- }
15
-
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/app/Controllers/Base.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Controllers;
4
- use ResponsiveMenu\View\View as View;
5
- use ResponsiveMenu\Repositories\Options\ReadRepository as Repository;
6
-
7
- class Base
8
- {
9
-
10
- public function __construct(Repository $repository, View $view)
11
- {
12
- $this->repository = $repository;
13
- $this->view = $view;
14
- }
15
-
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/app/Controllers/Front.php CHANGED
@@ -1,16 +1,22 @@
1
  <?php
2
 
3
  namespace ResponsiveMenu\Controllers;
 
 
4
  use ResponsiveMenu\Controllers\Base as Base;
5
  use ResponsiveMenu\ViewModels\Menu as MenuViewModel;
6
  use ResponsiveMenu\ViewModels\Button as ButtonViewModel;
7
  use ResponsiveMenu\Factories\FrontDisplayFactory as DisplayFactory;
8
  use ResponsiveMenu\Shortcodes\ResponsiveMenuShortcode as Shortcode;
9
 
10
- class Front extends Base
11
- {
12
- public function index()
13
- {
 
 
 
 
14
  # Get Latest Options
15
  $options = $this->repository->all();
16
 
1
  <?php
2
 
3
  namespace ResponsiveMenu\Controllers;
4
+ use ResponsiveMenu\View\View as View;
5
+ use ResponsiveMenu\Repositories\OptionRepository as OptionRepository;
6
  use ResponsiveMenu\Controllers\Base as Base;
7
  use ResponsiveMenu\ViewModels\Menu as MenuViewModel;
8
  use ResponsiveMenu\ViewModels\Button as ButtonViewModel;
9
  use ResponsiveMenu\Factories\FrontDisplayFactory as DisplayFactory;
10
  use ResponsiveMenu\Shortcodes\ResponsiveMenuShortcode as Shortcode;
11
 
12
+ class Front {
13
+
14
+ public function __construct(OptionRepository $repository, View $view) {
15
+ $this->repository = $repository;
16
+ $this->view = $view;
17
+ }
18
+
19
+ public function index() {
20
  # Get Latest Options
21
  $options = $this->repository->all();
22
 
src/app/Database/Database.php CHANGED
@@ -2,10 +2,9 @@
2
 
3
  namespace ResponsiveMenu\Database;
4
 
5
- interface Database
6
- {
7
- public function update(array $to_update, array $where);
8
- public function delete($name);
9
- public function all();
10
- public function insert(array $arguments);
11
  }
2
 
3
  namespace ResponsiveMenu\Database;
4
 
5
+ interface Database {
6
+ public function update($table, array $to_update, array $where);
7
+ public function delete($table, $name);
8
+ public function all($table);
9
+ public function insert($table, array $arguments);
 
10
  }
src/app/Database/Migration.php CHANGED
@@ -10,20 +10,19 @@ class Migration{
10
 
11
  protected static $version_var = 'RMVer';
12
  protected static $old_options_var = 'RMOptions';
 
13
 
14
- public function __construct(Database $db, $default_options)
15
- {
16
  $this->db = $db;
17
  $this->defaults = $default_options;
18
  }
19
 
20
- protected function addNewOptions()
21
- {
22
  # If DB is empty we need to fill it up!
23
- $options = $this->db->all();
24
  if(empty($options)):
25
  foreach($this->defaults as $name => $value)
26
- $this->db->insert(array('name' => $name, 'value' => $value));
27
  # Otherwise we only add new options
28
  else:
29
  foreach($options as $converted)
@@ -31,37 +30,34 @@ class Migration{
31
  $final = array_diff_key($this->defaults, $current);
32
  if(is_array($final)):
33
  foreach($final as $name => $value)
34
- $this->db->insert(array('name' => $name, 'value' => $value));
35
  endif;
36
  endif;
37
  }
38
 
39
- protected function tidyUpOptions()
40
- {
41
- $current = array_map(function($a) { return $a->name; }, $this->db->all());
42
  foreach(array_diff($current, array_keys($this->defaults)) as $to_delete)
43
- $this->db->delete(array('name' => $to_delete));
44
  }
45
 
46
- public function setup()
47
- {
48
  # Create the database table if it doesn't exist
49
  if(!$this->isVersion3($this->getOldVersion())):
50
- $sql = "CREATE TABLE " . $this->db->table . " (
51
  name varchar(50) NOT NULL,
52
  value varchar(5000) DEFAULT NULL,
53
  created_at datetime NOT NULL,
54
  updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
55
  PRIMARY KEY (name)
56
- ) " . $this->db->db->get_charset_collate() . ";";
57
  require_once(ABSPATH . 'wp-admin/includes/upgrade.php' );
58
  dbDelta($sql);
59
  $this->synchronise();
60
  endif;
61
  }
62
 
63
- public function synchronise()
64
- {
65
  # First Thing we need to do is migrate any old options
66
  if(!$this->isVersion3($this->getOldVersion())):
67
  $this->migrateVersion2Options();
@@ -81,28 +77,23 @@ class Migration{
81
  endif;
82
  }
83
 
84
- protected function needsUpdate($current_version, $old_version)
85
- {
86
  return version_compare($current_version, $old_version, '<');
87
  }
88
 
89
- protected function getOldVersion()
90
- {
91
  return get_option(self::$version_var);
92
  }
93
 
94
- protected function updateVersion()
95
- {
96
  update_option(self::$version_var, $this->getCurrentVersion());
97
  }
98
 
99
- protected function isVersion3($version)
100
- {
101
  return substr($version, 0, 1) == 3;
102
  }
103
 
104
- protected function migrateVersion2Options()
105
- {
106
  $old_options = get_option(self::$old_options_var);
107
 
108
  $new_options = [
@@ -185,12 +176,11 @@ class Migration{
185
  ];
186
 
187
  foreach(array_filter($new_options) as $key => $val)
188
- $this->db->insert(array('name' => $key, 'value' => $val));
189
 
190
  }
191
 
192
- public function getCurrentVersion()
193
- {
194
  $plugin_data = get_plugin_data(dirname(dirname(dirname(dirname(__FILE__)))) . '/responsive-menu.php', false, false);
195
  return $plugin_data['Version'];
196
  }
10
 
11
  protected static $version_var = 'RMVer';
12
  protected static $old_options_var = 'RMOptions';
13
+ protected static $table = 'responsive_menu';
14
 
15
+ public function __construct(Database $db, $default_options) {
 
16
  $this->db = $db;
17
  $this->defaults = $default_options;
18
  }
19
 
20
+ protected function addNewOptions() {
 
21
  # If DB is empty we need to fill it up!
22
+ $options = $this->db->all(self::$table);
23
  if(empty($options)):
24
  foreach($this->defaults as $name => $value)
25
+ $this->db->insert(self::$table, array('name' => $name, 'value' => $value));
26
  # Otherwise we only add new options
27
  else:
28
  foreach($options as $converted)
30
  $final = array_diff_key($this->defaults, $current);
31
  if(is_array($final)):
32
  foreach($final as $name => $value)
33
+ $this->db->insert(self::$table, array('name' => $name, 'value' => $value));
34
  endif;
35
  endif;
36
  }
37
 
38
+ protected function tidyUpOptions() {
39
+ $current = array_map(function($a) { return $a->name; }, $this->db->all(self::$table));
 
40
  foreach(array_diff($current, array_keys($this->defaults)) as $to_delete)
41
+ $this->db->delete(self::$table, array('name' => $to_delete));
42
  }
43
 
44
+ public function setup() {
 
45
  # Create the database table if it doesn't exist
46
  if(!$this->isVersion3($this->getOldVersion())):
47
+ $sql = "CREATE TABLE " . $this->db->getPrefix() . self::$table . " (
48
  name varchar(50) NOT NULL,
49
  value varchar(5000) DEFAULT NULL,
50
  created_at datetime NOT NULL,
51
  updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
52
  PRIMARY KEY (name)
53
+ ) " . $this->db->getCharset() . ";";
54
  require_once(ABSPATH . 'wp-admin/includes/upgrade.php' );
55
  dbDelta($sql);
56
  $this->synchronise();
57
  endif;
58
  }
59
 
60
+ public function synchronise() {
 
61
  # First Thing we need to do is migrate any old options
62
  if(!$this->isVersion3($this->getOldVersion())):
63
  $this->migrateVersion2Options();
77
  endif;
78
  }
79
 
80
+ protected function needsUpdate($current_version, $old_version) {
 
81
  return version_compare($current_version, $old_version, '<');
82
  }
83
 
84
+ protected function getOldVersion() {
 
85
  return get_option(self::$version_var);
86
  }
87
 
88
+ protected function updateVersion() {
 
89
  update_option(self::$version_var, $this->getCurrentVersion());
90
  }
91
 
92
+ protected function isVersion3($version) {
 
93
  return substr($version, 0, 1) == 3;
94
  }
95
 
96
+ protected function migrateVersion2Options() {
 
97
  $old_options = get_option(self::$old_options_var);
98
 
99
  $new_options = [
176
  ];
177
 
178
  foreach(array_filter($new_options) as $key => $val)
179
+ $this->db->insert(self::$table, array('name' => $key, 'value' => $val));
180
 
181
  }
182
 
183
+ public function getCurrentVersion() {
 
184
  $plugin_data = get_plugin_data(dirname(dirname(dirname(dirname(__FILE__)))) . '/responsive-menu.php', false, false);
185
  return $plugin_data['Version'];
186
  }
src/app/Database/WpDatabase.php CHANGED
@@ -4,39 +4,38 @@ namespace ResponsiveMenu\Database;
4
 
5
  class WpDatabase implements Database {
6
 
7
- protected static $table_name = 'responsive_menu';
8
-
9
- public function __construct()
10
- {
11
  global $wpdb;
12
  $this->db = $wpdb;
13
- $this->table = $this->db->prefix . self::$table_name;
14
  }
15
 
16
- public function update(array $to_update, array $where)
17
- {
18
- $this->db->update($this->table, $to_update, $where);
19
  }
20
 
21
- public function delete($name)
22
- {
23
- $this->db->delete($this->table, $name);
24
  }
25
 
26
- public function all()
27
- {
28
- return $this->db->get_results("SELECT * FROM $this->table");
29
  }
30
 
31
- public function insert(array $arguments)
32
- {
33
  $arguments['created_at'] = current_time('mysql');
34
- $this->db->insert($this->table, $arguments);
 
 
 
 
 
 
 
 
35
  }
36
 
37
- public function select($column, $value)
38
- {
39
- return $this->db->get_results("SELECT * FROM $this->table WHERE $column = '$value';");
40
  }
41
 
42
  }
4
 
5
  class WpDatabase implements Database {
6
 
7
+ public function __construct() {
 
 
 
8
  global $wpdb;
9
  $this->db = $wpdb;
 
10
  }
11
 
12
+ public function update($table, array $to_update, array $where) {
13
+ $this->db->update($this->db->prefix . $table, $to_update, $where);
 
14
  }
15
 
16
+ public function delete($table, $name) {
17
+ $this->db->delete($this->db->prefix . $table, $name);
 
18
  }
19
 
20
+ public function all($table) {
21
+ return $this->db->get_results("SELECT * FROM {$this->db->prefix}{$table}");
 
22
  }
23
 
24
+ public function insert($table, array $arguments) {
 
25
  $arguments['created_at'] = current_time('mysql');
26
+ $this->db->insert($this->db->prefix . $table, $arguments);
27
+ }
28
+
29
+ public function select($table, $column, $value) {
30
+ return $this->db->get_results("SELECT * FROM {$this->prexix}{$table} WHERE $column = '$value';");
31
+ }
32
+
33
+ public function getPrefix() {
34
+ return $this->db->prefix;
35
  }
36
 
37
+ public function getCharset() {
38
+ return $this->db->get_charset_collate();
 
39
  }
40
 
41
  }
src/app/Factories/OptionFactory.php CHANGED
@@ -1,34 +1,27 @@
1
  <?php
2
 
3
  namespace ResponsiveMenu\Factories;
4
- use ResponsiveMenu\Models\ComplexOption as ComplexOption;
5
- use ResponsiveMenu\Helpers\OptionHelper as Helper;
6
 
7
- class OptionFactory
8
- {
9
- public function build($name, $value)
10
- {
11
- include dirname(dirname(dirname(__FILE__))) . '/config/option_helpers.php';
12
- include dirname(dirname(dirname(__FILE__))) . '/config/default_options.php';
13
 
14
- $filter = isset($option_helpers[$name]['filter'])
15
- ? new $option_helpers[$name]['filter']
16
- : new \ResponsiveMenu\Filters\TextFilter;
 
 
 
 
 
17
 
18
- $form_component = isset($option_helpers[$name]['form_component'])
19
- ? new $option_helpers[$name]['form_component']
20
- : new \ResponsiveMenu\Form\Text;
21
 
22
- $value = isset($value) || $value === '0' ? $value : $default_options[$name];
23
  $value = stripslashes_deep($value);
24
- $option = new ComplexOption($name, $value);
25
  $option->setFilter($filter);
26
- $option->setFormComponent($form_component);
27
- $option->setData(isset($option_helpers[$name]['custom'])?$option_helpers[$name]['custom']:null);
28
- $option->setIsPro(isset($option_helpers[$name]['pro'])?$option_helpers[$name]['pro']:null);
29
- $option->setIsSemiPro(isset($option_helpers[$name]['semi_pro'])?$option_helpers[$name]['semi_pro']:null);
30
- $option->setPosition(isset($option_helpers[$name]['position'])?$option_helpers[$name]['position']:null);
31
- $option->setLabel(isset($option_helpers[$name]['label'])?$option_helpers[$name]['label']:null);
32
  return $option;
33
  }
34
 
1
  <?php
2
 
3
  namespace ResponsiveMenu\Factories;
4
+ use ResponsiveMenu\Models\Option as Option;
 
5
 
6
+ class OptionFactory {
 
 
 
 
 
7
 
8
+ public function __construct() {
9
+ include dirname(dirname(dirname(__FILE__))) . '/config/option_helpers.php';
10
+ include dirname(dirname(dirname(__FILE__))) . '/config/default_options.php';
11
+ $this->defaults = $default_options;
12
+ $this->helper = $option_helpers;
13
+ }
14
+
15
+ public function build($name, $value) {
16
 
17
+ $filter = isset($this->helper[$name]['filter'])
18
+ ? new $this->helper[$name]['filter']
19
+ : new \ResponsiveMenu\Filters\TextFilter;
20
 
21
+ $value = isset($value) || $value === '0' ? $value : $this->defaults[$name];
22
  $value = stripslashes_deep($value);
23
+ $option = new Option($name, $value);
24
  $option->setFilter($filter);
 
 
 
 
 
 
25
  return $option;
26
  }
27
 
src/app/Formatters/Tabs.php DELETED
@@ -1,53 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Formatters;
4
- use ResponsiveMenu\Collections\OptionsCollection as OptionsCollection;
5
-
6
- class Tabs
7
- {
8
- public static function render(OptionsCollection $options)
9
- {
10
- $tabs = self::getTabs($options);
11
- foreach($tabs as $key => $val):
12
- $is_active = $val == reset($tabs) ? ' active_tab' : '';
13
- echo '<a class="tab page-title-action' . $is_active . '" id="tab_' . $key . '">' . $val . '</a>';
14
- endforeach;
15
- }
16
-
17
- public static function getTabs(OptionsCollection $options)
18
- {
19
- $final = array();
20
- foreach($options->all() as $option):
21
- if($option->getPosition()):
22
- $item = explode('.',$option->getPosition());
23
- $final[$item[0]] = ucwords(str_replace('_', ' ', $item[0]));
24
- endif;
25
- endforeach;
26
- return array_unique(array_filter($final));
27
- }
28
-
29
- public static function getSubTabs($tab, OptionsCollection $options)
30
- {
31
- $final = array();
32
- foreach($options->all() as $option):
33
- if($option->getPosition()):
34
- $item = explode('.',$option->getPosition());
35
- $final[] = $item[0] == $tab ? $option->getPosition() : null;
36
- endif;
37
- endforeach;
38
- return array_unique(array_filter($final));
39
- }
40
-
41
- public static function getTabOptions($tab_name, OptionsCollection $options)
42
- {
43
- $final = array();
44
- foreach($options->all() as $option) :
45
- if($option->getPosition()) :
46
- if($tab_name == $option->getPosition())
47
- $final[] = $option;
48
- endif;
49
- endforeach;
50
- return $final;
51
- }
52
-
53
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/app/Formatters/Text.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Formatters;
4
-
5
- class Text
6
- {
7
- public static function underscoreToWord($text, $echo = true)
8
- {
9
- $words = ucwords(str_replace('_', ' ', $text));
10
- if($echo)
11
- echo $words;
12
- else
13
- return $words;
14
- }
15
-
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/app/Mappers/JsMapper.php CHANGED
@@ -127,7 +127,8 @@ class JsMapper
127
  },
128
  init: function() {
129
  var self = this;
130
- $(this.trigger).on(this.triggerTypes, function(){
 
131
  self.triggerMenu();
132
  });
133
  $('.responsive-menu-subarrow').on('click', function(e) {
127
  },
128
  init: function() {
129
  var self = this;
130
+ $(this.trigger).on(this.triggerTypes, function(e){
131
+ e.stopPropagation();
132
  self.triggerMenu();
133
  });
134
  $('.responsive-menu-subarrow').on('click', function(e) {
src/app/Models/ComplexOption.php DELETED
@@ -1,130 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Models;
4
- use ResponsiveMenu\Filters\Filter as Filter;
5
- use ResponsiveMenu\Form\FormComponent as FormComponent;
6
-
7
- class ComplexOption implements Option {
8
-
9
- private $value;
10
- private $name;
11
- private $filter;
12
- private $form_component;
13
- private $is_pro;
14
- private $is_semi_pro;
15
- private $position;
16
- private $data;
17
- private $label;
18
-
19
- public function __construct($name, $value)
20
- {
21
- $this->name = $name;
22
- $this->value = $value;
23
- }
24
-
25
- public function setFilter(Filter $filter)
26
- {
27
- $this->filter = $filter;
28
- }
29
-
30
- public function setFormComponent(FormComponent $form_component)
31
- {
32
- $this->form_component = $form_component;
33
- }
34
-
35
- public function getName()
36
- {
37
- return $this->name;
38
- }
39
-
40
- public function getValue()
41
- {
42
- return $this->value;
43
- }
44
-
45
- public function getFiltered() {
46
- return $this->filter->filter($this->value);
47
- }
48
-
49
- public function setValue($value)
50
- {
51
- $this->value = $value;
52
- }
53
-
54
- public function setIsPro($is_pro = false)
55
- {
56
- $this->is_pro = $is_pro;
57
- }
58
-
59
- public function isPro()
60
- {
61
- return $this->is_pro;
62
- }
63
-
64
- public function setIsSemiPro($is_semi_pro = false)
65
- {
66
- $this->is_semi_pro = $is_semi_pro;
67
- }
68
-
69
- public function isSemiPro()
70
- {
71
- return $this->is_semi_pro;
72
- }
73
-
74
- public function getFormComponent()
75
- {
76
- return $this->form_component;
77
- }
78
-
79
- public function setPosition($position = null)
80
- {
81
- $this->position = $position;
82
- }
83
-
84
- public function getPosition()
85
- {
86
- return $this->position;
87
- }
88
-
89
- public function getFilter()
90
- {
91
- return $this->filter;
92
- }
93
-
94
- public function __toString()
95
- {
96
- return (string) $this->value;
97
- }
98
-
99
- public function getBasePosition()
100
- {
101
- $position = $this->position;
102
- $positions = explode('.', $position);
103
- return isset($positions[1]) ? $positions[1] : null;
104
- }
105
-
106
- public function getData($data)
107
- {
108
- return $this->data[$data];
109
- }
110
-
111
- public function setData($data = null) {
112
- $this->data = $data;
113
- }
114
-
115
- public function hasLabel()
116
- {
117
- return $this->label ? true : false;
118
- }
119
-
120
- public function getLabel()
121
- {
122
- return $this->label;
123
- }
124
-
125
- public function setLabel($label = null)
126
- {
127
- $this->label = $label;
128
- }
129
-
130
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/app/Models/Option.php CHANGED
@@ -1,13 +1,41 @@
1
  <?php
2
 
3
  namespace ResponsiveMenu\Models;
 
4
 
5
- interface Option {
6
 
7
- public function __construct($name, $value);
8
- public function getName();
9
- public function getValue();
10
- public function setValue($value);
11
- public function __toString();
12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  }
1
  <?php
2
 
3
  namespace ResponsiveMenu\Models;
4
+ use ResponsiveMenu\Filters\Filter as Filter;
5
 
6
+ class Option {
7
 
8
+ private $value;
9
+ private $name;
10
+ private $filter;
 
 
11
 
12
+ public function __construct($name, $value) {
13
+ $this->name = $name;
14
+ $this->value = $value;
15
+ }
16
+
17
+ public function setFilter(Filter $filter) {
18
+ $this->filter = $filter;
19
+ }
20
+
21
+ public function getName() {
22
+ return $this->name;
23
+ }
24
+
25
+ public function getValue() {
26
+ return $this->value;
27
+ }
28
+
29
+ public function getFiltered() {
30
+ return $this->filter->filter($this->value);
31
+ }
32
+
33
+ public function getFilter() {
34
+ return $this->filter;
35
+ }
36
+
37
+ public function __toString() {
38
+ return (string) $this->value;
39
+ }
40
+
41
  }
src/app/Models/SimpleOption.php DELETED
@@ -1,36 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Models;
4
-
5
- class SimpleOption implements Option {
6
-
7
- private $value;
8
- private $name;
9
-
10
- public function __construct($name, $value)
11
- {
12
- $this->name = $name;
13
- $this->value = $value;
14
- }
15
-
16
- public function getName()
17
- {
18
- return $this->name;
19
- }
20
-
21
- public function getValue()
22
- {
23
- return $this->value;
24
- }
25
-
26
- public function setValue($value)
27
- {
28
- return $this->value = $value;
29
- }
30
-
31
- public function __toString()
32
- {
33
- return (string) $this->value;
34
- }
35
-
36
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/app/Repositories/OptionRepository.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace ResponsiveMenu\Repositories;
4
+ use ResponsiveMenu\Models\Option as Option;
5
+ use ResponsiveMenu\Collections\OptionsCollection as OptionsCollection;
6
+
7
+ 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() {
17
+ $options = $this->db->all(self::$table);
18
+ $collection = new OptionsCollection;
19
+ foreach($options as $option)
20
+ $collection->add($this->factory->build($option->name, $option->value));
21
+ return $collection;
22
+ }
23
+
24
+ public function update(Option $option) {
25
+ $this->db->update(self::$table, ['value' => $option->getFiltered()], ['name' => $option->getName()]);
26
+ }
27
+
28
+ public function create($name, $value) {
29
+ $arguments['name'] = $name;
30
+ $arguments['value'] = $value;
31
+ $arguments['created_at'] = current_time('mysql');
32
+ $this->db->insert(self::$table, $arguments);
33
+ }
34
+
35
+ public function remove($name) {
36
+ $this->db->delete(self::$table, $name);
37
+ }
38
+
39
+ }
src/app/Repositories/Options/BaseOptionRepository.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Repositories\Options;
4
- use ResponsiveMenu\Database\Database as Database;
5
-
6
- class BaseOptionRepository {
7
-
8
- public function __construct(Database $db)
9
- {
10
- $this->db = $db;
11
- }
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
src/app/Repositories/Options/ComplexOptionRepository.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Repositories\Options;
4
- use ResponsiveMenu\Factories\OptionFactory as Factory;
5
- use ResponsiveMenu\Models\ComplexOption as ComplexOption;
6
- use ResponsiveMenu\Collections\OptionsCollection as OptionsCollection;
7
-
8
- class ComplexOptionRepository extends BaseOptionRepository implements Repository {
9
-
10
- public function update(ComplexOption $option)
11
- {
12
- $this->db->update(array('value' => $option->getFiltered()), array('name' => $option->getName()));
13
- }
14
-
15
- public function all()
16
- {
17
- $options = $this->db->all();
18
- $collection = new OptionsCollection;
19
- $factory = new Factory;
20
- foreach($options as $option)
21
- $collection->add($factory->build($option->name, $option->value));
22
- return $collection;
23
- }
24
-
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/app/Repositories/Options/ReadRepository.php DELETED
@@ -1,7 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Repositories\Options;
4
-
5
- interface ReadRepository {
6
- public function all();
7
- }
 
 
 
 
 
 
 
src/app/Repositories/Options/Repository.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Repositories\Options;
4
- use ResponsiveMenu\Models\ComplexOption as ComplexOption;
5
-
6
- interface Repository {
7
- public function all();
8
- public function update(ComplexOption $option);
9
- }
 
 
 
 
 
 
 
 
 
src/app/Repositories/Options/SimpleOptionReadRepository.php DELETED
@@ -1,18 +0,0 @@
1
- <?php
2
-
3
- namespace ResponsiveMenu\Repositories\Options;
4
- use ResponsiveMenu\Models\SimpleOption as SimpleOption;
5
- use ResponsiveMenu\Collections\OptionsCollection as OptionsCollection;
6
-
7
- class SimpleOptionReadRepository extends BaseOptionRepository implements ReadRepository {
8
-
9
- public function all()
10
- {
11
- $options = $this->db->all();
12
- $collection = new OptionsCollection;
13
- foreach($options as $option)
14
- $collection->add(new SimpleOption($option->name, $option->value));
15
- return $collection;
16
- }
17
-
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/app/Routing/Container.php CHANGED
@@ -210,47 +210,6 @@ class Container implements \ArrayAccess
210
  return $this->values[$id];
211
  }
212
 
213
- /**
214
- * Extends an object definition.
215
- *
216
- * Useful when you want to extend an existing object definition,
217
- * without necessarily loading that object.
218
- *
219
- * @param string $id The unique identifier for the object
220
- * @param callable $callable A service definition to extend the original
221
- *
222
- * @return callable The wrapped callable
223
- *
224
- * @throws \InvalidArgumentException if the identifier is not defined or not a service definition
225
- */
226
- public function extend($id, $callable)
227
- {
228
- if (!isset($this->keys[$id])) {
229
- throw new \InvalidArgumentException(sprintf('Identifier "%s" is not defined.', $id));
230
- }
231
-
232
- if (!is_object($this->values[$id]) || !method_exists($this->values[$id], '__invoke')) {
233
- throw new \InvalidArgumentException(sprintf('Identifier "%s" does not contain an object definition.', $id));
234
- }
235
-
236
- if (!is_object($callable) || !method_exists($callable, '__invoke')) {
237
- throw new \InvalidArgumentException('Extension service definition is not a Closure or invokable object.');
238
- }
239
-
240
- $factory = $this->values[$id];
241
-
242
- $extended = function ($c) use ($callable, $factory) {
243
- return $callable($factory($c), $c);
244
- };
245
-
246
- if (isset($this->factories[$factory])) {
247
- $this->factories->detach($factory);
248
- $this->factories->attach($extended);
249
- }
250
-
251
- return $this[$id] = $extended;
252
- }
253
-
254
  /**
255
  * Returns all defined value names.
256
  *
210
  return $this->values[$id];
211
  }
212
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
  /**
214
  * Returns all defined value names.
215
  *
src/app/Routing/WpRouting.php CHANGED
@@ -3,26 +3,22 @@
3
  namespace ResponsiveMenu\Routing;
4
  use ResponsiveMenu\Routing\Container as Container;
5
 
6
- class WpRouting implements Routing
7
- {
8
 
9
  protected $container;
10
 
11
- public function __construct(Container $container)
12
- {
13
  $this->container = $container;
14
  }
15
 
16
- public function route()
17
- {
18
  if(is_admin())
19
  add_action('admin_menu', [$this, 'adminPage']);
20
  else
21
  add_action('template_redirect', [$this->container['front_controller'], 'index']);
22
  }
23
 
24
- public function adminPage()
25
- {
26
  /* Heavily reliant on WordPress so very hard coded */
27
  if(isset($_POST['responsive_menu_submit'])):
28
  $method = 'update';
3
  namespace ResponsiveMenu\Routing;
4
  use ResponsiveMenu\Routing\Container as Container;
5
 
6
+ class WpRouting implements Routing {
 
7
 
8
  protected $container;
9
 
10
+ public function __construct(Container $container) {
 
11
  $this->container = $container;
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() {
 
22
  /* Heavily reliant on WordPress so very hard coded */
23
  if(isset($_POST['responsive_menu_submit'])):
24
  $method = 'update';
src/app/ViewModels/Components/Button/Button.php CHANGED
@@ -10,8 +10,15 @@ class Button implements ViewComponent {
10
  public function render(OptionsCollection $options) {
11
 
12
  $button_title = apply_filters('wpml_translate_single_string', $options['button_title']->getValue(), 'Responsive Menu', 'button_title');
 
 
 
 
 
 
13
  $button_title_pos = $options['button_title_position']->getValue();
14
  $button_title_html = $button_title != '' ? '<span class="responsive-menu-label responsive-menu-label-'.$button_title_pos.'">'.$button_title.'</span>' : '';
 
15
  $accessible = in_array($button_title_pos, array('left', 'right')) ? 'responsive-menu-accessible' : '';
16
  $content = '';
17
 
10
  public function render(OptionsCollection $options) {
11
 
12
  $button_title = apply_filters('wpml_translate_single_string', $options['button_title']->getValue(), 'Responsive Menu', 'button_title');
13
+
14
+ /*
15
+ Add Polylang Support */
16
+ if(function_exists('pll__'))
17
+ $button_title = pll__($button_title);
18
+
19
  $button_title_pos = $options['button_title_position']->getValue();
20
  $button_title_html = $button_title != '' ? '<span class="responsive-menu-label responsive-menu-label-'.$button_title_pos.'">'.$button_title.'</span>' : '';
21
+
22
  $accessible = in_array($button_title_pos, array('left', 'right')) ? 'responsive-menu-accessible' : '';
23
  $content = '';
24
 
src/app/ViewModels/Components/Menu/Menu.php CHANGED
@@ -12,6 +12,11 @@ class Menu implements ViewComponent {
12
 
13
  $menu = apply_filters('wpml_translate_single_string', $options['menu_to_use']->getValue(), 'Responsive Menu', 'menu_to_use');
14
 
 
 
 
 
 
15
  return wp_nav_menu(
16
  [
17
  'container' => '',
12
 
13
  $menu = apply_filters('wpml_translate_single_string', $options['menu_to_use']->getValue(), 'Responsive Menu', 'menu_to_use');
14
 
15
+ /*
16
+ Add Polylang Support */
17
+ if(function_exists('pll__'))
18
+ $menu = pll__($menu);
19
+
20
  return wp_nav_menu(
21
  [
22
  'container' => '',
src/app/ViewModels/Components/Menu/Title.php CHANGED
@@ -9,15 +9,24 @@ class Title implements ViewComponent {
9
 
10
  public function render(OptionsCollection $options) {
11
 
 
 
 
 
 
 
 
 
 
 
12
  if($options['menu_title']->getValue() || $options->getTitleImage()):
13
  $content = '<div id="responsive-menu-title">';
14
  if($options->getTitleImage())
15
  $content .= '<div id="responsive-menu-title-image">' . $options->getTitleImage() . '</div>';
16
  if($options['menu_title_link']->getValue()):
17
- $link = apply_filters('wpml_translate_single_string', $options['menu_title_link']->getValue(), 'Responsive Menu', 'menu_title_link');
18
  $content .= '<a href="'.$link.'" target="'.$options['menu_title_link_location'].'">';
19
  endif;
20
- $content .= apply_filters('wpml_translate_single_string', $options['menu_title']->getValue(), 'Responsive Menu', 'menu_title');
21
  if($options['menu_title_link']->getValue())
22
  $content .= '</a>';
23
  $content .= '</div>';
9
 
10
  public function render(OptionsCollection $options) {
11
 
12
+ $title = apply_filters('wpml_translate_single_string', $options['menu_title']->getValue(), 'Responsive Menu', 'menu_title');
13
+ $link = apply_filters('wpml_translate_single_string', $options['menu_title_link']->getValue(), 'Responsive Menu', 'menu_title_link');
14
+
15
+ /*
16
+ Add Polylang Support */
17
+ if(function_exists('pll__')):
18
+ $title = pll__($title);
19
+ $link = pll__($link);
20
+ endif;
21
+
22
  if($options['menu_title']->getValue() || $options->getTitleImage()):
23
  $content = '<div id="responsive-menu-title">';
24
  if($options->getTitleImage())
25
  $content .= '<div id="responsive-menu-title-image">' . $options->getTitleImage() . '</div>';
26
  if($options['menu_title_link']->getValue()):
 
27
  $content .= '<a href="'.$link.'" target="'.$options['menu_title_link_location'].'">';
28
  endif;
29
+ $content .= $title;
30
  if($options['menu_title_link']->getValue())
31
  $content .= '</a>';
32
  $content .= '</div>';
src/config/route_dependencies.php CHANGED
@@ -11,11 +11,7 @@ $container['option_factory'] = function($c) {
11
  };
12
 
13
  $container['option_repository'] = function($c) {
14
- return new ResponsiveMenu\Repositories\Options\ComplexOptionRepository($c['database'], $c['option_factory']);
15
- };
16
-
17
- $container['simple_option_repository'] = function($c) {
18
- return new ResponsiveMenu\Repositories\Options\SimpleOptionReadRepository($c['database']);
19
  };
20
 
21
  $container['admin_view'] = function($c) {
@@ -27,9 +23,9 @@ $container['front_view'] = function($c) {
27
  };
28
 
29
  $container['admin_controller'] = function($c) {
30
- return new ResponsiveMenu\Controllers\Admin\Main($c['option_repository'], $c['admin_view']);
31
  };
32
 
33
  $container['front_controller'] = function($c) {
34
- return new ResponsiveMenu\Controllers\Front($c['simple_option_repository'], $c['front_view']);
35
  };
11
  };
12
 
13
  $container['option_repository'] = function($c) {
14
+ return new ResponsiveMenu\Repositories\OptionRepository($c['database'], $c['option_factory']);
 
 
 
 
15
  };
16
 
17
  $container['admin_view'] = function($c) {
23
  };
24
 
25
  $container['admin_controller'] = function($c) {
26
+ return new ResponsiveMenu\Controllers\Admin($c['option_repository'], $c['admin_view']);
27
  };
28
 
29
  $container['front_controller'] = function($c) {
30
+ return new ResponsiveMenu\Controllers\Front($c['option_repository'], $c['front_view']);
31
  };
translations/responsive-menu-es_ES.mo ADDED
Binary file
translations/responsive-menu-es_ES.po ADDED
@@ -0,0 +1,756 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.8.7.1\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
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
+
50
+ #: src/app/Form/Export.php:10
51
+ msgid "Export Options"
52
+ msgstr ""
53
+
54
+ #: src/app/Form/FontIconPageList.php:17
55
+ msgid "Id"
56
+ msgstr ""
57
+
58
+ #: src/app/Form/FontIconPageList.php:17
59
+ msgid "Icon"
60
+ msgstr ""
61
+
62
+ #: src/app/Form/FontIconPageList.php:59
63
+ msgid "Add New Font Icon"
64
+ msgstr ""
65
+
66
+ #: src/app/Form/Import.php:11
67
+ msgid "Import Options"
68
+ msgstr ""
69
+
70
+ #: src/app/Form/Reset.php:10
71
+ msgid "Reset Options"
72
+ msgstr ""
73
+
74
+ #: src/app/ViewModels/Components/Admin/Boxes.php:25
75
+ msgid "Toggle panel: Location"
76
+ msgstr ""
77
+
78
+ #: src/config/admin_ordering.php:16
79
+ msgid "Initial Setup"
80
+ msgstr ""
81
+
82
+ #: src/config/admin_ordering.php:17 src/config/admin_ordering.php:47
83
+ #: src/config/admin_ordering.php:812
84
+ msgid "Menu"
85
+ msgstr ""
86
+
87
+ #: src/config/admin_ordering.php:21 src/config/admin_ordering.php:893
88
+ msgid "Breakpoint"
89
+ msgstr ""
90
+
91
+ #: src/config/admin_ordering.php:22
92
+ msgid ""
93
+ "This is the width of the screen at which point you would like the menu to "
94
+ "start showing"
95
+ msgstr ""
96
+
97
+ #: src/config/admin_ordering.php:27
98
+ msgid "Menu to Use"
99
+ msgstr ""
100
+
101
+ #: src/config/admin_ordering.php:34
102
+ msgid "CSS of Menu to Hide"
103
+ msgstr ""
104
+
105
+ #: src/config/admin_ordering.php:48
106
+ msgid "Section Ordering"
107
+ msgstr ""
108
+
109
+ #: src/config/admin_ordering.php:51
110
+ msgid "Order of Menu Items"
111
+ msgstr ""
112
+
113
+ #: src/config/admin_ordering.php:52
114
+ msgid "Drag the items to re-order and click to turn them on/off"
115
+ msgstr ""
116
+
117
+ #: src/config/admin_ordering.php:56 src/config/admin_ordering.php:60
118
+ msgid "Font Icons"
119
+ msgstr ""
120
+
121
+ #: src/config/admin_ordering.php:61
122
+ msgid ""
123
+ "Responsive Menu uses the brilliant <a href=\"http://fontawesome.io/icons/\" "
124
+ "target=\"_blank\">Awesome Font Icons</a> for implementing icons in your menu "
125
+ "- for more info please visit our doc pages at <a href=\"https://responsive."
126
+ "menu/docs/basic-setup/font-icons/\" target=\"_blank\">https://responsive."
127
+ "menu/docs/basic-setup/font-icons/</a>"
128
+ msgstr ""
129
+
130
+ #: src/config/admin_ordering.php:66 src/config/admin_ordering.php:730
131
+ #: src/config/admin_ordering.php:954
132
+ msgid "Sizing"
133
+ msgstr ""
134
+
135
+ #: src/config/admin_ordering.php:70
136
+ msgid "Menu Width"
137
+ msgstr ""
138
+
139
+ #: src/config/admin_ordering.php:76
140
+ msgid "Maximum Width"
141
+ msgstr ""
142
+
143
+ #: src/config/admin_ordering.php:82
144
+ msgid "Minimum Width"
145
+ msgstr ""
146
+
147
+ #: src/config/admin_ordering.php:88
148
+ msgid "Links Height"
149
+ msgstr ""
150
+
151
+ #: src/config/admin_ordering.php:94
152
+ msgid "Menu Auto Height"
153
+ msgstr ""
154
+
155
+ #: src/config/admin_ordering.php:100 src/config/admin_ordering.php:564
156
+ #: src/config/admin_ordering.php:922 src/config/admin_ordering.php:925
157
+ msgid "Title"
158
+ msgstr ""
159
+
160
+ #: src/config/admin_ordering.php:104 src/config/admin_ordering.php:176
161
+ #: src/config/admin_ordering.php:567 src/config/admin_ordering.php:939
162
+ msgid "Text"
163
+ msgstr ""
164
+
165
+ #: src/config/admin_ordering.php:109 src/config/admin_ordering.php:917
166
+ msgid "Link"
167
+ msgstr ""
168
+
169
+ #: src/config/admin_ordering.php:114
170
+ msgid "Link Location"
171
+ msgstr ""
172
+
173
+ #: src/config/admin_ordering.php:126
174
+ msgid "Title Font Size"
175
+ msgstr ""
176
+
177
+ #: src/config/admin_ordering.php:132 src/config/admin_ordering.php:611
178
+ msgid "Font Icon"
179
+ msgstr ""
180
+
181
+ #: src/config/admin_ordering.php:138 src/config/admin_ordering.php:607
182
+ #: src/config/admin_ordering.php:623 src/config/admin_ordering.php:910
183
+ msgid "Image"
184
+ msgstr ""
185
+
186
+ #: src/config/admin_ordering.php:144
187
+ msgid "Title Background Colour"
188
+ msgstr ""
189
+
190
+ #: src/config/admin_ordering.php:151
191
+ msgid "Title Background Colour Hover"
192
+ msgstr ""
193
+
194
+ #: src/config/admin_ordering.php:158
195
+ msgid "Title Colour"
196
+ msgstr ""
197
+
198
+ #: src/config/admin_ordering.php:165
199
+ msgid "Title Hover Colour"
200
+ msgstr ""
201
+
202
+ #: src/config/admin_ordering.php:172
203
+ msgid "Additional Content"
204
+ msgstr ""
205
+
206
+ #: src/config/admin_ordering.php:177
207
+ msgid "HTMl and Shortcodes can be used"
208
+ msgstr ""
209
+
210
+ #: src/config/admin_ordering.php:182 src/config/admin_ordering.php:572
211
+ msgid "Colour"
212
+ msgstr ""
213
+
214
+ #: src/config/admin_ordering.php:187 src/config/admin_ordering.php:415
215
+ msgid "Animation"
216
+ msgstr ""
217
+
218
+ #: src/config/admin_ordering.php:191
219
+ msgid "Appear From"
220
+ msgstr ""
221
+
222
+ #: src/config/admin_ordering.php:203 src/config/admin_ordering.php:419
223
+ msgid "Animation Type"
224
+ msgstr ""
225
+
226
+ #: src/config/admin_ordering.php:215
227
+ msgid "Page Wrapper CSS selector"
228
+ msgstr ""
229
+
230
+ #: src/config/admin_ordering.php:216
231
+ msgid "This is only needed if you are using the push animation above"
232
+ msgstr ""
233
+
234
+ #: src/config/admin_ordering.php:220
235
+ msgid "Close Menu on Body Clicks"
236
+ msgstr ""
237
+
238
+ #: src/config/admin_ordering.php:226
239
+ msgid "Close Menu on Link Clicks"
240
+ msgstr ""
241
+
242
+ #: src/config/admin_ordering.php:231
243
+ msgid "Search Box"
244
+ msgstr ""
245
+
246
+ #: src/config/admin_ordering.php:235
247
+ msgid "Menu Search Box Text"
248
+ msgstr ""
249
+
250
+ #: src/config/admin_ordering.php:241 src/config/admin_ordering.php:533
251
+ msgid "Background Colours"
252
+ msgstr ""
253
+
254
+ #: src/config/admin_ordering.php:245 src/config/admin_ordering.php:536
255
+ #: src/config/admin_ordering.php:655 src/config/admin_ordering.php:966
256
+ #: src/config/admin_ordering.php:999 src/config/admin_ordering.php:1029
257
+ msgid "Background Colour"
258
+ msgstr ""
259
+
260
+ #: src/config/admin_ordering.php:252
261
+ msgid "Item Background Colour"
262
+ msgstr ""
263
+
264
+ #: src/config/admin_ordering.php:259
265
+ msgid "Item Background Colour Hover"
266
+ msgstr ""
267
+
268
+ #: src/config/admin_ordering.php:266
269
+ msgid "Item Border Colour"
270
+ msgstr ""
271
+
272
+ #: src/config/admin_ordering.php:273
273
+ msgid "Item Border Colour Hover"
274
+ msgstr ""
275
+
276
+ #: src/config/admin_ordering.php:280
277
+ msgid "Current Item Background Colour"
278
+ msgstr ""
279
+
280
+ #: src/config/admin_ordering.php:287
281
+ msgid "Current Item Background Colour Hover"
282
+ msgstr ""
283
+
284
+ #: src/config/admin_ordering.php:293
285
+ msgid "Text Colours"
286
+ msgstr ""
287
+
288
+ #: src/config/admin_ordering.php:298
289
+ msgid "Link Colour"
290
+ msgstr ""
291
+
292
+ #: src/config/admin_ordering.php:305
293
+ msgid "Link Hover Colour"
294
+ msgstr ""
295
+
296
+ #: src/config/admin_ordering.php:312
297
+ msgid "Current Link Colour"
298
+ msgstr ""
299
+
300
+ #: src/config/admin_ordering.php:319
301
+ msgid "Current Link Hover Colour"
302
+ msgstr ""
303
+
304
+ #: src/config/admin_ordering.php:326
305
+ msgid "Text Styling"
306
+ msgstr ""
307
+
308
+ #: src/config/admin_ordering.php:330 src/config/admin_ordering.php:591
309
+ #: src/config/admin_ordering.php:942 src/config/admin_ordering.php:1059
310
+ #: src/config/admin_ordering.php:1074
311
+ msgid "Font"
312
+ msgstr ""
313
+
314
+ #: src/config/admin_ordering.php:335 src/config/admin_ordering.php:596
315
+ #: src/config/admin_ordering.php:948 src/config/admin_ordering.php:1065
316
+ #: src/config/admin_ordering.php:1080
317
+ msgid "Font Size"
318
+ msgstr ""
319
+
320
+ #: src/config/admin_ordering.php:341
321
+ msgid "Text Alignment"
322
+ msgstr ""
323
+
324
+ #: src/config/admin_ordering.php:353
325
+ msgid "Word Wrap"
326
+ msgstr ""
327
+
328
+ #: src/config/admin_ordering.php:359
329
+ msgid "Page Overlay"
330
+ msgstr ""
331
+
332
+ #: src/config/admin_ordering.php:363
333
+ msgid "Add Page Overlay When Menu Open"
334
+ msgstr ""
335
+
336
+ #: src/config/admin_ordering.php:370
337
+ msgid "Overlay Colour"
338
+ msgstr ""
339
+
340
+ #: src/config/admin_ordering.php:376 src/config/admin_ordering.php:634
341
+ msgid "Advanced"
342
+ msgstr ""
343
+
344
+ #: src/config/admin_ordering.php:380
345
+ msgid "Depth"
346
+ msgstr ""
347
+
348
+ #: src/config/admin_ordering.php:393
349
+ msgid "Disable Scrolling when Menu Active"
350
+ msgstr ""
351
+
352
+ #: src/config/admin_ordering.php:400
353
+ msgid "Theme Location Menu"
354
+ msgstr ""
355
+
356
+ #: src/config/admin_ordering.php:414
357
+ msgid "Button"
358
+ msgstr ""
359
+
360
+ #: src/config/admin_ordering.php:420
361
+ msgid ""
362
+ "To see all animations in action please visit <a href=\"https://jonsuh.com/"
363
+ "hamburgers/\" target=\"_blank\">this page</a>"
364
+ msgstr ""
365
+
366
+ #: src/config/admin_ordering.php:455 src/config/admin_ordering.php:881
367
+ msgid "Position Type"
368
+ msgstr ""
369
+
370
+ #: src/config/admin_ordering.php:466
371
+ msgid "Push Button with Animation"
372
+ msgstr ""
373
+
374
+ #: src/config/admin_ordering.php:471
375
+ msgid "Location"
376
+ msgstr ""
377
+
378
+ #: src/config/admin_ordering.php:475
379
+ msgid "Distance from Side"
380
+ msgstr ""
381
+
382
+ #: src/config/admin_ordering.php:481
383
+ msgid "Button Side"
384
+ msgstr ""
385
+
386
+ #: src/config/admin_ordering.php:491
387
+ msgid "Distance from Top"
388
+ msgstr ""
389
+
390
+ #: src/config/admin_ordering.php:496
391
+ msgid "Container Sizing"
392
+ msgstr ""
393
+
394
+ #: src/config/admin_ordering.php:500 src/config/admin_ordering.php:957
395
+ #: src/config/admin_ordering.php:1089 src/config/admin_ordering.php:1098
396
+ msgid "Height"
397
+ msgstr ""
398
+
399
+ #: src/config/admin_ordering.php:506
400
+ msgid "Width"
401
+ msgstr ""
402
+
403
+ #: src/config/admin_ordering.php:511
404
+ msgid "Hamburger Sizing"
405
+ msgstr ""
406
+
407
+ #: src/config/admin_ordering.php:515 src/config/admin_ordering.php:602
408
+ msgid "Line Height"
409
+ msgstr ""
410
+
411
+ #: src/config/admin_ordering.php:521
412
+ msgid "Line Margin"
413
+ msgstr ""
414
+
415
+ #: src/config/admin_ordering.php:527
416
+ msgid "Line Width"
417
+ msgstr ""
418
+
419
+ #: src/config/admin_ordering.php:543 src/config/admin_ordering.php:662
420
+ #: src/config/admin_ordering.php:1006 src/config/admin_ordering.php:1036
421
+ msgid "Background Hover Colour"
422
+ msgstr ""
423
+
424
+ #: src/config/admin_ordering.php:550
425
+ msgid "Transparent Background"
426
+ msgstr ""
427
+
428
+ #: src/config/admin_ordering.php:555
429
+ msgid "Line Colours"
430
+ msgstr ""
431
+
432
+ #: src/config/admin_ordering.php:558
433
+ msgid "Line Colour"
434
+ msgstr ""
435
+
436
+ #: src/config/admin_ordering.php:579
437
+ msgid "Title Text Position"
438
+ msgstr ""
439
+
440
+ #: src/config/admin_ordering.php:617
441
+ msgid "Font Icon When Clicked"
442
+ msgstr ""
443
+
444
+ #: src/config/admin_ordering.php:629
445
+ msgid "Image When Clicked"
446
+ msgstr ""
447
+
448
+ #: src/config/admin_ordering.php:638
449
+ msgid "Trigger"
450
+ msgstr ""
451
+
452
+ #: src/config/admin_ordering.php:649
453
+ msgid "Sub-Menus"
454
+ msgstr ""
455
+
456
+ #: src/config/admin_ordering.php:651
457
+ msgid "Toggle Button Colours"
458
+ msgstr ""
459
+
460
+ #: src/config/admin_ordering.php:669
461
+ msgid "Border Colour"
462
+ msgstr ""
463
+
464
+ #: src/config/admin_ordering.php:676
465
+ msgid "Border Hover Colour"
466
+ msgstr ""
467
+
468
+ #: src/config/admin_ordering.php:682
469
+ msgid "Toggle Icon Colours"
470
+ msgstr ""
471
+
472
+ #: src/config/admin_ordering.php:686
473
+ msgid "Icon Colour"
474
+ msgstr ""
475
+
476
+ #: src/config/admin_ordering.php:693
477
+ msgid "Icon Hover Colour"
478
+ msgstr ""
479
+
480
+ #: src/config/admin_ordering.php:699
481
+ msgid "Animations"
482
+ msgstr ""
483
+
484
+ #: src/config/admin_ordering.php:703
485
+ msgid "Use Accordion Animation"
486
+ msgstr ""
487
+
488
+ #: src/config/admin_ordering.php:709
489
+ msgid "Auto Expand All Submenus"
490
+ msgstr ""
491
+
492
+ #: src/config/admin_ordering.php:715
493
+ msgid "Auto Expand Current Submenus"
494
+ msgstr ""
495
+
496
+ #: src/config/admin_ordering.php:721
497
+ msgid "Disable Parent Item Clicks"
498
+ msgstr ""
499
+
500
+ #: src/config/admin_ordering.php:734
501
+ msgid "Toggle Button Height"
502
+ msgstr ""
503
+
504
+ #: src/config/admin_ordering.php:740
505
+ msgid "Toggle Button Width"
506
+ msgstr ""
507
+
508
+ #: src/config/admin_ordering.php:746
509
+ msgid "Toggle Icons"
510
+ msgstr ""
511
+
512
+ #: src/config/admin_ordering.php:750
513
+ msgid "Font Icon Active"
514
+ msgstr ""
515
+
516
+ #: src/config/admin_ordering.php:756
517
+ msgid "Font Icon Inactive"
518
+ msgstr ""
519
+
520
+ #: src/config/admin_ordering.php:762
521
+ msgid "HTML Shape Active"
522
+ msgstr ""
523
+
524
+ #: src/config/admin_ordering.php:767
525
+ msgid "HTML Shape Inactive"
526
+ msgstr ""
527
+
528
+ #: src/config/admin_ordering.php:772
529
+ msgid "Image Active"
530
+ msgstr ""
531
+
532
+ #: src/config/admin_ordering.php:778
533
+ msgid "Image Inactive"
534
+ msgstr ""
535
+
536
+ #: src/config/admin_ordering.php:791
537
+ msgid "Technical"
538
+ msgstr ""
539
+
540
+ #: src/config/admin_ordering.php:792
541
+ msgid "Scripts"
542
+ msgstr ""
543
+
544
+ #: src/config/admin_ordering.php:795
545
+ msgid "Use External Files?"
546
+ msgstr ""
547
+
548
+ #: src/config/admin_ordering.php:796
549
+ msgid "This will create external files for CSS and JavaScript"
550
+ msgstr ""
551
+
552
+ #: src/config/admin_ordering.php:801
553
+ msgid "Minify Scripts?"
554
+ msgstr ""
555
+
556
+ #: src/config/admin_ordering.php:802
557
+ msgid "This will minify CSS and JavaScript output"
558
+ msgstr ""
559
+
560
+ #: src/config/admin_ordering.php:807
561
+ msgid "Place Scripts In Footer?"
562
+ msgstr ""
563
+
564
+ #: src/config/admin_ordering.php:808
565
+ msgid "This will place the JavaScript file in the footer"
566
+ msgstr ""
567
+
568
+ #: src/config/admin_ordering.php:815
569
+ msgid "Custom Walker"
570
+ msgstr ""
571
+
572
+ #: src/config/admin_ordering.php:816
573
+ msgid "Warning: For extremely advanced use only"
574
+ msgstr ""
575
+
576
+ #: src/config/admin_ordering.php:820
577
+ msgid "Show on mobile devices only?"
578
+ msgstr ""
579
+
580
+ #: src/config/admin_ordering.php:821
581
+ msgid "This will make it not a responsive menu but a \"mobile menu\""
582
+ msgstr ""
583
+
584
+ #: src/config/admin_ordering.php:827
585
+ msgid "Use Shortcode?"
586
+ msgstr ""
587
+
588
+ #: src/config/admin_ordering.php:828
589
+ msgid ""
590
+ "Please place [responsive_menu] in your files to use. Full documentation can "
591
+ "be found <a target=\"_blank\" href=\"https://responsive.menu/docs/advanced-"
592
+ "setup/shortcode/\">here</a>"
593
+ msgstr ""
594
+
595
+ #: src/config/admin_ordering.php:832
596
+ msgid "Animation Speeds"
597
+ msgstr ""
598
+
599
+ #: src/config/admin_ordering.php:836
600
+ msgid "Animation Speed"
601
+ msgstr ""
602
+
603
+ #: src/config/admin_ordering.php:842
604
+ msgid "Transition Speed"
605
+ msgstr ""
606
+
607
+ #: src/config/admin_ordering.php:854 src/config/admin_ordering.php:858
608
+ msgid "Custom CSS"
609
+ msgstr ""
610
+
611
+ #: src/config/admin_ordering.php:855
612
+ msgid "CSS"
613
+ msgstr ""
614
+
615
+ #: src/config/admin_ordering.php:870 src/views/admin/main.phtml:79
616
+ msgid "Header Bar"
617
+ msgstr ""
618
+
619
+ #: src/config/admin_ordering.php:871 src/config/admin_ordering.php:987
620
+ msgid "Setup"
621
+ msgstr ""
622
+
623
+ #: src/config/admin_ordering.php:874
624
+ msgid "Use Header Bar"
625
+ msgstr ""
626
+
627
+ #: src/config/admin_ordering.php:898 src/config/admin_ordering.php:901
628
+ msgid "Ordering"
629
+ msgstr ""
630
+
631
+ #: src/config/admin_ordering.php:907
632
+ msgid "Logo"
633
+ msgstr ""
634
+
635
+ #: src/config/admin_ordering.php:930
636
+ msgid "Content"
637
+ msgstr ""
638
+
639
+ #: src/config/admin_ordering.php:933
640
+ msgid "HTML Content"
641
+ msgstr ""
642
+
643
+ #: src/config/admin_ordering.php:934
644
+ msgid "Accepts shortcodes"
645
+ msgstr ""
646
+
647
+ #: src/config/admin_ordering.php:963
648
+ msgid "Colours"
649
+ msgstr ""
650
+
651
+ #: src/config/admin_ordering.php:973 src/config/admin_ordering.php:1013
652
+ #: src/config/admin_ordering.php:1043
653
+ msgid "Text Colour"
654
+ msgstr ""
655
+
656
+ #: src/config/admin_ordering.php:986
657
+ msgid "Single Menu"
658
+ msgstr ""
659
+
660
+ #: src/config/admin_ordering.php:990
661
+ msgid "Use Single Menu"
662
+ msgstr ""
663
+
664
+ #: src/config/admin_ordering.php:991
665
+ msgid ""
666
+ "To use this option you must turn the Shortcode option on and use the "
667
+ "shortcode in your theme where you want the menu to appear"
668
+ msgstr ""
669
+
670
+ #: src/config/admin_ordering.php:996
671
+ msgid "Menu Colours"
672
+ msgstr ""
673
+
674
+ #: src/config/admin_ordering.php:1020 src/config/admin_ordering.php:1050
675
+ msgid "Text Hover Colour"
676
+ msgstr ""
677
+
678
+ #: src/config/admin_ordering.php:1026
679
+ msgid "Sub-Menu Colours"
680
+ msgstr ""
681
+
682
+ #: src/config/admin_ordering.php:1056
683
+ msgid "Menu Styling"
684
+ msgstr ""
685
+
686
+ #: src/config/admin_ordering.php:1071
687
+ msgid "Sub-Menu Styling"
688
+ msgstr ""
689
+
690
+ #: src/config/admin_ordering.php:1086
691
+ msgid "Menu Sizing"
692
+ msgstr ""
693
+
694
+ #: src/config/admin_ordering.php:1095
695
+ msgid "Sub-Menu Sizing"
696
+ msgstr ""
697
+
698
+ #: src/config/admin_ordering.php:1106
699
+ msgid "Import/Export"
700
+ msgstr ""
701
+
702
+ #: src/config/admin_ordering.php:1109
703
+ msgid "Import"
704
+ msgstr ""
705
+
706
+ #: src/config/admin_ordering.php:1115
707
+ msgid "Export"
708
+ msgstr ""
709
+
710
+ #: src/config/admin_ordering.php:1121
711
+ msgid "Reset"
712
+ msgstr ""
713
+
714
+ #: src/views/admin/main.phtml:20 src/views/admin/main.phtml:34
715
+ msgid "Dismiss this notice"
716
+ msgstr ""
717
+
718
+ #: src/views/admin/main.phtml:67
719
+ msgid "Update Options"
720
+ msgstr ""
721
+
722
+ #: src/views/admin/main.phtml:73
723
+ msgid "Upgrade today to unlock the following features:"
724
+ msgstr ""
725
+
726
+ #: src/views/admin/main.phtml:75
727
+ msgid "Font Awesome Icon Support"
728
+ msgstr ""
729
+
730
+ #: src/views/admin/main.phtml:76
731
+ msgid "Opacity Option for all Colours"
732
+ msgstr ""
733
+
734
+ #: src/views/admin/main.phtml:77
735
+ msgid "15+ Button Animations"
736
+ msgstr ""
737
+
738
+ #: src/views/admin/main.phtml:78
739
+ msgid "Style Desktop Menu Too"
740
+ msgstr ""
741
+
742
+ #: src/views/admin/main.phtml:80
743
+ msgid "And much more"
744
+ msgstr ""
745
+
746
+ #: src/views/admin/main.phtml:82
747
+ msgid "Upgrade Now"
748
+ msgstr ""
749
+
750
+ #: src/views/admin/main.phtml:85
751
+ msgid "Confused? Check out our documentation"
752
+ msgstr ""
753
+
754
+ #: src/views/admin/main.phtml:86
755
+ msgid "View Docs"
756
+ msgstr ""